#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) |
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 }