f3050824 |
1 | #ifndef ALIANALYSISTASKJETSPECTRUM_H |
2 | #define ALIANALYSISTASKJETSPECTRUM_H |
3 | |
4 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * |
5 | * See cxx source for full Copyright notice */ |
77bbf113 |
6 | |
7 | // ************************************** |
8 | // Task used for the correction of determiantion of reconstructed jet spectra |
9 | // Compares input (gen) and output (rec) jets |
10 | // ******************************************* |
11 | |
f3050824 |
12 | #include "AliAnalysisTaskSE.h" |
77bbf113 |
13 | #include "THnSparse.h" // cannot forward declare ThnSparseF |
14 | |
df65bddb |
15 | //////////////// |
f3050824 |
16 | class AliJetHeader; |
17 | class AliESDEvent; |
18 | class AliAODEvent; |
19 | class AliAODJet; |
20 | class AliGenPythiaEventHeader; |
21 | |
22 | class TList; |
23 | class TChain; |
24 | class TH2F; |
25 | class TH3F; |
4dbfdecc |
26 | class TProfile; |
27 | |
f3050824 |
28 | |
77bbf113 |
29 | |
f3050824 |
30 | class AliAnalysisTaskJetSpectrum : public AliAnalysisTaskSE |
31 | { |
32 | public: |
33 | AliAnalysisTaskJetSpectrum(); |
34 | AliAnalysisTaskJetSpectrum(const char* name); |
35 | virtual ~AliAnalysisTaskJetSpectrum() {;} |
36 | // Implementation of interface methods |
37 | virtual void UserCreateOutputObjects(); |
38 | virtual void Init(); |
39 | virtual void LocalInit() { Init(); } |
40 | virtual void UserExec(Option_t *option); |
41 | virtual void Terminate(Option_t *option); |
4dbfdecc |
42 | virtual Bool_t Notify(); |
43 | |
f3050824 |
44 | |
45 | virtual void SetExternalWeight(Float_t f){fExternalWeight = f;} |
46 | virtual void SetUseExternalWeightOnly(Bool_t b){fUseExternalWeightOnly = b;} |
47 | virtual void SetAODInput(Bool_t b){fUseAODInput = b;} |
48 | virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;} |
d40dc1ba |
49 | virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;} |
f3050824 |
50 | virtual void SetAnalysisType(Int_t i){fAnalysisType = i;} |
77bbf113 |
51 | virtual void SetBranchGen(const char* c){fBranchGen = c;} |
52 | virtual void SetBranchRec(const char* c){fBranchRec = c;} |
f3050824 |
53 | |
54 | // Helper |
77bbf113 |
55 | static void GetClosestJets(AliAODJet *genJets,const Int_t &nGenJets, |
56 | AliAODJet *recJets,const Int_t &nRecJets, |
f3050824 |
57 | Int_t *iGenIndex,Int_t *iRecIndex,Int_t iDebug = 0); |
58 | |
59 | // |
60 | |
61 | enum {kAnaMC = 0x1}; |
d40dc1ba |
62 | enum {kMaxJets = 4}; |
df65bddb |
63 | enum {kMaxCorrelation = 3}; |
f3050824 |
64 | |
65 | private: |
66 | |
67 | AliAnalysisTaskJetSpectrum(const AliAnalysisTaskJetSpectrum&); |
68 | AliAnalysisTaskJetSpectrum& operator=(const AliAnalysisTaskJetSpectrum&); |
69 | |
df65bddb |
70 | static const Float_t fgkJetNpartCut[kMaxCorrelation]; |
f3050824 |
71 | |
f3050824 |
72 | |
73 | AliJetHeader *fJetHeaderRec; |
74 | AliJetHeader *fJetHeaderGen; |
75 | AliAODEvent *fAOD; // where we take the jets from can be input or output AOD |
76 | |
77 | TString fBranchRec; // AOD branch name for reconstructed |
78 | TString fConfigRec; // Name of the Config file |
79 | TString fBranchGen; // AOD brnach for genereated |
80 | TString fConfigGen; // Name of the Config file (if any) |
81 | |
d40dc1ba |
82 | Bool_t fUseAODInput; // use AOD input |
83 | Bool_t fUseExternalWeightOnly; // use only external weight |
84 | Bool_t fLimitGenJetEta; // Limit the eta of the generated jets |
85 | Int_t fAnalysisType; // Analysis type |
86 | Float_t fExternalWeight; // external weight |
87 | Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen |
f3050824 |
88 | |
4dbfdecc |
89 | TProfile* fh1Xsec; // pythia cross section and trials |
90 | TH1F* fh1Trials; // trials are added |
f3050824 |
91 | TH1F* fh1PtHard; // Pt har of the event... |
77bbf113 |
92 | TH1F* fh1PtHardNoW; // Pt har of the event... |
93 | TH1F* fh1PtHardTrials; // Number of trials |
f3050824 |
94 | TH1F* fh1NGenJets; |
95 | TH1F* fh1NRecJets; |
96 | TH1F* fh1E[kMaxJets]; // Jet Energy |
97 | TH1F* fh1PtRecIn[kMaxJets]; // Jet pt for all |
98 | TH1F* fh1PtRecOut[kMaxJets]; // Jet pt with corellated generated jet |
99 | TH1F* fh1PtGenIn[kMaxJets]; // Detection efficiency for given p_T.gen |
77bbf113 |
100 | TH1F* fh1PtGenOut[kMaxJets]; // gen pT of found jets |
f3050824 |
101 | |
77bbf113 |
102 | TH2F* fh2PtFGen[kMaxJets]; // correlation betwen genreated and found jet pT |
103 | TH2F* fh2PhiFGen[kMaxJets]; // correlation betwen genreated and found jet phi |
104 | TH2F* fh2EtaFGen[kMaxJets]; // correlation betwen genreated and found jet eta |
f3050824 |
105 | TH2F* fh2Frag[kMaxJets]; // fragmentation function |
77bbf113 |
106 | TH2F* fh2FragLn[kMaxJets]; // fragmetation in xi |
107 | TH2F* fh2PtGenDeltaPhi[kMaxJets]; // difference between generated and found jet phi |
108 | TH2F* fh2PtGenDeltaEta[kMaxJets]; // difference between generated and found jet eta |
d40dc1ba |
109 | TH2F* fh2PtRecDeltaR[kMaxJets]; // distance of rec jet i to j > i p_T,j |
110 | TH2F* fh2PtGenDeltaR[kMaxJets]; // distance of jet i to j > i vs p_T,j |
77bbf113 |
111 | |
112 | TH3F* fh3PtRecGenHard[kMaxJets]; // correlation beetwen pt hard, rec and gen |
113 | TH3F* fh3PtRecGenHardNoW[kMaxJets]; // correlation beetwen pt hard, rec and gen no weight |
114 | TH3F* fh3RecEtaPhiPt[kMaxJets]; // correlation between eta phi and rec pt |
115 | TH3F* fh3RecEtaPhiPtNoGen[kMaxJets]; // correlation between eta phi and rec pt of jets without a partner |
116 | TH3F* fh3GenEtaPhiPtNoFound[kMaxJets]; // correlation between eta phi and gen pt of jets without a partner |
117 | TH3F* fh3GenEtaPhiPt[kMaxJets]; // correlation between eta phi and gen pt of jets without a partner |
f3050824 |
118 | // ========= Multiplicity dependence ====== |
119 | |
120 | // ==========TODO , flavaor dependence ======== |
121 | // ============================================ |
122 | |
123 | |
124 | // ============= TODO , phi dependence ======== |
125 | // ============================================ |
126 | |
127 | TList *fHistList; // Output list |
df65bddb |
128 | |
129 | ///////// For 2 dimensional unfolding ////////////////// |
77bbf113 |
130 | TH1F* fh1JetMultiplicity; // JetMultiplicity |
131 | TH2F* fh2ERecZRec; // rec e and z |
132 | TH2F* fh2EGenZGen; // gen e and z |
133 | TH2F* fh2Efficiency; // 2 dimensional efficiency |
134 | TH3F* fh3EGenERecN; // correlation rec energy, gen energy N particles |
135 | THnSparseF* fhnCorrelation[kMaxCorrelation]; // 4d Correllation for unfolding |
df65bddb |
136 | /////////////////////////////////////////////////////// |
f3050824 |
137 | |
138 | |
139 | ClassDef(AliAnalysisTaskJetSpectrum, 1) // Analysis task for standard jet analysis |
140 | }; |
141 | |
142 | #endif |