FairRoot/PandaRoot
PndMdtHitProducer.h
Go to the documentation of this file.
1 #ifndef PNDMDTHITPRODUCER_H
2 #define PNDMDTHITPRODUCER_H 1
3 
4 #include "FairTask.h"
5 #include "PndMdtHit.h"
6 #include "TVector3.h"
7 #include "FairTSBufferFunctional.h"
8 
9 class TClonesArray;
10 class PndMdtDigi;
11 
12 using std::map;
13 using std::vector;
14 
15 class PndMdtHitProducer : public FairTask
16 {
17 
18  public:
19 
22 
23 
26 
27 
29  virtual InitStatus Init();
30 
31 
32  virtual void RunTimeBased() { fTimeOrderedDigi = kTRUE; }
33  virtual void FinishTask();
35  virtual void Exec(Option_t* opt);
36 
37  PndMdtHit* AddHit(Int_t detID, Int_t stripID, TVector3& pos, TVector3& dpos, Int_t bIndex, Int_t sIndex);
38 
39  // Bool_t MdtMapping(); // Creates maps of MDT hits
40  //void Reset(); // reset maps
41 
42  private:
43  virtual void Exec_old(Option_t* opt);
44 
46  TClonesArray* fBoxArray;
47  TClonesArray* fStripArray;
48  TClonesArray* fDigiArray;
49 
50  TClonesArray* fBoxClusterArray;
51  TClonesArray* fStripClusterArray;
53  TClonesArray* fHitArray;
54 
57  Int_t fNumofHits;
60 /* map<Int_t, vector<Int_t> >mapBoxBarrel; */
61 /* map<Int_t, vector<Int_t> >mapBoxEndcap; */
62 /* map<Int_t, vector<Int_t> >mapBoxForward; */
63 /* map<Int_t, vector<Int_t> >mapStripBarrel; */
64 /* map<Int_t, vector<Int_t> >mapStripEndcap; */
65 /* map<Int_t, vector<Int_t> >mapStripForward; */
66  std::map<Int_t, Int_t> fMatchMap;
67  //statistics record
68  std::map<Int_t, Int_t> fBoxHitMapofLayer;
69  std::map<Int_t, Int_t> fStripHitMapofLayer;
70 
71  typedef std::vector<std::vector<PndMdtDigi*> > ClustersCollection;
72  typedef ClustersCollection::iterator ClustersColIter;
73  typedef std::vector<PndMdtDigi*> SingleCluster;
74  typedef SingleCluster::iterator SingleDigiIter;
75 
76  typedef std::vector<std::vector<PndMdtDigi*> > TrackletCollection;
77  typedef TrackletCollection::iterator TrackletColIter;
78  typedef std::vector<PndMdtDigi*> Tracklet;
79  typedef Tracklet::iterator TrackletDigiIter;
80 
81  typedef std::vector<PndMdtDigi*> VecDigi;
82  typedef VecDigi::iterator VecDigiIter;
83 
84 
86  BinaryFunctor* fFunctor;
89 
91  {
92  bool operator() (const PndMdtDigi* lv, const PndMdtDigi* rv) const;
93  };
94 
96 
97 };
98 
99 
100 #endif
VecDigi::iterator VecDigiIter
TVector3 pos
std::vector< PndMdtDigi * > Tracklet
TClonesArray * fDigiArray
BinaryFunctor * fFunctor
PndTransMap * map
Definition: sim_emc_apd.C:99
ClustersCollection::iterator ClustersColIter
std::map< Int_t, Int_t > fBoxHitMapofLayer
PndMdtHit * AddHit(Int_t detID, Int_t stripID, TVector3 &pos, TVector3 &dpos, Int_t bIndex, Int_t sIndex)
Tracklet::iterator TrackletDigiIter
TClonesArray * fStripClusterArray
std::map< Int_t, Int_t > fMatchMap
TClonesArray * fStripArray
TClonesArray * fBoxArray
virtual void Exec(Option_t *opt)
bool operator()(const PndMdtDigi *lv, const PndMdtDigi *rv) const
Double_t
TrackletCollection::iterator TrackletColIter
std::vector< std::vector< PndMdtDigi * > > TrackletCollection
SingleCluster::iterator SingleDigiIter
std::map< Int_t, Int_t > fStripHitMapofLayer
virtual void FinishTask()
std::vector< std::vector< PndMdtDigi * > > ClustersCollection
virtual InitStatus Init()
std::vector< PndMdtDigi * > SingleCluster
virtual void RunTimeBased()
ClassDef(PndMdtHitProducer, 1)
std::vector< PndMdtDigi * > VecDigi
TClonesArray * fBoxClusterArray
virtual void Exec_old(Option_t *opt)
TClonesArray * fHitArray