simple_write.cc File Reference

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

Go to the source code of this file.

Functions

int main ()

Function Documentation

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 }

 All Classes Namespaces Files Functions Variables Enumerations Enumerator

Generated on 3 Jun 2014 for MyProject by  doxygen 1.6.1