]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG4/JetTasks/AliAnalysisTaskJFSystematics.h
New analysis devoted to shower shape studies
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskJFSystematics.h
1 #ifndef ALIANALYSISTASKJFSYSTEMATICS_H
2 #define ALIANALYSISTASKJFSYSTEMATICS_H
3  
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 // **************************************
8 // Task used for the correction of determiantion of reconstructed jet spectra
9 // Compares input (gen) and output (rec) jets   
10 // *******************************************
11
12 #include "AliAnalysisTaskSE.h"
13 #include  "THnSparse.h" // cannot forward declare ThnSparseF
14
15 ////////////////
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;
26 class TProfile;
27
28
29
30 class AliAnalysisTaskJFSystematics : public AliAnalysisTaskSE
31 {
32  public:
33     AliAnalysisTaskJFSystematics();
34     AliAnalysisTaskJFSystematics(const char* name);
35     virtual ~AliAnalysisTaskJFSystematics() {;}
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);
42     virtual Bool_t Notify();
43
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;}
49     virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;}
50     virtual void SetAnalysisType(UInt_t i){fAnalysisType = i;}
51     virtual void SetBranchGen(const char* c){fBranchGen = c;}
52     virtual void SetBranchRec(const char* c){fBranchRec = c;}
53
54     // ========= TODO Multiplicity dependence ======
55     // ========= TODO z-dependence? ======
56     // ========= TODO flavor dependence ========                           
57     // ============================================                       
58     enum {kSysJetOrder = 1, kSysTypes};
59  
60     enum {kMaxJets =  6}; // limit to 6 jets...
61
62  private:
63
64     AliAnalysisTaskJFSystematics(const AliAnalysisTaskJFSystematics&);
65     AliAnalysisTaskJFSystematics& operator=(const AliAnalysisTaskJFSystematics&);
66
67
68     static const Int_t fgkSysBins[kSysTypes];
69     static const char* fgkSysName[kSysTypes];
70
71     AliJetHeader *fJetHeaderRec;
72     AliJetHeader *fJetHeaderGen;
73     AliAODEvent  *fAOD; // where we take the jets from can be input or output AOD
74
75     TString       fBranchRec;  // AOD branch name for reconstructed
76     TString       fBranchGen;  // AOD brnach for genereated
77
78     Bool_t        fUseAODInput;           // use AOD input
79     Bool_t        fUseExternalWeightOnly; // use only external weight
80     Bool_t        fLimitGenJetEta;        // Limit the eta of the generated jets
81     UInt_t        fAnalysisType;          // Analysis type 
82     Float_t       fExternalWeight;        // external weight
83     Float_t       fRecEtaWindow;          // eta window used for corraltion plots between rec and gen 
84     Float_t       fAvgTrials;             // average number of trials from pyxsec.root or pysec_hists.root in case trials are not avaiable from the MC Header
85     // Event histograms
86     TProfile*     fh1Xsec;    // pythia cross section and trials
87     TH1F*         fh1Trials;  // trials are added
88     TH1F*         fh1PtHard;  // Pt har of the even
89     TH1F*         fh1PtHardNoW;  // Pt hard of the event without trials
90     TH1F*         fh1PtHardTrials;  // Number of trials 
91     TH1F*         fh1NGenJets;      // number of generated jets
92     TH1F*         fh1NRecJets;      // number of reconstructed jets
93
94     TH1F*         fh1PtRecIn;       // Jet pt for all      
95     TH1F*         fh1PtRecOut;      // Jet pt with corellated generated jet    
96     TH1F*         fh1PtGenIn;       // Detection efficiency for given p_T.gen
97     TH1F*         fh1PtGenOut;      // gen pT of found jets
98
99     TH2F*         fh2PtFGen;           // correlation betwen genreated and found  jet pT
100     TH2F*         fh2PhiFGen;          // correlation betwen genreated and found  jet phi
101     TH2F*         fh2EtaFGen;          // correlation betwen genreated and found  jet eta
102     TH2F*         fh2PtGenDeltaPhi;   // difference between generated and found  jet phi
103     TH2F*         fh2PtGenDeltaEta;   // difference between generated and found  jet eta
104
105
106     TH3F*         fh3RecInEtaPhiPt;         // correlation between eta phi and rec pt                           
107     TH3F*         fh3RecOutEtaPhiPt;        // correlation between eta phi and rec pt of jets with a partner   
108     TH3F*         fh3GenInEtaPhiPt;         // correlation between eta phi and gen pt 
109     TH3F*         fh3GenOutEtaPhiPt;        // correlation between eta phi and gen pt of jets with a partner       
110
111     THnSparseF*     fhnCorrelation;          // correlation can be used for unfolding
112                                      
113   
114     TList *fHistList; // Output list
115     
116
117     ClassDef(AliAnalysisTaskJFSystematics, 2) // Analysis task for standard jet analysis
118 };
119  
120 #endif