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  PndSttRecoHitProducer2(TClonesArray *, TClonesArray *);
26  virtual ~PndSttRecoHitProducer2();
27 
28  virtual genfit::AbsMeasurement *produce(int index, const genfit::TrackCandHit *hit);
29 };
30 
31 template <class hit_T, class measurement_T>
32 PndSttRecoHitProducer2<hit_T, measurement_T>::PndSttRecoHitProducer2(TClonesArray *theArr, TClonesArray *theTubeArr)
33 {
34  hitArrayTClones = theArr;
35  tubeArrayTClones = theTubeArr;
36 }
37 
38 template <class hit_T, class measurement_T>
40 {
41  delete (tubeArrayTClones);
42 }
43 
44 template <class hit_T, class measurement_T>
46 {
47  assert(hitArrayTClones != nullptr);
48  // assert(tubeArrayTClones!=nullptr);
49  if (hitArrayTClones->At(index) == 0) {
50  genfit::Exception e("In PndSttRecoHitProducer2: 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 #endif
Abstract interface class for MeasurementProducer.
PndSttRecoHitProducer2(TClonesArray *, TClonesArray *)
Hit object for use in TrackCand. Provides IDs and sorting parameters.
Definition: TrackCandHit.h:33
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:47
Contains the measurement and covariance in raw detector coordinates.
void setFatal(bool b=true)
Set fatal flag.
Definition: Exception.h:60