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 //////////////////////////////////////////////////////////////////////////////
24 #include "AliAnalysisTaskSE.h"
25 //#include "AliAnalysisFilter.h"
26 //#include "AliMCEvent.h"
28 //#include "AliPhJTrackList.h"
29 //#include "AliPhJMCTrackList.h"
30 //#include "AliPhJPhotonList.h"
31 //#include "AliPhJHeaderList.h"
33 //#include "AliJRunHeader.h"
36 //==============================================================
40 const int kMaxDimBuffer = 300;//max length of a line read to a buffe
53 class AliPHOSGeoUtils;
54 class AliEMCALGeoUtils;
55 class AliESDtrackCuts;
59 class AliAnalysisFilter;
60 class AliPhJHeaderList;
61 class AliPhJPhotonList;
62 class AliPhJMCTrackList;
63 class AliPhJTrackList;
67 class AliJCORRANTask : public AliAnalysisTaskSE {
71 AliJCORRANTask(const char *name, TString inputformat);
72 AliJCORRANTask(const AliJCORRANTask& ap);
73 AliJCORRANTask& operator = (const AliJCORRANTask& ap);
74 virtual ~AliJCORRANTask();
76 // methods to fill from AliAnalysisTaskSE
77 virtual void UserCreateOutputObjects();
79 virtual void LocalInit() { Init(); }
80 virtual void UserExec(Option_t *option);
81 virtual void Terminate(Option_t * opt = "");
83 void SetESDtrackCuts(AliESDtrackCuts* esdTrackCuts){ fEsdTrackCuts = esdTrackCuts;}
84 void SetDownScalingOfMB(Int_t downSc){ fDownscaling = downSc;}
85 void SetLeadingPaticleMomCut(Double_t lowLPmom){ fLowerCutOnLPMom = lowLPmom;}
86 void SetLowerCutOnCaloClusterE(Double_t lowE){ fLowerCutOnCaloClusterE=lowE;}
87 void SetLowerCutOnLeadingCaloClusterE(Double_t lowCaloE){fLowerCutOnLeadingCaloClusterE=lowCaloE;}
88 void SetRealOrMC(Bool_t realormc){fIsRealOrMC=realormc;} //flags whether the input
89 //are ESDs from real exp or MonteCarlo
90 void SetOutputAODName(const char* aodname){ fAODName=aodname;}
92 AliEMCALGeoUtils* GetEMCALGeoUtils (bool doDelete=kFALSE);
95 // methods to read data from ESD
96 void ReadESDTracks(const AliESDEvent* esd);
97 void ReadESDCaloClusters(const AliESDEvent* esd);
98 void ReadESDHeader(const AliESDEvent* esd);
99 // methods to read data from AOD
100 void ReadAODTracks(const AliAODEvent* aod);
101 void ReadAODCaloClusters(const AliAODEvent* aod);
102 void ReadAODHeader(const AliAODEvent* aod);
104 void ReadMCTracks(AliMCEvent* fMC);
105 Int_t GetSuperModuleNumber(bool isemcal, Int_t absId);
109 UInt_t ConvertTriggerMask();//Converts alice trigger mask to JCorran trigger mask
110 //functions used for event selction:
111 bool StoreDownscaledMinBiasEvent();
112 bool ContainsESDHighPtTrack();
113 bool ContainsESDHighECaloClusters();
114 bool AcceptAODTrack(AliAODTrack* aodTrack);
116 // d a t a m e m b e r s
117 TString fInputFormat; // specify the input data format (ESD or AOD)
119 AliESDtrackCuts* fEsdTrackCuts; //track selection cuts
121 Int_t fDownscaling; //downscaling of usual MB events
123 Double_t fLowerCutOnLPMom; // store all events where there is a particle with pT above this threshold
125 Double_t fLowerCutOnLeadingCaloClusterE;// store all events where there is a EMCAL clustre with E above this threshold
126 Double_t fLowerCutOnCaloClusterE;//store only clusters above this energy
128 Bool_t fIsRealOrMC; //flags if the input are real (0) ESDs or MonteCarlo ESDs (1)
130 TString fAODName; //output delta AOD name
132 TString fActiveTriggers[kRangeTriggerTableAlice];//alice table mapping trigger bit to trigger name
134 TString fTriggerTableJCorran[kRangeTriggerTableJCorran];//JCorran trigger table TBit 0 =MinBias
136 TFormula *f1CutMaxDCAToVertexXYPtDep; // pt-dep track-to-vertex cut in max absolute distance in xy-plane
138 // jcorran output objects
139 AliPhJTrackList* fTrackList; // list of charged track objects
140 AliPhJMCTrackList* fMCTrackList; // list of charged track objects
141 AliPhJPhotonList* fPhotonList; // list of photons objects
142 AliPhJHeaderList* fHeaderList; // event details
143 AliJRunHeader* fAliRunHeader;// run details (mg field, trigger mask,etc...)
145 AliPHOSGeoUtils * fPHOSGeom; //phos geometry matrix
147 ClassDef(AliJCORRANTask, 2);
149 #endif // AliJCORRANTask_H