fixing coding violations
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskFragmentationFunction.h
1 #ifndef ALIANALYSISTASKFRAGMENTATIONFUNCTION_H
2 #define ALIANALYSISTASKFRAGMENTATIONFUNCTION_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 for fragmentation
9 // 
10
11 #include "AliAnalysisTaskSE.h"
12
13 class AliJetHeader;
14 class AliAODJet;
15 class TProfile;
16 class TH1F;
17
18 class AliAnalysisTaskFragmentationFunction : public AliAnalysisTaskSE
19 {
20  public:
21     AliAnalysisTaskFragmentationFunction();
22     AliAnalysisTaskFragmentationFunction(const char* name);
23     virtual ~AliAnalysisTaskFragmentationFunction() {;}
24     // Implementation of interface methods
25     virtual Bool_t Notify();
26     virtual void UserCreateOutputObjects();
27     virtual void Init();
28     virtual void LocalInit() {Init();}
29     virtual void UserExec(Option_t *option);
30     virtual void Terminate(Option_t *option);
31
32     virtual void SetAODInput(Bool_t b){fUseAODInput = b;}
33     virtual void SetLimitGenJetEta(Bool_t b){fLimitGenJetEta = b;}
34     virtual void SetRecEtaWindow(Float_t f){fRecEtaWindow = f;}
35     virtual void SetAnalysisType(Int_t i){fAnalysisType = i;}
36     virtual void SetBranchGen(const char* c){fBranchGen = c;}
37     virtual void SetBranchRec(const char* c){fBranchRec = c;}
38     virtual void SetFilterMask(UInt_t i){fFilterMask = i;}
39
40     virtual void FillMonoJetH(Int_t goodBin, AliAODJet* jet, TClonesArray* Tracks);
41     virtual void DefineJetH();
42
43 //    virtual void DeleteHists();
44     virtual void SetProperties(TH1* h,const char* x, const char* y);
45
46     // Helper
47     //
48
49     // we have different cases
50     // AOD reading -> MC from AOD
51     // ESD reading -> MC from Kinematics
52     // this has to match with our selection of input events
53     enum {kTrackUndef = 0, kTrackAOD, kTrackKineAll,kTrackKineCharged, kTrackAODMCAll, kTrackAODMCCharged, kTrackAODMCChargedAcceptance};
54     enum {kAnaMC =  0x1, kAnaMCESD = 0x2};
55     enum {kMaxJets = 4};
56     enum {kMaxCorrelation =  3};
57     
58     // 
59     // 0 all jets
60     // 1 all jet in eta window
61     // 2 all jets with partner
62     // 3 all jets in eta window with partner
63     // 4 all jets with partner in eta window
64     enum {kStep0 = 0, kStep1, kStep2, kStep3, kStep4,kMaxStep};
65
66
67  private:
68   AliAnalysisTaskFragmentationFunction(const AliAnalysisTaskFragmentationFunction &det);
69   AliAnalysisTaskFragmentationFunction &operator=(const AliAnalysisTaskFragmentationFunction &det);
70   
71  
72  private:
73   AliJetHeader *fJetHeaderRec;
74   AliJetHeader *fJetHeaderGen;
75   AliAODEvent  *fAOD; // wherewe take the jets from can be input or output AOD
76   //  THnSparseF   *fhnJetContainer[kMaxStep*2];   // like particle container in corrfw with different steps need AliCFContainer with Scale(), and clone() to do the same
77   //  THnSparseF   *fhnCorrelation;           // response matrix for unfolding 
78  
79   TString       fBranchRec;  // AOD branch name for reconstructed
80   TString       fBranchGen;  // AOD brnach for genereated
81
82   Bool_t        fUseAODInput;           // use AOD input
83   Bool_t        fUseAODJetInput;        // use AOD input
84   Bool_t        fUseAODTrackInput;      // take track from input AOD not from ouptu AOD
85   Bool_t        fUseAODMCInput;         // take MC from input AOD not from ouptu AOD
86   Bool_t        fUseGlobalSelection;    // Limit the eta of the generated jets
87   Bool_t        fUseExternalWeightOnly; // use only external weight
88   Bool_t        fLimitGenJetEta;        // Limit the eta of the generated jets
89   UInt_t        fFilterMask;            // filter bit for slecected tracks
90   Int_t         fAnalysisType;          // Analysis type 
91   Int_t         fTrackTypeRec;          // type of tracks used for FF 
92   Int_t         fTrackTypeGen;          // type of tracks used for FF 
93   Float_t       fAvgTrials;             // Average nimber of trials
94   Float_t       fExternalWeight;        // external weight
95   Float_t       fRecEtaWindow;          // eta window used for corraltion plots between rec and gen 
96
97   Double_t      fR;                     // tmp
98   Double_t      fdRdNdxi;               // tmp
99   Double_t      fPartPtCut;             // tmp
100   Double_t      fEfactor;               // tmp
101   Int_t         fNff;                   // tmp
102   Int_t         fNim;                   // tmp
103   TList*        fList;                  // tmp
104
105   Int_t         fGlobVar;               // tmp
106  
107   Bool_t        fCDFCut;                // tmp
108
109   // INTERVALS
110   Int_t     fnEBin;       // Number of energy bins
111   Double_t  fEmin; // tmp
112   Double_t  fEmax; // tmp
113   Int_t     fnEInterval; // tmp
114
115   Int_t     fnRBin;       // Number of radius bins
116   Double_t  fRmin; // tmp
117   Double_t  fRmax; // tmp
118   Int_t     fnRInterval; // tmp
119  
120   // HISTOGRAMS LIMITS
121   Int_t     fnEtaHBin; // tmp
122   Double_t  fEtaHBinMin; // tmp
123   Double_t  fEtaHBinMax; // tmp
124  
125   Int_t     fnPhiHBin; // tmp
126   Double_t  fPhiHBinMin; // tmp
127   Double_t  fPhiHBinMax; // tmp 
128
129   Int_t     fnPtHBin; // tmp
130   Double_t  fPtHBinMin; // tmp
131   Double_t  fPtHBinMax; // tmp
132
133   Int_t     fnEHBin; // tmp
134   Double_t  fEHBinMin; // tmp
135   Double_t  fEHBinMax; // tmp 
136
137   Int_t     fnXiHBin; // tmp
138   Double_t  fXiHBinMax; // tmp
139   Double_t  fXiHBinMin; // tmp
140
141   Int_t     fnPthadHBin; // tmp
142   Double_t  fPthadHBinMin; // tmp
143   Double_t  fPthadHBinMax; // tmp
144
145   Int_t     fnZHBin; // tmp
146   Double_t  fZHBinMin; // tmp
147   Double_t  fZHBinMax; // tmp
148
149   Int_t     fnThetaHBin; // tmp 
150   Double_t  fThetaHBinMax; // tmp
151
152   Int_t     fnCosThetaHBin; // tmp
153   Double_t  fcosThetaHBinMin; // tmp
154   Double_t  fcosThetaHBinMax; // tmp
155
156   Int_t     fnkTHBin; // tmp
157   Double_t  fkTHBinMin; // tmp
158   Double_t  fkTHBinMax; // tmp
159
160   Int_t     fnRHBin; // tmp
161   Double_t  fRHBinMin; // tmp
162   Double_t  fRHBinMax; // tmp
163
164   Int_t fnPtTrigBin; // tmp
165
166   //HISTOGRAMS
167   TH1F**        fEtaMonoJet1H; // tmp
168   TH1F**        fPhiMonoJet1H; // tmp 
169   TH1F**        fPtMonoJet1H; // tmp
170   TH1F**        fEMonoJet1H; // tmp
171
172   TH1F***        fdNdXiMonoJet1H; // tmp
173   TH1F***        fdNdPtMonoJet1H; // tmp
174   TH1F***        fdNdZMonoJet1H; // tmp
175   TH1F***        fdNdThetaMonoJet1H; // tmp
176   TH1F***        fdNdcosThetaMonoJet1H; // tmp
177   TH1F***        fdNdkTMonoJet1H; // tmp
178   TH1F***        fdNdpTvsZMonoJet1H; // tmp
179   TH1F***        fShapeMonoJet1H; // tmp
180   TH1F***        fNMonoJet1sH; // tmp
181
182   TH2F***        fThetaPtPartMonoJet1H; // tmp
183   TH2F***        fcosThetaPtPartMonoJet1H; // tmp
184   TH2F***        fkTPtPartMonoJet1H; // tmp
185   TH2F***        fThetaPtJetMonoJet1H; // tmp
186   TH2F***        fcosThetaPtJetMonoJet1H; // tmp
187   TH2F***        fkTPtJetMonoJet1H; // tmp
188   TH2F***        fpTPtJetMonoJet1H; // tmp
189
190   //ARRAYS
191   Double_t*        farrayEmin; //! tmp
192   Double_t*        farrayEmax; //! tmp
193   Double_t*        farrayRadii; //!  tmp
194   Double_t*        farrayPtTrigmin; //! tmp
195   Double_t*        farrayPtTrigmax; //! tmp
196
197   // TRACK CONTROL PLOTS
198   TH1F* fptAllTracks; //! tmp
199   TH1F* fetaAllTracks; //! tmp
200   TH1F* fphiAllTracks; //! tmp
201   TH2F* fetaphiptAllTracks; //! tmp
202   TH2F* fetaphiAllTracks; //! tmp
203   TH1F* fptAllTracksCut; //! tmp
204   TH1F* fetaAllTracksCut; //! tmp 
205   TH1F* fphiAllTracksCut; //! tmp
206   TH2F* fetaphiptAllTracksCut; //! tmp
207   TH2F* fetaphiAllTracksCut; //! tmp
208
209   TH1F** fptTracks; //! tmp
210   TH1F** fetaTracks; //! tmp
211   TH1F** fphiTracks; //!  tmp
212   TH1F** fdetaTracks; //! tmp
213   TH1F** fdphiTracks; //! tmp 
214   TH2F** fetaphiptTracks; //! tmp 
215   TH2F** fetaphiTracks; //! tmp
216   TH2F** fdetadphiTracks; //! tmp 
217   TH1F** fptTracksCut; //! tmp
218   TH1F** fetaTracksCut; //! tmp
219   TH1F** fphiTracksCut; //! tmp
220   TH1F** fdetaTracksCut; //! tmp
221   TH1F** fdphiTracksCut; //! tmp
222   TH2F** fetaphiptTracksCut; //! tmp
223   TH2F** fetaphiTracksCut; //! tmp
224   TH2F** fdetadphiTracksCut; //! tmp
225   TH1F** fNPtTrig; // tmp
226   TH1F** fNPtTrigCut; // tmp
227
228   TH2F* fvertexXY; //! tmp
229   TH1F* fvertexZ; //! tmp
230   TH1F* fEvtMult; //! tmp
231   TH2F* fEvtMultvsJetPt; //! tmp
232   TH2F* fPtvsEtaJet; //! tmp
233   TH2F* fNpvsEtaJet; //! tmp
234   TH2F* fNpevtvsEtaJet; //! tmp
235   TH2F* fPtvsPtJet; //! tmp
236   TH2F* fNpvsPtJet; //! tmp
237   TH2F* fNpevtvsPtJet; //! tmp
238   TH1F* fPtvsPtJet1D; //! tmp
239   TH1F* fNpvsPtJet1D; //! tmp
240   TH1F* fNpevtvsPtJet1D; //! tmp
241   TH1F* fptLeadingJet; //! tmp
242   TH1F* fetaLeadingJet; //! tmp
243   TH1F* fphiLeadingJet; //! // 
244   TH1F* fptJet; //! // tmp
245   TH1F* fetaJet; //! // tmp
246   TH1F* fphiJet; //! // tmp
247
248
249   TList*        fHistList; //! Output list
250
251   Int_t fNBadRuns; //!
252   TH1F* fNBadRunsH; //!
253
254   ClassDef(AliAnalysisTaskFragmentationFunction, 1) // Analysis task for standard jet analysis
255 };
256  
257 #endif