1 #ifndef ALIJCORRANTASK_H
2 #define ALIJCORRANTASK_H
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
6 //______________________________________________________________________________
7 // Analysis task for high pt particle correlations
8 // author: R.Diaz, J. Rak, D.J. Kim
9 // ALICE Group University of Jyvaskyla
12 // Fill the analysis containers for ESD or AOD
13 // Note: Adapted for AliAnalysisTaskSE
14 //////////////////////////////////////////////////////////////////////////////
25 #include "AliAnalysisTaskSE.h"
26 //#include "AliAnalysisFilter.h"
27 //#include "AliMCEvent.h"
28 #include "AliJRunHeader.h"
29 #include "AliESDVZERO.h"
30 #include "AliESDTZERO.h"
31 //#include "AliESDFMD.h"
32 #include "AliESDZDC.h"
33 #include "AliJConst.h"
34 #include "AliESDpid.h"
35 #include "AliEMCALGeometry.h"
36 #include "AliPHOSGeoUtils.h"
37 #include "AliPIDResponse.h"
38 #include "AliPIDCombined.h"
40 //==============================================================
44 const int kMaxDimBuffer = 300;//max length of a line read to a buffe
57 class AliESDtrackCuts;
59 class AliESDCentrality;
63 class AliAnalysisFilter;
65 class AliJEventHeader;
69 class AliJCORRANTask : public AliAnalysisTaskSE {
73 AliJCORRANTask(const char *name, TString inputformat);
74 AliJCORRANTask(const AliJCORRANTask& ap);
75 AliJCORRANTask& operator = (const AliJCORRANTask& ap);
76 virtual ~AliJCORRANTask();
78 // methods to fill from AliAnalysisTaskSE
79 virtual void UserCreateOutputObjects();
81 virtual void LocalInit() { Init(); }
82 virtual void UserExec(Option_t *option);
83 virtual void Terminate(Option_t * opt = "");
85 TString GetRunType() const { return fRunType;}
86 void SetRunType( const TString type ){ fRunType = type; }
87 void SetESDtrackCuts(AliESDtrackCuts* esdTrackCuts){ fEsdTrackCuts = esdTrackCuts;}
88 void SetESDFilter( AliAnalysisFilter * filter ){ fESDFilter = filter; }
89 void SetRealOrMC(Bool_t realormc){fIsRealOrMC[0]=realormc;} //flags whether the input
90 void SetStoreEventPlaneSource(bool dostore ){ fStoreEventPlaneSource = dostore; }
91 bool GetStoreEventPlaneSource(){ return fStoreEventPlaneSource; };
92 void SetStoreTPCTrack(bool dostore ){ fStoreTPCTrack = dostore; }
93 bool GetStoreTPCTrack(){ return fStoreTPCTrack; };
94 //are ESDs from real exp or MonteCarlo
95 void SetOutputAODName(const char* aodname){ fAODName=aodname;}
96 // AliEMCALGeoUtils* GetEMCALGeoUtils (bool doDelete=kFALSE);
99 AliJEventHeader* ReadCommonHeader(AliVEvent *event);
100 // methods to read data from ESD
101 void ReadESDTracks(AliESDEvent* esd);
102 void ReadESDCaloClusters(const AliESDEvent* esd);
103 void ReadESDHeader(AliESDEvent* esd);
104 void ReadESDPID(AliESDtrack* track, AliJTrack* ctrack);
105 // methods to read data from AOD
106 void ReadAODTracks(const AliAODEvent* aod);
107 void ReadAODCaloClusters(const AliAODEvent* aod);
108 void ReadAODHeader(AliAODEvent* aod);
110 void ReadMCTracks(AliMCEvent* fMC);
111 Int_t GetSuperModuleNumber(bool isemcal, Int_t absId);
113 UInt_t ConvertTriggerMask();//Converts alice trigger mask to JCorran trigger mask
114 //functions used for event selction:
115 bool AcceptAODTrack(AliAODTrack* aodTrack);
116 void SetOADBPath(const char* path) {fOADBPath=path;}
117 const char* GetOADBPath() const { return fOADBPath.Data(); }
119 // method to fill jcorran
120 bool SetAliceTriggerDef(AliJRunHeader *runHeader);
121 bool SetAliceFilterMapDef(AliJRunHeader *runHeader); //TODO Check
125 void AddListAODBranch(const char* aname, const char* cname, TClonesArray **obj, int nlist);
127 // d a t a m e m b e r s
128 TString fRunType; // ex) LHC10h
129 TString fInputFormat; // specify the input data format (ESD or AOD)
130 AliESDtrackCuts* fEsdTrackCuts; //track selection cuts
131 AliAnalysisFilter * fESDFilter; //filter set of track selection BS
132 TVectorT<double> fIsRealOrMC; //flags if the input are real (0) ESDs or MonteCarlo ESDs (1)
133 TString fAODName; //output delta AOD name
134 TString fActiveTriggers[AliJConst::kRangeTriggerTableAlice];//alice table mapping trigger bit to trigger name
135 TString fTriggerTableJCorran[AliJConst::kRangeTriggerTableJCorran];//JCorran trigger table TBit 0 =MinBias
136 bool fStoreEventPlaneSource;
140 // jcorran output objects
142 TClonesArray * fTrackList; // list of charged track objects
143 TClonesArray * fMCTrackList; // list of charged track objects
144 TClonesArray * fPhotonList; // list of photons objects
145 TClonesArray * fHeaderList; // event details
146 TList * fRunInfoList; // run details
149 AliPIDResponse *fPIDResponse; // PID response object
150 AliPIDCombined *fPIDCombined;
152 AliESDVZERO* fVZEROData;
153 AliESDTZERO* fTZEROData;
154 // AliESDFMD* fFMDData;
157 AliJRunHeader* fAliRunHeader;// run details (mg field, trigger mask,etc...)
158 AliEMCALGeometry * fEMCALGeoUtils; // no AliEMCALGeoUtils.h in trunk aliroot (111130)
159 AliPHOSGeoUtils * fPHOSGeom; //phos geometry matrix
162 ClassDef(AliJCORRANTask, 1);
164 #endif // AliJCORRANTask_H