8 #include "EVENT/LCIO.h"
19 using namespace lcio ;
25 static string FILEN =
"trackerpulses.slcio" ;
28 const static string testname=
"test_trackerpulse";
40 MYTEST.
LOG(
" writing TrackerPulses " );
43 LCWriter* lcWrt = LCFactory::getInstance()->createLCWriter() ;
45 lcWrt->open(
FILEN , LCIO::WRITE_NEW ) ;
51 LCEventImpl* evt =
new LCEventImpl() ;
54 evt->setRunNumber( 4711 ) ;
55 evt->setEventNumber( i ) ;
57 LCCollectionVec* trkPulses =
new LCCollectionVec( LCIO::TRACKERPULSE ) ;
58 LCCollectionVec* trkPulsesCov =
new LCCollectionVec( LCIO::TRACKERPULSE ) ;
60 LCFlagImpl flag( trkPulsesCov->getFlag() ) ;
61 flag.setBit( LCIO::TRAWBIT_CM ) ;
62 trkPulsesCov->setFlag( flag.getFlag() ) ;
66 TrackerPulseImpl* trkPulse =
new TrackerPulseImpl ;
67 trkPulse->setTime( 3.1415 + 0.1 * i ) ;
69 trkPulse->setCharge( 3.1415 + 0.1 * j ) ;
72 trkPulses->addElement( trkPulse ) ;
75 TrackerPulseImpl* trkPulse =
new TrackerPulseImpl ;
76 trkPulse->setTime( 3.1415 + 0.1 * i ) ;
78 trkPulse->setCharge( 3.1415 + 0.1 * j ) ;
81 float cov[3] = { float(i) , float(j) ,float(i*j) } ;
82 trkPulse->setCovMatrix( cov );
84 trkPulsesCov->addElement( trkPulse ) ;
87 evt->addCollection( trkPulses ,
"TrackerPulses") ;
88 evt->addCollection( trkPulsesCov ,
"TrackerPulsesWithCovMatrix") ;
90 lcWrt->writeEvent(evt) ;
98 MYTEST.
LOG(
" reading back TrackerPulses from file " ) ;
101 LCReader* lcRdr = LCFactory::getInstance()->createLCReader() ;
103 lcRdr->open(
FILEN ) ;
105 for(
int i=0;i<
NEVENT;i++){
109 LCEvent* evt = lcRdr->readNextEvent() ;
111 MYTEST( evt->getRunNumber() , 4711 ,
" run number " ) ;
113 MYTEST( evt->getEventNumber() , i ,
" event number " ) ;
115 LCCollection* trkPulses = evt->getCollection(
"TrackerPulses") ;
123 TrackerPulse* trkPulse =
dynamic_cast<TrackerPulse*
>(trkPulses->getElementAt(j)) ;
125 MYTEST( trkPulse->getTime(), float( 3.1415 + 0.1 * i ),
"time" ) ;
127 MYTEST( trkPulse->getCharge(), float( 3.1415 + 0.1 * j ),
"charge" ) ;
131 const FloatVec& cov = trkPulse->getCovMatrix() ;
134 MYTEST( cov[0] , 0 ,
" cov[0] " ) ;
135 MYTEST( cov[1] , 0 ,
" cov[1] " ) ;
136 MYTEST( cov[2] , 0 ,
" cov[2] " ) ;
140 LCCollection* trkPulsesCov = evt->getCollection(
"TrackerPulsesWithCovMatrix") ;
148 TrackerPulse* trkPulse =
dynamic_cast<TrackerPulse*
>(trkPulsesCov->getElementAt(j)) ;
150 MYTEST( trkPulse->getTime(), float( 3.1415 + 0.1 * i ),
"time" ) ;
152 MYTEST( trkPulse->getCharge(), float( 3.1415 + 0.1 * j ),
"charge" ) ;
154 const FloatVec& cov = trkPulse->getCovMatrix() ;
156 MYTEST( cov[0] , i ,
" cov[0] " ) ;
157 MYTEST( cov[1] , j ,
" cov[1] " ) ;
158 MYTEST( cov[2] , i*j ,
" cov[2] " ) ;
165 }
catch( Exception &e ){
166 MYTEST.
FAILED( e.what() );
std::vector< float > FloatVec
Vector of floats.
void FAILED(const std::string &msg)
int main(int argc, char **argv)
Simple program that opens existing LCIO files and appends the records needed for direct access - if t...
static const string testname
void LOG(const std::string &msg)