1 #ifndef AliAnalysisTaskEMCALPi0PbPb_h
2 #define AliAnalysisTaskEMCALPi0PbPb_h
12 class AliAODCaloCells;
13 class AliAODCaloCluster;
15 class AliEMCALGeoUtils;
16 class AliESDCaloCells;
17 class AliESDCaloCluster;
20 #include "AliAnalysisTaskSE.h"
22 class AliAnalysisTaskEMCALPi0PbPb : public AliAnalysisTaskSE {
24 AliAnalysisTaskEMCALPi0PbPb(const char *name=0);
25 virtual ~AliAnalysisTaskEMCALPi0PbPb();
27 void UserCreateOutputObjects();
28 void UserExec(Option_t *option);
29 void Terminate(Option_t *);
31 void SetAsymMax(Double_t asymMax) { fAsymMax = asymMax; }
32 void SetCentrality(const char *name) { fCentVar = name; }
33 void SetCentralityRange(Double_t from, Double_t to) { fCentFrom=from; fCentTo=to; }
34 void SetClusName(const char *name) { fClusName = name; }
35 void SetDoAfterburner(Bool_t b) { fDoAfterburner = b; }
36 void SetFillNtuple(Bool_t b) { fDoNtuple = b; }
37 void SetGeoName(const char *n) { fGeoName = n; }
38 void SetMinClusEnergy(Double_t e) { fMinE = e; }
39 void SetMinEcc(Double_t ecc) { fMinEcc = ecc; }
40 void SetMinErat(Double_t erat) { fMinErat = erat; }
41 void SetNminCells(Int_t n) { fNminCells = n; }
42 void SetUseQualFlag(Bool_t b) { fUseQualFlag = b; }
43 void SetVertexRange(Double_t z1, Double_t z2) { fVtxZMin=z1; fVtxZMax=z2; }
46 virtual void ClusterAfterburner();
47 virtual void FillCellHists();
48 virtual void FillClusHists();
49 virtual void FillPionHists();
50 virtual void FillOtherHists();
51 Double_t GetMaxCellEnergy(AliVCluster *c);
52 Int_t GetNCells(AliVCluster *c, Double_t emin=0.);
53 void GetSigma(AliVCluster *c, Double_t &sigmaMax, Double_t &sigmaMin);
56 TString fCentVar; // variable for centrality determination
57 Double_t fCentFrom; // min centrality (def=0)
58 Double_t fCentTo; // max centrality (def=100)
59 Double_t fVtxZMin; // min primary vertex z (def=-10cm)
60 Double_t fVtxZMax; // max primary vertex z (def=+10cm)
61 Bool_t fUseQualFlag; // if true use quality flag for centrality
62 TString fClusName; // cluster branch name (def="")
63 Bool_t fDoNtuple; // if true write out ntuple
64 Bool_t fDoAfterburner; // if true run after burner
65 Double_t fAsymMax; // maximum energy asymmetry (def=1)
66 Int_t fNminCells; // minimum number of cells attached to cluster (def=1)
67 Double_t fMinE; // minimum cluster energy (def=0.1)
68 Double_t fMinErat; // minimum emax/ec ratio (def=0)
69 Double_t fMinEcc; // minimum eccentricity (def=0)
70 TString fGeoName; // geometry name (def = EMCAL_FIRSTYEARV1)
71 // derived members (ie with ! after //)
72 ULong64_t fNEvs; //!accepted events
73 AliEMCALGeoUtils *fGeom; //!geometry utils
74 TList *fOutput; //!container of output histograms
75 AliESDEvent *fEsdEv; //!pointer to input esd event
76 AliAODEvent *fAodEv; //!pointer to input aod event
77 TObjArray *fRecPoints; //!pointer to rec points (AliAnalysisTaskEMCALClusterizeFast)
78 TObjArray *fEsdClusters; //!pointer to esd clusters
79 AliESDCaloCells *fEsdCells; //!pointer to esd cells
80 TObjArray *fAodClusters; //!pointer to aod clusters
81 AliAODCaloCells *fAodCells; //!pointer to aod cells
82 TAxis *fPtRanges; //!pointer to pt ranges
83 TNtuple *fNtuple; //!pointer to ntuple
85 TH1F *fHCuts; //!histo for cuts
86 TH1F *fHVertexZ; //!histo for vtxz
87 TH1F *fHVertexZ2; //!histo for vtxz after vtx cuts
88 TH1F *fHCent; //!histo for cent
89 TH1F *fHCentQual; //!histo for cent after quality flag cut
90 // histograms for cells
91 TH2F **fHColuRow; //!histo for cell column and row
92 TH2F **fHColuRowE; //!histo for cell column and row weight energy
93 TH1F **fHCellMult; //!histo for cell multiplicity in module
94 TH1F *fHCellE; //!histo for cell energy
95 TH1F *fHCellH; //!histo for highest cell energy
96 TH1F *fHCellM; //!histo for mean cell energy (normalized to hit cells)
97 TH1F *fHCellM2; //!histo for mean cell energy (normalized to all cells)
98 // histograms for clusters
99 TH1F *fHClustEccentricity; //!histo for cluster eccentricity
100 TH2F *fHClustEtaPhi; //!histo for cluster eta vs. phi
101 TH2F *fHClustEnergyPt; //!histo for cluster energy vs. pT
102 TH2F *fHClustEnergySigma; //!histo for cluster energy vs. variance over long axis
103 TH2F *fHClustSigmaSigma; //!histo for sigma vs. lambda_0 comparison
104 TH2F *fHClustNCellEnergyRatio; //!histo for cluster n tow vs. energy ratio
105 // histograms for pion candidates
106 TH2F *fHPionEtaPhi; //!histo for pion eta vs. phi
107 TH2F *fHPionMggPt; //!histo for pion mass vs. pT
108 TH2F *fHPionMggAsym; //!histo for pion mass vs. asym
109 TH2F *fHPionMggDgg; //!histo for pion mass vs. opening angle
110 TH1F *fHPionInvMasses[21]; //!histos for invariant mass plots
113 AliAnalysisTaskEMCALPi0PbPb(const AliAnalysisTaskEMCALPi0PbPb&); // not implemented
114 AliAnalysisTaskEMCALPi0PbPb &operator=(const AliAnalysisTaskEMCALPi0PbPb&); // not implemented
116 ClassDef(AliAnalysisTaskEMCALPi0PbPb, 2); // Analysis task for neutral pions in Pb+Pb