FairRoot/PandaRoot
PndFtsRecoHitProducer2.h
Go to the documentation of this file.
1 //modified by elisabetta Prencipe 19/05/2014
2 
3 #ifndef PNDFTSRECOHITPRODUCER2_H
4 #define PNDFTSRECOHITPRODUCER2_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 "MeasurementProducer.h"
14 #include "WireMeasurement.h"
15 #include "TrackCandHit.h"
16 
17 
18 template <class hit_T,class measurement_T>
19 class PndFtsRecoHitProducer2 : public genfit::AbsMeasurementProducer<genfit::AbsMeasurement> {
20 
21  private:
22  TClonesArray* hitArrayTClones;
23  TClonesArray* tubeArrayTClones;
24 
25  public:
26 
27  PndFtsRecoHitProducer2(TClonesArray*, TClonesArray*);
28  virtual ~PndFtsRecoHitProducer2();
29 
30  virtual genfit::WireMeasurement* produce(int index, const genfit::TrackCandHit* hit);
31 };
32 
33 template <class hit_T,class measurement_T>
34  PndFtsRecoHitProducer2<hit_T,measurement_T>::PndFtsRecoHitProducer2(TClonesArray* theArr, TClonesArray* theTubeArr) {
35  hitArrayTClones = theArr;
36  tubeArrayTClones = theTubeArr;
37 }
38 
39 template <class hit_T,class measurement_T>
41  delete(tubeArrayTClones);
42 }
43 
44 
45 template <class hit_T,class measurement_T>
47  assert(hitArrayTClones!=NULL);
48  assert(tubeArrayTClones!=NULL);
49  if(hitArrayTClones->At(index) == 0) {
50  genfit::Exception e("In PndFtsRecoHitProducer2: index for hit in TClonesArray out of bounds",__LINE__,__FILE__);
51  e.setFatal();
52  throw e;
53  }
54 
55  return ( new measurement_T( (hit_T*) hitArrayTClones->At(index), hit, tubeArrayTClones ) );
56 }
57 
58 
59 #endif
60 
61 
Abstract interface class for MeasurementProducer.
virtual genfit::WireMeasurement * produce(int index, const genfit::TrackCandHit *hit)
Virtual abstract method to produce a Measurement. Implemented in MeasurementProducer.
Hit object for use in TrackCand. Provides IDs and sorting parameters.
Definition: TrackCandHit.h:34
Class for measurements in wire detectors (Straw tubes and drift chambers) which do not measure the co...
Exception class for error handling in GENFIT (provides storage for diagnostic information) ...
Definition: Exception.h:48
PndFtsRecoHitProducer2(TClonesArray *, TClonesArray *)
void setFatal(bool b=true)
Set fatal flag.
Definition: Exception.h:61
PndSdsMCPoint * hit
Definition: anasim.C:70