1 #ifndef ALICALOPHOTONCUTS_H 2 #define ALICALOPHOTONCUTS_H 6 #include "AliAnalysisCuts.h" 7 #include "AliAnalysisUtils.h" 8 #include "AliVCluster.h" 9 #include "AliVCaloCells.h" 10 #include "AliEMCALGeometry.h" 11 #include "AliPHOSGeometry.h" 12 #include "AliAODCaloCluster.h" 15 #include "AliAODTrack.h" 16 #include "AliESDtrack.h" 17 #include "AliVTrack.h" 18 #include "AliAODTrack.h" 19 #include "AliMCEvent.h" 20 #include "TProfile2D.h" 23 #include "AliAnalysisManager.h" 36 class AliAnalysisCuts;
40 class AliAODMCParticle;
332 Int_t isMC, AliAODCaloCluster* cluster1, AliAODCaloCluster* cluster2);
Double_t fMaxDistTrackToClusterPhi
TH1F * fHistNCellsBeforeQA
Bool_t AcceptCellByBadChannelMap(Int_t absID)
TH2F * fHistClusterTMEffiInput
void MatchTracksToClusters(AliVEvent *event, Double_t weight=1., Bool_t isEMCalOnly=kTRUE, AliMCEvent *mcEvent=0x0)
Bool_t GetIsAcceptedForBasicCounting()
TH1F * fHistDistanceTrackToClusterBeforeQA
Bool_t IsExoticCluster(AliVCluster *cluster, AliVEvent *event, Float_t &energyStar)
TH2F * fHistClusterDistanceOutTimeCut
TH2F * fHistClusterdEtadPhiPosTracksP_075_125BeforeQA
TH2F * fHistClusterM20M02AfterQA
Bool_t CheckClusterForTrackMatch(AliVCluster *cluster)
TH2F * fHistNLMVsEAfterQA
Float_t FunctionNL_kTestBeamMod(Float_t e, Float_t p0, Float_t p1, Float_t p2, Float_t p3, Float_t p4, Float_t p5, Float_t p6)
Double_t fMaxDistTrackToClusterEta
TH2F * fHistClusterEtavsPhiBeforeAcc
TH2F * fHistClusterEM02BeforeQA
Float_t FunctionNL_kPi0MCv3(Float_t e)
Bool_t SetMinNCellsCut(Int_t)
void SetExoticsQA(Bool_t enable)
Bool_t fUseTMMIPsubtraction
TH2F * fHistNCellsBigger1500MeVvsMod
std::vector< Int_t > GetVectorMatchedTracksToCluster(AliVEvent *event, AliVCluster *cluster)
Double_t GetDistanceBetweenClusters(AliVCluster *cluster1, AliVCluster *cluster2)
void PrintCutsWithValues(const TString analysisCutSelection)
TH2F * fHistClusterdEtadPhiBeforeQA
TH2F * fHistClusterIncludedCellsTimingEnergyAfterQA
TH2F * fHistClusterIncludedCellsTimingAfterQA
TH2F * fHistClusterEvsTrackSumEPrimaryButNoElec
TH2F * fHistNCellsBigger100MeVvsMod
void SetLogBinningYTH2(TH2 *histoRebin)
Bool_t SetCut(cutIds cutID, Int_t cut)
TH2F * fHistClusterdEtadPhiPosTracksBeforeQA
TH1F * fHistClusterIncludedCellsAfterQA
void SetHistoToModifyAcceptance(TH1S *histAcc)
void SetSeedEnergy(Double_t seed)
TH2F * fHistClusterdEtadPtAfterQA
Bool_t SetNonLinearity1(Int_t)
TH2F * fHistClusterEtavsPhiAfterAcc
TH2F * fHistClusterEnergyvsMod
std::vector< Int_t > fVectorMatchedClusterIDs
TH2F * fHistCellTimevsCellID
Float_t CalculateMinM02(Int_t minM02, Float_t clusEnergy)
Bool_t SetClusterTypeCut(Int_t)
void FillClusterCutIndex(Int_t photoncut)
Bool_t ClusterIsSelected(AliVCluster *cluster, AliVEvent *event, AliMCEvent *mcEvent, Int_t isMC, Double_t weight=1., Long_t clusterID=-1)
virtual Bool_t IsSelected(TObject *)
void SetLightOutput(Bool_t flag)
virtual ~AliCaloPhotonCuts()
TH2F * fHistClusterEM02Exotics
Int_t fUsePtDepTrackToCluster
Float_t FunctionNL_kSDM(Float_t e, Float_t p0, Float_t p1, Float_t p2)
Float_t FunctionNL_kPi0MCv2(Float_t e)
TH1F * fHistEnergyOfClusterBeforeQA
Int_t GetModuleNumberAndCellPosition(Int_t absCellId, Int_t &icol, Int_t &irow)
Int_t fSwitchNonLinearity
TH2F * fHistClusterEvsTrackEConv
Int_t fUseDistanceToBadChannel
Double_t fMaxEtaInnerEdge
Double_t GetTotalEnergyDeposit(AliVEvent *event)
TH1F * fHistDispersionAfterQA
TH2F * fHistClusterEvsTrackEGammaSubCharged
TString fCaloIsolationName
Bool_t GetDoFlatEnergySubtraction()
Float_t FunctionNL_kSDMv6(Float_t e)
void SetCorrectionTaskSetting(TString setting)
TH2F * fHistClusterdEtadPhiNegTracksP_075_125BeforeQA
void SetFillCutHistograms(TString name="")
void SetUseNonLinearitySwitch(Bool_t useNonLin)
Bool_t SetMaxEtaCut(Int_t)
TObjArray * fEMCALBadChannelsMap
TH2F * fHistClusterdPhidPtNegTracksTrueMatched
void ApplyNonLinearity(AliVCluster *cluster, Int_t isMC)
TH2F * fHistClusterEtavsPhiAfterQA
TH2F * fHistMatchedTrackPClusETruePi0Clus
Float_t FunctionNL_kSDMv5(Float_t e)
Bool_t MatchConvPhotonToCluster(AliAODConversionPhoton *convPhoton, AliVCluster *cluster, AliVEvent *event, Double_t weight=1.)
TH2F * fHistEnergyOfModvsMod
Float_t FunctionNL_DExp(Float_t e, Float_t p0, Float_t p1, Float_t p2, Float_t p3, Float_t p4, Float_t p5, Float_t p6=1.0, Float_t p7=1.0)
TH2F * fHistClusterEvsTrackENeutralSubCharged
TH2F * fHistClusterdEtadPhiPosTracksP_000_075BeforeQA
Some utilities for cluster and cell treatment.
virtual Bool_t IsSelected(TList *)
TH2F * fHistClusterdEtadPhiNegTracksBeforeQA
MCSet FindEnumForMCSet(TString namePeriod)
AliCaloPhotonCuts(Int_t isJetJet=0, const char *name="ClusterCuts", const char *title="Cluster Cuts")
Int_t GetNactiveEmcalCells()
TH2F * fHistClusterdPhidPtAfterQA
TH2F * fHistNLMVsNCellsAfterQA
TH2F * fHistClusterdPhidPtPosTracksBeforeQA
Bool_t ClusterQualityCuts(AliVCluster *cluster, AliVEvent *event, AliMCEvent *mcEvent, Int_t isMC, Double_t weight, Long_t clusterID)
TH2F * fHistClusterM20M02BeforeQA
TH2F * fHistMatchedTrackPClusE
Double_t fMinDistTrackToClusterPhi
Class handling all kinds of selection cuts for Gamma Calo analysis.
TH1F * fHistNCellsAfterQA
AliPHOSGeometry * fGeomPHOS
TH2F * fHistClusterTimevsEBeforeQA
void FillHistogramsExtendedQA(AliVEvent *event, Int_t isMC)
AliEMCALGeometry * GetGeomEMCAL()
AliCaloTrackMatcher * GetCaloTrackMatcherInstance()
Bool_t fDoFlatEnergySubtraction
TH1F * fHistClusterIncludedCellsBeforeQA
TH2F * fHistClusterEvsTrackEPrimaryButNoElec
Bool_t SetDistanceToBadChannelCut(Int_t)
TH2F * fHistClusterEM02AfterQA
Bool_t GetClosestMatchedTrackToCluster(AliVEvent *event, AliVCluster *cluster, Int_t &trackLabel)
Float_t FunctionNL_kTestBeamv2(Float_t e)
Bool_t SetExoticClusterCut(Int_t)
Int_t fExtendedMatchAndQA
Bool_t InitializeCutsFromCutString(const TString analysisCutSelection)
TH1F * fHistEnergyOfClusterAfterNL
TH2F * fHistMatchedTrackPClusEAfterEOverPVeto
Bool_t fIsAcceptedForBasic
Int_t ClassifyClusterForTMEffi(AliVCluster *cluster, AliVEvent *event, AliMCEvent *mcEvent, Bool_t isESD)
void SetLogBinningXTH2(TH2 *histoRebin)
TH2F * fHistCellEnergyvsCellID
TH2F * fHistClusterEnergyvsNCellsExotics
void InitializePHOS(AliVEvent *event)
AliPhotonIsolation * GetPhotonIsolationInstance()
Bool_t SetDispersion(Int_t)
TH2F * fHistClusterdEtadPtBeforeQA
void SplitEnergy(Int_t absCellId1, Int_t absCellId2, AliVCluster *cluster, AliVEvent *event, Int_t isMC, AliAODCaloCluster *cluster1, AliAODCaloCluster *cluster2)
void SetCaloIsolationName(TString name)
Bool_t GetHighestPtMatchedTrackToCluster(AliVEvent *event, AliVCluster *cluster, Int_t &trackLabel)
TH2F * fHistClusterENMatchesNeutral
Bool_t ClusterIsIsolated(Int_t clusterID, AliAODConversionPhoton *PhotonCandidate)
TH2F * fHistClusterdEtadPhiPosTracksAfterQA
Float_t FunctionM02(Float_t E, Float_t a, Float_t b, Float_t c, Float_t d, Float_t e)
TH2F * fHistClusterdPhidPtPosTracksTrueMatched
TH1F * fHistClusterRBeforeQA
TH1F * fHistEnergyOfClusterBeforeNL
Bool_t ClusterIsSelectedAODMC(AliAODMCParticle *particle, TClonesArray *aodmcArray)
Bool_t SetTimingCut(Int_t)
Double_t fExoticMinEnergyCell
Bool_t ClusterIsSelectedElecAODMC(AliAODMCParticle *particle, TClonesArray *aodmcArray)
Bool_t ClusterIsSelectedMC(TParticle *particle, AliMCEvent *mcEvent)
TH2F * fHistClusterDistanceInTimeCut
TH1F * fHistClusterDistance1DInTimeCut
Bool_t SetMinMaxM20(Int_t)
Float_t CalculateMaxM02(Int_t maxM02, Float_t clusEnergy)
Bool_t fUsePhotonIsolation
static const char * fgkCutNames[kNCuts]
void InitializeEMCAL(AliVEvent *event)
Bool_t CheckDistanceToBadChannel(AliVCluster *cluster, AliVEvent *event)
Int_t GetIsConversionRecovery()
TH2F * fHistClusterTimevsEAfterQA
void SetLocMaxCutEDiff(Double_t diffCut)
Bool_t SetMaxPhiCut(Int_t)
void SetCaloTrackMatcherName(TString name)
Double_t fExoticEnergyFracCluster
TH2F * fHistClusterEEstarExotics
Float_t FunctionNL_SPOW(Float_t e, Float_t p0, Float_t p1, Float_t p2)
Double_t fMinDistanceToBadChannel
Float_t FunctionNL_kPi0MCv6(Float_t e)
TH2F * fHistClusterEvsTrackEChargedLead
AliPHOSGeometry * GetGeomPHOS()
void SetExtendedMatchAndQA(Int_t extendedMatchAndQA)
TH2F * fHistClusterENMatchesCharged
Float_t GetECross(Int_t absID, AliVCaloCells *cells)
TH1F * fHistDispersionBeforeQA
AliCaloTrackMatcher * fCaloTrackMatcher
TString fCaloTrackMatcherName
Float_t FunctionNL_kPi0MCMod(Float_t e, Float_t p0, Float_t p1, Float_t p2, Float_t p3, Float_t p4, Float_t p5, Float_t p6)
Int_t FindSecondLargestCellInCluster(AliVCluster *cluster, AliVEvent *event)
Bool_t IsClusterPi0(AliVEvent *event, AliMCEvent *mcEvent, AliVCluster *cluster)
TH1F * fHistClusterEnergyFracCellsAfterQA
TH2F * fHistClusterdEtadPhiNegTracksP_125_999BeforeQA
Int_t GetNumberOfLocalMaxima(AliVCluster *cluster, AliVEvent *event)
Float_t GetInvMassConversionRecovery()
TH1F * fHistClusETruePi0_BeforeTM
TH2F * fHistClusterEvsTrackENeutral
Double_t fMinEtaInnerEdge
Bool_t SetTrackMatchingCut(Int_t)
Float_t FunctionNL_kPi0MCv5(Float_t e)
TH1F * fHistClusterRAfterQA
AliEMCALRecoUtils * fEMCALRecUtils
TH2F * fHistClusterEvsTrackECharged
void SetV0ReaderName(TString name)
TH2F * fHistClusterTrueElecEtaPhiAfterTM_30_00
TH2I ** fPHOSBadChannelsMap
Bool_t ClusterIsSelectedElecMC(TParticle *particle, AliMCEvent *mcEvent)
Bool_t AcceptanceCuts(AliVCluster *cluster, AliVEvent *event, Double_t weight)
void InitCutHistograms(TString name="")
TH2F * fHistClusterEnergyvsNCellsAfterQA
TH2F * fHistClusterdEtadPhiPosTracksP_125_999BeforeQA
TH2F * fHistClusterdEtadPhiNegTracksAfterQA
void SetLogBinningXTH1(TH1 *histoRebin)
TH1F * fHistClusETruePi0_Matched
TH2F * fHistClusterdPhidPtNegTracksBeforeQA
Float_t FunctionNL_kPi0MC(Float_t e, Float_t p0, Float_t p1, Float_t p2, Float_t p3, Float_t p4, Float_t p5, Float_t p6)
TList * GetExtQAHistograms()
Float_t FunctionNL_PHOSOnlyMC(Float_t e, Float_t p0, Float_t p1, Float_t p2)
TH2F * fHistClusterdEtadPtTrueMatched
TH1F * fHistEnergyOfClusterAfterQA
TH2F * fHistClusterdEtadPhiAfterQA
TList * GetCutHistograms()
TH1F * fHistAcceptanceCuts
TH1F * fHistDistanceTrackToClusterAfterQA
TH1F * fHistClusterEnergyFracCellsBeforeQA
AliPhotonIsolation * fCaloIsolation
Bool_t SetMinEtaCut(Int_t)
Float_t FunctionNL_DPOW(Float_t e, Float_t p0, Float_t p1, Float_t p2, Float_t p3, Float_t p4, Float_t p5)
Bool_t fUseDistTrackToCluster
Float_t FunctionNL_kPi0MCv1(Float_t e)
Int_t FindLargestCellInCluster(AliVCluster *cluster, AliVEvent *event)
Bool_t SetNonLinearity2(Int_t)
Float_t FunctionNL_kTestBeamv3(Float_t e)
Bool_t AreNeighbours(Int_t absCellId1, Int_t absCellId2)
TH2F * fHistClusterEnergyvsNCellsBeforeQA
Bool_t SetCutIds(TString cutString)
TH2F * fHistClusterTrueElecEtaPhiBeforeTM_30_00
Bool_t fIsCurrentClusterAcceptedBeforeTM
TH2F * fHistClusterIdentificationCuts
TH2F * fHistClusterEtavsPhiExotics
AliEMCALGeometry * fGeomEMCAL
Bool_t SetMinPhiCut(Int_t)
void SetExoticsMinCellEnergyCut(Double_t minE)
TH2F * fHistClusterdEtadPhiNegTracksP_000_075BeforeQA
void SetIsPureCaloCut(Int_t merged)
Float_t FunctionNL_kTestBeamv4(Float_t e)
Bool_t SetMinEnergyCut(Int_t)
Bool_t ClusterIsSelectedBeforeTrackMatch()
AliCaloPhotonCuts & operator=(const AliCaloPhotonCuts &)
TH2F * fHistClusterEvsTrackEGamma