//================================================================== // // top_find.C // // Version 0.0: P. Koehn 5/5/01 // //================================================================== { //timer start gROOT->Time(); // Setup the chain of input files. // ------------------------------- TChain* chain = new TChain("STNTUPLE"); chain.Add("/datapc7/Stntuple/montecarlo/zjets/zjets_31802_stntuple.root"); // chain.Add("/home/winer/HighPtElectrons_Stntuple_nonsplit.root_1"); // Instantiate a StnAna object //---------------------------- TStnAna x(chain); // data // Compile required code //----------------------- gSystem->CompileMacro("Geometry.cc","k"); // needed for cal tower geometry gSystem->CompileMacro("TMuoCand.cc","k"); gSystem->CompileMacro("TEleCand.cc","k"); gSystem->CompileMacro("TConvEleCand.cc","k"); gSystem->CompileMacro("TJetCand.cc","k"); gSystem->CompileMacro("TZBosFnd.cc","k"); gSystem->CompileMacro("TTopFindModule.cc","k"); // // Make the output histogram file TFile* HistFile = new TFile("zjets_find.hbk","RECREATE","test file"); // Create pointer to all of the objects //---------------------------------------- cout << ">>> Adding objects <<<" << endl; TConvEleCand* econv = new TConvEleCand(HistFile,"EleConv","EleConv"); TEleCand* ec = new TEleCand(HistFile,"EleC","EleC"); TEleCand* Lec = new TEleCand(HistFile,"EleLoose","EleLoose"); TMuoCand* mc = new TMuoCand(HistFile,"MuoC","MuoC"); TMuoCand* Lmc = new TMuoCand(HistFile,"MuoLoose","MuoLoose"); TJetCand* jc = new TJetCand(HistFile,"JetC","JetC"); TZBosFnd* zf = new TZBosFnd(HistFile,"ZBosFnd","ZBosFnd"); TTopFindModule* tf = new TTopFindModule(HistFile,"TopFind","TopFind"); // // Set the debug levels ec->SetDebugLevel(0); Lec->SetDebugLevel(0); mc->SetDebugLevel(0); Lmc->SetDebugLevel(0); jc->SetDebugLevel(0); zf->SetDebugLevel(0); tf->SetDebugLevel(0); // Setup Cuts for Primary Electron ID // ================================== // Election Et ec->enableEleEtCut(true); ec->setEleEtCut(20.0); // E/P ec->enableEleEPCut(true); ec->setEleEPCut(2.0); // Had/Em ec->enableEleHademCut(true); ec->setEleHademCut(0.05); // Trk-CES Del_X ec->enableEleDelxCut(true); ec->setEleDelxCut(3.0); // Trk-CES Del_Z ec->enableEleDelzCut(true); ec->setEleDelzCut(5.0); // Lshr ec->enableEleLshrCut(false); ec->setEleLshrCut(0.2); // Cal Isol ec->enableEleIsolCut(true); ec->setEleIsolCut(0.3); // Trk Isol ec->enableEleTisolCut(false); ec->setEleTisolCut(0.1); // CES Chi^2 ec->enableEleChisCut(false); ec->setEleChisCut(10.0); // Lepton-Prim Z Vtx ec->enableEleDelZvrtCut(false); ec->setEleDelZvrtCut(5.0); // Z Vtx ec->enableEleZvrtCut(false); ec->setEleZvrtCut(60.0); // Remove Conversions ec->enableEleRemoveConv(false); // Setup Cuts for Loose Electron ID // ================================== // Election Et Lec->enableEleEtCut(true); Lec->setEleEtCut(10.0); // E/P Lec->enableEleEPCut(true); Lec->setEleEPCut(4.0); // Had/Em Lec->enableEleHademCut(true); Lec->setEleHademCut(0.10); // Trk-CES Del_X Lec->enableEleDelxCut(false); Lec->setEleDelxCut(7.0); // Trk-CES Del_Z Lec->enableEleDelzCut(false); Lec->setEleDelzCut(7.0); // Lshr Lec->enableEleLshrCut(false); Lec->setEleLshrCut(0.4); // Cal Isol Lec->enableEleIsolCut(false); Lec->setEleIsolCut(0.25); // Trk Isol Lec->enableEleTisolCut(false); Lec->setEleTisolCut(0.1); // CES Chi^2 Lec->enableEleChisCut(false); Lec->setEleChisCut(20.0); // Lepton-Prim Z Vtx Lec->enableEleDelZvrtCut(false); Lec->setEleDelZvrtCut(5.0); // Z Vtx Lec->enableEleZvrtCut(false); Lec->setEleZvrtCut(60.0); // Remove Conversions Lec->enableEleRemoveConv(false); // Muon candidate selection //=========================== mc->setMuonPtCutEnable(true); mc->setMuonPtCut(20.0); //10. mc->setMuonEmCutEnable(true); mc->setMuonEmCut(2.0); //2.0 mc->setMuonHadCutEnable(true); mc->setMuonHadCut(6.0); //6.0 mc->setMuonEmHadCutEnable(false); mc->setMuonEmHadCut(0.1); //0.1 mc->setMuonD0CutEnable(false); mc->setMuonD0Cut(0.03); //0.03 mc->setMuonZvCutEnable(false); mc->setMuonZvCut(60.0); //60.0 mc->setMuonIsoCutEnable(true); mc->setMuonIsoCut(0.1); //0.10 mc->setMuonTIsoCutEnable(false); mc->setMuonTIsoCut(0.1); //0.10 mc->setCmuDxCutEnable(true); mc->setCmuDxCut(2.0); //2.0 mc->setCmpDxCutEnable(true); mc->setCmpDxCut(5.0); //5.0 mc->setCmxDxCutEnable(true); mc->setCmxDxCut(5.0); //5.0 mc->setNaxslEnable(true); mc->setNaxslCut(3); //3 mc->setNstslEnable(true); mc->setNstslCut(2); //2 mc->setNtotslEnable(true); mc->setNtotslCut(6); //6 // Loose Muon candidate selection //=========================== Lmc->setMuonPtCutEnable(true); Lmc->setMuonPtCut(10.0); //10. Lmc->setMuonEmCutEnable(true); Lmc->setMuonEmCut(4.0); //2.0 Lmc->setMuonHadCutEnable(true); Lmc->setMuonHadCut(10.0); //6.0 Lmc->setMuonEmHadCutEnable(false); Lmc->setMuonEmHadCut(0.1); //0.1 Lmc->setMuonD0CutEnable(false); Lmc->setMuonD0Cut(0.03); //0.03 Lmc->setMuonZvCutEnable(false); Lmc->setMuonZvCut(60.0); //60.0 Lmc->setMuonIsoCutEnable(true); Lmc->setMuonIsoCut(0.25); //0.10 Lmc->setMuonTIsoCutEnable(false); Lmc->setMuonTIsoCut(0.1); //0.10 Lmc->setCmuDxCutEnable(false); Lmc->setCmuDxCut(2.0); //2.0 Lmc->setCmpDxCutEnable(false); Lmc->setCmpDxCut(5.0); //5.0 Lmc->setCmxDxCutEnable(false); Lmc->setCmxDxCut(5.0); //5.0 Lmc->setNaxslEnable(false); Lmc->setNaxslCut(3); //3 Lmc->setNstslEnable(false); Lmc->setNstslCut(2); //2 Lmc->setNtotslEnable(false); Lmc->setNtotslCut(6); //6 // Set the Jet Selection Cuts // ========================== // Et Cut jc->enableJetEtCut(true); jc->setJetEtCut(15.0); // Emf jc->enableJetEmfCut(false); jc->setJetEmfCut(0.8); // Detector Eta jc->enableJetDtetaCut(true); jc->setJetDtetaCut(2.0); // Event Eta jc->enableJetEvetaCut(false); jc->setJetEvetaCut(2.0); // TZeeFnd Module Selection // ======================== // Zveto=1 filter out Z's Zveto=0 no filtering, Zveto=-1 Keep Z's zf->setZveto(-1); // Define window around Z mass zf->setLowMassCut(75.); zf->setHighMassCut(105.); // Topfind Event Selction Cuts // =========================== // #of Leptons tf->enableNumberLeptonCut(true); tf->setNumberLeptonCut(1); // min # jets tf->enableMinNumberJetCut(true); tf->setMinNumberJetCut(0); // Max # jets tf->enableMaxNumberJetCut(false); tf->setMaxNumberJetCut(0); // Missing Et tf->enableMetCut(true); tf->setMetCut(20.0); // // Turn the histograms on tf->enableHist(true); ec->enableEleHist(true); Lec->enableEleHist(true); jc->enableJetHist(true); mc->setHistEnable(true); zf->enableHist(true); // The modules must be added to TStnAna object. x.AddModule(econv); x.AddModule(ec); x.AddModule(Lec); x.AddModule(mc); x.AddModule(Lmc); x.AddModule(zf); x.AddModule(jc); x.AddModule(tf); // This output module saves the events passing a filter to // a NEW Stntuple root file. //---------------------------------------------------------- // TStnOutputModule out("goodjetevents.root"); // x.SetOutputModule(&out); // Run the StnAna object over the root file specified at instantiation //-------------------------------------------------------------------- x.Run(); //make some histos at Endjob() - see TTopFindModule.cc printf("Job Finished.\n"); printf("Output histograms are stored in: %s\n",gFile->GetName()); // // Now close the histogram file HistFile->Write(); HistFile->Close(); //timer start gROOT->Time(); }