#ifndef ALIANACONVISOLATION_CXX
#define ALIANACONVISOLATION_CXX
#include <iostream>
#include "TObject.h"
#include "Rtypes.h"
#include "TF1.h"
#include <TMath.h>
class TH2F;
class TH1F;
class AliAODConversionPhoton;
class AliAODConversionParticle;
class TClonesArray;
class TList;
using namespace std;
class AliAnaConvIsolation : public TObject {
public:
AliAnaConvIsolation();
AliAnaConvIsolation(Float_t coneSize, Float_t maxPtThreshold, Float_t sumPtThreshold, Float_t maxPtFraction, Float_t sumPtFraction);
virtual ~AliAnaConvIsolation();
void SetConeSize(Float_t cs) {fConeSize = cs*cs;}
Float_t GetConeSize() const {return TMath::Sqrt(fConeSize);}
void SetMaxPtThreshold(Float_t cs) {fMaxPtThreshold = cs;}
Float_t GetPtThreshold() const {return fMaxPtThreshold;}
void SetSumPtThreshold(Float_t cs) {fSumPtThreshold = cs;}
Float_t GetPtSumThreshold() const {return fSumPtThreshold;}
void SetMaxPtFraction(Float_t cs) {fMaxPtFraction = cs;}
Float_t GetPtFraction() const {return fMaxPtFraction;}
void SetSumPtFraction(Float_t cs) {fSumPtFraction = cs;}
Float_t GetPtSumFraction() const {return fSumPtFraction;}
void SetMinPt( Float_t minpt) {fMinPt = minpt; }
TF1 * GetIsolationCurve() const { return fIsoCurve; }
void SetIsolationCurve(TString curve) {
fCurveFunction = curve;
}
Bool_t IsLeading(AliAODConversionParticle * particle, const TObjArray * tracks, const TObjArray * aodParticles);
Bool_t IsIsolated( const AliAODConversionPhoton * const particle, const TClonesArray * const tracks, Bool_t &leading);
Bool_t IsIsolated( AliAODConversionPhoton * const particle, const TClonesArray * const tracks, const Int_t nSpawn, const Int_t * const spawn, Bool_t &leading );
Int_t IsLeading(const AliAODConversionParticle * particle, const TObjArray * tracks, const Int_t * tIDs) const;
Bool_t IsInCone(Float_t dEta, Float_t dPhi, const Float_t coneSize) const {
dPhi = (TMath::Abs(dPhi) < TMath::Pi()) ? dPhi : TMath::TwoPi() - TMath::Abs(dPhi);
return ( (dEta*dEta + dPhi*dPhi) < coneSize);
}
private:
Bool_t EvaluateIsolationCriteria(Float_t ptSum, Float_t pt) const;
TF1 * fIsoCurve;
TString fCurveFunction;
Float_t fConeSize;
Float_t fMinPt;
Float_t fMaxPtThreshold;
Float_t fSumPtThreshold;
Float_t fMaxPtFraction;
Float_t fSumPtFraction;
AliAnaConvIsolation(const AliAnaConvIsolation&);
AliAnaConvIsolation& operator=(const AliAnaConvIsolation&);
ClassDef(AliAnaConvIsolation, 2);
};
#endif
AliAnaConvIsolation.h:100 AliAnaConvIsolation.h:101 AliAnaConvIsolation.h:102 AliAnaConvIsolation.h:103 AliAnaConvIsolation.h:104 AliAnaConvIsolation.h:105 AliAnaConvIsolation.h:106 AliAnaConvIsolation.h:107 AliAnaConvIsolation.h:108 AliAnaConvIsolation.h:109 AliAnaConvIsolation.h:110 AliAnaConvIsolation.h:111 AliAnaConvIsolation.h:112 AliAnaConvIsolation.h:113 AliAnaConvIsolation.h:114 AliAnaConvIsolation.h:115 AliAnaConvIsolation.h:116 AliAnaConvIsolation.h:117 AliAnaConvIsolation.h:118 AliAnaConvIsolation.h:119 AliAnaConvIsolation.h:120 AliAnaConvIsolation.h:121 AliAnaConvIsolation.h:122 AliAnaConvIsolation.h:123 AliAnaConvIsolation.h:124 AliAnaConvIsolation.h:125 AliAnaConvIsolation.h:126 AliAnaConvIsolation.h:127 AliAnaConvIsolation.h:128