]>
Commit | Line | Data |
---|---|---|
3a66195e | 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 |