]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - PWGJE/AliPWG4HighPtSpectra.h
Include L0 trigger in the trigger maker and the trigger patch object Add monitoring...
[u/mrichter/AliRoot.git] / PWGJE / AliPWG4HighPtSpectra.h
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16//-----------------------------------------------------------------------
17// Author : Marta Verweij, D. Keijdener - UU
18//-----------------------------------------------------------------------
19
20#ifndef ALIPWG4HIGHPTSPECTRA_H
21#define ALIPWG4HIGHPTSPECTRA_H
22
23#include "AliAnalysisTask.h"
24#include "AliCFManager.h"
25
26class TH1I;
27class TH1F;
28class TH1D;
29class TH2F;
30class TProfile;
31class TFile;
32class TList;
33
34//class AliCFManager;
35class AliESDtrackCuts;
36class AliESDEvent;
37class AliAODEvent;
38class AliVEvent;
39class AliVVertex;
40class AliMCEvent;
41class AliStack;
42class AliGenPythiaEventHeader;
43class AliGenHijingEventHeader;
44
45class AliPWG4HighPtSpectra : public AliAnalysisTask {
46 public:
47
48 enum {
49 kStepReconstructed = 0,
50 kStepSecondaries = 1,
51 kStepReconstructedMC = 2,
52 kStepMCAcceptance = 3
53 };
54
55 AliPWG4HighPtSpectra();
56 AliPWG4HighPtSpectra(const Char_t* name);
57 // AliPWG4HighPtSpectra& operator= (const AliPWG4HighPtSpectra& c);
58 // AliPWG4HighPtSpectra(const AliPWG4HighPtSpectra& c);
59 ~AliPWG4HighPtSpectra() {;};
60
61 // ANALYSIS FRAMEWORK STUFF to loop on data and fill output objects
62 virtual void LocalInit();
63 virtual void ConnectInputData(Option_t *);
64 virtual void CreateOutputObjects();
65 virtual void Exec(Option_t *option);
66 virtual void Terminate(Option_t *);
67 virtual Bool_t Notify(); //Copied from AliAnalysisTaskJetSpectrum2
68
69 Bool_t IsPbPb() {return fIsPbPb;} //is PbPb data?
70 Bool_t SelectEvent(); //decides if event is used for analysis
71 Int_t CalculateCentrality(AliVEvent *event);
72
73 //Setters
74 void SetIsPbPb(Bool_t cs) {fIsPbPb = cs;}
75 void SetCentralityClass(int cent) {fCentClass=cent;}
76 void SetTriggerMask(UInt_t t) {fTriggerMask=t;}
77
78 // CORRECTION FRAMEWORK RELATED FUNCTIONS
79 void SetCFManagerPos(const AliCFManager* io1) {fCFManagerPos = io1;} // global correction manager
80 const AliCFManager * GetCFManagerPos() const {return fCFManagerPos;} // get corr manager
81 void SetCFManagerNeg(const AliCFManager* io2) {fCFManagerNeg = io2;} // global correction manager
82 const AliCFManager * GetCFManagerNeg() const {return fCFManagerNeg;} // get corr manager
83
84 //if fTrackType=0 (Global)
85 //if fTrackType=1 (TPConly)
86 //if fTrackType=2 (TPConly constrained)
87 void SetTrackType(Int_t trackType) {fTrackType = trackType;}
88 //AliESDtrackCuts setters
89 void SetCuts(AliESDtrackCuts* trackCuts) {fTrackCuts = trackCuts;} // Needs to be specified for ESD analysis, not for AOD analysis
90 void SetFilterMask(Int_t filtermask) {fFilterMask = filtermask;} // Needs to be specified for AOD analysis, not for ESD analysis
91 void SetCutsReject(AliESDtrackCuts* trackCuts) {fTrackCutsReject = trackCuts;}
92 void SelectHIJINGOnly(Bool_t b) {fbSelectHIJING = b;}
93
94 Bool_t IsHIJINGParticle(Int_t label);
95
96 void SetSigmaConstrainedMax(Double_t sigma) {fSigmaConstrainedMax=sigma;}
97
98 // Data types
99 Bool_t IsReadAODData() const {return fReadAODData;}
100 void SetReadAODData(Bool_t flag=kTRUE) {fReadAODData=flag;}
101
102 Bool_t IsUsingPythiaInfo() const {return fNoPythiaInfo;}
103 void SetNoPythiaInfo() {fNoPythiaInfo=kTRUE;}
104
105 static AliGenPythiaEventHeader* GetPythiaEventHeader(AliMCEvent *mcEvent);
106 static AliGenHijingEventHeader* GetHijingEventHeader(AliMCEvent *mcEvent);
107 static AliGenHijingEventHeader* GetHijingEventHeaderAOD(AliAODEvent *aodEvent);
108
109 static Bool_t PythiaInfoFromFile(const char* currFile,Float_t &fXsec,Float_t &fTrials);// get the cross section and the trails either from pyxsec.root or from pysec_hists.root
110
111
112
113 protected:
114 Bool_t fReadAODData ; // flag for AOD/ESD input files
115 Bool_t fNoPythiaInfo ; // flag to skip reading pyxsec.root and plotting output
116 const AliCFManager *fCFManagerPos ; // pointer to the CF manager for positive charged particles
117 const AliCFManager *fCFManagerNeg ; // pointer to the CF manager for negative charged particles
118
119 AliESDEvent *fESD; //! ESD object
120 AliAODEvent *fAOD; //! AOD object
121 AliMCEvent *fMC; //! MC event object, only used in ESD analysis
122 AliStack *fStack; //! stack object, only used in ESD analysis
123 TClonesArray *fArrayMCAOD; //! TClonesArray of AliAODMCParticles, only used in AOD analysis
124
125 const AliVVertex *fVtx; //! vertex object
126
127 UInt_t fTriggerMask; // Trigger mask to select events
128 Bool_t fIsPbPb; // kTRUE if PbPb
129 Int_t fCentClass; // Select only events from predefined centrality class
130
131 Int_t fTrackType; // Type of track to be used in analysis
132 //AliESDtrackCuts options and FilterMask. The former is must be setted in AddTaskPWG4HighPTSpectra.C for ESD analysis, the latter must be setted in AddTaskPWG4HighPTSpectra.C for AOD analysis. The AliESDtrackCuts correspond with different steps in container.
133 AliESDtrackCuts *fTrackCuts; // trackCuts applied to global tracks
134 AliESDtrackCuts *fTrackCutsReject; // trackCuts to reject tracks (hybrid case)
135 Int_t fFilterMask; // Filtermask specifying track cuts. See https://twiki.cern.ch/twiki/bin/view/ALICE/PWGPPAODTrackCuts for values.
136
137 Bool_t fbSelectHIJING; //Select only particles from HIJING event
138
139 Double_t fSigmaConstrainedMax; // max sigma on constrained fit
140
141 private:
142 AliPWG4HighPtSpectra(const AliPWG4HighPtSpectra&);
143 AliPWG4HighPtSpectra& operator=(const AliPWG4HighPtSpectra&);
144
145 Float_t fAvgTrials; // Average number of trials
146
147 // Histograms
148 //Number of events
149 TList *fHistList; //! List of output histograms
150 TH1F *fNEventAll; //! Event counter
151 TH1F *fNEventSel; //! Event counter: Selected events for analysis
152 TH1F *fNEventReject; //! Book keeping of reason of rejecting events
153
154 TH1F *fh1Centrality; //! Centrality
155
156 TProfile* fh1Xsec; //! pythia cross section and trials
157 TH1F* fh1Trials; //! trials which are added
158 TH1F* fh1PtHard; //! pt hard of the event
159 TH1F* fh1PtHardTrials; //! pt hard of the event
160
161 TH2F *fPtRelUncertainty1PtPrim; //! Pt vs relUncertainty1Pt for primary particles
162 TH2F *fPtRelUncertainty1PtSec; //! Pt vs relUncertainty1Pt for secondary particles
163
164 ClassDef(AliPWG4HighPtSpectra,5);
165};
166
167#endif