8 #include "EVENT/LCIO.h"
21 using namespace lcio ;
27 static string FILEN =
"trackerhitplane.slcio" ;
30 const static string testname=
"test_trackerhitplane";
42 MYTEST.
LOG(
" writing TrackerPlaneHits " );
45 LCWriter* lcWrt = LCFactory::getInstance()->createLCWriter() ;
47 lcWrt->open(
FILEN , LCIO::WRITE_NEW ) ;
53 LCEventImpl* evt =
new LCEventImpl() ;
56 evt->setRunNumber( 4711 ) ;
57 evt->setEventNumber( i ) ;
60 LCCollectionVec* trkHits =
new LCCollectionVec( LCIO::TRACKERHITPLANE ) ;
62 for(
int j=0;j<
NHITS;j++){
64 TrackerHitPlaneImpl* trkHit =
new TrackerHitPlaneImpl ;
66 trkHit->setEDep( i*j*117. ) ;
68 trkHit->setEDepError( (i+j)*.3 ) ;
70 double pos[3] = { 1.*i, 1.*j, 1.*i*j } ;
71 trkHit->setPosition( pos ) ;
76 trkHits->addElement( trkHit ) ;
78 evt->addCollection( trkHits ,
"TrackerPlaneHits") ;
80 lcWrt->writeEvent(evt) ;
88 MYTEST.
LOG(
" reading back TrackerPlaneHits from file " ) ;
91 LCReader* lcRdr = LCFactory::getInstance()->createLCReader() ;
93 lcRdr->open(
FILEN ) ;
99 LCEvent* evt = lcRdr->readNextEvent() ;
101 MYTEST( evt->getRunNumber() , 4711 ,
" run number " ) ;
103 MYTEST( evt->getEventNumber() , i ,
" event number " ) ;
105 LCCollection* trkHits = evt->getCollection(
"TrackerPlaneHits") ;
107 for(
int j=0;j<
NHITS;j++) {
111 TrackerHitPlane* trkHit =
dynamic_cast<TrackerHitPlane*
>(trkHits->getElementAt(j)) ;
116 MYTEST( trkHit->getEDep() , i*j*117. ,
"EDep" ) ;
120 MYTEST( trkHit->getEDepError() , float((i+j)*.3) ,
"EDepError" ) ;
123 const double* pos = trkHit->getPosition() ;
125 MYTEST( pos[0] , i ,
" pos[0] " ) ;
126 MYTEST( pos[1] , j ,
" pos[1] " ) ;
127 MYTEST( pos[2] , i*j ,
" pos[2] " ) ;
130 const FloatVec& cov = trkHit->getCovMatrix() ;
133 MYTEST( cov.size() , 6u ,
" cov.size() != 6" ) ;
135 MYTEST( cov[0] , 0 ,
" cov[0] " ) ;
136 MYTEST( cov[1] , 0 ,
" cov[1] " ) ;
137 MYTEST( cov[2] , 0 ,
" cov[2] " ) ;
138 MYTEST( cov[3] , 0 ,
" cov[3] " ) ;
139 MYTEST( cov[4] , 0 ,
" cov[4] " ) ;
140 MYTEST( cov[5] , 0 ,
" cov[5] " ) ;
148 }
catch( Exception &e ){
149 MYTEST.
FAILED( e.what() );
static const string testname
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...
void LOG(const std::string &msg)