#if !defined (__CINT__) || defined (__MAKECINT__) #include "Stntuple/photon/TCesCprBase.hh" #include "Stntuple/photon/TDiPhoMat.hh" #endif class TDiCesCpr : public TCesCprBase { public: TDiCesCpr(); TDiCesCpr(const char* name); ~TDiCesCpr(); // add a diphoton pair to the sum // returns 0 or the weight for this event Float_t AddPhoton(TStnEvent* event, TStnPhoton* pho0, TStnPhoton* pho1); // after calling AddPhoton, these will return the values for this event // flags =0 if OK for this method (including CES/CPR Et cut) // weights for summing, and signal and background probabilities // "signal" in this case is CES<4 or CPR on Int_t CesFlag(Int_t ipho) { return fCesFlag[ipho];} Bool_t CesHit(Int_t ipho) { return fCesHit[ipho];} Float_t CesWt(Int_t ipho) { return fCesWt[ipho];} Float_t CesProbS(Int_t ipho) { return fCesProbS[ipho];} Float_t CesProbB(Int_t ipho) { return fCesProbB[ipho];} Int_t CprFlag(Int_t ipho) { return fCprFlag[ipho];} Bool_t CprHit(Int_t ipho) { return fCprHit[ipho];} Float_t CprWt(Int_t ipho) { return fCprWt[ipho];} Float_t CprProbS(Int_t ipho) { return fCprProbS[ipho];} Float_t CprProbB(Int_t ipho) { return fCprProbB[ipho];} Float_t Weight() { return fWeight;} void Print(); void Clear(); // the results, // ind = 0 gg, ind=1 gj, ind=2 jg, ind=3 jj Float_t Fraction(Int_t ind); Float_t FractionErr(Int_t ind); Float_t Events(Int_t ind, Bool_t scale = true); Float_t EventsErr(Int_t ind, Bool_t scale = true); TDiPhoMat& GetTDiPhoMat() { return fMat;} protected: Int_t fCesFlag[2]; Bool_t fCesHit[2]; Float_t fCesWt[2]; Float_t fCesProbS[2]; Float_t fCesProbB[2]; Int_t fCprFlag[2]; Bool_t fCprHit[2]; Float_t fCprWt[2]; Float_t fCprProbS[2]; Float_t fCprProbB[2]; Float_t fWeight; TDiPhoMat fMat; ClassDef(TDiCesCpr,1) };