]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGGA/EMCALTasks/AliAnalysisTaskEMCALMesonGGSDMpPb.h
SHUTTLE module
[u/mrichter/AliRoot.git] / PWGGA / EMCALTasks / AliAnalysisTaskEMCALMesonGGSDMpPb.h
CommitLineData
3a66195e 1#ifndef ALIANALYSISTASKEMCALMesonGGSDMPPB_H
2#define ALIANALYSISTASKEMCALMesonGGSDMPPB_H
3
4class TF1;
5class TH1F;
6class TH2F;
7class TH3F;
8class TH1D;
9class TH2D;
10class TH3D;
11class TNtuple;
12class TList;
13class AliESDEvent;
14class AliAODEvent;
15class AliESDtrackCuts;
16class AliESDCaloCluster;
17class AliAODCaloCluster;
18class AliMCEvent;
19class AliMCParticle;
20class AliEMCALGeometry;
21
22#ifndef ALIANALYSISTASKSE_H
23#include "AliAnalysisTaskSE.h"
24#endif
25#include "AliAnalysisUtils.h"
26
27class 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