//================================================================== // // TJetCand.hh // // This code TEMPLATE plots quantities from the stntuple TStnJetBlock // for three block desctriptions: JetBlock, TopTJetBlock, and TopLJetBlock // // Version 0.0: P. Koehn 05/05/01 // Version 0.1: P. Koehn 03/14/02 // Tagging information is coming soon // //================================================================== #if !defined (__CINT__) || defined (__MAKECINT__) #include "TH1.h" #include "TH2.h" #include "TCanvas.h" #include "TProfile.h" #include "misc.hh" // very useful utility methods #include #include #endif class TJetCand: public TStnModule { //----------------------------------------------------------------------------- // data members //----------------------------------------------------------------------------- private: // Jet data members TStnJetBlock* pJetBlock; // jet pointer TStnJetBlock* pTopTJetBlock; // topeventmodule tight jet pointer TStnJetBlock* pTopLJetBlock; // topeventmodule loose jet pointer TStnJet* goodJet[20]; TStnJet* JET; bool NgoodJetList[20]; // jetblock[3] is the boolean to indicate which TStnJetBlock // jet blocks are available: 0 -> JetBlock, 1 -> TopTJetBlock, 2 -> TopLJetBlock bool jetblock[3]; int njets[3]; int ncutjets[3]; int NgoodJet[3]; int NJetMax; int totEvents[3]; int jetEvents[3]; bool foundJet[3]; bool JetHistEnabled; // jets bool TJetHistEnabled; // tight jets bool LJetHistEnabled; // loose jets bool JetEtCutEnabled; bool JetEmfCutEnabled; bool JetDtetaCutEnabled; bool JetEvetaCutEnabled; double JetEtCut; double JetEmfCut; double JetDtetaCut; double JetEvetaCut; public: TFile* histFile; TDirectory* dir; const char* histDir; char * desc[3]; // data block description // histo arrays for jet blocks: 0 -> JetBlock, 1 -> TopTJetBlock, 2 -> TopLJetBlock TH1F* NJetHist[3]; TH1F* JetNtracksHist[3]; TH1F* JetEtHist[3]; TH1F* JetEmfHist[3]; TH1F* JetDtetaHist[3]; TH1F* JetRapHist[3]; TH1F* JetCorfdHist[3]; TH1F* JetCorfmHist[3]; TH1F* JetZvtxHist[3]; TH1F* JetMassHist[3]; TH1F* JetPhiHist[3]; TH1F* JetSeedEtaHist[3]; TH1F* JetSeedPhiHist[3]; TH1F* NJetCutHist[3]; TH1F* JetEtCutHist[3]; TH1F* JetEmfCutHist[3]; TH1F* JetDtetaCutHist[3]; //----------------------------------------------------------------------------- // methods //----------------------------------------------------------------------------- public: TJetCand(const char* name="JetCand", const char* title="JetCand"); TJetCand(TFile* file, const char* name="JetCand", const char* title="JetCand"); ~TJetCand(); // ****** getters ****** TStnJet* getgoodJet(int M) { return goodJet[M]; } int getNgoodJet(int M) { return NgoodJet[M]; } bool IsagoodJet(int ele) { return NgoodJetList[ele];} double getJetEtCut() { return JetEtCut;} double getJetEmfCut() { return JetEmfCut;} double getJetDtetaCut() { return JetDtetaCut;} double getJetEvetaCut() { return JetEvetaCut;} bool isEnableEtCut() { return JetEtCutEnabled; } bool isEnableEmfCut() { return JetEmfCutEnabled; } bool isEnableDtetaCut() { return JetDtetaCutEnabled; } bool isEnableEvetaCut() { return JetEvetaCutEnabled; } bool isEnableJetHist() { return JetHistEnabled; } bool isEnableTJetHist() { return TJetHistEnabled; } bool isEnableLJetHist() { return LJetHistEnabled; } // ****** setters ****** void init(); void setJetEtCut(double CUT) { JetEtCut = CUT; } void setJetEmfCut(double CUT) { JetEmfCut = CUT; } void setJetDtetaCut(double CUT) { JetDtetaCut = CUT; } void setJetEvetaCut(double CUT) { JetEvetaCut = CUT; } void enableJetEtCut(bool ENABLE) { JetEtCutEnabled = ENABLE; } void enableJetEmfCut(bool ENABLE) { JetEmfCutEnabled = ENABLE; } void enableJetDtetaCut(bool ENABLE) { JetDtetaCutEnabled = ENABLE; } void enableJetEvetaCut(bool ENABLE) { JetEvetaCutEnabled = ENABLE; } void enableJetHist(bool ENABLE) { JetHistEnabled = ENABLE;} void enableTJetHist(bool ENABLE) { TJetHistEnabled = ENABLE;} void enableLJetHist(bool ENABLE) { LJetHistEnabled = ENABLE;} // ****** other methods ****** void BookHistograms(); void PlotHistograms(); void printcuts(); // ****** overloaded methods of TStnModule ****** int BeginJob(); int BeginRun(); int Event (int ientry); //int EndRun (); int EndJob (); };