Macro to run over all centrality bins
[u/mrichter/AliRoot.git] / JETAN / AliAnalysisTaskJetBackgroundSubtract.h
CommitLineData
fb10c4b8 1#ifndef ALIANALYSISTASKJETBACKGROUNDSUBTRACT_H
2#define ALIANALYSISTASKJETBACKGROUNDSUBTRACT_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 background subtration of all jets found with clustering algos
9// *******************************************
10
11#include "AliAnalysisTaskSE.h"
12#include "TObjString.h"
13#include "TString.h"
14#include "TObjArray.h"
15
16
17////////////////
18class AliJetHeader;
19class AliESDEvent;
20class AliAODEvent;
21class AliAODExtension;
22class AliAODJet;
23class AliAODJetEventBackground;
24class AliJetFinder;
25class TList;
26class TChain;
27class TH2F;
28class TH1F;
29class TH3F;
30class TProfile;
31class TRandom3;
32class TRefArray;
33
34
35class AliAnalysisTaskJetBackgroundSubtract : public AliAnalysisTaskSE
36{
37 public:
38 AliAnalysisTaskJetBackgroundSubtract();
39 AliAnalysisTaskJetBackgroundSubtract(const char* name);
40 virtual ~AliAnalysisTaskJetBackgroundSubtract();
41 // Implementation of interface methods
42 virtual void UserCreateOutputObjects();
43 virtual void Init();
44 virtual void LocalInit() { Init(); }
45 virtual void UserExec(Option_t *option);
46 virtual void Terminate(Option_t *option);
47 virtual Bool_t Notify();
48
49 // Task specific methods...
50 virtual void AddJetBranch(const char* c){fJBArray->Add(new TObjString(c));}
51 virtual void SetSubtractionMethod(Int_t i){fSubtraction = i;}
52 virtual Int_t GetSubtractionMethod(){return fSubtraction;}
53 virtual void SetBackgroundBranch(char* c){fBackgroundBranch = c;}
54 virtual void SetNonStdFile(char* c){fNonStdFile = c;}
55 virtual void SetToReplace(char* c){fReplaceString1 = c;}
56 const char* GetToReplace(){return fReplaceString1.Data();}
57 virtual void SetReplacementMask(char* c){fReplaceString2 = c;}
a18eedbb 58 const char* GetReplacementMask(){return fReplaceString2.Data();}
fb10c4b8 59
a18eedbb 60 enum {kNoSubtract = 0,kArea,k4Area,kRhoRecalc,kRhoRC};
fb10c4b8 61
62 private:
63
64
65
66 AliAnalysisTaskJetBackgroundSubtract(const AliAnalysisTaskJetBackgroundSubtract&);
67 AliAnalysisTaskJetBackgroundSubtract& operator=(const AliAnalysisTaskJetBackgroundSubtract&);
68 Bool_t RescaleJetMomentum(AliAODJet *jet,Float_t pT);
a18eedbb 69 Double_t RecalcRho(TClonesArray* fbkgclusters,Double_t meanarea);
70 Double_t RhoRC(TClonesArray* fbkgclustersRC);
fb10c4b8 71 void ResetOutJets();
1c21a0e7 72 void PrintAODContents();
fb10c4b8 73
74 AliAODEvent *fAODOut; // ! where we take the jets from and they are modified
75 AliAODEvent *fAODIn; // ! where we may take the background from, only in case we do not find it in the output
76 AliAODExtension *fAODExtension; // ! where we take the jets from can be input or output AOD
77 TObjArray *fJBArray; // Array that stores the name of all jet branches to be subtracted
78 TString fBackgroundBranch; // name of the branch used for background subtraction
79 //
80 TString fNonStdFile; // The optional name of the output file the non-std brnach is written to
81 TString fReplaceString1; // To construct the new output name
82 TString fReplaceString2; // To construct the new output name
83 Int_t fSubtraction; // Parameter for subtraction mode
84 TList *fInJetArrayList; //! transient list to make ease the handling of input jets
85 TList *fOutJetArrayList; //! transient list to make ease the reset of output jets
86 TList *fHistList; //! the histograms output list
87
a18eedbb 88 ClassDef(AliAnalysisTaskJetBackgroundSubtract, 3)
fb10c4b8 89};
90
91#endif