bool l1menu::triggers::SingleIsoTauJet_v0::apply( const l1menu::L1TriggerDPGEvent& event ) const { const L1Analysis::L1AnalysisDataFormat& analysisDataFormat=event.rawEvent(); const bool* PhysicsBits=event.physicsBits(); bool raw = PhysicsBits[0]; // ZeroBias if (! raw) return false; int n1=0; int Nj = analysisDataFormat.Njet ; for (int ue=0; ue < Nj; ue++) { int bx = analysisDataFormat.Bxjet[ue]; if (bx != 0) continue; bool isIsoTauJet = analysisDataFormat.isoTaujet[ue]; if (! isIsoTauJet) continue; float rank = analysisDataFormat.Etjet[ue]; // the rank of the electron float pt = rank; //CorrectedL1JetPtByGCTregions(analysisDataFormat.Etajet[ue],rank*4.,theL1JetCorrection); float eta = analysisDataFormat.Etajet[ue]; if (eta < regionCut_ || eta > 21.-regionCut_) continue; // eta = 5 - 16 // eta = 5 - 16 if (pt >= threshold1_) n1++; } // end loop over jets bool ok = ( n1 >=1 ); return ok; }
bool l1menu::triggers::HTT_v0::apply( const l1menu::L1TriggerDPGEvent& event ) const { const L1Analysis::L1AnalysisDataFormat& analysisDataFormat=event.rawEvent(); const bool* PhysicsBits=event.physicsBits(); bool raw = PhysicsBits[0]; // ZeroBias if (! raw) return false; float adc = analysisDataFormat.HTT ; float TheHTT = adc; // / 2. ; if (TheHTT < threshold1_) return false; return true; }
bool l1menu::triggers::TkTau_TkMu_v1::apply( const l1menu::L1TriggerDPGEvent& event ) const { const L1Analysis::L1AnalysisDataFormat& analysisDataFormat=event.rawEvent(); const bool* PhysicsBits=event.physicsBits(); bool raw=PhysicsBits[0]; // ZeroBias if( !raw ) return false; bool ok = false; int NTktau=analysisDataFormat.NTktau; int NTkmu=analysisDataFormat.NTkmu; for( int itau=0; itau<NTktau; itau++ ) { int bx=analysisDataFormat.BxTktau.at( itau ); if( bx!=0 ) continue; float pt=analysisDataFormat.EtTktau.at( itau ); float eta = analysisDataFormat.EtaTktau[itau]; if (eta < leg1regionCut_ || eta > 21.-leg1regionCut_) continue; // eta = 5 - 16 // eta = 5 - 16 if( pt>=leg1threshold1_ ) { float tauZvtx = analysisDataFormat.zVtxTktau[itau]; for( int imu=0; imu<NTkmu; imu++ ) { if(fabs(tauZvtx - analysisDataFormat.zVtxTkmu[imu]) < zVtxCut_) { int bx2=analysisDataFormat.BxTkmu.at( imu ); if( bx2!=0 ) continue; float pt2=analysisDataFormat.PtTkmu.at( imu ); float eta2=analysisDataFormat.Etamu.at( imu ); // Commented out to stop unused variable compile warning if (std::fabs(eta2) > etaCut_) continue; int qual=analysisDataFormat.QualTkmu.at( imu ); if( qual<muonQuality_ ) continue; if (pt2 >= leg2threshold1_) ok = true; } } } } return ok; }
bool l1menu::triggers::TkEM_EG_v0::apply( const l1menu::L1TriggerDPGEvent& event ) const { const L1Analysis::L1AnalysisDataFormat& analysisDataFormat=event.rawEvent(); const bool* PhysicsBits=event.physicsBits(); bool raw = PhysicsBits[0]; // ZeroBias if (! raw) return false; bool ok = false; int Neg = analysisDataFormat.Nele; int Nem = analysisDataFormat.NTkem; for (int ue=0; ue < Nem; ue++) { int bx = analysisDataFormat.BxTkem[ue]; if (bx != 0 ) continue; float eta = analysisDataFormat.EtaTkem[ue]; if (eta < leg1regionCut_ || eta > 21.-leg1regionCut_) continue; // eta = 5 - 16 float pt = analysisDataFormat.EtTkem[ue]; // the rank of the electron if (pt >= leg1threshold1_){ for (int uj=0; uj < Neg; uj++) { int bxj = analysisDataFormat.Bxel[uj]; if (bxj != 0) continue; float rankj = analysisDataFormat.Etel[uj]; float ptj = rankj; //CorrectedL1JetPtByGCTregions(analysisDataFormat.Etajet[uj],rank*4.,theL1JetCorrection); if (analysisDataFormat.Etael[uj] < leg2regionCut_ || analysisDataFormat.Etael[uj] > 21.-leg2regionCut_) continue; if (ptj >= leg2threshold1_ && !(analysisDataFormat.Etael[uj]==analysisDataFormat.EtaTkem[ue] && analysisDataFormat.Phiel[uj]==analysisDataFormat.PhiTkem[ue]) ) ok = true; } } // if good TkEle } // end loop over TkEle objects return ok; }
bool l1menu::triggers::SingleEGEta_v0::apply( const l1menu::L1TriggerDPGEvent& event ) const { const L1Analysis::L1AnalysisDataFormat& analysisDataFormat=event.rawEvent(); const bool* PhysicsBits=event.physicsBits(); bool raw = PhysicsBits[0]; // ZeroBias if (! raw) return false; bool ok=false; int Nele = analysisDataFormat.Nele; for (int ue=0; ue < Nele; ue++) { int bx = analysisDataFormat.Bxel[ue]; if (bx != 0) continue; float eta = analysisDataFormat.Etael[ue]; if (eta < regionCut_ || eta > 21.-regionCut_) continue; // eta = 5 - 16 float rank = analysisDataFormat.Etel[ue]; // the rank of the electron float pt = rank ; if (pt >= threshold1_) ok = true; } // end loop over EM objects return ok; }
bool l1menu::triggers::MultiJet_v0::apply( const l1menu::L1TriggerDPGEvent& event ) const { const L1Analysis::L1AnalysisDataFormat& analysisDataFormat=event.rawEvent(); const bool* PhysicsBits=event.physicsBits(); bool raw = PhysicsBits[0]; // ZeroBias if (! raw) return false; int n1=0; int n2=0; int n3=0; int n4=0; int Nj = analysisDataFormat.Njet ; for (int ue=0; ue < Nj; ue++) { int bx = analysisDataFormat.Bxjet[ue]; if (bx != 0) continue; bool isFwdJet = analysisDataFormat.Fwdjet[ue]; if (isFwdJet) continue; bool isTauJet = analysisDataFormat.Taujet[ue]; if (isTauJet) continue; float eta = analysisDataFormat.Etajet[ue]; if (eta < regionCut_ || eta > 21.-regionCut_) continue; float rank = analysisDataFormat.Etjet[ue]; float pt = rank; //CorrectedL1JetPtByGCTregions(analysisDataFormat.Etajet[ue],rank*4.,theL1JetCorrection); if (pt >= threshold1_) n1++; if (pt >= threshold2_) n2++; if (pt >= threshold3_) n3++; if (pt >= threshold4_) n4++; } bool ok = ( n1 >=1 && n2 >= 2 && n3 >= 3 && n4 >= numberOfJets_); return ok; }