//================================================================== // // TTopCand.cc // // Version 0.0: P. Koehn 5/5/01 // //================================================================== #include "TF1.h" #include #include #include #include "Stntuple/loop/TStnAna.hh" #include "TTopCand.hh" //_____________________________________________________________________________ TTopCand::TTopCand(const char* name, const char* title): TStnModule(name,title){ NJetMax=20; NMuonMax = 5; setJetEtCut(15.0); setJetEtaCut(2.5); setMuonPtCut(10.0); setMuonEmCut(2.0); setMuonHadCut(6.0); setMuonEmHadCut(0.1); setMuonD0Cut(0.03); setMuonZvCut(60.0); setMuonIsoCut(0.1); setMuonTIsoCut(0.1); setCmuDxCut(2.0); setCmpDxCut(5.0); setCmxDxCut(5.0); } //_____________________________________________________________________________ TTopCand::~TTopCand() { } //_____________________________________________________________________________ int TTopCand::BeginJob() { printf("----- Begin job: ---- %s\n",GetName()); // register the jet data block pJetBlock = (TStnJetBlock*) fAna->RegisterDataBlock("JetBlock","TStnJetBlock"); if (! pJetBlock) { printf(" >>> branch *** %s *** doesn't exist \n","JetBlock"); fEnabled = 0; } // register the Electron data block // pEleBlock = (TStnElectronBlock*) fAna->RegisterDataBlock("ElectronBlock","TStnElectronBlock"); // register the Muon data block pMuonBlock = (TStnMuonBlock*) fAna->RegisterDataBlock("MuonBlock","TStnMuonBlock"); if (! pMuonBlock) { printf(" >>> branch *** %s *** doesn't exist \n","MuonBlock"); fEnabled = 0; } return 0; } //_____________________________________________________________________________ int TTopCand::BeginRun() { return 0; } //================================== // Event(int ientry) //================================== int TTopCand::Event(int ientry) { if (fDebugLevel) { printf(" ---- ientry = %7i\n",ientry); } // // Jet Selection //=============== pJetBlock->GetEntry(ientry); int njets = pJetBlock->NJets(); NgoodJet = 0; NotherJet = 0; NJet_10 = 0; NJet_15 = 0; NJet_20 = 0; NJet_25 = 0; for (int i=0; iJet(i); if ( (jet->fEt >= JetEtCut) && (fabs(jet->Momentum()->Eta()) < JetEtaCut) ){ goodjet[NgoodJet] = jet; NgoodJetList[i] = true; NgoodJet++; if(jet->fEt >= 10.0)NJet_10++; if(jet->fEt >= 15.0)NJet_15++; if(jet->fEt >= 20.0)NJet_20++; if(jet->fEt >= 25.0)NJet_25++; } else { otherjet[NotherJet] = jet; NgoodJetList[i] = false; NotherJet++; } } // // Electron Selection //=================== // pEleBlock->GetEntry(ientry); // // Muon Selection //=============== pMuonBlock->GetEntry(ientry); int nmuons = pMuonBlock->NMuons(); TLorentzVector* mom; NgoodMuon = 0; for (int i=0; iMuon(i); mom = muon->Momentum(); muon->DetCode(); mom->Eta(); TVector2::Phi_0_2pi(mom->Phi()); if(mom->Pt() > MuonPtCut && muon->EmEnergy() < MuonEmCut && muon->HadEnergy() < MuonHadCut && (muon->EmEnergy() + muon->HadEnergy()) > MuonEmHadCut && fabs(muon->D0()) < MuonD0Cut && fabs(muon->Zv()) < MuonZvCut ){ goodMuon[NgoodMuon] = muon; NgoodMuonList[i] = true; NgoodMuon++; } else { NgoodMuonList[i] = false; } } return 0; } //================================== // EndJob() //================================== int TTopCand::EndJob() { printf("----- end job: ---- %s\n",GetName()); return 0; }