]> git.uio.no Git - u/mrichter/AliRoot.git/blob - JETAN/AliAnalysisTaskJetBackgroundSubtract.h
Remove the factor p/pt from the decaylengthXY calculation (Andrea)
[u/mrichter/AliRoot.git] / JETAN / AliAnalysisTaskJetBackgroundSubtract.h
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 ////////////////
18 class AliJetHeader;
19 class AliESDEvent;
20 class AliAODEvent;
21 class AliAODExtension;
22 class AliAODJet;
23 class AliAODJetEventBackground;
24 class AliJetFinder;
25 class TList;
26 class TChain;
27 class TH2F;
28 class TH1F;
29 class TH3F;
30 class TProfile;
31 class TRandom3;
32 class TRefArray;
33
34
35 class 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   SetKeepJets(Bool_t b = kTRUE){fKeepJets = b;}
54     virtual void   SetBackgroundBranch(char* c){fBackgroundBranch = c;}  
55     virtual void   SetNonStdOutputFile(char* c){fNonStdFile = c;}  
56     virtual void   SetToReplace(char* c){fReplaceString1 = c;}  
57     const char*    GetToReplace(){return fReplaceString1.Data();}  
58     virtual void   SetReplacementMask(char* c){fReplaceString2 = c;}  
59     const char*    GetReplacementMask(){return fReplaceString2.Data();}  
60    
61     enum {kNoSubtract = 0,kArea,k4Area,kRhoRecalc,kRhoRC};
62  
63  private:
64
65     
66
67     AliAnalysisTaskJetBackgroundSubtract(const AliAnalysisTaskJetBackgroundSubtract&);
68     AliAnalysisTaskJetBackgroundSubtract& operator=(const AliAnalysisTaskJetBackgroundSubtract&);
69     Bool_t RescaleJetMomentum(AliAODJet *jet,Float_t pT);
70     Bool_t RescaleJet4vector(AliAODJet *jet,TLorentzVector backgroundv);
71     Int_t  MultFromJetRefs(TClonesArray* jets);
72     Double_t RecalcRho(TClonesArray* fbkgclusters,Double_t meanarea);
73     Double_t RhoRC(TClonesArray* fbkgclustersRC);
74     void ResetOutJets();
75     void PrintAODContents();
76
77     AliAODEvent     *fAODOut;                // ! where we take the jets from and they are modified
78     AliAODEvent     *fAODIn;                 // ! where we may take the background from, only in case we do not find it in the output
79     AliAODExtension *fAODExtension;          // ! where we take the jets from can be input or output AOD
80     TObjArray       *fJBArray;               // Array that stores the name of all jet branches to be subtracted   
81     TString         fBackgroundBranch;       // name of the branch used for background subtraction
82     //
83     TString         fNonStdFile;        // The optional name of the output file the non-std brnach is written to
84     TString         fReplaceString1;     // To construct the new output name  
85     TString         fReplaceString2;     // To construct the new output name   
86     Int_t           fSubtraction;       // Parameter for subtraction mode 
87     Bool_t          fKeepJets;          // keeps the jets with negative p_t rescaled to 0.1 GeV
88     TList *fInJetArrayList; //! transient list to make ease the handling of input jets
89     TList *fOutJetArrayList; //! transient list to make ease the reset of output jets
90
91     TH2F*         fh2CentvsRho;   //! centrality vs background density  
92     TH2F*         fh2CentvsSigma;   //! centrality vs background sigma  
93     TH2F*         fh2MultvsRho;   //! centrality vs background density  
94     TH2F*         fh2MultvsSigma;   //! centrality vs background sigma  
95     TH2F*         fh2ShiftEta;   //! extended correction Eta
96     TH2F*         fh2ShiftPhi;   //! extended correction Phi
97     TH2F*         fh2ShiftEtaLeading;   //! extended correction Eta leading jet
98     TH2F*         fh2ShiftPhiLeading;   //! extended correction Phi leading jet
99
100  
101     TList *fHistList; //! the histograms output list
102    
103     ClassDef(AliAnalysisTaskJetBackgroundSubtract, 6) 
104 };
105  
106 #endif