simple_read.cc File Reference

#include <TSystem.h>
#include <TVector3.h>
#include <storage_manager.hh>

Go to the source code of this file.

Functions

int main (int argc, char **argv)

Function Documentation

int main ( int  argc,
char **  argv 
)

Definition at line 5 of file simple_read.cc.

References larlight::storage_manager::add_in_filename(), larlight::storage_manager::close(), larlight::MSG::DEBUG, larlight::event_base::event_id(), larlight::storage_manager::get_data(), larlight::storage_manager::is_open(), larlight::storage_manager::is_ready_io(), larlight::storage_manager::next_event(), larlight::storage_manager::open(), larlight::storage_manager::READ, larlight::storage_manager::set_data_to_read(), larlight::storage_manager::set_io_mode(), larlight::larlight_base::set_verbosity(), and larlight::DATA::Track.

00005                                {
00006 
00007   if(argc<2) {
00008     
00009     std::cerr << Form("Usage: %s $INPUT_FILE\n",argv[0]) << std::endl;
00010 
00011     return 1;
00012 
00013   }
00014 
00015   //
00016   // A simple routine to read a data file and perform an event loop.
00017   // This is a test routine for storage_manager class which interacts
00018   // decoder output root file. 
00019   //
00020 
00021   larlight::storage_manager my_storage;
00022 
00023   // If you wish, change the message level to DEBUG.
00024   // Commented out by default.
00025   my_storage.set_verbosity(larlight::MSG::DEBUG);
00026   
00027   // Step 0: Set I/O mode: we are reading in, so "READ"
00028   my_storage.set_io_mode(larlight::storage_manager::READ);
00029 
00030   // Step 0.5: Specify data type to readout
00031   my_storage.set_data_to_read(larlight::DATA::Track);
00032 
00033   // Step 1: Add input file from user input
00034   my_storage.add_in_filename(argv[1]);
00035 
00036   // Step 2: Open a file.
00037   my_storage.open();
00038 
00039   // Step 3: Check if a file is opened.
00040   if(!my_storage.is_open()) {
00041     std::cerr << "File open failed!" << std::endl;
00042     return 0;
00043   }
00044   
00045   // Step 4: Check if it's ready to perform I/O
00046   if(!my_storage.is_ready_io()) {
00047     std::cerr << "I/O preparation failed!" << std::endl;
00048   }
00049 
00050   // Let's loop over!
00051   while(my_storage.next_event()){
00052 
00053     larlight::event_track* my_track_v = (larlight::event_track*)(my_storage.get_data(larlight::DATA::Track));
00054 
00055     if(!my_track_v) {
00056 
00057       std::cout << "No event_track found!" << std::endl;
00058 
00059       break;
00060     }
00061 
00062     // Check if pointer is valid
00063     std::cout 
00064       << Form("Found event %d ... %zu tracks! ", my_track_v->event_id(), my_track_v->size())
00065       << std::endl;
00066 
00067   }
00068 
00069   my_storage.close();
00070   return 1;
00071 }

 All Classes Namespaces Files Functions Variables Enumerations Enumerator

Generated on 3 Jun 2014 for MyProject by  doxygen 1.6.1