FairRoot/PandaRoot
PndTrackingQATask.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndTrackingQATask header file -----
3 // ----- Created 18/01/10 by T.Stockmanns -----
4 // -------------------------------------------------------------------------
5 
6 
14 #ifndef PndTrackingQATask_H
15 #define PndTrackingQATask_H
16 
17 
18 // framework includes
19 #include "FairTask.h"
20 #include "PndDetectorList.h"
21 #include "PndTrack.h"
22 #include "PndTrackCand.h"
24 #include "PndGeoSttPar.h"
25 #include "TH2.h"
26 #include "THStack.h"
27 #include "RhoHistogram/RhoTuple.h"
28 #include "PndTrackFunctor.h"
29 
30 
31 #include <vector>
32 #include <map>
33 
34 class TClonesArray;
35 
36 class PndTrackingQATask : public FairTask
37 {
38  public:
39 
41  PndTrackingQATask(TString trackBranchName, TString idealBranchName, Bool_t pndTrackData = kTRUE);
42 
44  virtual ~PndTrackingQATask();
45 
46 
48  virtual void SetParContainers();
49  virtual InitStatus Init();
50 
51 
52 
54  virtual void Exec(Option_t* opt);
55 
56  virtual void Finish();
57 
59 
61  void SetTrackBranchName(TString name, Bool_t pndTrackData = kTRUE) {fPndTrackOrTrackCand = pndTrackData; fTrackBranchName = name;} //alternatively PndTrackCandData can be analysed. Therefore pndTrackData has to be set to kFALSE
62 
64  void AddHitsBranchName(TString name){ fBranchNames.push_back(name);}
65 
68 
70  void SetFunctor();
71 
72  private:
73 //
74 // virtual void FillMapTrackQualifikation();
75  const TString fHypoName[5]={"Electron","Muon","Pion","Kaon","Proton"};
76 
77 
87  virtual void FillQualyHisto(std::map<Int_t, Int_t> trackQualifikation, Int_t nGhosts);
88  virtual void FillMCStatus(std::map<Int_t, Int_t> trackMCStatus);
89  virtual void FillEfficiencies(std::map<Int_t, std::map<TString, std::pair<Double_t, Int_t > > > efficiencies);
90  virtual void MapToHist(std::map<Int_t, Double_t>, TH1*);
91 
92  virtual void SetQualyHisto(TH1* histo, Bool_t relative, Int_t base=1);
93 
94  virtual Int_t GetSumOfAllValidMCHits(FairMultiLinkedData* trackData);
95 
96 
98 
99 
101  Int_t GetMCInfoIdFromIdealTrackId(int idealtrackid) { return fMCInfoIdIdealId[idealtrackid]; }
102 
103  void InitializeHistograms();
104  void LabelQualyHistogram(TH1 *);
105  void ColorHistogram();
106  std::vector<TString> fBranchNames;
108 
109  std::map<TString, FairMultiLinkedData> fMapLinkData;
110 // std::map<TString, Double_t> fPossibleTrackParameter;
111  std::map<TString, TH2*> fMapEfficiencies;
112 
113  std::map< int, int > fMCInfoIdIdealId;
114 
115  Int_t fNGhosts;
116 
117  TClonesArray* fTrack;
118  TClonesArray* fMCTrack;
119  TClonesArray* fTrackCand;
120  // TClonesArray* fIdealTrackCand;
121  TClonesArray *fSttHitArray;
122  TClonesArray* fMCTrackInfo;
123  TClonesArray* fRecoTrackInfo;
124  TClonesArray* fIdealTrack;
125  TClonesArray* fSttTubeArray;
126 
127  FairRootManager* ioman;
128 
129  std::map<Int_t, Int_t> fMapTrackQualifikation;
130 
133  Bool_t fPndTrackOrTrackCand; //kTRUE if track and kFALSE if track cand
135 
137 
139 
140 
148  TH1* fPHisto;
150  TH1* fPtHisto;
152  TH1* fPlHisto;
155  THStack * fQualyStack;
162 
163 
164  Int_t fEventNr;
165 
166  void Register();
167 
168  void Reset();
169 
170 
172 
173 };
174 
175 #endif
virtual void FillQualyHisto(std::map< Int_t, Int_t > trackQualifikation, Int_t nGhosts)
TClonesArray * fTrackCand
TClonesArray * fRecoTrackInfo
void SetTrackBranchName(TString name, Bool_t pndTrackData=kTRUE)
Sets the branch name of the track data which should be analyzed.
void LabelQualyHistogram(TH1 *)
PndTransMap * map
Definition: sim_emc_apd.C:99
TClonesArray * fMCTrackInfo
virtual void MapToHist(std::map< Int_t, Double_t >, TH1 *)
ClassDef(PndTrackingQATask, 1)
void SetOutputRecoInfoBranchName(TString name)
PndTrackingQATask(TString trackBranchName, TString idealBranchName, Bool_t pndTrackData=kTRUE)
std::map< TString, FairMultiLinkedData > fMapLinkData
FairRootManager * ioman
TClonesArray * fIdealTrack
TClonesArray * fSttTubeArray
virtual void FillEfficiencies(std::map< Int_t, std::map< TString, std::pair< Double_t, Int_t > > > efficiencies)
const TString fHypoName[5]
virtual void SetQualyHisto(TH1 *histo, Bool_t relative, Int_t base=1)
TClonesArray * fMCTrack
Int_t GetMCInfoIdFromIdealTrackId(int idealtrackid)
TClonesArray * fSttHitArray
PndTrackingQualityMCInfo GetMCInfoFromIdealTrack(PndTrack *idealtrack)
virtual void SetParContainers()
TClonesArray * fTrack
TString fPossibleTrackFunctorName
void SetIdealTrackBranchName(TString name)
TString name
std::map< int, int > fMCInfoIdIdealId
PndTrackFunctor * fPossibleTrackFunctor
std::vector< TString > fBranchNames
void SetFunctorName(TString name)
std::map< TString, TH2 * > fMapEfficiencies
virtual InitStatus Init()
void SetOutputMCInfoBranchName(TString name)
virtual void Exec(Option_t *opt)
virtual Int_t GetSumOfAllValidMCHits(FairMultiLinkedData *trackData)
void AddHitsBranchName(TString name)
Adds branch names of detector data which should be taken into account in the analysis.
std::map< Int_t, Int_t > fMapTrackQualifikation
virtual void FillMCStatus(std::map< Int_t, Int_t > trackMCStatus)
PndGeoSttPar * fSttParameters