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