AliPhysics  aaf9c62 (aaf9c62)
AliEmcalTrackingQATask.h
Go to the documentation of this file.
1 #ifndef ALIEMCALTRACKINGQATASK_H
2 #define ALIEMCALTRACKINGQATASK_H
3 
4 #if !(defined(__CINT__) || defined(__MAKECINT__))
5 #include <tuple>
6 #endif
7 
8 #include <vector>
9 
11 
12 class THnSparse;
13 
26 
27  public:
29  AliEmcalTrackingQATask(const char *name);
30  virtual ~AliEmcalTrackingQATask();
31 
36 
37  static AliEmcalTrackingQATask* AddTaskTrackingQA(Bool_t isMC, const char *suffix = "");
38 
39  protected:
41  void ExecOnce();
42  void GenerateHistoBins() ;
46  void FillDetectorLevelTHnSparse(Double_t cent, Double_t trackEta, Double_t trackPhi, Double_t trackPt,
47  Double_t sigma1OverPt, Int_t mcGen, Byte_t trackType);
48  void FillGeneratorLevelTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt, Int_t mcGen, Byte_t findable);
49  void FillMatchedParticlesTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt,
50  Double_t trackEta, Double_t trackPhi, Double_t trackPt, Byte_t trackType);
51 #if !(defined(__CINT__) || defined(__MAKECINT__))
52  THnSparse* GenerateTHnSparse(const char* name, const std::vector<std::tuple<std::string, std::vector<Double_t>::iterator, std::vector<Double_t>::iterator>>& axis);
53 #endif
54 
55  // Task configuration
59 
60  // Service fields (non-streamed)
64  std::vector<Double_t> fPtHistBins ;
65  std::vector<Double_t> fEtaHistBins ;
66  std::vector<Double_t> fPhiHistBins ;
67  std::vector<Double_t> fCentHistBins ;
68  std::vector<Double_t> fPtRelDiffHistBins ;
69  std::vector<Double_t> fPtResHistBins ;
70  std::vector<Double_t> f1OverPtResHistBins ;
71  std::vector<Double_t> fIntegerHistBins ;
72 
73  // Histograms
74  THnSparse* fTracks ;
75  THnSparse* fParticlesPhysPrim ;
76  THnSparse* fParticlesMatched ;
77 
78  private:
79  AliEmcalTrackingQATask(const AliEmcalTrackingQATask&); // not implemented
80  AliEmcalTrackingQATask &operator=(const AliEmcalTrackingQATask&); // not implemented
81 
82  ClassDef(AliEmcalTrackingQATask, 4) // Track QA task (efficiency and pt resolution)
83 };
84 #endif
std::vector< Double_t > fEtaHistBins
! eta bins
double Double_t
Definition: External.C:58
static AliEmcalTrackingQATask * AddTaskTrackingQA(Bool_t isMC, const char *suffix="")
AliTrackContainer * fDetectorLevel
! detector level container
std::vector< Double_t > fIntegerHistBins
! integer bins
std::vector< Double_t > f1OverPtResHistBins
! 1/pt res bins
Container with name, TClonesArray and cuts for particles.
void SetDoSigmaPtOverPtGen(Bool_t s)
THnSparse * GenerateTHnSparse(const char *name, const std::vector< std::tuple< std::string, std::vector< Double_t >::iterator, std::vector< Double_t >::iterator >> &axis)
std::vector< Double_t > fPtHistBins
! pt bins
void FillMatchedParticlesTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt, Double_t trackEta, Double_t trackPhi, Double_t trackPt, Byte_t trackType)
void FillDetectorLevelTHnSparse(Double_t cent, Double_t trackEta, Double_t trackPhi, Double_t trackPt, Double_t sigma1OverPt, Int_t mcGen, Byte_t trackType)
Bool_t fIsEsd
! whether it is ESD data
std::vector< Double_t > fPtResHistBins
! pt res bins
int Int_t
Definition: External.C:63
Base task in the EMCAL framework (lighter version of AliAnalysisTaskEmcal)
AliEmcalTrackingQATask & operator=(const AliEmcalTrackingQATask &)
std::vector< Double_t > fCentHistBins
! cent bins
void SetDoSeparateTRDrefit(Bool_t s)
std::vector< Double_t > fPtRelDiffHistBins
! pt relative difference bins
Bool_t isMC
Bool_t fDoSigmaPtOverPtGen
MC: if true do sigma((ptgen - ptdet) / ptgen), otherwise do sigma((ptgen - ptdet) / ptdet) ...
void FillGeneratorLevelTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt, Int_t mcGen, Byte_t findable)
AliMCParticleContainer * fGeneratorLevel
! generator level container
Bool_t fDoSigma1OverPt
add sigma(1/pt), if false add sigma(pt)/pt instead
std::vector< Double_t > fPhiHistBins
! phi bins
bool Bool_t
Definition: External.C:53
THnSparse * fParticlesPhysPrim
all tracks
Bool_t fDoSeparateTRDrefit
Separate tracks into tracks with TRD refit and 4 tracklets (gold) or not (sub-gold) ...
Container for MC-true particles within the EMCAL framework.
THnSparse * fParticlesMatched
all physical primary particles