Fix Coverity
[u/mrichter/AliRoot.git] / PWG4 / CorrelationsDPhi / AliAnalysisTaskLeadingTrackUE.h
CommitLineData
a75aacd6 1#ifndef ALIANALYSISTASKLEADINGTRACKUE_H
2#define ALIANALYSISTASKLEADINGTRACKUE_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 for Underlying Event studies w.r.t. leading track
10//
11// Look for correlations on the tranverse regions w.r.t
12// the leading track in the event
13//
14// This class needs input AODs.
15// The output is a list of analysis-specific containers.
16//
17// The AOD can be either connected to the InputEventHandler
18// for a chain of AOD files
19// or
20// to the OutputEventHandler
21// for a chain of ESD files,
22// in this case the class should be in the train after the jet-finder
23//
24// Authors:
25// Arian Abrahantes Quintana
26// Jan Fiete Grosse-Oetringhaus
27// Ernesto Lopez Torres
28// Sara Vallero
29//
30////////////////////////////////////////////////////////////////////////
31
32#include "AliAnalysisTask.h"
33#include "AliUEHist.h"
34
35class AliAODEvent;
36class AliAnalyseLeadingTrackUE;
37class AliInputEventHandler;
38class AliMCEvent;
39class AliMCEventHandler;
40class AliUEHistograms;
41class AliVParticle;
42class TH1D;
43class TObjArray;
44
45class AliAnalysisTaskLeadingTrackUE : public AliAnalysisTask
46 {
47 public:
48 AliAnalysisTaskLeadingTrackUE(const char* name="AliAnalysisTaskLeadingTrackUE");
b1831bcb 49 virtual ~AliAnalysisTaskLeadingTrackUE();
a75aacd6 50
51
52 // Implementation of interace methods
53 virtual Bool_t Notify();
54 virtual void ConnectInputData(Option_t *);
55 virtual void CreateOutputObjects();
56 virtual void Exec(Option_t *option);
57 virtual void Terminate(Option_t *);
58
144bd037 59 void FillReducedEfficiency(Int_t eventId, AliUEHist::CFStep step,const TObjArray* ltRECO, Bool_t twoStep);
a75aacd6 60
61 // Setters/Getters
62 // general configuration
63 virtual void SetDebugLevel( Int_t level ) { fDebug = level; }
64 virtual void SetMode(Int_t mode) { fMode = mode; }
b1831bcb 65 virtual void SetReduceMemoryFootprint(Bool_t flag) { fReduceMemoryFootprint = flag; }
a75aacd6 66
67 // histogram settings
68 void SetPtRangeInHist( Int_t bin, Double_t min, Double_t max ) {
69 fBinsPtInHist = bin;
70 fMinJetPtInHist = min;
71 fMaxJetPtInHist = max;
72 }
144bd037 73 void SetTrackingEfficiency( const TH1D* hist) { fkTrackingEfficiency = hist; }
a75aacd6 74
75 // for event QA
76 void SetTracksInVertex( Int_t val ){ fnTracksVertex = val; }
77 void SetZVertex( Double_t val ) { fZVertex = val; }
78
79 // track cuts
80 void SetTrackEtaCut(Double_t val) { fTrackEtaCut = val; }
81 void SetLeadingTrackEtaCut( Double_t val ) { fLeadingTrackEtaCut = val; }
82 void SetFilterBit( UInt_t val ) { fFilterBit = val; }
144bd037 83 void SetEventSelectionBit( UInt_t val ) { fSelectBit = val; }
a75aacd6 84 void SetUseChargeHadrons( Bool_t val ) { fUseChargeHadrons = val; }
85
86 protected:
87 static AliAnalysisTaskLeadingTrackUE* fgTaskLeadingTrackUE; // Pointer to single instance
88
89 private:
90 AliAnalysisTaskLeadingTrackUE(const AliAnalysisTaskLeadingTrackUE &det);
91 AliAnalysisTaskLeadingTrackUE& operator=(const AliAnalysisTaskLeadingTrackUE &det);
92 void AddSettingsTree(); // add list of settings to output list
93 // Analysis methods
94 void AnalyseCorrectionMode(); // main algorithm to get correction maps
95 void AnalyseDataMode(); // main algorithm to get raw distributions
96 void Initialize(); // initialize some common pointer
97
98
99
100 // General configuration
101 Int_t fDebug; // Debug flag
102 Int_t fMode; // fMode = 0: data-like analysis
103 // fMode = 1: corrections analysis
b1831bcb 104 Bool_t fReduceMemoryFootprint; // reduce memory consumption by writing less debug histograms
a75aacd6 105
106 // Pointers to external UE classes
107 AliAnalyseLeadingTrackUE* fAnalyseUE; //! points to class containing common analysis algorithms
108 AliUEHistograms* fHistosUE; //! points to class to handle histograms/containers
109
144bd037 110 const TH1D* fkTrackingEfficiency; // used for study of bias by tracking
a75aacd6 111
112 // Handlers and events
113 AliAODEvent* fAOD; //! AOD Event
114 TClonesArray* fArrayMC; //! Array of MC particles
115 AliInputEventHandler* fInputHandler; //! Generic InputEventHandler
116 AliMCEvent* fMcEvent; //! MC event
117 AliMCEventHandler* fMcHandler; //! MCEventHandler
118
119 // Histogram settings
120 TList* fListOfHistos; // Output list of containers
121 Int_t fBinsPtInHist; // # bins for pT histos
122 Double_t fMinJetPtInHist; // min Jet Pt value for histo range
123 Double_t fMaxJetPtInHist; // max Jet Pt value for histo range
124
125
126 // Event QA cuts
127 Int_t fnTracksVertex; // QA tracks pointing to principal vertex (= 3 default)
128 Double_t fZVertex; // Position of Vertex in Z direction
129
130 // Track cuts
131 Double_t fTrackEtaCut; // Eta cut on inclusive tracks
132 Double_t fLeadingTrackEtaCut; // Eta cut on leading track
133 UInt_t fFilterBit; // Select tracks from an specific track cut (default 0xFF all track selected)
144bd037 134 UInt_t fSelectBit; // Select events according to AliAnalysisTaskJetServices bit maps
a75aacd6 135 Bool_t fUseChargeHadrons; // Only use charge hadrons
136
137 // MC cross-section
138 Double_t fAvgTrials; // average trials used to fill the fh1Trials histogram in case we do not have trials on a event by event basis
139
140 ClassDef( AliAnalysisTaskLeadingTrackUE, 1); // Analysis task for Underlying Event analysis w.r.t. leading track
141 };
142
143#endif
144
145