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)