]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG4/JetTasks/AliAnalysisTaskCorrectionsUE.h
Rewritten spectrum2 task, old running is optional, various minor updates to AddTask...
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliAnalysisTaskCorrectionsUE.h
CommitLineData
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 25class AliAnalyseLeadingTrackUE;\r
26class AliESDtrackCuts;\r
3a9d4bcf 27class AliInputEventHandler;
28class AliAODEvent;
3712ba26 29class AliCFContainer;\r
3a9d4bcf 30class AliESDEvent;
3712ba26 31class AliESDtrack;\r
3a9d4bcf 32class AliAODInputHandler;
3712ba26 33class AliESDInputHandler;\r
3a9d4bcf 34class AliMCEventHandler;
35class AliMCEvent;
36class TH1F;
37class TH2F;
3712ba26 38class TH3F;\r
3a9d4bcf 39class TH1I;
40class TProfile;
41class TTree;
42class TVector3;
43
44class 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