#ifndef ATLAS_AtlPhoton
#define ATLAS_AtlPhoton
#ifndef HEP_HepPhoton
#include <HepPhoton.h>
#endif
#ifndef ATLAS_AtlEMShower
#include <AtlEMShower.h>
#endif
#ifndef ATLAS_AtlTriggerMatch
#include <AtlTriggerMatch.h>
#endif
class AtlPhoton : public HepPhoton, public AtlEMShower,
public AtlTriggerMatch {
private:
public:
AtlPhoton();
AtlPhoton(Int_t Id, Float_t Px, Float_t Py, Float_t Pz, Float_t E,
Float_t EMWeight, Float_t BkgWeight,
UInt_t OQFlag,
UInt_t IsEMBitField, EIsEM IsEM, EAuthor Author,
TLorentzVector PCluster);
virtual ~AtlPhoton();
virtual void Clear(Option_t *option = "");
virtual void Print(Option_t *option = "");
static void PrintHeader();
static void PrintFooter();
inline Bool_t IsPhoton() const { return fAuthor & kPhoton;}
inline Bool_t IsConvPhoton() const { return fAuthor & kConvPhoton;}
inline Bool_t IsLoose() const {
return fIsEM & kPhotonLoose;
}
inline Bool_t IsTight() const {
return fIsEM & kPhotonTight;
}
UInt_t IsGoodOQ();
inline virtual Bool_t IsEM_ClusterEtaRange() const {
return fIsEMBitField & (0x1<<1);
}
inline virtual Bool_t IsEM_ClusterHadronicLeakage_Loose() const {
return fIsEMBitField & (0x1<<2);
}
inline virtual Bool_t IsEM_ClusterMiddleEnergy_Loose() const {
return fIsEMBitField & (0x1<<3);
}
inline virtual Bool_t IsEM_ClusterMiddleEratio37_Loose() const {
return fIsEMBitField & (0x1<<4);
}
inline virtual Bool_t IsEM_ClusterMiddleEratio33_Loose() const {
return fIsEMBitField & (0x1<<5);
}
inline virtual Bool_t IsEM_ClusterMiddleWidth_Loose() const {
return fIsEMBitField & (0x1<<6);
}
inline virtual Bool_t IsEM_ClusterHadronicLeakage() const {
return fIsEMBitField & (0x1<<10);
}
inline virtual Bool_t IsEM_ClusterMiddleEnergy() const {
return fIsEMBitField & (0x1<<11);
}
inline virtual Bool_t IsEM_ClusterMiddleEratio37() const {
return fIsEMBitField & (0x1<<12);
}
inline virtual Bool_t IsEM_ClusterMiddleEratio33() const {
return fIsEMBitField & (0x1<<13);
}
inline virtual Bool_t IsEM_ClusterMiddleWidth() const {
return fIsEMBitField & (0x1<<14);
}
inline virtual Bool_t IsEM_ClusterStripsEratio() const {
return fIsEMBitField & (0x1<<15);
}
inline virtual Bool_t IsEM_ClusterStripsDeltaEmax2() const {
return fIsEMBitField & (0x1<<16);
}
inline virtual Bool_t IsEM_ClusterStripsDeltaE() const {
return fIsEMBitField & (0x1<<17);
}
inline virtual Bool_t IsEM_ClusterStripsWtot() const {
return fIsEMBitField & (0x1<<18);
}
inline virtual Bool_t IsEM_ClusterStripsFracm() const {
return fIsEMBitField & (0x1<<19);
}
inline virtual Bool_t IsEM_ClusterStripsWeta1c() const {
return fIsEMBitField & (0x1<<20);
}
inline virtual Bool_t IsEM_ClusterStripsDEmaxs1() const {
return fIsEMBitField & (0x1<<21);
}
inline virtual Bool_t IsEM_TrackMatchEoverP() const {
return fIsEMBitField & (0x1<<22);
}
inline virtual Bool_t IsEM_Isolation() const {
return fIsEMBitField & (0x1<<29);
}
inline virtual Bool_t IsEM_ClusterIsolation() const {
return fIsEMBitField & (0x1<<30);
}
inline virtual Bool_t IsEM_TrackIsolation() const {
return fIsEMBitField & (0x1<<31);
}
ClassDef(AtlPhoton,13)
};
#endif