test_simple_io.cc File Reference

#include "DataFormat-TypeDef.hh"

Go to the source code of this file.

Functions

int main ()

Function Documentation

int main (  ) 

Definition at line 3 of file test_simple_io.cc.

References larlight::storage_manager::add_in_filename(), larlight::storage_manager::close(), larlight::DATA::DATA_TREE_NAME, larlight::DATA::DATA_TYPE_MAX, larlight::MSG::ERROR, larlight::DATA::Event, larlight::storage_manager::get_data(), larlight::DATA::MCNeutrino, larlight::DATA::MCTrajectory, larlight::storage_manager::next_event(), larlight::MSG::NORMAL, larlight::storage_manager::open(), larlight::storage_manager::READ, larlight::storage_manager::reset(), larlight::DATA::Seed, larlight::Message::send(), larlight::storage_manager::set_io_mode(), larlight::storage_manager::set_out_filename(), larlight::larlight_base::set_verbosity(), and larlight::storage_manager::WRITE.

00004 {
00005 
00006   //
00007   // This is a simple routine to test I/O.
00008   //
00009   
00010   // (1) Open file and write 10 events of various data type
00011 
00012   const std::string test_fname("from_io_test_you_can_remove_me.root");
00013   
00014   larlight::storage_manager man;
00015   man.set_io_mode(man.WRITE);
00016   man.set_out_filename(test_fname);
00017   man.set_verbosity(larlight::MSG::NORMAL);
00018 
00019   int nevents_written[larlight::DATA::DATA_TYPE_MAX]={0};
00020 
00021   std::cout 
00022     << std::endl
00023     << "test routine event loop starts here..." << std::endl
00024     << std::endl;
00025 
00026   man.open();
00027   for(int i=0; i<10; i++) {
00028 
00029     for(int j=0; j<larlight::DATA::DATA_TYPE_MAX; ++j) {
00030 
00031       if( j == larlight::DATA::Seed ||
00032       j == larlight::DATA::Event ||
00033       j == larlight::DATA::MCTrajectory ||
00034       j == larlight::DATA::MCNeutrino ||
00035       j == larlight::DATA::DATA_TYPE_MAX )
00036 
00037     continue;
00038       man.get_data((larlight::DATA::DATA_TYPE)j);
00039       
00040       nevents_written[j]++;
00041     }
00042 
00043     man.next_event();
00044 
00045   }
00046   
00047   man.close();
00048   man.reset();
00049 
00050   std::cout 
00051     << std::endl
00052     << "First event loop finished & file closed."
00053     << std::endl;
00054 
00055   for(int i=0; i<larlight::DATA::DATA_TYPE_MAX; ++i) {
00056     
00057     if(nevents_written[i])
00058 
00059       std::cout 
00060     << Form("Written %s_tree with %d events",
00061         larlight::DATA::DATA_TREE_NAME[i].c_str(),
00062         nevents_written[i])
00063     << std::endl;
00064   }
00065   std::cout << std::endl;
00066     
00067   // (2) Alright now let's test reading what was written.
00068   man.set_io_mode(man.READ);
00069   man.add_in_filename(test_fname);
00070 
00071   std::cout
00072     << "Now attempting to read what is written." << std::endl
00073     << std::endl;
00074 
00075   man.open();
00076   while(man.next_event()) {
00077 
00078     for(int i=0; i<larlight::DATA::DATA_TYPE_MAX; ++i) {
00079 
00080       larlight::event_base* my_event_data = man.get_data((larlight::DATA::DATA_TYPE)i);
00081 
00082       if(my_event_data)
00083 
00084     nevents_written[i]-=1;
00085 
00086     }
00087 
00088   }
00089   
00090   man.close();
00091 
00092   std::cout
00093     << std::endl
00094     << "Finished read event loop and closed file." << std::endl
00095     << "Check the following block for an error message." << std::endl
00096     << "//********************************************//" 
00097     << std::endl;
00098 
00099   for(int i=0; i<larlight::DATA::DATA_TYPE_MAX; ++i) {
00100 
00101     if(nevents_written[i]>0)
00102 
00103       larlight::Message::send(larlight::MSG::ERROR,
00104                   Form("TTree, \"%s_tree\", has more entries (+%d) than expected!",
00105                    larlight::DATA::DATA_TREE_NAME[i].c_str(),
00106                    nevents_written[i]));
00107     
00108     else if(nevents_written[i]<0)
00109       
00110       larlight::Message::send(larlight::MSG::ERROR,
00111                   Form("TTree, \"%s_tree\", has less entries (%d) than expected!",
00112                    larlight::DATA::DATA_TREE_NAME[i].c_str(),
00113                    nevents_written[i]));
00114     
00115   }
00116   std::cout 
00117     << "//********************************************//"  << std::endl
00118     << std::endl
00119     << "End of test routine..." << std::endl
00120     << std::endl;    
00121 
00122   return 0;
00123 }

 All Classes Namespaces Files Functions Variables Enumerations Enumerator

Generated on 3 Jun 2014 for MyProject by  doxygen 1.6.1