#include <TSystem.h>
#include <TVector3.h>
#include <storage_manager.hh>
Go to the source code of this file.
Functions | |
int | main () |
int main | ( | ) |
Definition at line 5 of file simple_write.cc.
References larlight::track::add_direction(), larlight::track::add_momentum(), larlight::track::add_vertex(), larlight::storage_manager::close(), 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::event_base::set_event_id(), larlight::storage_manager::set_io_mode(), larlight::storage_manager::set_out_filename(), larlight::event_base::set_run(), larlight::event_base::set_subrun(), larlight::track::set_track_id(), larlight::DATA::Track, and larlight::storage_manager::WRITE.
00005 { 00006 00007 // 00008 // A simple routine to read a data file and perform an event loop. 00009 // This is a test routine for storage_manager class which interacts 00010 // decoder output root file. 00011 // 00012 00013 larlight::storage_manager my_storage; 00014 00015 // If you wish, change the message level to DEBUG. 00016 // Commented out by default. 00017 //my_storage.set_verbosity(larlight::MSG::DEBUG); 00018 00019 // Step 0: Set I/O mode: we are reading in, so "READ" 00020 my_storage.set_io_mode(larlight::storage_manager::WRITE); 00021 00022 // Step 1: Set output file 00023 my_storage.set_out_filename("trial.root"); 00024 00025 // Step 2: Open a file. 00026 my_storage.open(); 00027 00028 // Step 3: Check if a file is opened. 00029 if(!my_storage.is_open()) { 00030 std::cerr << "File open failed!" << std::endl; 00031 return 0; 00032 } 00033 00034 // Step 4: Check if it's ready to perform I/O 00035 if(!my_storage.is_ready_io()) { 00036 std::cerr << "I/O preparation failed!" << std::endl; 00037 } 00038 00039 // Let's fill event_track for 100 events. 00040 larlight::event_track* my_event_track = (larlight::event_track*)(my_storage.get_data(larlight::DATA::Track)); 00041 int run_id = 1; 00042 int subrun_id = 1; 00043 for( int i=0; i<100; i++){ 00044 00045 int event_id = i; 00046 my_event_track->set_run(run_id); 00047 my_event_track->set_subrun(subrun_id); 00048 my_event_track->set_event_id(event_id); 00049 00050 // Let's make 2 tracks! 00051 for( int j=0; j<2; j++){ 00052 larlight::track t; 00053 t.set_track_id(j); 00054 00055 // Let's make a track with 20 fake space points 00056 for(int k=0; k<20; k++){ 00057 t.add_vertex ( TVector3( (double)k,(double)k,(double)k ) ); 00058 t.add_momentum ( 1.); 00059 t.add_direction ( TVector3( (double)k,(double)k,(double)k ) ); 00060 } 00061 00062 // Append to the event track array 00063 my_event_track->push_back(t); 00064 } 00065 00066 // Store event 00067 my_storage.next_event(); 00068 00069 } 00070 00071 my_storage.close(); 00072 return 1; 00073 }