1 #ifndef ALIANALYSISTASKJETBACKGROUNDSUBTRACT_H
2 #define ALIANALYSISTASKJETBACKGROUNDSUBTRACT_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 background subtration of all jets found with clustering algos
9 // *******************************************
11 #include "AliAnalysisTaskSE.h"
12 #include "TObjString.h"
20 class AliAODExtension;
22 class AliAODJetEventBackground;
34 class AliAnalysisTaskJetBackgroundSubtract : public AliAnalysisTaskSE
37 AliAnalysisTaskJetBackgroundSubtract();
38 AliAnalysisTaskJetBackgroundSubtract(const char* name);
39 virtual ~AliAnalysisTaskJetBackgroundSubtract();
40 // Implementation of interface methods
41 virtual void UserCreateOutputObjects();
43 virtual void LocalInit() { Init(); }
44 virtual void UserExec(Option_t *option);
45 virtual void Terminate(Option_t *option);
46 virtual Bool_t Notify();
48 // Task specific methods...
49 virtual void AddJetBranch(const char* c);
50 virtual void SetSubtractionMethod(Int_t i){fSubtraction = i;}
51 virtual Int_t GetSubtractionMethod(){return fSubtraction;}
52 virtual void SetKeepJets(Bool_t b = kTRUE){fKeepJets = b;}
53 virtual void SetBackgroundBranch(char* c){fBackgroundBranch = c;}
54 virtual void SetNonStdOutputFile(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;}
58 const char* GetReplacementMask(){return fReplaceString2.Data();}
60 enum {kNoSubtract = 0,kArea,k4Area,kRhoRecalc,kRhoRC};
66 AliAnalysisTaskJetBackgroundSubtract(const AliAnalysisTaskJetBackgroundSubtract&);
67 AliAnalysisTaskJetBackgroundSubtract& operator=(const AliAnalysisTaskJetBackgroundSubtract&);
68 Bool_t RescaleJetMomentum(AliAODJet *jet,Float_t pT);
69 Bool_t RescaleJet4vector(AliAODJet *jet,TLorentzVector backgroundv);
70 Int_t MultFromJetRefs(TClonesArray* jets);
71 Double_t RecalcRho(TClonesArray* fbkgclusters,Double_t meanarea);
72 Double_t RhoRC(TClonesArray* fbkgclustersRC);
74 void PrintAODContents();
76 AliAODEvent *fAODOut; // ! where we take the jets from and they are modified
77 AliAODEvent *fAODIn; // ! where we may take the background from, only in case we do not find it in the output
78 AliAODExtension *fAODExtension; // ! where we take the jets from can be input or output AOD
79 TObjArray *fJBArray; // Array that stores the name of all jet branches to be subtracted
80 TString fBackgroundBranch; // name of the branch used for background subtraction
82 TString fNonStdFile; // The optional name of the output file the non-std brnach is written to
83 TString fReplaceString1; // To construct the new output name
84 TString fReplaceString2; // To construct the new output name
85 Int_t fSubtraction; // Parameter for subtraction mode
86 Bool_t fKeepJets; // keeps the jets with negative p_t rescaled to 0.1 GeV
87 TList *fInJetArrayList; //! transient list to make ease the handling of input jets
88 TList *fOutJetArrayList; //! transient list to make ease the reset of output jets
90 TH2F* fh2CentvsRho; //! centrality vs background density
91 TH2F* fh2CentvsSigma; //! centrality vs background sigma
92 TH2F* fh2MultvsRho; //! centrality vs background density
93 TH2F* fh2MultvsSigma; //! centrality vs background sigma
94 TH2F* fh2ShiftEta; //! extended correction Eta
95 TH2F* fh2ShiftPhi; //! extended correction Phi
96 TH2F* fh2ShiftEtaLeading; //! extended correction Eta leading jet
97 TH2F* fh2ShiftPhiLeading; //! extended correction Phi leading jet
100 TList *fHistList; //! the histograms output list
102 ClassDef(AliAnalysisTaskJetBackgroundSubtract, 7)