#ifndef AliPHOSCorrelations_cxx
#define AliPHOSCorrelations_cxx
class TClonesArray;
class AliStack ;
class AliESDtrackCuts;
class AliPHOSGeometry;
class AliTriggerAnalysis;
class AliESDEvent ;
class AliPIDResponse;
class AliPHOSCalibData ;
class AliESDCaloCluster ;
class AliESDEvent ;
class AliESDtrack ;
class AliAODTrack ;
class AliVCluster ;
class AliAnalysisUtils;
class AliEPFlattener;
class AliAODInputHandler;
class AliESDInputHandler;
class AliVTrack;
#include "TArrayD.h"
#include "AliAnalysisTaskSE.h"
class AliPHOSCorrelations : public AliAnalysisTaskSE
{
public:
enum EventSelection { kTotal, kEvent, kEventHandler,
kTriggerMaskSelection, kHasVertex, kHasCentrality,
kHasPHOSClusters, kHasTPCTracks, kPHOSEvent,
kMBEvent, kTotalSelected, kHasAbsVertex } ;
enum PID { kPidAll, kPidCPV, kPidDisp, kPidBoth} ;
public:
AliPHOSCorrelations() ;
AliPHOSCorrelations(const char *name) ;
virtual ~AliPHOSCorrelations() ;
virtual void UserCreateOutputObjects() ;
virtual void UserExec(Option_t *option) ;
void SetPeriodName(const TString str) { fPeriod = str ; }
TString GetPeriod() const { return fPeriod ; }
void SetCentralityEstimator(const char * centr) { fCentralityEstimator = centr ; }
void SetEventMixingRPBinning(const UInt_t nBins) { fNEMRPBins = nBins ; }
void SetMaxAbsVertexZ(const Float_t z) { fMaxAbsVertexZ = z ; }
void SwitchOnPionEfficiency() { fUseEfficiency = kTRUE ; }
void SwitchOffPionEfficiency() { fUseEfficiency = kFALSE ; }
void EnableTOFCut(const Bool_t enable, const Double_t TOFCut) { fTOFCutEnabled=enable; fTOFCut=TOFCut; }
void SetSigmaWidth(const Double_t sigmaWidth) { fNSigmaWidth = sigmaWidth ; }
void SetMassMeanParametrs(const Double_t par[2]) ;
void SetMassSigmaParametrs(const Double_t par[4]) ;
void SetMassWindow(const Double_t min, const Double_t max) { fMassInvMeanMin = min; fMassInvMeanMax = max ; }
void SetPtAssocBins(TArrayD * arr) { fAssocBins.Set(arr->GetSize(), arr->GetArray()) ; }
void SetCentralityBinning(const TArrayD& edges, const TArrayI& nMixed) ;
void SetCentralityBorders(const Double_t& downLimit , const Double_t& upLimit) ;
void SwitchOnMassParametrisation() { fUseMassWindowParametrisation = true ; }
void SwitchOffMassParametrisation() { fUseMassWindowParametrisation = false; }
ULong_t GetTrackStatus() const { return fTrackStatus ; }
void SetTrackStatus(ULong_t bit) { fTrackStatus = bit ; }
ULong_t GetTrackFilterMask() const { return fTrackFilterMask ; }
void SetTrackFilterMask(ULong_t bit) { fTrackFilterMask = bit ; }
void SwitchOnTrackHitSPDSelection() { fSelectSPDHitTracks = kTRUE ; }
void SwitchOffTrackHitSPDSelection() { fSelectSPDHitTracks = kFALSE ; }
void SwitchOnAODTrackSharedClusterSelection() { fSelectFractionTPCSharedClusters = kTRUE ; }
void SwitchOffAODTrackSharedClusterSelection() { fSelectFractionTPCSharedClusters = kFALSE ; }
Float_t GetTPCSharedClusterFraction() const { return fCutTPCSharedClustersFraction ; }
void SetTPCSharedClusterFraction(Float_t fr) { fCutTPCSharedClustersFraction = fr ; }
void SwitchOnAODHybridTrackSelection() { fSelectHybridTracks = kTRUE ; }
void SwitchOffAODHybridTrackSelection() { fSelectHybridTracks = kFALSE ; }
protected:
AliPHOSCorrelations ( const AliPHOSCorrelations& ) ;
AliPHOSCorrelations& operator=( const AliPHOSCorrelations& ) ;
void FillHistogram( const char * key,Double_t x ) const ;
void FillHistogram( const char * key,Double_t x, Double_t y ) const ;
void FillHistogram( const char * key,Double_t x, Double_t y, Double_t z ) const ;
void FillHistogram( const char * key,Double_t x, Double_t y, Double_t z, Double_t w ) const ;
void SetHistPtNumTrigger( const Int_t& ptMult, const Double_t& ptMin, const Double_t& ptMax ) const ;
void SetHistPtAssoc ( const Int_t& ptMult, const Double_t& ptMin, const Double_t& ptMax ) const ;
void SetHistMass ( const Int_t& ptMult, const Double_t& ptMin, const Double_t& ptMax ) const ;
void SetHistEtaPhi ( const Int_t& ptMult, const Double_t& ptMin, const Double_t& ptMax ) const ;
void SetHistPHOSClusterMap() ;
void LogProgress ( int step ) ;
void LogSelection ( const int& step , const int& internalRunNumber ) const ;
Int_t ConvertToInternalRunNumber(const Int_t& run) const ;
void SetESDTrackCuts() ;
void ZeroingVariables() ;
void SetGeometry();
Bool_t RejectTriggerMaskSelection() ;
void SetVertex() ;
Bool_t RejectEventVertex() const ;
void SetVertexBinning() ;
Int_t GetVertexBin(const TVector3& vertexVector) ;
UInt_t GetNumberOfVertexBins() const { return fNVtxZBins ; }
void SetCentrality() ;
Bool_t RejectEventCentrality() const;
Int_t GetCentralityBin(const Float_t& centralityV0M) ;
UInt_t GetNumberOfCentralityBins() const { return fCentEdges.GetSize()-1 ; }
void EvalReactionPlane() ;
Int_t GetRPBin() ;
UInt_t GetNumberOfRPBins() const { return fNEMRPBins ; }
void SelectPhotonClusters() ;
void SelectAccosiatedTracks() ;
void FillTrackEtaPhi() const;
void FillEventBiningProperties() const ;
void SelectTriggerPi0ME() ;
void TestPi0ME(const Int_t& ipid, const TLorentzVector& p12, const Int_t& modCase) ;
void SetMEExists(const Int_t pid) { fMEExists[pid] = true ; }
void SetMEPhi(const Int_t pid, const Double_t phi) { fMEPhi[pid] = phi ; }
void SetMEEta(const Int_t pid, const Double_t eta) { fMEEta[pid] = eta ; }
void SetMEPt( const Int_t pid, const Double_t pT) { fMEPt[pid] = pT ; }
void SetMEModCase(const Int_t pid, const Int_t modcase) { fMEModCase[pid] = modcase ; }
Bool_t GetMEExists(const Int_t pid) const { return fMEExists[pid] ; }
Double_t GetMEPhi(const Int_t pid) const { return fMEPhi[pid] ; }
Double_t GetMEEta(const Int_t pid) const { return fMEEta[pid] ; }
Double_t GetMEPt(const Int_t pid) const { return fMEPt[pid] ; }
Int_t GetMEModCase(const Int_t pid) const { return fMEModCase[pid] ; }
void ConsiderPi0s() ;
void ConsiderPi0s_MBSelection() ;
void ConsiderPi0sMix() ;
void ConsiderTracksMix() ;
void UpdatePhotonLists() ;
void UpdateTrackLists() ;
Bool_t TestMass(const Double_t& m, const Double_t& pt) const ;
Double_t MassMeanFunction(const Double_t &pt) const ;
Double_t MassSigmaFunction(const Double_t &pt) const ;
Double_t GetAssocBin(const Double_t& pt) const ;
Double_t GetEfficiency(const Double_t& pt) const ;
Int_t GetModCase(const Int_t &mod1, const Int_t &mod2) const ;
TList* GetCaloPhotonsPHOSList(const UInt_t vtxBin, const UInt_t centBin, const UInt_t rpBin) ;
TList* GetTracksTPCList(const UInt_t vtxBin, const UInt_t centBin, const UInt_t rpBin) ;
Bool_t SelectESDTrack(const AliESDtrack * t) const ;
Bool_t SelectAODTrack(const AliAODTrack * t) const ;
AliAnalysisUtils* GetAnalysisUtils() ;
private:
AliPHOSGeometry * fPHOSGeo ;
TList * fOutputContainer ;
AliVEvent * fEvent;
AliESDEvent * fEventESD;
AliAODEvent * fEventAOD;
AliInputEventHandler * fEventHandler;
TClonesArray * fCaloPhotonsPHOS ;
TClonesArray * fTracksTPC ;
TObjArray * fCaloPhotonsPHOSLists;
TObjArray * fTracksTPCLists;
Int_t fRunNumber;
Int_t fInternalRunNumber ;
TString fPeriod;
Bool_t fPHOSEvent;
Bool_t fMBEvent;
Int_t fNVtxZBins;
TArrayD fVtxEdges;
TArrayD fCentEdges;
TArrayI fCentNMixed;
UInt_t fNEMRPBins;
TArrayD fAssocBins;
Double_t fVertex[3];
TVector3 fVertexVector;
Int_t fVtxBin;
TString fCentralityEstimator;
Float_t fCentrality ;
Int_t fCentBin ;
Bool_t fHaveTPCRP ;
Float_t fRP ;
Int_t fEMRPBin;
Float_t fMaxAbsVertexZ;
Double_t fCentralityLowLimit;
Double_t fCentralityHightLimit;
Double_t fMinClusterEnergy;
Double_t fMinBCDistance;
Int_t fMinNCells;
Double_t fMinM02;
Bool_t fTOFCutEnabled;
Double_t fTOFCut;
Bool_t fUseMassWindowParametrisation;
Double_t fMassInvMeanMin ;
Double_t fMassInvMeanMax ;
Double_t fNSigmaWidth;
Double_t fMassMean[2];
Double_t fMassSigma[3];
Bool_t fMEExists[4];
Double_t fMEPhi[4];
Double_t fMEEta[4];
Double_t fMEPt[4];
Int_t fMEModCase[4];
Bool_t fUseEfficiency ;
AliESDtrackCuts * fESDtrackCuts ;
Bool_t fSelectHybridTracks ;
ULong_t fTrackStatus ;
ULong_t fTrackFilterMask ;
Bool_t fSelectSPDHitTracks ;
Bool_t fSelectFractionTPCSharedClusters ;
Float_t fCutTPCSharedClustersFraction ;
ClassDef(AliPHOSCorrelations, 2);
};
#endif
AliPHOSCorrelations.h:100 AliPHOSCorrelations.h:101 AliPHOSCorrelations.h:102 AliPHOSCorrelations.h:103 AliPHOSCorrelations.h:104 AliPHOSCorrelations.h:105 AliPHOSCorrelations.h:106 AliPHOSCorrelations.h:107 AliPHOSCorrelations.h:108 AliPHOSCorrelations.h:109 AliPHOSCorrelations.h:110 AliPHOSCorrelations.h:111 AliPHOSCorrelations.h:112 AliPHOSCorrelations.h:113 AliPHOSCorrelations.h:114 AliPHOSCorrelations.h:115 AliPHOSCorrelations.h:116 AliPHOSCorrelations.h:117 AliPHOSCorrelations.h:118 AliPHOSCorrelations.h:119 AliPHOSCorrelations.h:120 AliPHOSCorrelations.h:121 AliPHOSCorrelations.h:122 AliPHOSCorrelations.h:123 AliPHOSCorrelations.h:124 AliPHOSCorrelations.h:125 AliPHOSCorrelations.h:126 AliPHOSCorrelations.h:127 AliPHOSCorrelations.h:128 AliPHOSCorrelations.h:129 AliPHOSCorrelations.h:130 AliPHOSCorrelations.h:131 AliPHOSCorrelations.h:132 AliPHOSCorrelations.h:133 AliPHOSCorrelations.h:134 AliPHOSCorrelations.h:135 AliPHOSCorrelations.h:136 AliPHOSCorrelations.h:137 AliPHOSCorrelations.h:138 AliPHOSCorrelations.h:139 AliPHOSCorrelations.h:140 AliPHOSCorrelations.h:141 AliPHOSCorrelations.h:142 AliPHOSCorrelations.h:143 AliPHOSCorrelations.h:144 AliPHOSCorrelations.h:145 AliPHOSCorrelations.h:146 AliPHOSCorrelations.h:147 AliPHOSCorrelations.h:148 AliPHOSCorrelations.h:149 AliPHOSCorrelations.h:150 AliPHOSCorrelations.h:151 AliPHOSCorrelations.h:152 AliPHOSCorrelations.h:153 AliPHOSCorrelations.h:154 AliPHOSCorrelations.h:155 AliPHOSCorrelations.h:156 AliPHOSCorrelations.h:157 AliPHOSCorrelations.h:158 AliPHOSCorrelations.h:159 AliPHOSCorrelations.h:160 AliPHOSCorrelations.h:161 AliPHOSCorrelations.h:162 AliPHOSCorrelations.h:163 AliPHOSCorrelations.h:164 AliPHOSCorrelations.h:165 AliPHOSCorrelations.h:166 AliPHOSCorrelations.h:167 AliPHOSCorrelations.h:168 AliPHOSCorrelations.h:169 AliPHOSCorrelations.h:170 AliPHOSCorrelations.h:171 AliPHOSCorrelations.h:172 AliPHOSCorrelations.h:173 AliPHOSCorrelations.h:174 AliPHOSCorrelations.h:175 AliPHOSCorrelations.h:176 AliPHOSCorrelations.h:177 AliPHOSCorrelations.h:178 AliPHOSCorrelations.h:179 AliPHOSCorrelations.h:180 AliPHOSCorrelations.h:181 AliPHOSCorrelations.h:182 AliPHOSCorrelations.h:183 AliPHOSCorrelations.h:184 AliPHOSCorrelations.h:185 AliPHOSCorrelations.h:186 AliPHOSCorrelations.h:187 AliPHOSCorrelations.h:188 AliPHOSCorrelations.h:189 AliPHOSCorrelations.h:190 AliPHOSCorrelations.h:191 AliPHOSCorrelations.h:192 AliPHOSCorrelations.h:193 AliPHOSCorrelations.h:194 AliPHOSCorrelations.h:195 AliPHOSCorrelations.h:196 AliPHOSCorrelations.h:197 AliPHOSCorrelations.h:198 AliPHOSCorrelations.h:199 AliPHOSCorrelations.h:200 AliPHOSCorrelations.h:201 AliPHOSCorrelations.h:202 AliPHOSCorrelations.h:203 AliPHOSCorrelations.h:204 AliPHOSCorrelations.h:205 AliPHOSCorrelations.h:206 AliPHOSCorrelations.h:207 AliPHOSCorrelations.h:208 AliPHOSCorrelations.h:209 AliPHOSCorrelations.h:210 AliPHOSCorrelations.h:211 AliPHOSCorrelations.h:212 AliPHOSCorrelations.h:213 AliPHOSCorrelations.h:214 AliPHOSCorrelations.h:215 AliPHOSCorrelations.h:216 AliPHOSCorrelations.h:217 AliPHOSCorrelations.h:218 AliPHOSCorrelations.h:219 AliPHOSCorrelations.h:220 AliPHOSCorrelations.h:221 AliPHOSCorrelations.h:222 AliPHOSCorrelations.h:223 AliPHOSCorrelations.h:224 AliPHOSCorrelations.h:225 AliPHOSCorrelations.h:226 AliPHOSCorrelations.h:227 AliPHOSCorrelations.h:228 AliPHOSCorrelations.h:229 AliPHOSCorrelations.h:230 AliPHOSCorrelations.h:231 AliPHOSCorrelations.h:232 AliPHOSCorrelations.h:233 AliPHOSCorrelations.h:234 AliPHOSCorrelations.h:235 AliPHOSCorrelations.h:236 AliPHOSCorrelations.h:237 AliPHOSCorrelations.h:238 AliPHOSCorrelations.h:239 AliPHOSCorrelations.h:240 AliPHOSCorrelations.h:241 AliPHOSCorrelations.h:242 AliPHOSCorrelations.h:243 AliPHOSCorrelations.h:244 AliPHOSCorrelations.h:245 AliPHOSCorrelations.h:246 AliPHOSCorrelations.h:247 AliPHOSCorrelations.h:248 AliPHOSCorrelations.h:249 AliPHOSCorrelations.h:250 AliPHOSCorrelations.h:251 AliPHOSCorrelations.h:252 AliPHOSCorrelations.h:253 AliPHOSCorrelations.h:254 AliPHOSCorrelations.h:255 AliPHOSCorrelations.h:256 AliPHOSCorrelations.h:257 AliPHOSCorrelations.h:258 AliPHOSCorrelations.h:259 AliPHOSCorrelations.h:260 AliPHOSCorrelations.h:261 AliPHOSCorrelations.h:262 AliPHOSCorrelations.h:263 AliPHOSCorrelations.h:264 AliPHOSCorrelations.h:265 AliPHOSCorrelations.h:266 AliPHOSCorrelations.h:267 AliPHOSCorrelations.h:268 AliPHOSCorrelations.h:269 AliPHOSCorrelations.h:270 AliPHOSCorrelations.h:271 AliPHOSCorrelations.h:272 AliPHOSCorrelations.h:273 AliPHOSCorrelations.h:274 AliPHOSCorrelations.h:275 AliPHOSCorrelations.h:276 AliPHOSCorrelations.h:277 AliPHOSCorrelations.h:278 AliPHOSCorrelations.h:279 AliPHOSCorrelations.h:280 AliPHOSCorrelations.h:281 AliPHOSCorrelations.h:282 AliPHOSCorrelations.h:283 AliPHOSCorrelations.h:284 AliPHOSCorrelations.h:285 AliPHOSCorrelations.h:286 AliPHOSCorrelations.h:287