8 #include "EVENT/LCIO.h"
21 using namespace lcio ;
27 static string FILEN =
"trackerhitzcylinder.slcio" ;
30 const static string testname=
"test_trackerhitzcylinder";
42 MYTEST.
LOG(
" writing TrackerZCylinderHits " );
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 ) ;
59 LCCollectionVec* trkHits =
new LCCollectionVec( LCIO::TRACKERHITZCYLINDER ) ;
61 for(
int j=0;j<
NHITS;j++){
63 TrackerHitZCylinderImpl* trkHit =
new TrackerHitZCylinderImpl ;
65 trkHit->setEDep( i*j*117. ) ;
67 trkHit->setEDepError( (i+j)*.3 ) ;
69 double pos[3] = { 1.*i, 1.*j, 1.*i*j } ;
70 trkHit->setPosition( pos ) ;
75 trkHits->addElement( trkHit ) ;
77 evt->addCollection( trkHits ,
"TrackerZCylinderHits") ;
79 lcWrt->writeEvent(evt) ;
87 MYTEST.
LOG(
" reading back TrackerZCylinderHits from file " ) ;
90 LCReader* lcRdr = LCFactory::getInstance()->createLCReader() ;
92 lcRdr->open(
FILEN ) ;
98 LCEvent* evt = lcRdr->readNextEvent() ;
100 MYTEST( evt->getRunNumber() , 4711 ,
" run number " ) ;
102 MYTEST( evt->getEventNumber() , i ,
" event number " ) ;
104 LCCollection* trkHits = evt->getCollection(
"TrackerZCylinderHits") ;
106 for(
int j=0;j<
NHITS;j++) {
110 TrackerHitZCylinder* trkHit =
dynamic_cast<TrackerHitZCylinder*
>(trkHits->getElementAt(j)) ;
114 MYTEST( trkHit->getEDep() , i*j*117. ,
"EDep" ) ;
118 MYTEST( trkHit->getEDepError() , float((i+j)*.3) ,
"EDepError" ) ;
121 const double* pos = trkHit->getPosition() ;
123 MYTEST( pos[0] , i ,
" pos[0] " ) ;
124 MYTEST( pos[1] , j ,
" pos[1] " ) ;
125 MYTEST( pos[2] , i*j ,
" pos[2] " ) ;
128 const FloatVec& cov = trkHit->getCovMatrix() ;
130 MYTEST( cov.size() , 6u ,
" cov.size() != 6 " ) ;
132 MYTEST( cov[0] , 0 ,
" cov[0] " ) ;
133 MYTEST( cov[1] , 0 ,
" cov[1] " ) ;
134 MYTEST( cov[2] , 0 ,
" cov[2] " ) ;
135 MYTEST( cov[3] , 0 ,
" cov[3] " ) ;
136 MYTEST( cov[4] , 0 ,
" cov[4] " ) ;
137 MYTEST( cov[5] , 0 ,
" cov[5] " ) ;
144 }
catch( Exception &e ){
145 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)