AliPhysics  8d00e07 (8d00e07)
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 
35 
37 
38  protected:
40  void ExecOnce();
41  void GenerateHistoBins() ;
45  void FillDetectorLevelTHnSparse(Double_t cent, Double_t trackEta, Double_t trackPhi, Double_t trackPt,
46  Double_t sigma1OverPt, Int_t mcGen, Byte_t trackType);
47  void FillGeneratorLevelTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt, Int_t mcGen, Byte_t findable);
48  void FillMatchedParticlesTHnSparse(Double_t cent, Double_t partEta, Double_t partPhi, Double_t partPt,
49  Double_t trackEta, Double_t trackPhi, Double_t trackPt, Byte_t trackType);
50 #if !(defined(__CINT__) || defined(__MAKECINT__))
51  THnSparse* GenerateTHnSparse(const char* name, const std::vector<std::tuple<std::string, std::vector<Double_t>::iterator, std::vector<Double_t>::iterator>>& axis);
52 #endif
53 
54  // Task configuration
57 
58  // Service fields (non-streamed)
62  std::vector<Double_t> fPtHistBins ;
63  std::vector<Double_t> fEtaHistBins ;
64  std::vector<Double_t> fPhiHistBins ;
65  std::vector<Double_t> fCentHistBins ;
66  std::vector<Double_t> fPtRelDiffHistBins ;
67  std::vector<Double_t> fPtResHistBins ;
68  std::vector<Double_t> f1OverPtResHistBins ;
69  std::vector<Double_t> fIntegerHistBins ;
70 
71  // Histograms
72  THnSparse* fTracks ;
73  THnSparse* fParticlesPhysPrim ;
74  THnSparse* fParticlesMatched ;
75 
76  private:
77  AliEmcalTrackingQATask(const AliEmcalTrackingQATask&); // not implemented
78  AliEmcalTrackingQATask &operator=(const AliEmcalTrackingQATask&); // not implemented
79 
80  ClassDef(AliEmcalTrackingQATask, 4) // Track QA task (efficiency and pt resolution)
81 };
82 #endif
std::vector< Double_t > fEtaHistBins
! eta bins
double Double_t
Definition: External.C:58
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
std::vector< Double_t > fPtRelDiffHistBins
! pt relative difference bins
static AliEmcalTrackingQATask * AddTaskTrackingQA(Bool_t isMC)
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
Container for MC-true particles within the EMCAL framework.
THnSparse * fParticlesMatched
all physical primary particles