#ifndef ATLFPhotonMaker_H #define ATLFPhotonMaker_H ////////////////////////////////////////////////////////////////////////// // // // ATLFast PhotonMaker class. // // // ////////////////////////////////////////////////////////////////////////// #ifndef ATLFMaker_H #include "ATLFMaker.h" #endif #ifndef ROOT_TH1 #include #endif class ATLFPhotonMaker : public ATLFMaker { protected: Int_t m_Nphotons; //Number of photons Float_t m_MinPT; //Minimum photon transverse momentun Float_t m_MaxEta; //Maximum photon eta Float_t m_RconeMatch; //Delta R cone for photon matching to cluster Float_t m_RconeSep; //Min cone R separation from clusters for photon isolation Float_t m_RconeDep; //R cone for energy deposition Float_t m_MaxEdep; //Max energy deposition for isolation // Photons histograms TH1F *m_Mult; //photon multiplicity TH1F *m_MultHard; //photon multiplicity hard TH1F *m_MultHardIsol; //photon multiplicity hard + isol TH1F *m_E; //(E-Ecru)/Ecru vers E photon ISOLATED TH1F *m_Theta; //(theta-thetacru) vers E photon ISOLATED TH1F *m_Counter; //counter vers E photon ISOLATED TH1F *m_Mass2ph; //pho-pho mass public: ATLFPhotonMaker(); ATLFPhotonMaker(const char *name, const char *title); virtual ~ATLFPhotonMaker(); virtual void AddPhoton(Int_t code, Int_t mcparticle, Int_t mother, Float_t eta, Float_t phi, Float_t pt); virtual void Clear(Option_t *option=""); virtual void Finish(); virtual void Init(); virtual Int_t Make(); Float_t PhotonResolution(Int_t keylum, Float_t ene, Float_t pt, Float_t eta); Float_t SmearTheta(Float_t ene, Float_t eta, Float_t theta); virtual void PrintInfo(); // Getters Int_t Nphotons() {return m_Nphotons;} Float_t MinPT() {return m_MinPT;} Float_t MaxEta() {return m_MaxEta;} Float_t RconeMatch() {return m_RconeMatch;} Float_t RconeSep() {return m_RconeSep;} Float_t RconeDep() {return m_RconeDep;} Float_t MaxEdep() {return m_MaxEdep;} TH1F *Mult() {return m_Mult;} TH1F *MultHard() {return m_MultHard;} TH1F *MultHardIsol() {return m_MultHardIsol;} TH1F *E() {return m_E;} TH1F *Theta() {return m_Theta;} TH1F *Counter() {return m_Counter;} TH1F *Mass2ph() {return m_Mass2ph;} // Setters void SetMinPT(Float_t val=5.) {m_MinPT=val;} void SetMaxEta(Float_t val=2.5) {m_MaxEta=val;} void SetRconeMatch(Float_t val=0.15) {m_RconeMatch=val;} void SetRconeSep(Float_t val=0.4) {m_RconeSep=val;} void SetRconeDep(Float_t val=0.2) {m_RconeDep=val;} void SetMaxEdep(Float_t val=10.) {m_MaxEdep=val;} ClassDef(ATLFPhotonMaker, 1) //ATLFast PhotonMaker }; #endif