1 #ifndef ALIANALYSISTASKJETSPECTRUM_H
2 #define ALIANALYSISTASKJETSPECTRUM_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 // **************************************
8 // Task used for the correction of determiantion of reconstructed jet spectra
9 // Compares input (gen) and output (rec) jets
10 // *******************************************
12 #include "AliAnalysisTaskSE.h"
13 #include "THnSparse.h" // cannot forward declare ThnSparseF
20 class AliGenPythiaEventHeader;
30 class AliAnalysisTaskJetSpectrum : public AliAnalysisTaskSE
33 AliAnalysisTaskJetSpectrum();
34 AliAnalysisTaskJetSpectrum(const char* name);
35 virtual ~AliAnalysisTaskJetSpectrum() {;}
36 // Implementation of interface methods
37 virtual void UserCreateOutputObjects();
39 virtual void LocalInit() { Init(); }
40 virtual void UserExec(Option_t *option);
41 virtual void Terminate(Option_t *option);
42 virtual Bool_t Notify();
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;}
49 virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;}
50 virtual void SetAnalysisType(Int_t i){fAnalysisType = i;}
51 virtual void SetBranchGen(const char* c){fBranchGen = c;}
52 virtual void SetBranchRec(const char* c){fBranchRec = c;}
59 enum {kMaxCorrelation = 3};
63 AliAnalysisTaskJetSpectrum(const AliAnalysisTaskJetSpectrum&);
64 AliAnalysisTaskJetSpectrum& operator=(const AliAnalysisTaskJetSpectrum&);
66 static const Float_t fgkJetNpartCut[kMaxCorrelation]; // n Part cut
69 AliJetHeader *fJetHeaderRec; // store jet header for rec
70 AliJetHeader *fJetHeaderGen; // store jet header for rec
71 AliAODEvent *fAOD; // where we take the jets from can be input or output AOD
73 TString fBranchRec; // AOD branch name for reconstructed
74 TString fBranchGen; // AOD brnach for genereated
76 Bool_t fUseAODInput; // use AOD input
77 Bool_t fUseExternalWeightOnly; // use only external weight
78 Bool_t fLimitGenJetEta; // Limit the eta of the generated jets
79 Int_t fAnalysisType; // Analysis type
80 Float_t fExternalWeight; // external weight
81 Float_t fRecEtaWindow; // eta window used for corraltion plots between rec and gen
83 TProfile* fh1Xsec; // pythia cross section and trials
84 TH1F* fh1Trials; // trials are added
85 TH1F* fh1PtHard; // Pt har of the event...
86 TH1F* fh1PtHardNoW; // Pt har of the event...
87 TH1F* fh1PtHardTrials; // Number of trials
88 TH1F* fh1NGenJets; // Number of gen jets
89 TH1F* fh1NRecJets; // Number of rev jets
90 TH1F* fh1E[kMaxJets]; // Jet Energy
91 TH1F* fh1PtRecIn[kMaxJets]; // Jet pt for all
92 TH1F* fh1PtRecOut[kMaxJets]; // Jet pt with corellated generated jet
93 TH1F* fh1PtGenIn[kMaxJets]; // Detection efficiency for given p_T.gen
94 TH1F* fh1PtGenOut[kMaxJets]; // gen pT of found jets
96 TH2F* fh2PtFGen[kMaxJets]; // correlation betwen genreated and found jet pT
97 TH2F* fh2PhiFGen[kMaxJets]; // correlation betwen genreated and found jet phi
98 TH2F* fh2EtaFGen[kMaxJets]; // correlation betwen genreated and found jet eta
99 TH2F* fh2Frag[kMaxJets]; // fragmentation function
100 TH2F* fh2FragLn[kMaxJets]; // fragmetation in xi
101 TH2F* fh2PtGenDeltaPhi[kMaxJets]; // difference between generated and found jet phi
102 TH2F* fh2PtGenDeltaEta[kMaxJets]; // difference between generated and found jet eta
103 TH2F* fh2PtRecDeltaR[kMaxJets]; // distance of rec jet i to j > i p_T,j
104 TH2F* fh2PtGenDeltaR[kMaxJets]; // distance of jet i to j > i vs p_T,j
106 TH3F* fh3PtRecGenHard[kMaxJets]; // correlation beetwen pt hard, rec and gen
107 TH3F* fh3PtRecGenHardNoW[kMaxJets]; // correlation beetwen pt hard, rec and gen no weight
108 TH3F* fh3RecEtaPhiPt[kMaxJets]; // correlation between eta phi and rec pt
109 TH3F* fh3RecEtaPhiPtNoGen[kMaxJets]; // correlation between eta phi and rec pt of jets without a partner
110 TH3F* fh3GenEtaPhiPtNoFound[kMaxJets]; // correlation between eta phi and gen pt of jets without a partner
111 TH3F* fh3GenEtaPhiPt[kMaxJets]; // correlation between eta phi and gen pt of jets without a partner
112 // ========= Multiplicity dependence ======
114 // ==========TODO , flavaor dependence ========
115 // ============================================
118 // ============= TODO , phi dependence ========
119 // ============================================
121 TList *fHistList; // Output list
123 ///////// For 2 dimensional unfolding //////////////////
124 TH1F* fh1JetMultiplicity; // JetMultiplicity
125 TH2F* fh2ERecZRec; // rec e and z
126 TH2F* fh2EGenZGen; // gen e and z
127 TH2F* fh2Efficiency; // 2 dimensional efficiency
128 TH3F* fh3EGenERecN; // correlation rec energy, gen energy N particles
129 THnSparseF* fhnCorrelation[kMaxCorrelation]; // 4d Correllation for unfolding
130 ///////////////////////////////////////////////////////
133 ClassDef(AliAnalysisTaskJetSpectrum, 2) // Analysis task for standard jet analysis