//modified by elisabetta Prencipe 19/05/2014 #ifndef PNDFTSRECOHITPRODUCER_H #define PNDFTSRECOHITPRODUCER_H #include #include #include #include #include "TClonesArray.h" #include "Exception.h" #include "MeasurementProducer.h" class SpacepointMeasurement; class TClonesArray; template class PndFtsRecoHitProducer : public MeasurementProducer { private: TClonesArray* hitArrayTClones; TClonesArray* tubeArrayTClones; public: PndFtsRecoHitProducer(TClonesArray*, TClonesArray*); virtual ~PndFtsRecoHitProducer(); virtual SpacepointMeasurement* produce(int index); }; template PndFtsRecoHitProducer::PndFtsRecoHitProducer(TClonesArray* theArr, TClonesArray* theTubeArr) { hitArrayTClones = theArr; tubeArrayTClones = theTubeArr; } template PndFtsRecoHitProducer::~PndFtsRecoHitProducer() { } template absMeasurement* PndFtsRecoHitProducer::produce(int index) { assert(hitArrayTClones!=NULL); assert(tubeArrayTClones!=NULL); if(hitArrayTClones->At(index) == 0) { Exception e("In PndFtsRecoHitProducer: index for hit in TClonesArray out of bounds",__LINE__,__FILE__); e.setFatal(); throw e; } return ( new recoHit_T( (hit_T*) hitArrayTClones->At(index), tubeArrayTClones ) ); } #endif