//================================================================== // // TTopSummary.cc // // Print out Top Summary objects // // // Version 0.0: P. Koehn 09/26/01 // //================================================================== #include #include #include "Stntuple/loop/TStnAna.hh" #include "Stntuple/obj/TStnHeaderBlock.hh" #include "TTopSummary.hh" //_____________________________________________________________________________ TTopSummary::TTopSummary(TFile* file, const char* name, const char* title): TStnModule(name,title){ // // create a subdirectory "dir" in this file histFile = file; histDir = name; dir = histFile->mkdir(histDir); // Initialize cuts init(); } //_____________________________________________________________________________ TTopSummary::TTopSummary(const char* name, const char* title): TStnModule(name,title){ // // create a subdirectory "dir" in this file histFile = new TFile("TTopSummary.hbk","RECREATE","test file"); histDir = name; dir = histFile->mkdir(histDir); // Initialize cuts init(); } //_____________________________________________________________________________ TTopSummary::~TTopSummary() { } void TTopSummary::init() { setHistEnable(false); Nevents = 0; printcuts(); } //================================== // // Book Histograms // //================================== void TTopSummary::BookHistograms() { printf("----- BookHistograms ---- %s\n",GetName()); histFile->cd(histDir); // make the "dir" directory the current directory missing = new TH1F("missing et ", "met",100,0.0,50.0); } //================================== // BeginJob() //================================== int TTopSummary::BeginJob() { printf("----- Begin job: ---- %s\n",GetName()); // register the top summary data block pTopSummaryBlock = (TStnTopSummaryBlock*) fAna->RegisterDataBlock("TopSummaryBlock","TStnTopSummaryBlock"); if (! pTopSummaryBlock) { printf(" >>> branch *** %s *** doesn't exist \n","TopSummaryBlock"); fEnabled = 0; } // register data block pTopMetBlock = (TStnMetBlock*) fAna->RegisterDataBlock("TopMetBlock","TStnMetBlock"); //pTopMetBlock = (TStnMetBlock*) fAna->RegisterDataBlock("MetBlock","TStnMetBlock"); if (! pTopMetBlock) { printf(" >>> branch *** %s *** doesn't exist \n","TopMetBlock"); fEnabled = 0; } // register data block pTopTElectronBlock = (TStnElectronBlock*) fAna->RegisterDataBlock("TopTElectronBlock","TStnElectronBlock"); if (! pTopTElectronBlock) { printf(" >>> branch *** %s *** doesn't exist \n","TopTElectronBlock"); fEnabled = 0; } if(IsHistEnable())BookHistograms(); return 0; } //================================== // BeginRun() //================================== int TTopSummary::BeginRun() { return 0; } //================================== // Event(int ientry) //================================== int TTopSummary::Event(int ientry) { //Get needed data blocks //================================ Int_t tscheck = pTopSummaryBlock->GetEntry(ientry); Int_t metcheck = pTopMetBlock->GetEntry(ientry); Int_t elecheck = pTopTElectronBlock->GetEntry(ientry); if (tscheck==0 || metcheck==0 || elecheck==0){ std::cout << " TTopSummary datablock error: tscheck = " << tscheck << std::endl; std::cout << " TTopSummary datablock error: metcheck = " << metcheck << std::endl; std::cout << " TTopSummary datablock error: elecheck = " << elecheck << std::endl; } if (fDebugLevel) { std::cout << endl << "*******************************************" << std::endl; std::cout << endl << " print spew from stntuple data block start " << std::endl; printf(" ---- ientry = %7i\n",ientry); pTopSummaryBlock->Print(); // top summary spew std::cout << endl << "'''''''''''''''''''''''''''''''''''''''''''" << std::endl; pTopMetBlock->Print(); // corrected met spew std::cout << endl << "'''''''''''''''''''''''''''''''''''''''''''" << std::endl; pTopTElectronBlock->Print(); // corrected met spew std::cout << endl << " print spew from stntuple data block finito " << std::endl; std::cout << endl << "*******************************************" << std::endl; } // Init Int_t ecl = pTopSummaryBlock->TopEventClass(); Int_t nte = pTopSummaryBlock->nTightEle(); Int_t nle = pTopSummaryBlock->nLooseEle(); Int_t ntm = pTopSummaryBlock->nTightMuo(); Int_t nlm = pTopSummaryBlock->nLooseMuo(); Int_t ntj = pTopSummaryBlock->nTightJet(); Int_t nlj = pTopSummaryBlock->nLooseJet(); char* jm = pTopSummaryBlock->jetMethod(); Double_t MET = pTopSummaryBlock->metValue(); if(IsDisplayEnable()){ std::cout << endl << "+++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cout << "+++++++++++ insanity check ++++++++++++" << std::endl; std::cout << "+++++++++++++++++++++++++++++++++++++++++++++++" << std::endl; std::cout << " top event class = " << ecl << std::endl; std::cout << " tight e s = " << nte << std::endl; std::cout << " loose e s = " << nle << std::endl; std::cout << " tight mu s = " << ntm << std::endl; std::cout << " loose mu s = " << nlm << std::endl; std::cout << " tight jets = " << ntj << std::endl; std::cout << " loose jets = " << nlj << std::endl; std::cout << " jet clustering method was : " << jm << std::endl; std::cout << " Met is : " << MET << std::endl; //===================== for (Int_t i=0; iFill(MET); } Nevents++; if (ientry%10 == 0) printf("\n Events processed = %d, ientry = %d \n",Nevents,ientry); return 0; } // event() method //================================== // Display() //================================== void TTopSummary::Display(bool ENABLE) { printf("----- Display(): ---- %s\n",GetName()); if(ENABLE){ char name[] = "TTopSummary_met"; char title[] = "met"; TCanvas* testC = (TCanvas*) gROOT->FindObject(name); testC = new TCanvas(name, title,10,10,400,400); testC->Divide(1,1); testC->cd(1); missing->SetFillColor(5); missing->Draw(); testC->Modified(); testC->Update(); } // DISPLAY ENABLE } // display method //================================== // printcuts() //================================== void TTopSummary::printcuts() { printf("\n Current TopSummary Selection Cuts:\n"); printf("\n"); } //================================== // EndJob() //================================== int TTopSummary::EndJob() { printf("----- end job: ---- %s\n",GetName()); // Watch out for histo plot spew! Display( IsHistEnable() && IsDisplayEnable() ); return 0; }