FairRoot/PandaRoot
PndMvdEventAnaTask.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndMvdEventAnaTask header file -----
3 // ----- Created 20/03/07 by R.Kliemt -----
4 // -------------------------------------------------------------------------
5 
6 
14 #ifndef PNDMVDEVENTANATASK_H
15 #define PNDMVDEVENTANATASK_H
16 
17 
18 // framework includes
19 #include "FairTask.h"
20 #include "FairHit.h"
21 #include "TH1.h"
22 #include "GFTrackCand.h"
23 
24 #include <vector>
25 #include <map>
26 
27 class TClonesArray;
28 class PndSdsCluster;
29 
30 class PndMvdEventAnaTask : public FairTask
31 {
32  public:
33 
36 
38  virtual ~PndMvdEventAnaTask();
39 
40 
42  virtual void SetParContainers();
43  virtual InitStatus Init();
44 
45 
47  virtual void Exec(Option_t* opt);
48 
49  virtual void Finish();
50 
51 
52  void DrawTracksPerEvent(TString opt=""){fHTracksPerEvent->DrawClone(opt);}
53  void DrawHitsPerTrack(TString opt=""){fHHitsPerTrack->DrawClone(opt);}
54  void DrawEnergyPerHit(TString opt=""){fHEnergyPerHit->DrawClone(opt);}
55 
56  void DrawPointRes(TString opt=""){fHPointRes->DrawClone(opt);}
57  void DrawPointResS(TString opt=""){fHPointResS->DrawClone(opt);}
58  void DrawPointResD(TString opt=""){fHPointResD->DrawClone(opt);}
59  void DrawPointResM(TString opt=""){fHPointResM->DrawClone(opt);}
60  void DrawEnergyRes(TString opt=""){fHEnergyRes->DrawClone(opt);}
61  void DrawDigisPerCluster(TString opt=""){fHDigisPerCluster->DrawClone(opt);}
62 
63  void DrawPointResStrip(TString opt=""){fHPointResStrip->DrawClone(opt);}
64  void DrawEnergyResStrip(TString opt=""){fHEnergyResStrip->DrawClone(opt);}
66 
67  void DrawPtRes(TString opt=""){fHPtRes->DrawClone(opt);}
68  void DrawPRes(TString opt=""){fHPRes->DrawClone(opt);}
69 
70  void DrawRiemannRes(TString opt=""){fHRiemannRes->DrawClone(opt);}
71  void DrawRiemannFakes(TString opt=""){fHRiemannFakes->DrawClone(opt);}
74 
78 
79 
80 
81 
82 
83  private:
84  TClonesArray* fMCTracks;
85  TClonesArray* fMCHits;
86  TClonesArray* fPixDigis;
87  TClonesArray* fStripDigis;
88  TClonesArray* fPixReco;
89  TClonesArray* fStripReco;
90  TClonesArray* fPixCluster;
91  TClonesArray* fStripCluster;
92  TClonesArray* fTrackCand;
93 
94  std::vector<int> fGhostCand;
95 
99 
106  TH1* fHPRes;
107  TH1* fHPtRes;
108 
115 
120 
124 
125 
136 
137  int fNTracks;
144 
145  int fEventNr;
146 
147  std::map<int, std::vector<int> > fTrackPixHitIdMap; //Track -> PixHitId
148  std::map<int, std::vector<int> > fTrackStripHitIdMap; //Track -> StripHitId
149 
150 
151 
152  bool MCHitBelongsToCluster(int HitIndex, PndSdsCluster* cluster, bool pixCluster);
153  void GetTrackCandsForMCTrack(std::vector<int> pixHitId, std::vector<int> stripHitId,
154  std::vector<int>& matches, std::vector<int>& result);
155 
156  int GetRecoHit(int clIndex, bool pixel) const;
157  std::vector<int> GetClusters(int MCHit, bool pixel);
158 
159  void PrintClusterDigiInfo(int clIndex, std::vector<Int_t> digiInd, bool pixel);
160  void PrintRecoHitInfo(int hitInd, int digiSize, TVector3 MCPos, double MCEnergy, bool pixel) const;
161 
162  void PrintTrackCand(GFTrackCand* cand) const;
163  void Register();
164 
165  void Reset();
166 
167  void ProduceHits();
168 
169  FairHit* GetFairHit(Int_t detId, Int_t hitId);
170 
171  std::map<int, std::vector<int> > AssignHitsToTracks();
172 
173 
174 
176 
177 };
178 
179 #endif
virtual void SetParContainers()
TClonesArray * fStripDigis
void DrawPointRes(TString opt="")
void DrawRiemannTracksPerTrackAdd(TString opt="")
void PrintRecoHitInfo(int hitInd, int digiSize, TVector3 MCPos, double MCEnergy, bool pixel) const
Class to store the Digis which belong to one cluster This class holds the information which Digi belo...
Definition: PndSdsCluster.h:19
FairHit * GetFairHit(Int_t detId, Int_t hitId)
void DrawPointResStrip(TString opt="")
std::map< int, std::vector< int > > AssignHitsToTracks()
ClassDef(PndMvdEventAnaTask, 1)
void DrawEnergyPerHit(TString opt="")
void DrawEnergyResStrip(TString opt="")
void DrawPRes(TString opt="")
void DrawTracksPerEvent(TString opt="")
void PrintTrackCand(GFTrackCand *cand) const
virtual InitStatus Init()
std::vector< int > fGhostCand
void DrawDigisPerCluster(TString opt="")
std::map< int, std::vector< int > > fTrackPixHitIdMap
TClonesArray * fStripCluster
TClonesArray * fStripReco
bool MCHitBelongsToCluster(int HitIndex, PndSdsCluster *cluster, bool pixCluster)
std::map< int, std::vector< int > > fTrackStripHitIdMap
void DrawRiemannRes(TString opt="")
virtual void Exec(Option_t *opt)
void DrawPointResD(TString opt="")
Track candidate – a list of cluster indices.
Definition: GFTrackCand.h:55
void PrintClusterDigiInfo(int clIndex, std::vector< Int_t > digiInd, bool pixel)
TClonesArray * fTrackCand
std::vector< int > GetClusters(int MCHit, bool pixel)
void DrawPointResS(TString opt="")
void DrawEnergyRes(TString opt="")
void DrawRiemannFakes(TString opt="")
void DrawPointResM(TString opt="")
void DrawRiemannVertexResolutionX(TString opt="")
void DrawPtRes(TString opt="")
void GetTrackCandsForMCTrack(std::vector< int > pixHitId, std::vector< int > stripHitId, std::vector< int > &matches, std::vector< int > &result)
TClonesArray * fPixReco
void DrawRiemannVertexResolutionY(TString opt="")
int GetRecoHit(int clIndex, bool pixel) const
TClonesArray * fPixCluster
void DrawHitsPerTrack(TString opt="")
void DrawRiemannTracksPerTrack(TString opt="")
void DrawDigisPerClusterStrip(TString opt="")
void DrawRiemannVertexResolutionZ(TString opt="")
TClonesArray * fMCTracks
TClonesArray * fMCHits
TClonesArray * fPixDigis