//================================================================== // // TZBosFnd.hh // // Version 0.0: P. Koehn 5/5/01 // //================================================================== #if !defined (__CINT__) || defined (__MAKECINT__) #include "TH1.h" #include "TH2.h" #include "TCanvas.h" #include "TProfile.h" #include #include #endif class TZBosFnd: public TStnModule { //----------------------------------------------------------------------------- // histograms //----------------------------------------------------------------------------- public: struct Hist_t { TH1F* fPairMass; TH1F* fZMass; TH1F* fZPt; TH1F* fZPhi; TH1F* fZEta; TH1F* fEt; TH2F* fEt1vEt2; TH1F* fDelPhi; TH1F* fDelR; TH1F* fdType; }; char* HName; const Text_t* jobName; TFile* histFile; TDirectory* dir; const char* histDir; int totEvents; int passEvents; //----------------------------------------------------------------------------- // data members //----------------------------------------------------------------------------- protected: // pointers to the data blocks used TStnElectronBlock* pEleBlock; TStnMuonBlock* pMuonBlock; // histograms filled Hist_t fHist; bool fHistEnabled; bool Zboson; // Cuts double LowMassCut; double HighMassCut; int Zveto; //----------------------------------------------------------------------------- // methods //----------------------------------------------------------------------------- public: TZBosFnd(const char* name="TopZeeFilter", const char* title="TopZeeFilter"); TZBosFnd(TFile* file, const char* name="TopZeeFilter", const char* title="TopZeeFilter"); ~TZBosFnd(); // ****** accessors Hist_t* GetHist () { return &fHist; } void enableHist(bool enbl) {fHistEnabled = enbl;} void setZveto(int zv) {Zveto=zv;} void setLowMassCut(double cut) {LowMassCut=cut;} void setHighMassCut(double cut) {HighMassCut=cut;} // ****** overloaded methods of TStnModule int BeginJob(); int BeginRun(); int Event (int ientry); int EndJob (); // ****** other methods void BookHistograms(); bool isEnableHist() {return fHistEnabled;} bool isZboson() {return Zboson;} void init(); int GetMuonCode(int m1, int m2); // Z characteristics TLorentzVector* Zmomentum; int leg1; //indice into the Electron block int leg2; //indice into the Electron block int decayType; //type of decay // Value Leg 1 Leg 2 // 0 Central e Central e // 1 Central e plug e // 2 plug e plug e // 10 cmu-only cmu-only // 11 cmu-only cmp-only // 12 cmu-only cmu-cmp // 13 cmu-only cmx // 14 cmp-only cmp-only // 15 cmp-only cmu-cmp // 16 cmp-only cmx // 17 cmu-cmp cmu-cmp // 18 cmu-cmp cmx // 19 cmx cmx // ClassDef(TZBosFnd,0) };