]>
Commit | Line | Data |
---|---|---|
3a9d4bcf | 1 | #ifndef ALIANALYSISTASKCORRECTIONSUE_H |
2 | #define ALIANALYSISTASKCORRECTIONSUE_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 | // | |
9 | // Analysis class to Correct Underlying Event studies | |
10 | // | |
3712ba26 | 11 | // This class needs as input ESDs.\r |
12 | // The output is an analysis-specific container.\r | |
3a9d4bcf | 13 | // |
3712ba26 | 14 | // The class is used to get the contamination from secondaries\r |
15 | // from tracks DCA distribution \r | |
16 | // as function of track pT and pseudo-rapidity.\r | |
17 | // It provides additional information for the corrections \r | |
18 | // that can not be retrieved by the AliAnalysisTaskLeadingTackUE\r | |
19 | // task, which is running on AODs.\r | |
3a9d4bcf | 20 | // |
3a9d4bcf | 21 | //////////////////////////////////////////////////////////////////////// |
22 | ||
23 | #include "AliAnalysisTask.h" | |
24 | ||
3712ba26 | 25 | class AliAnalyseLeadingTrackUE;\r |
26 | class AliESDtrackCuts;\r | |
3a9d4bcf | 27 | class AliInputEventHandler; |
28 | class AliAODEvent; | |
3712ba26 | 29 | class AliCFContainer;\r |
3a9d4bcf | 30 | class AliESDEvent; |
3712ba26 | 31 | class AliESDtrack;\r |
3a9d4bcf | 32 | class AliAODInputHandler; |
3712ba26 | 33 | class AliESDInputHandler;\r |
3a9d4bcf | 34 | class AliMCEventHandler; |
35 | class AliMCEvent; | |
36 | class TH1F; | |
37 | class TH2F; | |
3712ba26 | 38 | class TH3F;\r |
3a9d4bcf | 39 | class TH1I; |
40 | class TProfile; | |
41 | class TTree; | |
42 | class TVector3; | |
43 | ||
44 | class AliAnalysisTaskCorrectionsUE : public AliAnalysisTask | |
45 | { | |
46 | public: | |
3712ba26 | 47 | // track cuts steps\r |
48 | enum CFSteps {\r | |
49 | kCFStepAll = 0,\r | |
50 | kCFStepCuts = 1, // standard ITS+TPC 2009 cuts w.o. DCA cut and SPD cluster requirement\r | |
51 | kCFStepSPD = 2, // add SPD cluster requirement\r | |
52 | kCFStepDCA = 3 // add pT dependent DCA cut\r | |
53 | };\r | |
3a9d4bcf | 54 | |
55 | AliAnalysisTaskCorrectionsUE(const char* name="AliAnalysisTaskCorrectionsUE"); | |
56 | virtual ~AliAnalysisTaskCorrectionsUE() {if ( fListOfHistos ) delete fListOfHistos; } | |
57 | AliAnalysisTaskCorrectionsUE(const AliAnalysisTaskCorrectionsUE &det); | |
58 | AliAnalysisTaskCorrectionsUE& operator=(const AliAnalysisTaskCorrectionsUE &det); | |
59 | ||
60 | // return instance of the singleton | |
61 | static AliAnalysisTaskCorrectionsUE* Instance(); | |
62 | ||
63 | // Implementation of interace methods | |
64 | virtual Bool_t Notify(); | |
65 | virtual void ConnectInputData(Option_t *); | |
66 | virtual void CreateOutputObjects(); | |
67 | virtual void Exec(Option_t *option); | |
68 | virtual void Terminate(Option_t *); | |
69 | ||
70 | // Setters/Getters | |
3712ba26 | 71 | virtual void SetDebugLevel( Int_t level ) { fDebug = level; }\r |
72 | virtual void SetMode(Int_t mode) { fMode = mode; }\r | |
3a9d4bcf | 73 | |
74 | //Event QA | |
3712ba26 | 75 | void SetZVertex( Double_t val ) { fZVertex = val; }\r |
3a9d4bcf | 76 | void SetTracksInVertex( Int_t val ){ fnTracksVertex = val; } |
3a9d4bcf | 77 | |
3712ba26 | 78 | // Track selection cuts\r |
79 | void SetTrackEtaCut( Double_t val ) { fTrackEtaCut = val; }\r | |
80 | void SetTrackPtCut( Double_t val ) { fTrackPtCut = val; }\r | |
3a9d4bcf | 81 | |
82 | protected: | |
3712ba26 | 83 | static AliAnalysisTaskCorrectionsUE* fgTaskCorrectionsUE; // Pointer to single instance\r |
3a9d4bcf | 84 | private: |
3712ba26 | 85 | void AddSettingsTree(); // add list of settings to output list\r |
86 | // Analysis methods\r | |
87 | void AnalyseCorrectionMode(); // main algorithm to get correction maps\r | |
88 | void CreateContainer(); // create the output CF container\r | |
89 | void FillContainer(AliESDtrack *track, Int_t step,Bool_t mcvertex, Double_t matchLeading); // fill container \r | |
90 | AliAnalyseLeadingTrackUE* fAnalyseUE; //! points to AliAnalyseLeadingTrackUE class\r | |
91 | Int_t fDebug; // Debug flag\r | |
92 | AliESDEvent* fESDEvent; //! ESD Event\r | |
93 | AliESDInputHandler* fESDHandler; //! ESD Input Handler\r | |
94 | AliInputEventHandler* fInputHandler; // Input event handler\r | |
95 | TList* fListOfHistos; // Output list of histograms\r | |
96 | AliMCEvent* fMcEvent; // pointer to MC event\r | |
97 | AliMCEventHandler* fMcHandler; // pointer to MC handler\r | |
98 | Int_t fMode; // fMode = 0: data-like analysis \r | |
99 | // fMode = 1: corrections analysis \r | |
100 | AliCFContainer* fOutCFcont; // output CF container \r | |
101 | TH1F* fhEntries; // count events \r | |
102 | TH1F* fhFakes; // counts the amount of fake tracks \r | |
103 | TH1F* fhPtMCAll; // pT distribution of all accepted MC tracks \r | |
104 | TH1F* fhPtMCPrim; // pT distribution MC primaries\r | |
105 | TH1F* fhPtMCSec; // pT distribution MC secondaries\r | |
106 | TH1F* fhPtMCPrimFake; // pT distribution MC fake primaries\r | |
107 | TH1F* fhPtMCSecFake; // pT distribution MC fake secondaries\r | |
108 | \r | |
109 | // Cuts Events QA\r | |
3a9d4bcf | 110 | Int_t fnTracksVertex; // QA tracks pointing to principal vertex (= 3 default) |
111 | Double_t fZVertex; // Position of Vertex in Z direction | |
3712ba26 | 112 | TH1F* fhVertexContributors; // Plot number of contributors in vertex \r |
113 | TH3F* fhVertexReso; // vertex resolution in XY and Z vs. number of contributors\r | |
114 | // Track cuts\r | |
115 | Double_t fTrackEtaCut; // Eta cut on tracks in the regions (fRegionType=1)\r | |
116 | Double_t fTrackPtCut; // Pt cut of tracks in the regions\r | |
117 | AliESDtrackCuts* fEsdTrackCuts; // ITS+TPC 2009 cuts (no SPD requirement, no DCA cut) \r | |
118 | AliESDtrackCuts* fEsdTrackCutsSPD; // Require 1 cluser in SPD\r | |
119 | AliESDtrackCuts* fEsdTrackCutsSDD; // Require 1 cluser in 1st layer SDD\r | |
120 | AliESDtrackCuts* fEsdTrackCutsDCA; // Add pT dependent DCA cut\r | |
121 | ClassDef( AliAnalysisTaskCorrectionsUE, 5); // Analysis task to correct Underlying Event analysis\r | |
3a9d4bcf | 122 | }; |
123 | ||
124 | #endif | |
125 | ||
126 |