FairRoot/PandaRoot
PndSttRecoHitProducer2.h
Go to the documentation of this file.
1 //modified by Elisabetta Prencipe 19/5/2014
2 
3 #ifndef PNDSTTRECOHITPRODUCER2_H
4 #define PNDSTTRECOHITPRODUCER2_H
5 
6 #include<vector>
7 #include<map>
8 #include<assert.h>
9 #include<iostream>
10 
11 #include "TClonesArray.h"
12 #include "Exception.h"
13 #include "TrackCandHit.h"
14 #include "MeasurementProducer.h"
15 #include "AbsMeasurement.h"
16 
17 template <class hit_T,class measurement_T>
18 class PndSttRecoHitProducer2 : public genfit::AbsMeasurementProducer<genfit::AbsMeasurement> {
19 
20  private:
21  TClonesArray* hitArrayTClones;
22  TClonesArray* tubeArrayTClones;
23 
24  public:
25 
26  PndSttRecoHitProducer2(TClonesArray*, TClonesArray*);
27  virtual ~PndSttRecoHitProducer2();
28 
29  virtual genfit::AbsMeasurement* produce(int index, const genfit::TrackCandHit* hit);
30 };
31 
32 template <class hit_T,class measurement_T>
33  PndSttRecoHitProducer2<hit_T,measurement_T>::PndSttRecoHitProducer2(TClonesArray* theArr, TClonesArray* theTubeArr) {
34  hitArrayTClones = theArr;
35  tubeArrayTClones = theTubeArr;
36 }
37 
38 template <class hit_T,class measurement_T>
40  delete(tubeArrayTClones);
41 }
42 
43 
44 template <class hit_T,class measurement_T>
46  assert(hitArrayTClones!=NULL);
47  //assert(tubeArrayTClones!=NULL);
48  if(hitArrayTClones->At(index) == 0) {
49  genfit::Exception e("In PndSttRecoHitProducer2: index for hit in TClonesArray out of bounds",__LINE__,__FILE__);
50  e.setFatal();
51  throw e;
52  }
53 
54  return ( new measurement_T( (hit_T*) hitArrayTClones->At(index), hit, tubeArrayTClones ) );
55 }
56 
57 
58 #endif
59 
60 
Abstract interface class for MeasurementProducer.
PndSttRecoHitProducer2(TClonesArray *, TClonesArray *)
Hit object for use in TrackCand. Provides IDs and sorting parameters.
Definition: TrackCandHit.h:34
virtual genfit::AbsMeasurement * produce(int index, const genfit::TrackCandHit *hit)
Virtual abstract method to produce a Measurement. Implemented in MeasurementProducer.
Exception class for error handling in GENFIT (provides storage for diagnostic information) ...
Definition: Exception.h:48
Contains the measurement and covariance in raw detector coordinates.
void setFatal(bool b=true)
Set fatal flag.
Definition: Exception.h:61
PndSdsMCPoint * hit
Definition: anasim.C:70