]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/EMCALTasks/AliAnalysisTaskEMCALMesonGGSDMpPb.h
fix indentations
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALMesonGGSDMpPb.h
1 #ifndef ALIANALYSISTASKEMCALMesonGGSDMPPB_H
2 #define ALIANALYSISTASKEMCALMesonGGSDMPPB_H
3
4 class TF1;
5 class TH1F;
6 class TH2F;
7 class TH3F;
8 class TH1D;
9 class TH2D;
10 class TH3D;
11 class TNtuple;
12 class TList;
13 class AliESDEvent;
14 class AliAODEvent;
15 class AliESDtrackCuts;
16 class AliESDCaloCluster;
17 class AliAODCaloCluster;
18 class AliMCEvent;
19 class AliMCParticle;
20 class AliEMCALGeometry;
21
22 #ifndef ALIANALYSISTASKSE_H
23 #include "AliAnalysisTaskSE.h"
24 #endif
25 #include "AliAnalysisUtils.h"
26
27 class AliAnalysisTaskEMCALMesonGGSDMpPb : public AliAnalysisTaskSE {
28  public:
29   AliAnalysisTaskEMCALMesonGGSDMpPb();
30   AliAnalysisTaskEMCALMesonGGSDMpPb(const char *name);
31   virtual ~AliAnalysisTaskEMCALMesonGGSDMpPb();
32     
33   virtual void     UserCreateOutputObjects();
34   virtual void     UserExec(Option_t *option);
35   virtual void     Terminate(Option_t *);
36     
37   void         SetMcMode(Bool_t b)                 { fMcMode       = b;             }
38   void         SetRecalScheme(Int_t kRecalibrator) { fRecalibrator = kRecalibrator; }
39   void         SetdRmin_ClustTrack(Double_t kdRmin_ClustTrack)    { fdRmin_ClustTrack = kdRmin_ClustTrack; }
40   void         SetFidPhiMinMax(Double_t kPhimin, Double_t kPhimax){ fPhimin = kPhimin; fPhimax = kPhimax; }
41   void         SetFidEtaMinMax(Double_t kEtamin, Double_t kEtamax){ fEtamin = kEtamin; fEtamax = kEtamax; }
42   
43  private:
44   static const int zvtx_bins = 16;
45   static const int mult_bins = 25;
46   static const unsigned int poolDepth = 25;
47   static const int cent_bins = 4;
48   
49   Int_t GetMultBin(Int_t mult);
50   Int_t GetZvtxBin(Double_t vertZ);
51   Int_t isGoodEsdCluster(AliESDCaloCluster* esdclust);
52   Int_t isGoodAodCluster(AliAODCaloCluster* aodclust);
53   Double_t getDeltaPhi(TLorentzVector p1, TLorentzVector p2);
54   Double_t getDeltaEta(TLorentzVector p1, TLorentzVector p2);
55   Double_t PrivateEnergyRecal(Double_t energy, Int_t iCalib);
56   Double_t GetMaxCellEnergy(const AliVCluster *cluster, Short_t &id) const;
57   Int_t IsPhysPrimJ(AliMCEvent *mcEvent, Int_t iTrack);
58   Int_t IsLongLivedOrK(Int_t MyPDGcode);
59   
60   TList           *fOutput;        //! Output list
61   Bool_t           fMcMode;                 // monte carlo mode
62   Int_t            fRecalibrator;           // custom recalibrator? 
63   Double_t         fdRmin_ClustTrack; // Cuts. 
64   Double_t         fPhimin;           // Cuts. 
65   Double_t         fPhimax;           // Cuts. 
66   Double_t         fEtamin;           // Cuts. 
67   Double_t         fEtamax;           // Cuts. 
68   AliESDtrackCuts *fTrackCuts;     //! Track cuts
69   AliESDEvent     *fEsdEv;                  //!pointer to input esd event
70   AliAODEvent     *fAodEv;                  //!pointer to input aod event
71   TH1F           * h1_nClusters[cent_bins];  //! # of clusters/evt
72   TH1F            *h1_zvtx;  //! vertex distribution
73   TH1F            *h1_trigger;  //! # of clusters/evt
74   TH1F            *h1_centrality;  //! # of clusters/evt
75   TH1F           * h1_M[cent_bins];        //! Mass spectrum
76   TH1F           * h1_M_mix[cent_bins];    //! Mass spectrum
77   TH1F           * h1_E[cent_bins];        //! energy spectrum
78   TH2F            *h2_PhiEtaCluster;        //!  phi vs eta for the cluster CoG
79   TH2F            *h2_PhiEtaClusterCut;     //!  phi vs eta for the cluster CoG w/ cuts
80   TH2F            *h2_PhiEtaMaxCell;        //!  phi vs eta for the maximum cell
81   TH2F            *h2_PhiEtaMaxCellCut;     //!  phi vs eta for the maximum cell w/ cuts
82   TH1F           * h1_dR_ClustTrk[cent_bins];        //! Track Matching
83   TH2F            *h2_gE_RecTruth; //! gamma E, rec/truth, first bin is primaries, second is non-primaries
84   TH2F            *h2_eop_E;        //!  e over p vs E. simple
85   TH2F            *h2_eop_pT;        //!  e over p vs pT. simple
86   TH2F            *h2_E_time;        //!  cluster energy vs time.
87
88   TH1F           * h1_Pi0TruthPt[cent_bins];        //! Pt spectrum from MC! 
89   TH1F           * h1_PriPi0TruthPt[cent_bins];        //! Pt spectrum from MC! 
90   TH1F           * h1_Pi0TruthPtEmcal[cent_bins];        //! Pt spectrum from MC! 
91   TH1F           * h1_PriPi0TruthPtEmcal[cent_bins];        //! Pt spectrum from MC! 
92   TH1F           * h1_Pi0TruthPtPhi2piEta065[cent_bins];        //! Pt spectrum from MC! 
93   TH1F           * h1_Pi0TruthPtPhi2piEta1[cent_bins];        //! Pt spectrum from MC!   
94
95   TH2F            *h2_Pi0TruthPhiEta;    //! etaphi spectrum from MC! 
96   TH2F            *h2_PriPi0TruthPhiEta;    //! etaphi spectrum from MC! 
97   TH2F            *h2_Pi0TruthPhiEtaEmcal;    //! etaphi spectrum from MC! 
98   TH2F            *h2_PriPi0TruthPhiEtaEmcal;    //! etaphi spectrum from MC! 
99   TH2F            *h2_Pi0TruthPhiEta_Phi2piEta065;        //! Pt spectrum from MC! 
100   TH2F            *h2_Pi0TruthPhiEta_Phi2piEta1;        //! Pt spectrum from MC!   
101
102   TH1F           * h1_TruthPhotonsEmcal[cent_bins];        //! Pt spectrum from MC! 
103   TH2F            *h2_TruthPhotonsPhiEta;        //! Pt spectrum from MC! 
104   TH1F           * h1_PhotonsEmcal[cent_bins];        //! Pt spectrum from MC! 
105   TH1F           * h1_PhotonsNCellsCut[cent_bins];        //! Pt spectrum from MC! 
106   TH1F           * h1_PhotonsTrackMatchCut[cent_bins];        //! Pt spectrum from MC! 
107   TH1F           * h1_PhotonsAllCut[cent_bins];        //! Pt spectrum from MC! 
108   TH2F            *h2_PhotonsPhiEtaIsEmcal;        //! Pt spectrum from MC! 
109
110   TH1F           * h1_dR_RealMC[cent_bins];        //! Pt spectrum from MC! 
111
112   TH1F           * h1_Chi2[cent_bins];       //! pseudorapidity spectrum
113   TH1F           * h1_nTrkMatch[cent_bins];       //! pseudorapidity spectrum
114   TH1F           * h1_nCells[cent_bins];       //! pseudorapidity spectrum
115   TH1F           * h1_ClusterDisp[cent_bins];       //! cluster dispersion
116   TH2F           * h2_Ellipse[cent_bins];       //! ellipse axis?
117   TH2F           * h2_EtaPt[cent_bins];       //! 2d histogram Y - pseudorap spectrum
118   TH3F           * h3_MptAsymm[cent_bins];       //!  3dimensional E vs mom
119   TH3F           * h3_MptAsymm_mix[cent_bins];       //!  3dimensional E vs mom
120   TH2F           * h2_dphi_deta[cent_bins];       //! 2dimensional E vs mom
121   TH2F           * h2_dphi_deta_mix[cent_bins];       //! 2dimensional E vs mom
122   TH2F           * h2_DispRes[cent_bins];       //! 2dimensional E vs mom
123   TH2F           * h2_cells_M02[cent_bins];       //! 
124
125   std::vector<TLorentzVector> Photons[poolDepth][zvtx_bins][mult_bins];
126   std::vector<Int_t> TriggerList;
127  
128   AliAnalysisUtils*   fHelperClass;           //! Vertex selection helper
129
130   AliAnalysisTaskEMCALMesonGGSDMpPb(const AliAnalysisTaskEMCALMesonGGSDMpPb&); // not implemented
131   AliAnalysisTaskEMCALMesonGGSDMpPb& operator=(const AliAnalysisTaskEMCALMesonGGSDMpPb&); // not implemented
132     
133   ClassDef(AliAnalysisTaskEMCALMesonGGSDMpPb, 1); // example of analysis
134 };
135 #endif