#include <L1Trigger/L1ExtraFromDigis/interface/L1ExtraParticleMapProd.h>
Public Member Functions | |
L1ExtraParticleMapProd (const edm::ParameterSet &) | |
virtual void | produce (edm::Event &, const edm::EventSetup &) |
~L1ExtraParticleMapProd () | |
Private Member Functions | |
template<class TCollection> | |
void | addToVectorRefs (const edm::Handle< TCollection > &handle, std::vector< edm::Ref< TCollection > > &vectorRefs) |
void | evaluateDoubleDifferentCaloObjectTrigger (const l1extra::L1EmParticleVectorRef &inputRefs1, const l1extra::L1JetParticleVectorRef &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, l1extra::L1EmParticleVectorRef &outputRefs1, l1extra::L1JetParticleVectorRef &outputRefs2, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
template<class TCollection> | |
void | evaluateDoubleDifferentObjectSameTypeTrigger (const std::vector< edm::Ref< TCollection > > &inputRefs1, const std::vector< edm::Ref< TCollection > > &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, std::vector< edm::Ref< TCollection > > &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
template<class TCollection1, class TCollection2> | |
void | evaluateDoubleDifferentObjectTrigger (const std::vector< edm::Ref< TCollection1 > > &inputRefs1, const std::vector< edm::Ref< TCollection2 > > &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, std::vector< edm::Ref< TCollection1 > > &outputRefs1, std::vector< edm::Ref< TCollection2 > > &outputRefs2, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
void | evaluateDoubleExclusiveIsoEG (const l1extra::L1EmParticleVectorRef &inputRefs1, const l1extra::L1JetParticleVectorRef &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, l1extra::L1EmParticleVectorRef &outputRefs1, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
template<class TCollection1, class TCollection2> | |
void | evaluateDoublePlusSingleObjectTrigger (const std::vector< edm::Ref< TCollection1 > > &inputRefs1, const std::vector< edm::Ref< TCollection2 > > &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, std::vector< edm::Ref< TCollection1 > > &outputRefs1, std::vector< edm::Ref< TCollection2 > > &outputRefs2, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
template<class TCollection> | |
void | evaluateDoubleSameObjectTrigger (const std::vector< edm::Ref< TCollection > > &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection > > &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos, bool combinedWithGlobalObject=false) |
void | evaluateForwardRapidityGap (const l1extra::L1JetParticleVectorRef &inputRefs, const double &etThreshold, bool &decision) |
void | evaluateJetGapJetTrigger (const l1extra::L1JetParticleVectorRef &inputRefs, const double &etThreshold, bool &decision, l1extra::L1JetParticleVectorRef &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
template<class TCollection> | |
void | evaluateQuadSameObjectTrigger (const std::vector< edm::Ref< TCollection > > &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection > > &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
template<class TCollection> | |
void | evaluateSingleObjectTrigger (const std::vector< edm::Ref< TCollection > > &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection > > &outputRefs) |
template<class TCollection> | |
void | evaluateTripleSameObjectTrigger (const std::vector< edm::Ref< TCollection > > &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection > > &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos) |
Private Attributes | |
edm::InputTag | cenJetSource_ |
std::pair< double, double > | doubleThresholds_ [l1extra::L1ParticleMap::kNumOfL1TriggerTypes] |
edm::InputTag | etMissSource_ |
edm::InputTag | forJetSource_ |
edm::InputTag | isoEmSource_ |
edm::InputTag | muonSource_ |
edm::InputTag | nonIsoEmSource_ |
int | prescaleCounters_ [l1extra::L1ParticleMap::kNumOfL1TriggerTypes] |
int | prescales_ [l1extra::L1ParticleMap::kNumOfL1TriggerTypes] |
double | singleThresholds_ [l1extra::L1ParticleMap::kNumOfL1TriggerTypes] |
edm::InputTag | tauJetSource_ |
L1Trigger/L1ExtraParticleMapProd/src/L1ExtraParticleMapProd.cc.
Description: producer of L1ParticleMap objects from GT emulator object maps.
Definition at line 39 of file L1ExtraParticleMapProd.h.
L1ExtraParticleMapProd::L1ExtraParticleMapProd | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
Definition at line 42 of file L1ExtraParticleMapProd.cc.
References doubleThresholds_, edm::ParameterSet::getParameter(), i, prescaleCounters_, prescales_, and singleThresholds_.
00044 : muonSource_( iConfig.getParameter< edm::InputTag >( 00045 "muonSource" ) ), 00046 isoEmSource_( iConfig.getParameter< edm::InputTag >( 00047 "isolatedEmSource" ) ), 00048 nonIsoEmSource_( iConfig.getParameter< edm::InputTag >( 00049 "nonIsolatedEmSource" ) ), 00050 cenJetSource_( iConfig.getParameter< edm::InputTag >( 00051 "centralJetSource" ) ), 00052 forJetSource_( iConfig.getParameter< edm::InputTag >( 00053 "forwardJetSource" ) ), 00054 tauJetSource_( iConfig.getParameter< edm::InputTag >( 00055 "tauJetSource" ) ), 00056 etMissSource_( iConfig.getParameter< edm::InputTag >( 00057 "etMissSource" ) ) 00058 { 00059 using namespace l1extra ; 00060 00061 //register your products 00062 produces< L1ParticleMapCollection >() ; 00063 produces< L1GlobalTriggerReadoutRecord >(); 00064 00065 //now do what ever other initialization is needed 00066 for( int i = 0 ; i < L1ParticleMap::kNumOfL1TriggerTypes ; ++i ) 00067 { 00068 singleThresholds_[ i ] = 0. ; 00069 doubleThresholds_[ i ].first = 0. ; 00070 doubleThresholds_[ i ].second = 0. ; 00071 prescaleCounters_[ i ] = 1 ; 00072 prescales_[ i ] = 1 ; 00073 } 00074 00075 // Single object triggers, 5 thresholds each 00076 00077 singleThresholds_[ L1ParticleMap::kSingleMu3 ] = 00078 iConfig.getParameter< double >( "L1_SingleMu3_thresh" ) ; 00079 prescales_[ L1ParticleMap::kSingleMu3 ] = 00080 iConfig.getParameter< int >( "L1_SingleMu3_prescale" ) ; 00081 singleThresholds_[ L1ParticleMap::kSingleMu5 ] = 00082 iConfig.getParameter< double >( "L1_SingleMu5_thresh" ) ; 00083 prescales_[ L1ParticleMap::kSingleMu5 ] = 00084 iConfig.getParameter< int >( "L1_SingleMu5_prescale" ) ; 00085 singleThresholds_[ L1ParticleMap::kSingleMu7 ] = 00086 iConfig.getParameter< double >( "L1_SingleMu7_thresh" ) ; 00087 prescales_[ L1ParticleMap::kSingleMu7 ] = 00088 iConfig.getParameter< int >( "L1_SingleMu7_prescale" ) ; 00089 singleThresholds_[ L1ParticleMap::kSingleMu10 ] = 00090 iConfig.getParameter< double >( "L1_SingleMu10_thresh" ) ; 00091 prescales_[ L1ParticleMap::kSingleMu10 ] = 00092 iConfig.getParameter< int >( "L1_SingleMu10_prescale" ) ; 00093 singleThresholds_[ L1ParticleMap::kSingleMu14 ] = 00094 iConfig.getParameter< double >( "L1_SingleMu14_thresh" ) ; 00095 prescales_[ L1ParticleMap::kSingleMu14 ] = 00096 iConfig.getParameter< int >( "L1_SingleMu14_prescale" ) ; 00097 singleThresholds_[ L1ParticleMap::kSingleMu20 ] = 00098 iConfig.getParameter< double >( "L1_SingleMu20_thresh" ) ; 00099 prescales_[ L1ParticleMap::kSingleMu20 ] = 00100 iConfig.getParameter< int >( "L1_SingleMu20_prescale" ) ; 00101 singleThresholds_[ L1ParticleMap::kSingleMu25 ] = 00102 iConfig.getParameter< double >( "L1_SingleMu25_thresh" ) ; 00103 prescales_[ L1ParticleMap::kSingleMu25 ] = 00104 iConfig.getParameter< int >( "L1_SingleMu25_prescale" ) ; 00105 00106 singleThresholds_[ L1ParticleMap::kSingleIsoEG5 ] = 00107 iConfig.getParameter< double >( "L1_SingleIsoEG5_thresh" ) ; 00108 prescales_[ L1ParticleMap::kSingleIsoEG5 ] = 00109 iConfig.getParameter< int >( "L1_SingleIsoEG5_prescale" ) ; 00110 singleThresholds_[ L1ParticleMap::kSingleIsoEG8 ] = 00111 iConfig.getParameter< double >( "L1_SingleIsoEG8_thresh" ) ; 00112 prescales_[ L1ParticleMap::kSingleIsoEG8 ] = 00113 iConfig.getParameter< int >( "L1_SingleIsoEG8_prescale" ) ; 00114 singleThresholds_[ L1ParticleMap::kSingleIsoEG10 ] = 00115 iConfig.getParameter< double >( "L1_SingleIsoEG10_thresh" ) ; 00116 prescales_[ L1ParticleMap::kSingleIsoEG10 ] = 00117 iConfig.getParameter< int >( "L1_SingleIsoEG10_prescale" ) ; 00118 singleThresholds_[ L1ParticleMap::kSingleIsoEG12 ] = 00119 iConfig.getParameter< double >( "L1_SingleIsoEG12_thresh" ) ; 00120 prescales_[ L1ParticleMap::kSingleIsoEG12 ] = 00121 iConfig.getParameter< int >( "L1_SingleIsoEG12_prescale" ) ; 00122 singleThresholds_[ L1ParticleMap::kSingleIsoEG15 ] = 00123 iConfig.getParameter< double >( "L1_SingleIsoEG15_thresh" ) ; 00124 prescales_[ L1ParticleMap::kSingleIsoEG15 ] = 00125 iConfig.getParameter< int >( "L1_SingleIsoEG15_prescale" ) ; 00126 singleThresholds_[ L1ParticleMap::kSingleIsoEG20 ] = 00127 iConfig.getParameter< double >( "L1_SingleIsoEG20_thresh" ) ; 00128 prescales_[ L1ParticleMap::kSingleIsoEG20 ] = 00129 iConfig.getParameter< int >( "L1_SingleIsoEG20_prescale" ) ; 00130 singleThresholds_[ L1ParticleMap::kSingleIsoEG25 ] = 00131 iConfig.getParameter< double >( "L1_SingleIsoEG25_thresh" ) ; 00132 prescales_[ L1ParticleMap::kSingleIsoEG25 ] = 00133 iConfig.getParameter< int >( "L1_SingleIsoEG25_prescale" ) ; 00134 00135 singleThresholds_[ L1ParticleMap::kSingleEG5 ] = 00136 iConfig.getParameter< double >( "L1_SingleEG5_thresh" ) ; 00137 prescales_[ L1ParticleMap::kSingleEG5 ] = 00138 iConfig.getParameter< int >( "L1_SingleEG5_prescale" ) ; 00139 singleThresholds_[ L1ParticleMap::kSingleEG8 ] = 00140 iConfig.getParameter< double >( "L1_SingleEG8_thresh" ) ; 00141 prescales_[ L1ParticleMap::kSingleEG8 ] = 00142 iConfig.getParameter< int >( "L1_SingleEG8_prescale" ) ; 00143 singleThresholds_[ L1ParticleMap::kSingleEG10 ] = 00144 iConfig.getParameter< double >( "L1_SingleEG10_thresh" ) ; 00145 prescales_[ L1ParticleMap::kSingleEG10 ] = 00146 iConfig.getParameter< int >( "L1_SingleEG10_prescale" ) ; 00147 singleThresholds_[ L1ParticleMap::kSingleEG12 ] = 00148 iConfig.getParameter< double >( "L1_SingleEG12_thresh" ) ; 00149 prescales_[ L1ParticleMap::kSingleEG12 ] = 00150 iConfig.getParameter< int >( "L1_SingleEG12_prescale" ) ; 00151 singleThresholds_[ L1ParticleMap::kSingleEG15 ] = 00152 iConfig.getParameter< double >( "L1_SingleEG15_thresh" ) ; 00153 prescales_[ L1ParticleMap::kSingleEG15 ] = 00154 iConfig.getParameter< int >( "L1_SingleEG15_prescale" ) ; 00155 singleThresholds_[ L1ParticleMap::kSingleEG20 ] = 00156 iConfig.getParameter< double >( "L1_SingleEG20_thresh" ) ; 00157 prescales_[ L1ParticleMap::kSingleEG20 ] = 00158 iConfig.getParameter< int >( "L1_SingleEG20_prescale" ) ; 00159 singleThresholds_[ L1ParticleMap::kSingleEG25 ] = 00160 iConfig.getParameter< double >( "L1_SingleEG25_thresh" ) ; 00161 prescales_[ L1ParticleMap::kSingleEG25 ] = 00162 iConfig.getParameter< int >( "L1_SingleEG25_prescale" ) ; 00163 00164 singleThresholds_[ L1ParticleMap::kSingleJet15 ] = 00165 iConfig.getParameter< double >( "L1_SingleJet15_thresh" ) ; 00166 prescales_[ L1ParticleMap::kSingleJet15 ] = 00167 iConfig.getParameter< int >( "L1_SingleJet15_prescale" ) ; 00168 singleThresholds_[ L1ParticleMap::kSingleJet20 ] = 00169 iConfig.getParameter< double >( "L1_SingleJet20_thresh" ) ; 00170 prescales_[ L1ParticleMap::kSingleJet20 ] = 00171 iConfig.getParameter< int >( "L1_SingleJet20_prescale" ) ; 00172 singleThresholds_[ L1ParticleMap::kSingleJet30 ] = 00173 iConfig.getParameter< double >( "L1_SingleJet30_thresh" ) ; 00174 prescales_[ L1ParticleMap::kSingleJet30 ] = 00175 iConfig.getParameter< int >( "L1_SingleJet30_prescale" ) ; 00176 singleThresholds_[ L1ParticleMap::kSingleJet50 ] = 00177 iConfig.getParameter< double >( "L1_SingleJet50_thresh" ) ; 00178 prescales_[ L1ParticleMap::kSingleJet50 ] = 00179 iConfig.getParameter< int >( "L1_SingleJet50_prescale" ) ; 00180 singleThresholds_[ L1ParticleMap::kSingleJet70 ] = 00181 iConfig.getParameter< double >( "L1_SingleJet70_thresh" ) ; 00182 prescales_[ L1ParticleMap::kSingleJet70 ] = 00183 iConfig.getParameter< int >( "L1_SingleJet70_prescale" ) ; 00184 singleThresholds_[ L1ParticleMap::kSingleJet100 ] = 00185 iConfig.getParameter< double >( "L1_SingleJet100_thresh" ) ; 00186 prescales_[ L1ParticleMap::kSingleJet100 ] = 00187 iConfig.getParameter< int >( "L1_SingleJet100_prescale" ) ; 00188 singleThresholds_[ L1ParticleMap::kSingleJet150 ] = 00189 iConfig.getParameter< double >( "L1_SingleJet150_thresh" ) ; 00190 prescales_[ L1ParticleMap::kSingleJet150 ] = 00191 iConfig.getParameter< int >( "L1_SingleJet150_prescale" ) ; 00192 singleThresholds_[ L1ParticleMap::kSingleJet200 ] = 00193 iConfig.getParameter< double >( "L1_SingleJet200_thresh" ) ; 00194 prescales_[ L1ParticleMap::kSingleJet200 ] = 00195 iConfig.getParameter< int >( "L1_SingleJet200_prescale" ) ; 00196 00197 singleThresholds_[ L1ParticleMap::kSingleTauJet10 ] = 00198 iConfig.getParameter< double >( "L1_SingleTauJet10_thresh" ) ; 00199 prescales_[ L1ParticleMap::kSingleTauJet10 ] = 00200 iConfig.getParameter< int >( "L1_SingleTauJet10_prescale" ) ; 00201 singleThresholds_[ L1ParticleMap::kSingleTauJet20 ] = 00202 iConfig.getParameter< double >( "L1_SingleTauJet20_thresh" ) ; 00203 prescales_[ L1ParticleMap::kSingleTauJet20 ] = 00204 iConfig.getParameter< int >( "L1_SingleTauJet20_prescale" ) ; 00205 singleThresholds_[ L1ParticleMap::kSingleTauJet30 ] = 00206 iConfig.getParameter< double >( "L1_SingleTauJet30_thresh" ) ; 00207 prescales_[ L1ParticleMap::kSingleTauJet30 ] = 00208 iConfig.getParameter< int >( "L1_SingleTauJet30_prescale" ) ; 00209 singleThresholds_[ L1ParticleMap::kSingleTauJet35 ] = 00210 iConfig.getParameter< double >( "L1_SingleTauJet35_thresh" ) ; 00211 prescales_[ L1ParticleMap::kSingleTauJet35 ] = 00212 iConfig.getParameter< int >( "L1_SingleTauJet35_prescale" ) ; 00213 singleThresholds_[ L1ParticleMap::kSingleTauJet40 ] = 00214 iConfig.getParameter< double >( "L1_SingleTauJet40_thresh" ) ; 00215 prescales_[ L1ParticleMap::kSingleTauJet40 ] = 00216 iConfig.getParameter< int >( "L1_SingleTauJet40_prescale" ) ; 00217 singleThresholds_[ L1ParticleMap::kSingleTauJet60 ] = 00218 iConfig.getParameter< double >( "L1_SingleTauJet60_thresh" ) ; 00219 prescales_[ L1ParticleMap::kSingleTauJet60 ] = 00220 iConfig.getParameter< int >( "L1_SingleTauJet60_prescale" ) ; 00221 singleThresholds_[ L1ParticleMap::kSingleTauJet80 ] = 00222 iConfig.getParameter< double >( "L1_SingleTauJet80_thresh" ) ; 00223 prescales_[ L1ParticleMap::kSingleTauJet80 ] = 00224 iConfig.getParameter< int >( "L1_SingleTauJet80_prescale" ) ; 00225 singleThresholds_[ L1ParticleMap::kSingleTauJet100 ] = 00226 iConfig.getParameter< double >( "L1_SingleTauJet100_thresh" ) ; 00227 prescales_[ L1ParticleMap::kSingleTauJet100 ] = 00228 iConfig.getParameter< int >( "L1_SingleTauJet100_prescale" ) ; 00229 00230 singleThresholds_[ L1ParticleMap::kHTT100 ] = 00231 iConfig.getParameter< double >( "L1_HTT100_thresh" ) ; 00232 prescales_[ L1ParticleMap::kHTT100 ] = 00233 iConfig.getParameter< int >( "L1_HTT100_prescale" ) ; 00234 singleThresholds_[ L1ParticleMap::kHTT200 ] = 00235 iConfig.getParameter< double >( "L1_HTT200_thresh" ) ; 00236 prescales_[ L1ParticleMap::kHTT200 ] = 00237 iConfig.getParameter< int >( "L1_HTT200_prescale" ) ; 00238 singleThresholds_[ L1ParticleMap::kHTT250 ] = 00239 iConfig.getParameter< double >( "L1_HTT250_thresh" ) ; 00240 prescales_[ L1ParticleMap::kHTT250 ] = 00241 iConfig.getParameter< int >( "L1_HTT250_prescale" ) ; 00242 singleThresholds_[ L1ParticleMap::kHTT300 ] = 00243 iConfig.getParameter< double >( "L1_HTT300_thresh" ) ; 00244 prescales_[ L1ParticleMap::kHTT300 ] = 00245 iConfig.getParameter< int >( "L1_HTT300_prescale" ) ; 00246 singleThresholds_[ L1ParticleMap::kHTT400 ] = 00247 iConfig.getParameter< double >( "L1_HTT400_thresh" ) ; 00248 prescales_[ L1ParticleMap::kHTT400 ] = 00249 iConfig.getParameter< int >( "L1_HTT400_prescale" ) ; 00250 singleThresholds_[ L1ParticleMap::kHTT500 ] = 00251 iConfig.getParameter< double >( "L1_HTT500_thresh" ) ; 00252 prescales_[ L1ParticleMap::kHTT500 ] = 00253 iConfig.getParameter< int >( "L1_HTT500_prescale" ) ; 00254 00255 singleThresholds_[ L1ParticleMap::kETM10 ] = 00256 iConfig.getParameter< double >( "L1_ETM10_thresh" ) ; 00257 prescales_[ L1ParticleMap::kETM10 ] = 00258 iConfig.getParameter< int >( "L1_ETM10_prescale" ) ; 00259 singleThresholds_[ L1ParticleMap::kETM15 ] = 00260 iConfig.getParameter< double >( "L1_ETM15_thresh" ) ; 00261 prescales_[ L1ParticleMap::kETM15 ] = 00262 iConfig.getParameter< int >( "L1_ETM15_prescale" ) ; 00263 singleThresholds_[ L1ParticleMap::kETM20 ] = 00264 iConfig.getParameter< double >( "L1_ETM20_thresh" ) ; 00265 prescales_[ L1ParticleMap::kETM20 ] = 00266 iConfig.getParameter< int >( "L1_ETM20_prescale" ) ; 00267 singleThresholds_[ L1ParticleMap::kETM30 ] = 00268 iConfig.getParameter< double >( "L1_ETM30_thresh" ) ; 00269 prescales_[ L1ParticleMap::kETM30 ] = 00270 iConfig.getParameter< int >( "L1_ETM30_prescale" ) ; 00271 singleThresholds_[ L1ParticleMap::kETM40 ] = 00272 iConfig.getParameter< double >( "L1_ETM40_thresh" ) ; 00273 prescales_[ L1ParticleMap::kETM40 ] = 00274 iConfig.getParameter< int >( "L1_ETM40_prescale" ) ; 00275 singleThresholds_[ L1ParticleMap::kETM50 ] = 00276 iConfig.getParameter< double >( "L1_ETM50_thresh" ) ; 00277 prescales_[ L1ParticleMap::kETM50 ] = 00278 iConfig.getParameter< int >( "L1_ETM50_prescale" ) ; 00279 singleThresholds_[ L1ParticleMap::kETM60 ] = 00280 iConfig.getParameter< double >( "L1_ETM60_thresh" ) ; 00281 prescales_[ L1ParticleMap::kETM60 ] = 00282 iConfig.getParameter< int >( "L1_ETM60_prescale" ) ; 00283 00284 singleThresholds_[ L1ParticleMap::kETT60 ] = 00285 iConfig.getParameter< double >( "L1_ETT60_thresh" ) ; 00286 prescales_[ L1ParticleMap::kETT60 ] = 00287 iConfig.getParameter< int >( "L1_ETT60_prescale" ) ; 00288 00289 // AA triggers 00290 00291 singleThresholds_[ L1ParticleMap::kDoubleMu3 ] = 00292 iConfig.getParameter< double >( "L1_DoubleMu3_thresh" ) ; 00293 prescales_[ L1ParticleMap::kDoubleMu3 ] = 00294 iConfig.getParameter< int >( "L1_DoubleMu3_prescale" ) ; 00295 00296 singleThresholds_[ L1ParticleMap::kDoubleIsoEG8 ] = 00297 iConfig.getParameter< double >( "L1_DoubleIsoEG8_thresh" ) ; 00298 prescales_[ L1ParticleMap::kDoubleIsoEG8 ] = 00299 iConfig.getParameter< int >( "L1_DoubleIsoEG8_prescale" ) ; 00300 singleThresholds_[ L1ParticleMap::kDoubleIsoEG10 ] = 00301 iConfig.getParameter< double >( "L1_DoubleIsoEG10_thresh" ) ; 00302 prescales_[ L1ParticleMap::kDoubleIsoEG10 ] = 00303 iConfig.getParameter< int >( "L1_DoubleIsoEG10_prescale" ) ; 00304 00305 singleThresholds_[ L1ParticleMap::kDoubleEG5 ] = 00306 iConfig.getParameter< double >( "L1_DoubleEG5_thresh" ) ; 00307 prescales_[ L1ParticleMap::kDoubleEG5 ] = 00308 iConfig.getParameter< int >( "L1_DoubleEG5_prescale" ) ; 00309 singleThresholds_[ L1ParticleMap::kDoubleEG10 ] = 00310 iConfig.getParameter< double >( "L1_DoubleEG10_thresh" ) ; 00311 prescales_[ L1ParticleMap::kDoubleEG10 ] = 00312 iConfig.getParameter< int >( "L1_DoubleEG10_prescale" ) ; 00313 singleThresholds_[ L1ParticleMap::kDoubleEG15 ] = 00314 iConfig.getParameter< double >( "L1_DoubleEG15_thresh" ) ; 00315 prescales_[ L1ParticleMap::kDoubleEG15 ] = 00316 iConfig.getParameter< int >( "L1_DoubleEG15_prescale" ) ; 00317 00318 singleThresholds_[ L1ParticleMap::kDoubleJet70 ] = 00319 iConfig.getParameter< double >( "L1_DoubleJet70_thresh" ) ; 00320 prescales_[ L1ParticleMap::kDoubleJet70 ] = 00321 iConfig.getParameter< int >( "L1_DoubleJet70_prescale" ) ; 00322 singleThresholds_[ L1ParticleMap::kDoubleJet100 ] = 00323 iConfig.getParameter< double >( "L1_DoubleJet100_thresh" ) ; 00324 prescales_[ L1ParticleMap::kDoubleJet100 ] = 00325 iConfig.getParameter< int >( "L1_DoubleJet100_prescale" ) ; 00326 00327 singleThresholds_[ L1ParticleMap::kDoubleTauJet20 ] = 00328 iConfig.getParameter< double >( "L1_DoubleTauJet20_thresh" ) ; 00329 prescales_[ L1ParticleMap::kDoubleTauJet20 ] = 00330 iConfig.getParameter< int >( "L1_DoubleTauJet20_prescale" ) ; 00331 singleThresholds_[ L1ParticleMap::kDoubleTauJet30 ] = 00332 iConfig.getParameter< double >( "L1_DoubleTauJet30_thresh" ) ; 00333 prescales_[ L1ParticleMap::kDoubleTauJet30 ] = 00334 iConfig.getParameter< int >( "L1_DoubleTauJet30_prescale" ) ; 00335 singleThresholds_[ L1ParticleMap::kDoubleTauJet35 ] = 00336 iConfig.getParameter< double >( "L1_DoubleTauJet35_thresh" ) ; 00337 prescales_[ L1ParticleMap::kDoubleTauJet35 ] = 00338 iConfig.getParameter< int >( "L1_DoubleTauJet35_prescale" ) ; 00339 singleThresholds_[ L1ParticleMap::kDoubleTauJet40 ] = 00340 iConfig.getParameter< double >( "L1_DoubleTauJet40_thresh" ) ; 00341 prescales_[ L1ParticleMap::kDoubleTauJet40 ] = 00342 iConfig.getParameter< int >( "L1_DoubleTauJet40_prescale" ) ; 00343 00344 // AB triggers 00345 00346 doubleThresholds_[ L1ParticleMap::kMu3_IsoEG5 ].first = 00347 iConfig.getParameter< double >( "L1_Mu3_IsoEG5_thresh1" ) ; 00348 doubleThresholds_[ L1ParticleMap::kMu3_IsoEG5 ].second = 00349 iConfig.getParameter< double >( "L1_Mu3_IsoEG5_thresh2" ) ; 00350 prescales_[ L1ParticleMap::kMu3_IsoEG5 ] = 00351 iConfig.getParameter< int >( "L1_Mu3_IsoEG5_prescale" ) ; 00352 doubleThresholds_[ L1ParticleMap::kMu5_IsoEG10 ].first = 00353 iConfig.getParameter< double >( "L1_Mu5_IsoEG10_thresh1" ) ; 00354 doubleThresholds_[ L1ParticleMap::kMu5_IsoEG10 ].second = 00355 iConfig.getParameter< double >( "L1_Mu5_IsoEG10_thresh2" ) ; 00356 prescales_[ L1ParticleMap::kMu5_IsoEG10 ] = 00357 iConfig.getParameter< int >( "L1_Mu5_IsoEG10_prescale" ) ; 00358 00359 doubleThresholds_[ L1ParticleMap::kMu3_EG12 ].first = 00360 iConfig.getParameter< double >( "L1_Mu3_EG12_thresh1" ) ; 00361 doubleThresholds_[ L1ParticleMap::kMu3_EG12 ].second = 00362 iConfig.getParameter< double >( "L1_Mu3_EG12_thresh2" ) ; 00363 prescales_[ L1ParticleMap::kMu3_EG12 ] = 00364 iConfig.getParameter< int >( "L1_Mu3_EG12_prescale" ) ; 00365 00366 doubleThresholds_[ L1ParticleMap::kMu3_Jet15 ].first = 00367 iConfig.getParameter< double >( "L1_Mu3_Jet15_thresh1" ) ; 00368 doubleThresholds_[ L1ParticleMap::kMu3_Jet15 ].second = 00369 iConfig.getParameter< double >( "L1_Mu3_Jet15_thresh2" ) ; 00370 prescales_[ L1ParticleMap::kMu3_Jet15 ] = 00371 iConfig.getParameter< int >( "L1_Mu3_Jet15_prescale" ) ; 00372 doubleThresholds_[ L1ParticleMap::kMu5_Jet15 ].first = 00373 iConfig.getParameter< double >( "L1_Mu5_Jet15_thresh1" ) ; 00374 doubleThresholds_[ L1ParticleMap::kMu5_Jet15 ].second = 00375 iConfig.getParameter< double >( "L1_Mu5_Jet15_thresh2" ) ; 00376 prescales_[ L1ParticleMap::kMu5_Jet15 ] = 00377 iConfig.getParameter< int >( "L1_Mu5_Jet15_prescale" ) ; 00378 doubleThresholds_[ L1ParticleMap::kMu3_Jet70 ].first = 00379 iConfig.getParameter< double >( "L1_Mu3_Jet70_thresh1" ) ; 00380 doubleThresholds_[ L1ParticleMap::kMu3_Jet70 ].second = 00381 iConfig.getParameter< double >( "L1_Mu3_Jet70_thresh2" ) ; 00382 prescales_[ L1ParticleMap::kMu3_Jet70 ] = 00383 iConfig.getParameter< int >( "L1_Mu3_Jet70_prescale" ) ; 00384 doubleThresholds_[ L1ParticleMap::kMu5_Jet20 ].first = 00385 iConfig.getParameter< double >( "L1_Mu5_Jet20_thresh1" ) ; 00386 doubleThresholds_[ L1ParticleMap::kMu5_Jet20 ].second = 00387 iConfig.getParameter< double >( "L1_Mu5_Jet20_thresh2" ) ; 00388 prescales_[ L1ParticleMap::kMu5_Jet20 ] = 00389 iConfig.getParameter< int >( "L1_Mu5_Jet20_prescale" ) ; 00390 00391 doubleThresholds_[ L1ParticleMap::kMu5_TauJet20 ].first = 00392 iConfig.getParameter< double >( "L1_Mu5_TauJet20_thresh1" ) ; 00393 doubleThresholds_[ L1ParticleMap::kMu5_TauJet20 ].second = 00394 iConfig.getParameter< double >( "L1_Mu5_TauJet20_thresh2" ) ; 00395 prescales_[ L1ParticleMap::kMu5_TauJet20 ] = 00396 iConfig.getParameter< int >( "L1_Mu5_TauJet20_prescale" ) ; 00397 doubleThresholds_[ L1ParticleMap::kMu5_TauJet30 ].first = 00398 iConfig.getParameter< double >( "L1_Mu5_TauJet30_thresh1" ) ; 00399 doubleThresholds_[ L1ParticleMap::kMu5_TauJet30 ].second = 00400 iConfig.getParameter< double >( "L1_Mu5_TauJet30_thresh2" ) ; 00401 prescales_[ L1ParticleMap::kMu5_TauJet30 ] = 00402 iConfig.getParameter< int >( "L1_Mu5_TauJet30_prescale" ) ; 00403 00404 doubleThresholds_[ L1ParticleMap::kIsoEG10_EG10 ].first = 00405 iConfig.getParameter< double >( "L1_IsoEG10_EG10_thresh1" ) ; 00406 doubleThresholds_[ L1ParticleMap::kIsoEG10_EG10 ].second = 00407 iConfig.getParameter< double >( "L1_IsoEG10_EG10_thresh2" ) ; 00408 prescales_[ L1ParticleMap::kIsoEG10_EG10 ] = 00409 iConfig.getParameter< int >( "L1_IsoEG10_EG10_prescale" ) ; 00410 00411 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet15 ].first = 00412 iConfig.getParameter< double >( "L1_IsoEG10_Jet15_thresh1" ) ; 00413 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet15 ].second = 00414 iConfig.getParameter< double >( "L1_IsoEG10_Jet15_thresh2" ) ; 00415 prescales_[ L1ParticleMap::kIsoEG10_Jet15 ] = 00416 iConfig.getParameter< int >( "L1_IsoEG10_Jet15_prescale" ) ; 00417 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet30 ].first = 00418 iConfig.getParameter< double >( "L1_IsoEG10_Jet30_thresh1" ) ; 00419 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet30 ].second = 00420 iConfig.getParameter< double >( "L1_IsoEG10_Jet30_thresh2" ) ; 00421 prescales_[ L1ParticleMap::kIsoEG10_Jet30 ] = 00422 iConfig.getParameter< int >( "L1_IsoEG10_Jet30_prescale" ) ; 00423 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet20 ].first = 00424 iConfig.getParameter< double >( "L1_IsoEG10_Jet20_thresh1" ) ; 00425 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet20 ].second = 00426 iConfig.getParameter< double >( "L1_IsoEG10_Jet20_thresh2" ) ; 00427 prescales_[ L1ParticleMap::kIsoEG10_Jet20 ] = 00428 iConfig.getParameter< int >( "L1_IsoEG10_Jet20_prescale" ) ; 00429 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet70 ].first = 00430 iConfig.getParameter< double >( "L1_IsoEG10_Jet70_thresh1" ) ; 00431 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet70 ].second = 00432 iConfig.getParameter< double >( "L1_IsoEG10_Jet70_thresh2" ) ; 00433 prescales_[ L1ParticleMap::kIsoEG10_Jet70 ] = 00434 iConfig.getParameter< int >( "L1_IsoEG10_Jet70_prescale" ) ; 00435 00436 doubleThresholds_[ L1ParticleMap::kIsoEG10_TauJet20 ].first = 00437 iConfig.getParameter< double >( "L1_IsoEG10_TauJet20_thresh1" ) ; 00438 doubleThresholds_[ L1ParticleMap::kIsoEG10_TauJet20 ].second = 00439 iConfig.getParameter< double >( "L1_IsoEG10_TauJet20_thresh2" ) ; 00440 prescales_[ L1ParticleMap::kIsoEG10_TauJet20 ] = 00441 iConfig.getParameter< int >( "L1_IsoEG10_TauJet20_prescale" ) ; 00442 doubleThresholds_[ L1ParticleMap::kIsoEG10_TauJet30 ].first = 00443 iConfig.getParameter< double >( "L1_IsoEG10_TauJet30_thresh1" ) ; 00444 doubleThresholds_[ L1ParticleMap::kIsoEG10_TauJet30 ].second = 00445 iConfig.getParameter< double >( "L1_IsoEG10_TauJet30_thresh2" ) ; 00446 prescales_[ L1ParticleMap::kIsoEG10_TauJet30 ] = 00447 iConfig.getParameter< int >( "L1_IsoEG10_TauJet30_prescale" ) ; 00448 00449 doubleThresholds_[ L1ParticleMap::kEG10_Jet15 ].first = 00450 iConfig.getParameter< double >( "L1_EG10_Jet15_thresh1" ) ; 00451 doubleThresholds_[ L1ParticleMap::kEG10_Jet15 ].second = 00452 iConfig.getParameter< double >( "L1_EG10_Jet15_thresh2" ) ; 00453 prescales_[ L1ParticleMap::kEG10_Jet15 ] = 00454 iConfig.getParameter< int >( "L1_EG10_Jet15_prescale" ) ; 00455 doubleThresholds_[ L1ParticleMap::kEG12_Jet20 ].first = 00456 iConfig.getParameter< double >( "L1_EG12_Jet20_thresh1" ) ; 00457 doubleThresholds_[ L1ParticleMap::kEG12_Jet20 ].second = 00458 iConfig.getParameter< double >( "L1_EG12_Jet20_thresh2" ) ; 00459 prescales_[ L1ParticleMap::kEG12_Jet20 ] = 00460 iConfig.getParameter< int >( "L1_EG12_Jet20_prescale" ) ; 00461 doubleThresholds_[ L1ParticleMap::kEG12_Jet70 ].first = 00462 iConfig.getParameter< double >( "L1_EG12_Jet70_thresh1" ) ; 00463 doubleThresholds_[ L1ParticleMap::kEG12_Jet70 ].second = 00464 iConfig.getParameter< double >( "L1_EG12_Jet70_thresh2" ) ; 00465 prescales_[ L1ParticleMap::kEG12_Jet70 ] = 00466 iConfig.getParameter< int >( "L1_EG12_Jet70_prescale" ) ; 00467 00468 doubleThresholds_[ L1ParticleMap::kEG12_TauJet40 ].first = 00469 iConfig.getParameter< double >( "L1_EG12_TauJet40_thresh1" ) ; 00470 doubleThresholds_[ L1ParticleMap::kEG12_TauJet40 ].second = 00471 iConfig.getParameter< double >( "L1_EG12_TauJet40_thresh2" ) ; 00472 prescales_[ L1ParticleMap::kEG12_TauJet40 ] = 00473 iConfig.getParameter< int >( "L1_EG12_TauJet40_prescale" ) ; 00474 00475 doubleThresholds_[ L1ParticleMap::kJet70_TauJet40 ].first = 00476 iConfig.getParameter< double >( "L1_Jet70_TauJet40_thresh1" ) ; 00477 doubleThresholds_[ L1ParticleMap::kJet70_TauJet40 ].second = 00478 iConfig.getParameter< double >( "L1_Jet70_TauJet40_thresh2" ) ; 00479 prescales_[ L1ParticleMap::kJet70_TauJet40 ] = 00480 iConfig.getParameter< int >( "L1_Jet70_TauJet40_prescale" ) ; 00481 00482 doubleThresholds_[ L1ParticleMap::kMu3_HTT200 ].first = 00483 iConfig.getParameter< double >( "L1_Mu3_HTT200_thresh1" ) ; 00484 doubleThresholds_[ L1ParticleMap::kMu3_HTT200 ].second = 00485 iConfig.getParameter< double >( "L1_Mu3_HTT200_thresh2" ) ; 00486 prescales_[ L1ParticleMap::kMu3_HTT200 ] = 00487 iConfig.getParameter< int >( "L1_Mu3_HTT200_prescale" ) ; 00488 doubleThresholds_[ L1ParticleMap::kIsoEG10_HTT200 ].first = 00489 iConfig.getParameter< double >( "L1_IsoEG10_HTT200_thresh1" ) ; 00490 doubleThresholds_[ L1ParticleMap::kIsoEG10_HTT200 ].second = 00491 iConfig.getParameter< double >( "L1_IsoEG10_HTT200_thresh2" ) ; 00492 prescales_[ L1ParticleMap::kIsoEG10_HTT200 ] = 00493 iConfig.getParameter< int >( "L1_IsoEG10_HTT200_prescale" ) ; 00494 doubleThresholds_[ L1ParticleMap::kEG12_HTT200 ].first = 00495 iConfig.getParameter< double >( "L1_EG12_HTT200_thresh1" ) ; 00496 doubleThresholds_[ L1ParticleMap::kEG12_HTT200 ].second = 00497 iConfig.getParameter< double >( "L1_EG12_HTT200_thresh2" ) ; 00498 prescales_[ L1ParticleMap::kEG12_HTT200 ] = 00499 iConfig.getParameter< int >( "L1_EG12_HTT200_prescale" ) ; 00500 doubleThresholds_[ L1ParticleMap::kJet70_HTT200 ].first = 00501 iConfig.getParameter< double >( "L1_Jet70_HTT200_thresh1" ) ; 00502 doubleThresholds_[ L1ParticleMap::kJet70_HTT200 ].second = 00503 iConfig.getParameter< double >( "L1_Jet70_HTT200_thresh2" ) ; 00504 prescales_[ L1ParticleMap::kJet70_HTT200 ] = 00505 iConfig.getParameter< int >( "L1_Jet70_HTT200_prescale" ) ; 00506 doubleThresholds_[ L1ParticleMap::kTauJet40_HTT200 ].first = 00507 iConfig.getParameter< double >( "L1_TauJet40_HTT200_thresh1" ) ; 00508 doubleThresholds_[ L1ParticleMap::kTauJet40_HTT200 ].second = 00509 iConfig.getParameter< double >( "L1_TauJet40_HTT200_thresh2" ) ; 00510 prescales_[ L1ParticleMap::kTauJet40_HTT200 ] = 00511 iConfig.getParameter< int >( "L1_TauJet40_HTT200_prescale" ) ; 00512 00513 doubleThresholds_[ L1ParticleMap::kMu3_ETM30 ].first = 00514 iConfig.getParameter< double >( "L1_Mu3_ETM30_thresh1" ) ; 00515 doubleThresholds_[ L1ParticleMap::kMu3_ETM30 ].second = 00516 iConfig.getParameter< double >( "L1_Mu3_ETM30_thresh2" ) ; 00517 prescales_[ L1ParticleMap::kMu3_ETM30 ] = 00518 iConfig.getParameter< int >( "L1_Mu3_ETM30_prescale" ) ; 00519 doubleThresholds_[ L1ParticleMap::kIsoEG10_ETM30 ].first = 00520 iConfig.getParameter< double >( "L1_IsoEG10_ETM30_thresh1" ) ; 00521 doubleThresholds_[ L1ParticleMap::kIsoEG10_ETM30 ].second = 00522 iConfig.getParameter< double >( "L1_IsoEG10_ETM30_thresh2" ) ; 00523 prescales_[ L1ParticleMap::kIsoEG10_ETM30 ] = 00524 iConfig.getParameter< int >( "L1_IsoEG10_ETM30_prescale" ) ; 00525 doubleThresholds_[ L1ParticleMap::kEG12_ETM30 ].first = 00526 iConfig.getParameter< double >( "L1_EG12_ETM30_thresh1" ) ; 00527 doubleThresholds_[ L1ParticleMap::kEG12_ETM30 ].second = 00528 iConfig.getParameter< double >( "L1_EG12_ETM30_thresh2" ) ; 00529 prescales_[ L1ParticleMap::kEG12_ETM30 ] = 00530 iConfig.getParameter< int >( "L1_EG12_ETM30_prescale" ) ; 00531 doubleThresholds_[ L1ParticleMap::kJet70_ETM40 ].first = 00532 iConfig.getParameter< double >( "L1_Jet70_ETM40_thresh1" ) ; 00533 doubleThresholds_[ L1ParticleMap::kJet70_ETM40 ].second = 00534 iConfig.getParameter< double >( "L1_Jet70_ETM40_thresh2" ) ; 00535 prescales_[ L1ParticleMap::kJet70_ETM40 ] = 00536 iConfig.getParameter< int >( "L1_Jet70_ETM40_prescale" ) ; 00537 00538 doubleThresholds_[ L1ParticleMap::kTauJet20_ETM20 ].first = 00539 iConfig.getParameter< double >( "L1_TauJet20_ETM20_thresh1" ) ; 00540 doubleThresholds_[ L1ParticleMap::kTauJet20_ETM20 ].second = 00541 iConfig.getParameter< double >( "L1_TauJet20_ETM20_thresh2" ) ; 00542 prescales_[ L1ParticleMap::kTauJet20_ETM20 ] = 00543 iConfig.getParameter< int >( "L1_TauJet20_ETM20_prescale" ) ; 00544 doubleThresholds_[ L1ParticleMap::kTauJet30_ETM30 ].first = 00545 iConfig.getParameter< double >( "L1_TauJet30_ETM30_thresh1" ) ; 00546 doubleThresholds_[ L1ParticleMap::kTauJet30_ETM30 ].second = 00547 iConfig.getParameter< double >( "L1_TauJet30_ETM30_thresh2" ) ; 00548 prescales_[ L1ParticleMap::kTauJet30_ETM30 ] = 00549 iConfig.getParameter< int >( "L1_TauJet30_ETM30_prescale" ) ; 00550 doubleThresholds_[ L1ParticleMap::kTauJet30_ETM40 ].first = 00551 iConfig.getParameter< double >( "L1_TauJet30_ETM40_thresh1" ) ; 00552 doubleThresholds_[ L1ParticleMap::kTauJet30_ETM40 ].second = 00553 iConfig.getParameter< double >( "L1_TauJet30_ETM40_thresh2" ) ; 00554 prescales_[ L1ParticleMap::kTauJet30_ETM40 ] = 00555 iConfig.getParameter< int >( "L1_TauJet30_ETM40_prescale" ) ; 00556 00557 doubleThresholds_[ L1ParticleMap::kHTT100_ETM30 ].first = 00558 iConfig.getParameter< double >( "L1_HTT100_ETM30_thresh1" ) ; 00559 doubleThresholds_[ L1ParticleMap::kHTT100_ETM30 ].second = 00560 iConfig.getParameter< double >( "L1_HTT100_ETM30_thresh2" ) ; 00561 prescales_[ L1ParticleMap::kHTT100_ETM30 ] = 00562 iConfig.getParameter< int >( "L1_HTT100_ETM30_prescale" ) ; 00563 00564 // AAA triggers 00565 00566 singleThresholds_[ L1ParticleMap::kTripleMu3 ] = 00567 iConfig.getParameter< double >( "L1_TripleMu3_thresh" ) ; 00568 prescales_[ L1ParticleMap::kTripleMu3 ] = 00569 iConfig.getParameter< int >( "L1_TripleMu3_prescale" ) ; 00570 singleThresholds_[ L1ParticleMap::kTripleIsoEG5 ] = 00571 iConfig.getParameter< double >( "L1_TripleIsoEG5_thresh" ) ; 00572 prescales_[ L1ParticleMap::kTripleIsoEG5 ] = 00573 iConfig.getParameter< int >( "L1_TripleIsoEG5_prescale" ) ; 00574 singleThresholds_[ L1ParticleMap::kTripleEG10 ] = 00575 iConfig.getParameter< double >( "L1_TripleEG10_thresh" ) ; 00576 prescales_[ L1ParticleMap::kTripleEG10 ] = 00577 iConfig.getParameter< int >( "L1_TripleEG10_prescale" ) ; 00578 singleThresholds_[ L1ParticleMap::kTripleJet50 ] = 00579 iConfig.getParameter< double >( "L1_TripleJet50_thresh" ) ; 00580 prescales_[ L1ParticleMap::kTripleJet50 ] = 00581 iConfig.getParameter< int >( "L1_TripleJet50_prescale" ) ; 00582 singleThresholds_[ L1ParticleMap::kTripleTauJet40 ] = 00583 iConfig.getParameter< double >( "L1_TripleTauJet40_thresh" ) ; 00584 prescales_[ L1ParticleMap::kTripleTauJet40 ] = 00585 iConfig.getParameter< int >( "L1_TripleTauJet40_prescale" ) ; 00586 00587 // AAB triggers 00588 00589 doubleThresholds_[ L1ParticleMap::kDoubleMu3_IsoEG5 ].first = 00590 iConfig.getParameter< double >( "L1_DoubleMu3_IsoEG5_thresh1" ) ; 00591 doubleThresholds_[ L1ParticleMap::kDoubleMu3_IsoEG5 ].second = 00592 iConfig.getParameter< double >( "L1_DoubleMu3_IsoEG5_thresh2" ) ; 00593 prescales_[ L1ParticleMap::kDoubleMu3_IsoEG5 ] = 00594 iConfig.getParameter< int >( "L1_DoubleMu3_IsoEG5_prescale" ) ; 00595 doubleThresholds_[ L1ParticleMap::kDoubleMu3_EG10 ].first = 00596 iConfig.getParameter< double >( "L1_DoubleMu3_EG10_thresh1" ) ; 00597 doubleThresholds_[ L1ParticleMap::kDoubleMu3_EG10 ].second = 00598 iConfig.getParameter< double >( "L1_DoubleMu3_EG10_thresh2" ) ; 00599 prescales_[ L1ParticleMap::kDoubleMu3_EG10 ] = 00600 iConfig.getParameter< int >( "L1_DoubleMu3_EG10_prescale" ) ; 00601 doubleThresholds_[ L1ParticleMap::kDoubleIsoEG5_Mu3 ].first = 00602 iConfig.getParameter< double >( "L1_DoubleIsoEG5_Mu3_thresh1" ) ; 00603 doubleThresholds_[ L1ParticleMap::kDoubleIsoEG5_Mu3 ].second = 00604 iConfig.getParameter< double >( "L1_DoubleIsoEG5_Mu3_thresh2" ) ; 00605 prescales_[ L1ParticleMap::kDoubleIsoEG5_Mu3 ] = 00606 iConfig.getParameter< int >( "L1_DoubleIsoEG5_Mu3_prescale" ) ; 00607 doubleThresholds_[ L1ParticleMap::kDoubleEG10_Mu3 ].first = 00608 iConfig.getParameter< double >( "L1_DoubleEG10_Mu3_thresh1" ) ; 00609 doubleThresholds_[ L1ParticleMap::kDoubleEG10_Mu3 ].second = 00610 iConfig.getParameter< double >( "L1_DoubleEG10_Mu3_thresh2" ) ; 00611 prescales_[ L1ParticleMap::kDoubleEG10_Mu3 ] = 00612 iConfig.getParameter< int >( "L1_DoubleEG10_Mu3_prescale" ) ; 00613 00614 doubleThresholds_[ L1ParticleMap::kDoubleMu3_HTT200 ].first = 00615 iConfig.getParameter< double >( "L1_DoubleMu3_HTT200_thresh1" ) ; 00616 doubleThresholds_[ L1ParticleMap::kDoubleMu3_HTT200 ].second = 00617 iConfig.getParameter< double >( "L1_DoubleMu3_HTT200_thresh2" ) ; 00618 prescales_[ L1ParticleMap::kDoubleMu3_HTT200 ] = 00619 iConfig.getParameter< int >( "L1_DoubleMu3_HTT200_prescale" ) ; 00620 doubleThresholds_[ L1ParticleMap::kDoubleIsoEG5_HTT200 ].first = 00621 iConfig.getParameter< double >( "L1_DoubleIsoEG5_HTT200_thresh1" ) ; 00622 doubleThresholds_[ L1ParticleMap::kDoubleIsoEG5_HTT200 ].second = 00623 iConfig.getParameter< double >( "L1_DoubleIsoEG5_HTT200_thresh2" ) ; 00624 prescales_[ L1ParticleMap::kDoubleIsoEG5_HTT200 ] = 00625 iConfig.getParameter< int >( "L1_DoubleIsoEG5_HTT200_prescale" ) ; 00626 doubleThresholds_[ L1ParticleMap::kDoubleEG10_HTT200 ].first = 00627 iConfig.getParameter< double >( "L1_DoubleEG10_HTT200_thresh1" ) ; 00628 doubleThresholds_[ L1ParticleMap::kDoubleEG10_HTT200 ].second = 00629 iConfig.getParameter< double >( "L1_DoubleEG10_HTT200_thresh2" ) ; 00630 prescales_[ L1ParticleMap::kDoubleEG10_HTT200 ] = 00631 iConfig.getParameter< int >( "L1_DoubleEG10_HTT200_prescale" ) ; 00632 doubleThresholds_[ L1ParticleMap::kDoubleJet50_HTT200 ].first = 00633 iConfig.getParameter< double >( "L1_DoubleJet50_HTT200_thresh1" ) ; 00634 doubleThresholds_[ L1ParticleMap::kDoubleJet50_HTT200 ].second = 00635 iConfig.getParameter< double >( "L1_DoubleJet50_HTT200_thresh2" ) ; 00636 prescales_[ L1ParticleMap::kDoubleJet50_HTT200 ] = 00637 iConfig.getParameter< int >( "L1_DoubleJet50_HTT200_prescale" ) ; 00638 doubleThresholds_[ L1ParticleMap::kDoubleTauJet40_HTT200 ].first = 00639 iConfig.getParameter< double >( "L1_DoubleTauJet40_HTT200_thresh1" ) ; 00640 doubleThresholds_[ L1ParticleMap::kDoubleTauJet40_HTT200 ].second = 00641 iConfig.getParameter< double >( "L1_DoubleTauJet40_HTT200_thresh2" ) ; 00642 prescales_[ L1ParticleMap::kDoubleTauJet40_HTT200 ] = 00643 iConfig.getParameter< int >( "L1_DoubleTauJet40_HTT200_prescale" ) ; 00644 00645 doubleThresholds_[ L1ParticleMap::kDoubleMu3_ETM20 ].first = 00646 iConfig.getParameter< double >( "L1_DoubleMu3_ETM20_thresh1" ) ; 00647 doubleThresholds_[ L1ParticleMap::kDoubleMu3_ETM20 ].second = 00648 iConfig.getParameter< double >( "L1_DoubleMu3_ETM20_thresh2" ) ; 00649 prescales_[ L1ParticleMap::kDoubleMu3_ETM20 ] = 00650 iConfig.getParameter< int >( "L1_DoubleMu3_ETM20_prescale" ) ; 00651 doubleThresholds_[ L1ParticleMap::kDoubleIsoEG5_ETM20 ].first = 00652 iConfig.getParameter< double >( "L1_DoubleIsoEG5_ETM20_thresh1" ) ; 00653 doubleThresholds_[ L1ParticleMap::kDoubleIsoEG5_ETM20 ].second = 00654 iConfig.getParameter< double >( "L1_DoubleIsoEG5_ETM20_thresh2" ) ; 00655 prescales_[ L1ParticleMap::kDoubleIsoEG5_ETM20 ] = 00656 iConfig.getParameter< int >( "L1_DoubleIsoEG5_ETM20_prescale" ) ; 00657 doubleThresholds_[ L1ParticleMap::kDoubleEG10_ETM20 ].first = 00658 iConfig.getParameter< double >( "L1_DoubleEG10_ETM20_thresh1" ) ; 00659 doubleThresholds_[ L1ParticleMap::kDoubleEG10_ETM20 ].second = 00660 iConfig.getParameter< double >( "L1_DoubleEG10_ETM20_thresh2" ) ; 00661 prescales_[ L1ParticleMap::kDoubleEG10_ETM20 ] = 00662 iConfig.getParameter< int >( "L1_DoubleEG10_ETM20_prescale" ) ; 00663 doubleThresholds_[ L1ParticleMap::kDoubleJet50_ETM20 ].first = 00664 iConfig.getParameter< double >( "L1_DoubleJet50_ETM20_thresh1" ) ; 00665 doubleThresholds_[ L1ParticleMap::kDoubleJet50_ETM20 ].second = 00666 iConfig.getParameter< double >( "L1_DoubleJet50_ETM20_thresh2" ) ; 00667 prescales_[ L1ParticleMap::kDoubleJet50_ETM20 ] = 00668 iConfig.getParameter< int >( "L1_DoubleJet50_ETM20_prescale" ) ; 00669 doubleThresholds_[ L1ParticleMap::kDoubleTauJet40_ETM20 ].first = 00670 iConfig.getParameter< double >( "L1_DoubleTauJet40_ETM20_thresh1" ) ; 00671 doubleThresholds_[ L1ParticleMap::kDoubleTauJet40_ETM20 ].second = 00672 iConfig.getParameter< double >( "L1_DoubleTauJet40_ETM20_thresh2" ) ; 00673 prescales_[ L1ParticleMap::kDoubleTauJet40_ETM20 ] = 00674 iConfig.getParameter< int >( "L1_DoubleTauJet40_ETM20_prescale" ) ; 00675 00676 singleThresholds_[ L1ParticleMap::kQuadJet30 ] = 00677 iConfig.getParameter< double >( "L1_QuadJet30_thresh" ) ; 00678 prescales_[ L1ParticleMap::kQuadJet30 ] = 00679 iConfig.getParameter< int >( "L1_QuadJet30_prescale" ) ; 00680 00681 // Diffractive triggers 00682 doubleThresholds_[ L1ParticleMap::kExclusiveDoubleIsoEG4 ].first = 00683 iConfig.getParameter< double >( "L1_ExclusiveDoubleIsoEG4_thresh1" ); 00684 doubleThresholds_[ L1ParticleMap::kExclusiveDoubleIsoEG4 ].second = 00685 iConfig.getParameter< double >( "L1_ExclusiveDoubleIsoEG4_thresh2" ); // for jet rejection 00686 prescales_[ L1ParticleMap::kExclusiveDoubleIsoEG4 ] = 00687 iConfig.getParameter< int >( "L1_ExclusiveDoubleIsoEG4_prescale" ) ; 00688 singleThresholds_[ L1ParticleMap::kExclusiveDoubleJet60 ] = 00689 iConfig.getParameter< double >( "L1_ExclusiveDoubleJet60_thresh" ); 00690 prescales_[ L1ParticleMap::kExclusiveDoubleJet60 ] = 00691 iConfig.getParameter< int >( "L1_ExclusiveDoubleJet60_prescale" ) ; 00692 singleThresholds_[ L1ParticleMap::kExclusiveJet25_Gap_Jet25 ] = 00693 iConfig.getParameter< double >( "L1_ExclusiveJet25_Gap_Jet25_thresh" ); 00694 prescales_[ L1ParticleMap::kExclusiveJet25_Gap_Jet25 ] = 00695 iConfig.getParameter< int >( "L1_ExclusiveJet25_Gap_Jet25_prescale" ) ; 00696 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet20_ForJet10 ].first = 00697 iConfig.getParameter< double >( "L1_IsoEG10_Jet20_ForJet10_thresh1" ) ; 00698 doubleThresholds_[ L1ParticleMap::kIsoEG10_Jet20_ForJet10 ].second = 00699 iConfig.getParameter< double >( "L1_IsoEG10_Jet20_ForJet10_thresh2" ) ; 00700 singleThresholds_[ L1ParticleMap::kIsoEG10_Jet20_ForJet10 ] = 00701 iConfig.getParameter< double >( "L1_IsoEG10_Jet20_ForJet10_thresh3" ) ; 00702 prescales_[ L1ParticleMap::kIsoEG10_Jet20_ForJet10 ] = 00703 iConfig.getParameter< int >( "L1_IsoEG10_Jet20_ForJet10_prescale" ) ; 00704 00705 prescales_[ L1ParticleMap::kMinBias_HTT10 ] = 00706 iConfig.getParameter< int >( "L1_MinBias_HTT10_prescale" ) ; 00707 prescales_[ L1ParticleMap::kZeroBias ] = 00708 iConfig.getParameter< int >( "L1_ZeroBias_prescale" ) ; 00709 00710 // // Print trigger table in Twiki table format. 00711 // std::cout << "| *Trigger Index* | *Trigger Name* | *E<sub>T</sub> Threshold (!GeV)* | *Prescale* |" 00712 // << std::endl ; 00713 00714 // for( int i = 0 ; i < L1ParticleMap::kNumOfL1TriggerTypes ; ++i ) 00715 // { 00716 // std::cout 00717 // << "| " 00718 // << i 00719 // << " | " ; 00720 // if( prescales_[ i ] == 999999999 ) std::cout << "<strike>" ; 00721 // std::cout 00722 // << L1ParticleMap::triggerName( ( L1ParticleMap::L1TriggerType ) i ) ; 00723 // if( prescales_[ i ] == 999999999 ) std::cout << "</strike>" ; 00724 // std::cout << " | " ; 00725 00726 // if( singleThresholds_[ i ] > 0 ) 00727 // { 00728 // if( doubleThresholds_[ i ].first > 0 ) 00729 // { 00730 // std::cout << doubleThresholds_[ i ].first << ", " 00731 // << doubleThresholds_[ i ].second << ", " ; 00732 // } 00733 00734 // std::cout << singleThresholds_[ i ] ; 00735 // } 00736 // else if( doubleThresholds_[ i ].first > 0 ) 00737 // { 00738 // std::cout << doubleThresholds_[ i ].first << ", " 00739 // << doubleThresholds_[ i ].second ; 00740 // } 00741 // else 00742 // { 00743 // std::cout << "---" ; 00744 // } 00745 00746 // std::cout << " | " ; 00747 // if( prescales_[ i ] != 999999999 ) std::cout << prescales_[ i ] ; 00748 // std::cout << " |" 00749 // << std::endl ; 00750 // } 00751 }
L1ExtraParticleMapProd::~L1ExtraParticleMapProd | ( | ) |
Definition at line 754 of file L1ExtraParticleMapProd.cc.
00755 { 00756 // do anything here that needs to be done at desctruction time 00757 // (e.g. close files, deallocate resources etc.) 00758 }
void L1ExtraParticleMapProd::addToVectorRefs | ( | const edm::Handle< TCollection > & | handle, | |
std::vector< edm::Ref< TCollection > > & | vectorRefs | |||
) | [inline, private] |
Definition at line 1894 of file L1ExtraParticleMapProd.cc.
References i.
Referenced by produce().
01897 { 01898 for( size_t i = 0 ; i < handle->size() ; ++i ) 01899 { 01900 vectorRefs.push_back( edm::Ref< TCollection >( handle, i ) ) ; 01901 } 01902 }
void L1ExtraParticleMapProd::evaluateDoubleDifferentCaloObjectTrigger | ( | const l1extra::L1EmParticleVectorRef & | inputRefs1, | |
const l1extra::L1JetParticleVectorRef & | inputRefs2, | |||
const double & | etThreshold1, | |||
const double & | etThreshold2, | |||
bool & | decision, | |||
l1extra::L1EmParticleVectorRef & | outputRefs1, | |||
l1extra::L1JetParticleVectorRef & | outputRefs2, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [private] |
Definition at line 2420 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, kDefault, and true.
Referenced by produce().
02429 { 02430 for( size_t i = 0 ; i < inputRefs1.size() ; ++i ) 02431 { 02432 const l1extra::L1EmParticleRef& refi = inputRefs1[ i ] ; 02433 if( refi.get()->et() >= etThreshold1 ) 02434 { 02435 for( size_t j = 0 ; j < inputRefs2.size() ; ++j ) 02436 { 02437 const l1extra::L1JetParticleRef& refj = inputRefs2[ j ] ; 02438 02439 // Check for identical region only if both HW objects are non-null. 02440 if( refj.get()->et() >= etThreshold2 && 02441 ( refi.get()->gctEmCand() == 0 || 02442 refj.get()->gctJetCand() == 0 || 02443 refi.get()->gctEmCand()->regionId() != 02444 refj.get()->gctJetCand()->regionId() ) ) 02445 { 02446 decision = true ; 02447 02448 // If the two objects are already in their respective lists, 02449 // find their indices. 02450 int iInList = kDefault ; 02451 for( size_t iout = 0 ; iout < outputRefs1.size() ; ++iout ) 02452 { 02453 if( refi == outputRefs1[ iout ] ) 02454 { 02455 iInList = iout ; 02456 } 02457 } 02458 02459 int jInList = kDefault ; 02460 for( size_t jout = 0 ; jout < outputRefs2.size() ; ++jout ) 02461 { 02462 if( refj == outputRefs2[ jout ] ) 02463 { 02464 jInList = jout ; 02465 } 02466 } 02467 02468 // If either object is not in the list, add it, and 02469 // record its index. 02470 if( iInList == kDefault ) 02471 { 02472 iInList = outputRefs1.size() ; 02473 outputRefs1.push_back( refi ) ; 02474 } 02475 02476 if( jInList == kDefault ) 02477 { 02478 jInList = outputRefs2.size() ; 02479 outputRefs2.push_back( refj ) ; 02480 } 02481 02482 // Record this object combination. 02483 l1extra::L1ParticleMap::L1IndexCombo combo ; 02484 combo.push_back( iInList ) ; 02485 combo.push_back( jInList ) ; 02486 combos.push_back( combo ) ; 02487 } 02488 } 02489 } 02490 } 02491 }
void L1ExtraParticleMapProd::evaluateDoubleDifferentObjectSameTypeTrigger | ( | const std::vector< edm::Ref< TCollection > > & | inputRefs1, | |
const std::vector< edm::Ref< TCollection > > & | inputRefs2, | |||
const double & | etThreshold1, | |||
const double & | etThreshold2, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection > > & | outputRefs, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [inline, private] |
Definition at line 2351 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, kDefault, and true.
Referenced by produce().
02359 { 02360 for( size_t i = 0 ; i < inputRefs1.size() ; ++i ) 02361 { 02362 const edm::Ref< TCollection >& refi = inputRefs1[ i ] ; 02363 if( refi.get()->et() >= etThreshold1 ) 02364 { 02365 for( size_t j = 0 ; j < inputRefs2.size() ; ++j ) 02366 { 02367 const edm::Ref< TCollection >& refj = inputRefs2[ j ] ; 02368 02369 if( refj.get()->et() >= etThreshold2 && 02370 refi != refj ) 02371 { 02372 decision = true ; 02373 02374 // If the two objects are already in their respective lists, 02375 // find their indices. 02376 int iInList = kDefault ; 02377 for( size_t iout = 0 ; iout < outputRefs.size() ; ++iout ) 02378 { 02379 if( refi == outputRefs[ iout ] ) 02380 { 02381 iInList = iout ; 02382 } 02383 } 02384 02385 int jInList = kDefault ; 02386 for( size_t jout = 0 ; jout < outputRefs.size() ; ++jout ) 02387 { 02388 if( refj == outputRefs[ jout ] ) 02389 { 02390 jInList = jout ; 02391 } 02392 } 02393 02394 // If either object is not in the list, add it, and 02395 // record its index. 02396 if( iInList == kDefault ) 02397 { 02398 iInList = outputRefs.size() ; 02399 outputRefs.push_back( refi ) ; 02400 } 02401 02402 if( jInList == kDefault ) 02403 { 02404 jInList = outputRefs.size() ; 02405 outputRefs.push_back( refj ) ; 02406 } 02407 02408 // Record this object combination. 02409 l1extra::L1ParticleMap::L1IndexCombo combo ; 02410 combo.push_back( iInList ) ; 02411 combo.push_back( jInList ) ; 02412 combos.push_back( combo ) ; 02413 } 02414 } 02415 } 02416 } 02417 }
void L1ExtraParticleMapProd::evaluateDoubleDifferentObjectTrigger | ( | const std::vector< edm::Ref< TCollection1 > > & | inputRefs1, | |
const std::vector< edm::Ref< TCollection2 > > & | inputRefs2, | |||
const double & | etThreshold1, | |||
const double & | etThreshold2, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection1 > > & | outputRefs1, | |||
std::vector< edm::Ref< TCollection2 > > & | outputRefs2, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [inline, private] |
Definition at line 2280 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, kDefault, and true.
Referenced by produce().
02289 { 02290 for( size_t i = 0 ; i < inputRefs1.size() ; ++i ) 02291 { 02292 const edm::Ref< TCollection1 >& refi = inputRefs1[ i ] ; 02293 if( refi.get()->et() >= etThreshold1 ) 02294 { 02295 for( size_t j = 0 ; j < inputRefs2.size() ; ++j ) 02296 { 02297 const edm::Ref< TCollection2 >& refj = inputRefs2[ j ] ; 02298 02299 if( refj.get()->et() >= etThreshold2 ) 02300 { 02301 decision = true ; 02302 02303 // If the two objects are already in their respective lists, 02304 // find their indices. 02305 int iInList = kDefault ; 02306 for( size_t iout = 0 ; iout < outputRefs1.size() ; ++iout ) 02307 { 02308 if( refi == outputRefs1[ iout ] ) 02309 { 02310 iInList = iout ; 02311 } 02312 } 02313 02314 int jInList = kDefault ; 02315 for( size_t jout = 0 ; jout < outputRefs2.size() ; ++jout ) 02316 { 02317 if( refj == outputRefs2[ jout ] ) 02318 { 02319 jInList = jout ; 02320 } 02321 } 02322 02323 // If either object is not in the list, add it, and 02324 // record its index. 02325 if( iInList == kDefault ) 02326 { 02327 iInList = outputRefs1.size() ; 02328 outputRefs1.push_back( refi ) ; 02329 } 02330 02331 if( jInList == kDefault ) 02332 { 02333 jInList = outputRefs2.size() ; 02334 outputRefs2.push_back( refj ) ; 02335 } 02336 02337 // Record this object combination. 02338 l1extra::L1ParticleMap::L1IndexCombo combo ; 02339 combo.push_back( iInList ) ; 02340 combo.push_back( jInList ) ; 02341 combos.push_back( combo ) ; 02342 } 02343 } 02344 } 02345 } 02346 }
void L1ExtraParticleMapProd::evaluateDoubleExclusiveIsoEG | ( | const l1extra::L1EmParticleVectorRef & | inputRefs1, | |
const l1extra::L1JetParticleVectorRef & | inputRefs2, | |||
const double & | etThreshold1, | |||
const double & | etThreshold2, | |||
bool & | decision, | |||
l1extra::L1EmParticleVectorRef & | outputRefs1, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [private] |
Definition at line 2598 of file L1ExtraParticleMapProd.cc.
References evaluateDoubleSameObjectTrigger(), and j.
Referenced by produce().
02606 { 02607 if ( inputRefs1.size() ==2 ) 02608 { // 2 iso EG 02609 decision=true; 02610 if (inputRefs2.size()>0) 02611 { // should veto if there are jets, with pt>thresh 02612 for( size_t j = 0 ; j < inputRefs2.size() ; ++j ) 02613 { 02614 if(inputRefs2[j].get()->gctJetCand()->regionId() == 02615 inputRefs1[0].get()->gctEmCand()->regionId())continue; 02616 if(inputRefs2[j].get()->gctJetCand()->regionId() == 02617 inputRefs1[1].get()->gctEmCand()->regionId())continue; 02618 if(inputRefs2[j].get()->et( )> etThreshold2 ) { 02619 decision=false; break; } 02620 // break : for a faster algorithm 02621 } 02622 } 02623 if(decision) 02624 { // threshold evaluation for the Exclusive double isoEG 02625 decision = false; 02626 evaluateDoubleSameObjectTrigger( inputRefs1, 02627 etThreshold1, 02628 decision, 02629 outputRefs1, 02630 combos ) ; 02631 } 02632 } 02633 }
void L1ExtraParticleMapProd::evaluateDoublePlusSingleObjectTrigger | ( | const std::vector< edm::Ref< TCollection1 > > & | inputRefs1, | |
const std::vector< edm::Ref< TCollection2 > > & | inputRefs2, | |||
const double & | etThreshold1, | |||
const double & | etThreshold2, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection1 > > & | outputRefs1, | |||
std::vector< edm::Ref< TCollection2 > > & | outputRefs2, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [inline, private] |
Definition at line 2078 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, k, kDefault, and true.
Referenced by produce().
02087 { 02088 // Use i+1 < inputRefs.size() instead of i < inputRefs.size()-1 02089 // because i is unsigned, and if size() is 0, then RHS undefined. 02090 for( size_t i = 0 ; i+1 < inputRefs1.size() ; ++i ) 02091 { 02092 const edm::Ref< TCollection1 >& refi = inputRefs1[ i ] ; 02093 if( refi.get()->et() >= etThreshold1 ) 02094 { 02095 for( size_t j = i+1 ; j < inputRefs1.size() ; ++j ) 02096 { 02097 const edm::Ref< TCollection1 >& refj = inputRefs1[ j ] ; 02098 if( refj.get()->et() >= etThreshold1 ) 02099 { 02100 for( size_t k = 0 ; k < inputRefs2.size() ; ++k ) 02101 { 02102 const edm::Ref< TCollection2 >& refk = inputRefs2[ k ] ; 02103 if( refk.get()->et() >= etThreshold2 ) 02104 { 02105 decision = true ; 02106 02107 // If the three objects are already in the list, find 02108 // their indices. 02109 int iInList = kDefault ; 02110 int jInList = kDefault ; 02111 02112 for( size_t iout = 0 ; 02113 iout < outputRefs1.size() ; ++iout ) 02114 { 02115 if( refi == outputRefs1[ iout ] ) 02116 { 02117 iInList = iout ; 02118 } 02119 02120 if( refj == outputRefs1[ iout ] ) 02121 { 02122 jInList = iout ; 02123 } 02124 } 02125 02126 int kInList = kDefault ; 02127 for( size_t kout = 0 ; 02128 kout < outputRefs2.size() ; ++kout ) 02129 { 02130 if( refk == outputRefs2[ kout ] ) 02131 { 02132 kInList = kout ; 02133 } 02134 } 02135 02136 // If any object is not in the list, add it, and 02137 // record its index. 02138 if( iInList == kDefault ) 02139 { 02140 iInList = outputRefs1.size() ; 02141 outputRefs1.push_back( refi ); 02142 } 02143 02144 if( jInList == kDefault ) 02145 { 02146 jInList = outputRefs1.size() ; 02147 outputRefs1.push_back( refj ); 02148 } 02149 02150 if( kInList == kDefault ) 02151 { 02152 kInList = outputRefs2.size() ; 02153 outputRefs2.push_back( refk ); 02154 } 02155 02156 // Record this object combination. 02157 l1extra::L1ParticleMap::L1IndexCombo combo ; 02158 combo.push_back( iInList ) ; 02159 combo.push_back( jInList ) ; 02160 combo.push_back( kInList ) ; 02161 combos.push_back( combo ) ; 02162 } 02163 } 02164 } 02165 } 02166 } 02167 } 02168 }
void L1ExtraParticleMapProd::evaluateDoubleSameObjectTrigger | ( | const std::vector< edm::Ref< TCollection > > & | inputRefs, | |
const double & | etThreshold, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection > > & | outputRefs, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos, | |||
bool | combinedWithGlobalObject = false | |||
) | [inline, private] |
Definition at line 1924 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, kDefault, and true.
Referenced by evaluateDoubleExclusiveIsoEG(), and produce().
01931 { 01932 // Use i+1 < inputRefs.size() instead of i < inputRefs.size()-1 01933 // because i is unsigned, and if size() is 0, then RHS undefined. 01934 for( size_t i = 0 ; i+1 < inputRefs.size() ; ++i ) 01935 { 01936 const edm::Ref< TCollection >& refi = inputRefs[ i ] ; 01937 if( refi.get()->et() >= etThreshold ) 01938 { 01939 for( size_t j = i+1 ; j < inputRefs.size() ; ++j ) 01940 { 01941 const edm::Ref< TCollection >& refj = inputRefs[ j ] ; 01942 if( refj.get()->et() >= etThreshold ) 01943 { 01944 decision = true ; 01945 01946 // If the two objects are already in the list, find 01947 // their indices. 01948 int iInList = kDefault ; 01949 int jInList = kDefault ; 01950 for( size_t iout = 0 ; iout < outputRefs.size() ; ++iout ) 01951 { 01952 if( refi == outputRefs[ iout ] ) 01953 { 01954 iInList = iout ; 01955 } 01956 01957 if( refj == outputRefs[ iout ] ) 01958 { 01959 jInList = iout ; 01960 } 01961 } 01962 01963 // If either object is not in the list, add it, and 01964 // record its index. 01965 if( iInList == kDefault ) 01966 { 01967 iInList = outputRefs.size() ; 01968 outputRefs.push_back( refi ) ; 01969 } 01970 01971 if( jInList == kDefault ) 01972 { 01973 jInList = outputRefs.size() ; 01974 outputRefs.push_back( refj ) ; 01975 } 01976 01977 // Record this object combination. 01978 l1extra::L1ParticleMap::L1IndexCombo combo ; 01979 combo.push_back( iInList ) ; 01980 combo.push_back( jInList ) ; 01981 if( combinedWithGlobalObject ) combo.push_back( 0 ) ; 01982 combos.push_back( combo ) ; 01983 } 01984 } 01985 } 01986 } 01987 }
void L1ExtraParticleMapProd::evaluateForwardRapidityGap | ( | const l1extra::L1JetParticleVectorRef & | inputRefs, | |
const double & | etThreshold, | |||
bool & | decision | |||
) | [private] |
Definition at line 2565 of file L1ExtraParticleMapProd.cc.
References false, edm::Ref< C, T, F >::get(), k, l1extra::L1JetParticle::kForward, and edm::es::l().
Referenced by produce().
02570 { 02571 decision = true; 02572 02573 // search for forward pair 02574 for( size_t k = 0 ; k+1 < inputRefs.size() ; ++k ) 02575 { 02576 const l1extra::L1JetParticleRef& refk = inputRefs[ k ] ; 02577 double etak = refk.get()->eta(); 02578 if( ( refk.get()->type() == l1extra::L1JetParticle::kForward ) && 02579 ( refk.get()->et() >= etThreshold ) ) 02580 { 02581 for( size_t l = k+1 ; l < inputRefs.size() ; ++l ) 02582 { 02583 const l1extra::L1JetParticleRef& refl = inputRefs[ l ] ; 02584 double etal = refl.get()->eta(); 02585 if( (refl.get()->type()==l1extra::L1JetParticle::kForward) && 02586 (refl.get()->et() >= etThreshold ) && 02587 ((etak>0 && etal<0) || (etak<0 && etal>0)) ) 02588 { 02589 decision = false ; 02590 return ;// no need for going further -- for a faster algorithm 02591 } 02592 } 02593 } 02594 } 02595 }
void L1ExtraParticleMapProd::evaluateJetGapJetTrigger | ( | const l1extra::L1JetParticleVectorRef & | inputRefs, | |
const double & | etThreshold, | |||
bool & | decision, | |||
l1extra::L1JetParticleVectorRef & | outputRefs, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [private] |
Definition at line 2494 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, kDefault, and true.
Referenced by produce().
02500 { 02501 // Use i+1 < inputRefs.size() instead of i < inputRefs.size()-1 02502 // because i is unsigned, and if size() is 0, then RHS undefined. 02503 for( size_t i = 0 ; i+1 < inputRefs.size() ; ++i ) 02504 { 02505 const l1extra::L1JetParticleRef& refi = inputRefs[ i ] ; 02506 if( refi.get()->et() >= etThreshold ) 02507 { 02508 for( size_t j = i+1 ; j < inputRefs.size() ; ++j ) 02509 { 02510 const l1extra::L1JetParticleRef& refj = inputRefs[ j ] ; 02511 if( ( refj.get()->et() >= etThreshold ) && 02512 ( ( ( refi.get()->eta() < 0. ) && ( refj.get()->eta() > 0. ) ) 02513 || 02514 ( ( refi.get()->eta() > 0. ) && ( refj.get()->eta() < 0. ) ) 02515 ) 02516 ) 02517 { 02518 decision = true ; 02519 02520 // If the two objects are already in the list, find 02521 // their indices. 02522 int iInList = kDefault ; 02523 int jInList = kDefault ; 02524 for( size_t iout = 0 ; iout < outputRefs.size() ; ++iout ) 02525 { 02526 if( refi == outputRefs[ iout ] ) 02527 { 02528 iInList = iout ; 02529 } 02530 02531 if( refj == outputRefs[ iout ] ) 02532 { 02533 jInList = iout ; 02534 } 02535 } 02536 02537 // If either object is not in the list, add it, and 02538 // record its index. 02539 if( iInList == kDefault ) 02540 { 02541 iInList = outputRefs.size() ; 02542 outputRefs.push_back( refi ) ; 02543 } 02544 02545 if( jInList == kDefault ) 02546 { 02547 jInList = outputRefs.size() ; 02548 outputRefs.push_back( refj ) ; 02549 } 02550 02551 // Record this object combination. 02552 l1extra::L1ParticleMap::L1IndexCombo combo ; 02553 combo.push_back( iInList ) ; 02554 combo.push_back( jInList ) ; 02555 combos.push_back( combo ) ; 02556 } 02557 } 02558 } 02559 } 02560 }
void L1ExtraParticleMapProd::evaluateQuadSameObjectTrigger | ( | const std::vector< edm::Ref< TCollection > > & | inputRefs, | |
const double & | etThreshold, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection > > & | outputRefs, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [inline, private] |
Definition at line 2173 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, k, kDefault, p, and true.
Referenced by produce().
02179 { 02180 // Use i+3 < inputRefs.size() instead of i < inputRefs.size()-3 02181 // because i is unsigned, and if size() is 0, then RHS undefined. 02182 for( size_t i = 0 ; i+3 < inputRefs.size() ; ++i ) 02183 { 02184 const edm::Ref< TCollection >& refi = inputRefs[ i ] ; 02185 if( refi.get()->et() >= etThreshold ) 02186 { 02187 for( size_t j = i+1 ; j+2 < inputRefs.size() ; ++j ) 02188 { 02189 const edm::Ref< TCollection >& refj = inputRefs[ j ] ; 02190 if( refj.get()->et() >= etThreshold ) 02191 { 02192 for( size_t k = j+1 ; k+1 < inputRefs.size() ; ++k ) 02193 { 02194 const edm::Ref< TCollection >& refk = inputRefs[ k ] ; 02195 if( refk.get()->et() >= etThreshold ) 02196 { 02197 for( size_t p = k+1 ; p < inputRefs.size() ; ++p ) 02198 { 02199 const edm::Ref< TCollection >& refp = inputRefs[ p ] ; 02200 if( refp.get()->et() >= etThreshold ) 02201 { 02202 decision = true ; 02203 02204 // If the objects are already in the list, find 02205 // their indices. 02206 int iInList = kDefault ; 02207 int jInList = kDefault ; 02208 int kInList = kDefault ; 02209 int pInList = kDefault ; 02210 for( size_t iout = 0 ; 02211 iout < outputRefs.size() ; ++iout ) 02212 { 02213 if( refi == outputRefs[ iout ] ) 02214 { 02215 iInList = iout ; 02216 } 02217 02218 if( refj == outputRefs[ iout ] ) 02219 { 02220 jInList = iout ; 02221 } 02222 02223 if( refk == outputRefs[ iout ] ) 02224 { 02225 kInList = iout ; 02226 } 02227 02228 if( refp == outputRefs[ iout ] ) 02229 { 02230 pInList = iout ; 02231 } 02232 } 02233 02234 // If any object is not in the list, add it, and 02235 // record its index. 02236 if( iInList == kDefault ) 02237 { 02238 iInList = outputRefs.size() ; 02239 outputRefs.push_back( refi ) ; 02240 } 02241 02242 if( jInList == kDefault ) 02243 { 02244 jInList = outputRefs.size() ; 02245 outputRefs.push_back( refj ) ; 02246 } 02247 02248 if( kInList == kDefault ) 02249 { 02250 kInList = outputRefs.size() ; 02251 outputRefs.push_back( refk ) ; 02252 } 02253 02254 if( pInList == kDefault ) 02255 { 02256 pInList = outputRefs.size() ; 02257 outputRefs.push_back( refp ) ; 02258 } 02259 02260 // Record this object combination. 02261 l1extra::L1ParticleMap::L1IndexCombo combo ; 02262 combo.push_back( iInList ) ; 02263 combo.push_back( jInList ) ; 02264 combo.push_back( kInList ) ; 02265 combo.push_back( pInList ) ; 02266 combos.push_back( combo ) ; 02267 } 02268 } 02269 } 02270 } 02271 } 02272 } 02273 } 02274 } 02275 }
void L1ExtraParticleMapProd::evaluateSingleObjectTrigger | ( | const std::vector< edm::Ref< TCollection > > & | inputRefs, | |
const double & | etThreshold, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection > > & | outputRefs | |||
) | [inline, private] |
Definition at line 1906 of file L1ExtraParticleMapProd.cc.
Referenced by produce().
01911 { 01912 for( size_t i = 0 ; i < inputRefs.size() ; ++i ) 01913 { 01914 if( inputRefs[ i ].get()->et() >= etThreshold ) 01915 { 01916 decision = true ; 01917 outputRefs.push_back( inputRefs[ i ] ) ; 01918 } 01919 } 01920 }
void L1ExtraParticleMapProd::evaluateTripleSameObjectTrigger | ( | const std::vector< edm::Ref< TCollection > > & | inputRefs, | |
const double & | etThreshold, | |||
bool & | decision, | |||
std::vector< edm::Ref< TCollection > > & | outputRefs, | |||
l1extra::L1ParticleMap::L1IndexComboVector & | combos | |||
) | [inline, private] |
Definition at line 1992 of file L1ExtraParticleMapProd.cc.
References edm::Ref< C, T, F >::get(), i, j, k, kDefault, and true.
Referenced by produce().
01998 { 01999 // Use i+2 < inputRefs.size() instead of i < inputRefs.size()-2 02000 // because i is unsigned, and if size() is 0, then RHS undefined. 02001 for( size_t i = 0 ; i+2 < inputRefs.size() ; ++i ) 02002 { 02003 const edm::Ref< TCollection >& refi = inputRefs[ i ] ; 02004 if( refi.get()->et() >= etThreshold ) 02005 { 02006 for( size_t j = i+1 ; j+1 < inputRefs.size() ; ++j ) 02007 { 02008 const edm::Ref< TCollection >& refj = inputRefs[ j ] ; 02009 if( refj.get()->et() >= etThreshold ) 02010 { 02011 for( size_t k = j+1 ; k < inputRefs.size() ; ++k ) 02012 { 02013 const edm::Ref< TCollection >& refk = inputRefs[ k ] ; 02014 if( refk.get()->et() >= etThreshold ) 02015 { 02016 decision = true ; 02017 02018 // If the three objects are already in the list, find 02019 // their indices. 02020 int iInList = kDefault ; 02021 int jInList = kDefault ; 02022 int kInList = kDefault ; 02023 for( size_t iout = 0 ; iout < outputRefs.size() ; ++iout ) 02024 { 02025 if( refi == outputRefs[ iout ] ) 02026 { 02027 iInList = iout ; 02028 } 02029 02030 if( refj == outputRefs[ iout ] ) 02031 { 02032 jInList = iout ; 02033 } 02034 02035 if( refk == outputRefs[ iout ] ) 02036 { 02037 kInList = iout ; 02038 } 02039 } 02040 02041 // If any object is not in the list, add it, and 02042 // record its index. 02043 if( iInList == kDefault ) 02044 { 02045 iInList = outputRefs.size() ; 02046 outputRefs.push_back( refi ); 02047 } 02048 02049 if( jInList == kDefault ) 02050 { 02051 jInList = outputRefs.size() ; 02052 outputRefs.push_back( refj ); 02053 } 02054 02055 if( kInList == kDefault ) 02056 { 02057 kInList = outputRefs.size() ; 02058 outputRefs.push_back( refk ); 02059 } 02060 02061 // Record this object combination. 02062 l1extra::L1ParticleMap::L1IndexCombo combo ; 02063 combo.push_back( iInList ) ; 02064 combo.push_back( jInList ) ; 02065 combo.push_back( kInList ) ; 02066 combos.push_back( combo ) ; 02067 } 02068 } 02069 } 02070 } 02071 } 02072 } 02073 }
void L1ExtraParticleMapProd::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [virtual] |
Implements edm::EDProducer.
Definition at line 767 of file L1ExtraParticleMapProd.cc.
References addToVectorRefs(), cenJetSource_, doubleThresholds_, etMissSource_, evaluateDoubleDifferentCaloObjectTrigger(), evaluateDoubleDifferentObjectSameTypeTrigger(), evaluateDoubleDifferentObjectTrigger(), evaluateDoubleExclusiveIsoEG(), evaluateDoublePlusSingleObjectTrigger(), evaluateDoubleSameObjectTrigger(), evaluateForwardRapidityGap(), evaluateJetGapJetTrigger(), evaluateQuadSameObjectTrigger(), evaluateSingleObjectTrigger(), evaluateTripleSameObjectTrigger(), false, first, forJetSource_, edm::Event::getByLabel(), i, isoEmSource_, kMuon, mapColl, CaloMET_cfi::met, muonSource_, nonIsoEmSource_, prescaleCounters_, prescales_, edm::Event::put(), HcalSimpleRecAlgoImpl::reco(), edm::second(), singleThresholds_, std, tauJetSource_, and true.
00769 { 00770 using namespace edm; 00771 using namespace std; 00772 using namespace reco; 00773 using namespace l1extra ; 00774 00775 00776 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00777 // ~~~~~~~~ Get L1Extra particles ~~~~~~~~ 00778 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00779 00780 Handle< L1EmParticleCollection > isoEmHandle ; 00781 iEvent.getByLabel( isoEmSource_, isoEmHandle ) ; 00782 00783 Handle< L1EmParticleCollection > nonIsoEmHandle ; 00784 iEvent.getByLabel( nonIsoEmSource_, nonIsoEmHandle ) ; 00785 00786 Handle< L1JetParticleCollection > cenJetHandle ; 00787 iEvent.getByLabel( cenJetSource_, cenJetHandle ) ; 00788 00789 Handle< L1JetParticleCollection > forJetHandle ; 00790 iEvent.getByLabel( forJetSource_, forJetHandle ) ; 00791 00792 Handle< L1JetParticleCollection > tauJetHandle ; 00793 iEvent.getByLabel( tauJetSource_, tauJetHandle ) ; 00794 00795 Handle< L1MuonParticleCollection > muHandle ; 00796 iEvent.getByLabel( muonSource_, muHandle ) ; 00797 00798 Handle< L1EtMissParticle > metHandle ; 00799 iEvent.getByLabel( etMissSource_, metHandle ) ; 00800 00801 double met = metHandle->etMiss() ; 00802 double ht = metHandle->etHad() ; 00803 double ett = metHandle->etTotal() ; 00804 00805 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00806 // ~~~ Evaluate trigger conditions and make a L1ParticleMapCollection. ~~~ 00807 // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 00808 00809 // First, form the input vector<Ref>s that will be needed. 00810 L1EmParticleVectorRef inputIsoEmRefs ; 00811 addToVectorRefs( isoEmHandle, inputIsoEmRefs ) ; 00812 00813 L1EmParticleVectorRef inputRelaxedEmRefs ; 00814 addToVectorRefs( isoEmHandle, inputRelaxedEmRefs ) ; 00815 addToVectorRefs( nonIsoEmHandle, inputRelaxedEmRefs ) ; 00816 00817 L1JetParticleVectorRef inputTauRefs ; 00818 addToVectorRefs( tauJetHandle, inputTauRefs ) ; 00819 00820 L1JetParticleVectorRef inputJetRefs ; 00821 addToVectorRefs( forJetHandle, inputJetRefs ) ; 00822 addToVectorRefs( cenJetHandle, inputJetRefs ) ; 00823 addToVectorRefs( tauJetHandle, inputJetRefs ) ; 00824 00825 L1JetParticleVectorRef inputForJetRefs ; 00826 addToVectorRefs( forJetHandle, inputForJetRefs ) ; 00827 00828 L1JetParticleVectorRef inputCenJetTauJetRefs ; 00829 addToVectorRefs( cenJetHandle, inputCenJetTauJetRefs ) ; 00830 addToVectorRefs( tauJetHandle, inputCenJetTauJetRefs ) ; 00831 00832 L1MuonParticleVectorRef inputMuonRefsSingle ; 00833 L1MuonParticleVectorRef inputMuonRefsDouble ; 00834 L1MuonParticleCollection::const_iterator muItr = muHandle->begin() ; 00835 L1MuonParticleCollection::const_iterator muEnd = muHandle->end() ; 00836 00837 for( size_t i = 0 ; muItr != muEnd ; ++muItr, ++i ) 00838 { 00839 if( !muItr->gmtMuonCand().empty() ) 00840 { 00841 unsigned int qual = muItr->gmtMuonCand().quality() ; 00842 00843 if( qual == 4 || 00844 qual == 5 || 00845 qual == 6 || 00846 qual == 7 ) 00847 { 00848 inputMuonRefsSingle.push_back( 00849 edm::Ref< L1MuonParticleCollection >( muHandle, i ) ) ; 00850 } 00851 00852 if( qual == 3 || 00853 qual == 5 || 00854 qual == 6 || 00855 qual == 7 ) 00856 { 00857 inputMuonRefsDouble.push_back( 00858 edm::Ref< L1MuonParticleCollection >( muHandle, i ) ) ; 00859 } 00860 } 00861 } 00862 00863 auto_ptr< L1ParticleMapCollection > mapColl( new L1ParticleMapCollection ) ; 00864 bool globalDecision = false ; 00865 std::vector< bool > decisionWord ; 00866 00867 for( int itrig = 0 ; itrig < L1ParticleMap::kNumOfL1TriggerTypes; ++itrig ) 00868 { 00869 bool decision = false ; 00870 std::vector< L1ParticleMap::L1ObjectType > objectTypes ; 00871 L1EmParticleVectorRef outputEmRefsTmp ; 00872 L1JetParticleVectorRef outputJetRefsTmp ; 00873 L1MuonParticleVectorRef outputMuonRefsTmp ; 00874 L1EtMissParticleRefProd metRefTmp ; 00875 L1ParticleMap::L1IndexComboVector combosTmp ; // unfilled for single objs 00876 00877 if( itrig == L1ParticleMap::kSingleMu3 || 00878 itrig == L1ParticleMap::kSingleMu5 || 00879 itrig == L1ParticleMap::kSingleMu7 || 00880 itrig == L1ParticleMap::kSingleMu10 || 00881 itrig == L1ParticleMap::kSingleMu14 || 00882 itrig == L1ParticleMap::kSingleMu20 || 00883 itrig == L1ParticleMap::kSingleMu25 ) 00884 { 00885 objectTypes.push_back( L1ParticleMap::kMuon ) ; 00886 00887 evaluateSingleObjectTrigger( inputMuonRefsSingle, 00888 singleThresholds_[ itrig ], 00889 decision, 00890 outputMuonRefsTmp ) ; 00891 } 00892 else if( itrig == L1ParticleMap::kSingleIsoEG5 || 00893 itrig == L1ParticleMap::kSingleIsoEG8 || 00894 itrig == L1ParticleMap::kSingleIsoEG10 || 00895 itrig == L1ParticleMap::kSingleIsoEG12 || 00896 itrig == L1ParticleMap::kSingleIsoEG15 || 00897 itrig == L1ParticleMap::kSingleIsoEG20 || 00898 itrig == L1ParticleMap::kSingleIsoEG25 ) 00899 { 00900 objectTypes.push_back( L1ParticleMap::kEM ) ; 00901 00902 evaluateSingleObjectTrigger( inputIsoEmRefs, 00903 singleThresholds_[ itrig ], 00904 decision, 00905 outputEmRefsTmp ) ; 00906 } 00907 else if( itrig == L1ParticleMap::kSingleEG5 || 00908 itrig == L1ParticleMap::kSingleEG8 || 00909 itrig == L1ParticleMap::kSingleEG10 || 00910 itrig == L1ParticleMap::kSingleEG12 || 00911 itrig == L1ParticleMap::kSingleEG15 || 00912 itrig == L1ParticleMap::kSingleEG20 || 00913 itrig == L1ParticleMap::kSingleEG25 ) 00914 { 00915 objectTypes.push_back( L1ParticleMap::kEM ) ; 00916 00917 evaluateSingleObjectTrigger( inputRelaxedEmRefs, 00918 singleThresholds_[ itrig ], 00919 decision, 00920 outputEmRefsTmp ) ; 00921 } 00922 else if( itrig == L1ParticleMap::kSingleJet15 || 00923 itrig == L1ParticleMap::kSingleJet20 || 00924 itrig == L1ParticleMap::kSingleJet30 || 00925 itrig == L1ParticleMap::kSingleJet50 || 00926 itrig == L1ParticleMap::kSingleJet70 || 00927 itrig == L1ParticleMap::kSingleJet100 || 00928 itrig == L1ParticleMap::kSingleJet150 || 00929 itrig == L1ParticleMap::kSingleJet200 ) 00930 { 00931 objectTypes.push_back( L1ParticleMap::kJet ) ; 00932 00933 evaluateSingleObjectTrigger( inputJetRefs, 00934 singleThresholds_[ itrig ], 00935 decision, 00936 outputJetRefsTmp ) ; 00937 } 00938 else if( itrig == L1ParticleMap::kSingleTauJet10 || 00939 itrig == L1ParticleMap::kSingleTauJet20 || 00940 itrig == L1ParticleMap::kSingleTauJet30 || 00941 itrig == L1ParticleMap::kSingleTauJet35 || 00942 itrig == L1ParticleMap::kSingleTauJet40 || 00943 itrig == L1ParticleMap::kSingleTauJet60 || 00944 itrig == L1ParticleMap::kSingleTauJet80 || 00945 itrig == L1ParticleMap::kSingleTauJet100 ) 00946 { 00947 objectTypes.push_back( L1ParticleMap::kJet ) ; 00948 00949 evaluateSingleObjectTrigger( inputTauRefs, 00950 singleThresholds_[ itrig ], 00951 decision, 00952 outputJetRefsTmp ) ; 00953 } 00954 else if( itrig == L1ParticleMap::kHTT100 || 00955 itrig == L1ParticleMap::kHTT200 || 00956 itrig == L1ParticleMap::kHTT250 || 00957 itrig == L1ParticleMap::kHTT300 || 00958 itrig == L1ParticleMap::kHTT400 || 00959 itrig == L1ParticleMap::kHTT500 ) 00960 { 00961 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 00962 00963 if( ht >= singleThresholds_[ itrig ] ) 00964 { 00965 decision = true ; 00966 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 00967 } 00968 } 00969 else if( itrig == L1ParticleMap::kETM10 || 00970 itrig == L1ParticleMap::kETM15 || 00971 itrig == L1ParticleMap::kETM20 || 00972 itrig == L1ParticleMap::kETM30 || 00973 itrig == L1ParticleMap::kETM40 || 00974 itrig == L1ParticleMap::kETM50 || 00975 itrig == L1ParticleMap::kETM60 ) 00976 { 00977 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 00978 00979 if( met >= singleThresholds_[ itrig ] ) 00980 { 00981 decision = true ; 00982 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 00983 } 00984 } 00985 else if( itrig == L1ParticleMap::kETT60 ) 00986 { 00987 objectTypes.push_back( L1ParticleMap::kEtTotal ) ; 00988 00989 if( ett >= singleThresholds_[ itrig ] ) 00990 { 00991 decision = true ; 00992 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 00993 } 00994 } 00995 else if( itrig == L1ParticleMap::kDoubleMu3 ) 00996 { 00997 objectTypes.push_back( L1ParticleMap::kMuon ) ; 00998 objectTypes.push_back( L1ParticleMap::kMuon ) ; 00999 01000 evaluateDoubleSameObjectTrigger( inputMuonRefsDouble, 01001 singleThresholds_[ itrig ], 01002 decision, 01003 outputMuonRefsTmp, 01004 combosTmp ) ; 01005 } 01006 else if( itrig == L1ParticleMap::kDoubleIsoEG8 || 01007 itrig == L1ParticleMap::kDoubleIsoEG10 ) 01008 { 01009 objectTypes.push_back( L1ParticleMap::kEM ) ; 01010 objectTypes.push_back( L1ParticleMap::kEM ) ; 01011 01012 evaluateDoubleSameObjectTrigger( inputIsoEmRefs, 01013 singleThresholds_[ itrig ], 01014 decision, 01015 outputEmRefsTmp, 01016 combosTmp ) ; 01017 } 01018 else if( itrig == L1ParticleMap::kDoubleEG5 || 01019 itrig == L1ParticleMap::kDoubleEG10 || 01020 itrig == L1ParticleMap::kDoubleEG15 ) 01021 { 01022 objectTypes.push_back( L1ParticleMap::kEM ) ; 01023 objectTypes.push_back( L1ParticleMap::kEM ) ; 01024 01025 evaluateDoubleSameObjectTrigger( inputRelaxedEmRefs, 01026 singleThresholds_[ itrig ], 01027 decision, 01028 outputEmRefsTmp, 01029 combosTmp ) ; 01030 } 01031 else if( itrig == L1ParticleMap::kDoubleJet70 || 01032 itrig == L1ParticleMap::kDoubleJet100 ) 01033 { 01034 objectTypes.push_back( L1ParticleMap::kJet ) ; 01035 objectTypes.push_back( L1ParticleMap::kJet ) ; 01036 01037 evaluateDoubleSameObjectTrigger( inputJetRefs, 01038 singleThresholds_[ itrig ], 01039 decision, 01040 outputJetRefsTmp, 01041 combosTmp ) ; 01042 } 01043 else if( itrig == L1ParticleMap::kDoubleTauJet20 || 01044 itrig == L1ParticleMap::kDoubleTauJet30 || 01045 itrig == L1ParticleMap::kDoubleTauJet35 || 01046 itrig == L1ParticleMap::kDoubleTauJet40 ) 01047 { 01048 objectTypes.push_back( L1ParticleMap::kJet ) ; 01049 objectTypes.push_back( L1ParticleMap::kJet ) ; 01050 01051 evaluateDoubleSameObjectTrigger( inputTauRefs, 01052 singleThresholds_[ itrig ], 01053 decision, 01054 outputJetRefsTmp, 01055 combosTmp ) ; 01056 } 01057 else if( itrig == L1ParticleMap::kMu3_IsoEG5 || 01058 itrig == L1ParticleMap::kMu5_IsoEG10 ) 01059 { 01060 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01061 objectTypes.push_back( L1ParticleMap::kEM ) ; 01062 01063 evaluateDoubleDifferentObjectTrigger( 01064 inputMuonRefsSingle, 01065 inputIsoEmRefs, 01066 doubleThresholds_[ itrig ].first, 01067 doubleThresholds_[ itrig ].second, 01068 decision, 01069 outputMuonRefsTmp, 01070 outputEmRefsTmp, 01071 combosTmp ) ; 01072 } 01073 else if( itrig == L1ParticleMap::kMu3_EG12 ) 01074 { 01075 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01076 objectTypes.push_back( L1ParticleMap::kEM ) ; 01077 01078 evaluateDoubleDifferentObjectTrigger( 01079 inputMuonRefsSingle, 01080 inputRelaxedEmRefs, 01081 doubleThresholds_[ itrig ].first, 01082 doubleThresholds_[ itrig ].second, 01083 decision, 01084 outputMuonRefsTmp, 01085 outputEmRefsTmp, 01086 combosTmp ) ; 01087 } 01088 else if( itrig == L1ParticleMap::kMu3_Jet15 || 01089 itrig == L1ParticleMap::kMu5_Jet15 || 01090 itrig == L1ParticleMap::kMu3_Jet70 || 01091 itrig == L1ParticleMap::kMu5_Jet20 ) 01092 { 01093 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01094 objectTypes.push_back( L1ParticleMap::kJet ) ; 01095 01096 evaluateDoubleDifferentObjectTrigger( 01097 inputMuonRefsSingle, 01098 inputJetRefs, 01099 doubleThresholds_[ itrig ].first, 01100 doubleThresholds_[ itrig ].second, 01101 decision, 01102 outputMuonRefsTmp, 01103 outputJetRefsTmp, 01104 combosTmp ) ; 01105 } 01106 else if( itrig == L1ParticleMap::kMu5_TauJet20 || 01107 itrig == L1ParticleMap::kMu5_TauJet30 ) 01108 { 01109 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01110 objectTypes.push_back( L1ParticleMap::kJet ) ; 01111 01112 evaluateDoubleDifferentObjectTrigger( 01113 inputMuonRefsSingle, 01114 inputTauRefs, 01115 doubleThresholds_[ itrig ].first, 01116 doubleThresholds_[ itrig ].second, 01117 decision, 01118 outputMuonRefsTmp, 01119 outputJetRefsTmp, 01120 combosTmp ) ; 01121 } 01122 else if( itrig == L1ParticleMap::kIsoEG10_EG10 ) 01123 { 01124 objectTypes.push_back( L1ParticleMap::kEM ) ; 01125 objectTypes.push_back( L1ParticleMap::kEM ) ; 01126 01127 evaluateDoubleDifferentObjectSameTypeTrigger( 01128 inputIsoEmRefs, 01129 inputRelaxedEmRefs, 01130 doubleThresholds_[ itrig ].first, 01131 doubleThresholds_[ itrig ].second, 01132 decision, 01133 outputEmRefsTmp, 01134 combosTmp ) ; 01135 } 01136 else if( itrig == L1ParticleMap::kIsoEG10_Jet15 || 01137 itrig == L1ParticleMap::kIsoEG10_Jet30 || 01138 itrig == L1ParticleMap::kIsoEG10_Jet20 || 01139 itrig == L1ParticleMap::kIsoEG10_Jet70 ) 01140 { 01141 objectTypes.push_back( L1ParticleMap::kEM ) ; 01142 objectTypes.push_back( L1ParticleMap::kJet ) ; 01143 01144 evaluateDoubleDifferentCaloObjectTrigger( 01145 inputIsoEmRefs, 01146 inputJetRefs, 01147 doubleThresholds_[ itrig ].first, 01148 doubleThresholds_[ itrig ].second, 01149 decision, 01150 outputEmRefsTmp, 01151 outputJetRefsTmp, 01152 combosTmp ) ; 01153 } 01154 else if( itrig == L1ParticleMap::kIsoEG10_TauJet20 || 01155 itrig == L1ParticleMap::kIsoEG10_TauJet30 ) 01156 { 01157 objectTypes.push_back( L1ParticleMap::kEM ) ; 01158 objectTypes.push_back( L1ParticleMap::kJet ) ; 01159 01160 evaluateDoubleDifferentCaloObjectTrigger( 01161 inputIsoEmRefs, 01162 inputTauRefs, 01163 doubleThresholds_[ itrig ].first, 01164 doubleThresholds_[ itrig ].second, 01165 decision, 01166 outputEmRefsTmp, 01167 outputJetRefsTmp, 01168 combosTmp ) ; 01169 } 01170 else if( itrig == L1ParticleMap::kEG10_Jet15 || 01171 itrig == L1ParticleMap::kEG12_Jet20 || 01172 itrig == L1ParticleMap::kEG12_Jet70 ) 01173 { 01174 objectTypes.push_back( L1ParticleMap::kEM ) ; 01175 objectTypes.push_back( L1ParticleMap::kJet ) ; 01176 01177 evaluateDoubleDifferentCaloObjectTrigger( 01178 inputRelaxedEmRefs, 01179 inputJetRefs, 01180 doubleThresholds_[ itrig ].first, 01181 doubleThresholds_[ itrig ].second, 01182 decision, 01183 outputEmRefsTmp, 01184 outputJetRefsTmp, 01185 combosTmp ) ; 01186 } 01187 else if( itrig == L1ParticleMap::kEG12_TauJet40 ) 01188 { 01189 objectTypes.push_back( L1ParticleMap::kEM ) ; 01190 objectTypes.push_back( L1ParticleMap::kJet ) ; 01191 01192 evaluateDoubleDifferentCaloObjectTrigger( 01193 inputRelaxedEmRefs, 01194 inputTauRefs, 01195 doubleThresholds_[ itrig ].first, 01196 doubleThresholds_[ itrig ].second, 01197 decision, 01198 outputEmRefsTmp, 01199 outputJetRefsTmp, 01200 combosTmp ) ; 01201 } 01202 else if( itrig == L1ParticleMap::kJet70_TauJet40 ) 01203 { 01204 objectTypes.push_back( L1ParticleMap::kJet ) ; 01205 objectTypes.push_back( L1ParticleMap::kJet ) ; 01206 01207 evaluateDoubleDifferentObjectSameTypeTrigger( 01208 inputJetRefs, 01209 inputTauRefs, 01210 doubleThresholds_[ itrig ].first, 01211 doubleThresholds_[ itrig ].second, 01212 decision, 01213 outputJetRefsTmp, 01214 combosTmp ) ; 01215 } 01216 else if( itrig == L1ParticleMap::kMu3_HTT200 ) 01217 { 01218 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01219 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01220 01221 if( ht >= doubleThresholds_[ itrig ].second ) 01222 { 01223 evaluateSingleObjectTrigger( inputMuonRefsSingle, 01224 doubleThresholds_[ itrig ].first, 01225 decision, 01226 outputMuonRefsTmp ) ; 01227 01228 if( decision ) 01229 { 01230 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01231 } 01232 } 01233 } 01234 else if( itrig == L1ParticleMap::kIsoEG10_HTT200 ) 01235 { 01236 objectTypes.push_back( L1ParticleMap::kEM ) ; 01237 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01238 01239 if( ht >= doubleThresholds_[ itrig ].second ) 01240 { 01241 evaluateSingleObjectTrigger( inputIsoEmRefs, 01242 doubleThresholds_[ itrig ].first, 01243 decision, 01244 outputEmRefsTmp ) ; 01245 01246 if( decision ) 01247 { 01248 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01249 } 01250 } 01251 } 01252 else if( itrig == L1ParticleMap::kEG12_HTT200 ) 01253 { 01254 objectTypes.push_back( L1ParticleMap::kEM ) ; 01255 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01256 01257 if( ht >= doubleThresholds_[ itrig ].second ) 01258 { 01259 evaluateSingleObjectTrigger( inputRelaxedEmRefs, 01260 doubleThresholds_[ itrig ].first, 01261 decision, 01262 outputEmRefsTmp ) ; 01263 01264 if( decision ) 01265 { 01266 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01267 } 01268 } 01269 } 01270 else if( itrig == L1ParticleMap::kJet70_HTT200 ) 01271 { 01272 objectTypes.push_back( L1ParticleMap::kJet ) ; 01273 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01274 01275 if( ht >= doubleThresholds_[ itrig ].second ) 01276 { 01277 evaluateSingleObjectTrigger( inputJetRefs, 01278 doubleThresholds_[ itrig ].first, 01279 decision, 01280 outputJetRefsTmp ) ; 01281 01282 if( decision ) 01283 { 01284 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01285 } 01286 } 01287 } 01288 else if( itrig == L1ParticleMap::kTauJet40_HTT200 ) 01289 { 01290 objectTypes.push_back( L1ParticleMap::kJet ) ; 01291 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01292 01293 if( ht >= doubleThresholds_[ itrig ].second ) 01294 { 01295 evaluateSingleObjectTrigger( inputTauRefs, 01296 doubleThresholds_[ itrig ].first, 01297 decision, 01298 outputJetRefsTmp ) ; 01299 01300 if( decision ) 01301 { 01302 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01303 } 01304 } 01305 } 01306 else if( itrig == L1ParticleMap::kMu3_ETM30 ) 01307 { 01308 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01309 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01310 01311 if( met >= doubleThresholds_[ itrig ].second ) 01312 { 01313 evaluateSingleObjectTrigger( inputMuonRefsSingle, 01314 doubleThresholds_[ itrig ].first, 01315 decision, 01316 outputMuonRefsTmp ) ; 01317 01318 if( decision ) 01319 { 01320 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01321 } 01322 } 01323 } 01324 else if( itrig == L1ParticleMap::kIsoEG10_ETM30 ) 01325 { 01326 objectTypes.push_back( L1ParticleMap::kEM ) ; 01327 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01328 01329 if( met >= doubleThresholds_[ itrig ].second ) 01330 { 01331 evaluateSingleObjectTrigger( inputIsoEmRefs, 01332 doubleThresholds_[ itrig ].first, 01333 decision, 01334 outputEmRefsTmp ) ; 01335 01336 if( decision ) 01337 { 01338 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01339 } 01340 } 01341 } 01342 else if( itrig == L1ParticleMap::kEG12_ETM30 ) 01343 { 01344 objectTypes.push_back( L1ParticleMap::kEM ) ; 01345 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01346 01347 if( met >= doubleThresholds_[ itrig ].second ) 01348 { 01349 evaluateSingleObjectTrigger( inputRelaxedEmRefs, 01350 doubleThresholds_[ itrig ].first, 01351 decision, 01352 outputEmRefsTmp ) ; 01353 01354 if( decision ) 01355 { 01356 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01357 } 01358 } 01359 } 01360 else if( itrig == L1ParticleMap::kJet70_ETM40 ) 01361 { 01362 objectTypes.push_back( L1ParticleMap::kJet ) ; 01363 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01364 01365 if( met >= doubleThresholds_[ itrig ].second ) 01366 { 01367 evaluateSingleObjectTrigger( inputJetRefs, 01368 doubleThresholds_[ itrig ].first, 01369 decision, 01370 outputJetRefsTmp ) ; 01371 01372 if( decision ) 01373 { 01374 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01375 } 01376 } 01377 } 01378 else if( itrig == L1ParticleMap::kTauJet20_ETM20 || 01379 itrig == L1ParticleMap::kTauJet30_ETM30 || 01380 itrig == L1ParticleMap::kTauJet30_ETM40 ) 01381 { 01382 objectTypes.push_back( L1ParticleMap::kJet ) ; 01383 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01384 01385 if( met >= doubleThresholds_[ itrig ].second ) 01386 { 01387 evaluateSingleObjectTrigger( inputTauRefs, 01388 doubleThresholds_[ itrig ].first, 01389 decision, 01390 outputJetRefsTmp ) ; 01391 01392 if( decision ) 01393 { 01394 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01395 } 01396 } 01397 } 01398 else if( itrig == L1ParticleMap::kHTT100_ETM30 ) 01399 { 01400 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01401 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01402 01403 if( ht >= doubleThresholds_[ itrig ].first && 01404 met >= doubleThresholds_[ itrig ].second ) 01405 { 01406 decision = true ; 01407 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01408 } 01409 } 01410 else if( itrig == L1ParticleMap::kTripleMu3 ) 01411 { 01412 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01413 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01414 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01415 01416 evaluateTripleSameObjectTrigger( inputMuonRefsDouble, 01417 singleThresholds_[ itrig ], 01418 decision, 01419 outputMuonRefsTmp, 01420 combosTmp ) ; 01421 } 01422 else if( itrig == L1ParticleMap::kTripleIsoEG5 ) 01423 { 01424 objectTypes.push_back( L1ParticleMap::kEM ) ; 01425 objectTypes.push_back( L1ParticleMap::kEM ) ; 01426 objectTypes.push_back( L1ParticleMap::kEM ) ; 01427 01428 evaluateTripleSameObjectTrigger( inputIsoEmRefs, 01429 singleThresholds_[ itrig ], 01430 decision, 01431 outputEmRefsTmp, 01432 combosTmp ) ; 01433 } 01434 else if( itrig == L1ParticleMap::kTripleEG10 ) 01435 { 01436 objectTypes.push_back( L1ParticleMap::kEM ) ; 01437 objectTypes.push_back( L1ParticleMap::kEM ) ; 01438 objectTypes.push_back( L1ParticleMap::kEM ) ; 01439 01440 evaluateTripleSameObjectTrigger( inputRelaxedEmRefs, 01441 singleThresholds_[ itrig ], 01442 decision, 01443 outputEmRefsTmp, 01444 combosTmp ) ; 01445 } 01446 else if( itrig == L1ParticleMap::kTripleJet50 ) 01447 { 01448 objectTypes.push_back( L1ParticleMap::kJet ) ; 01449 objectTypes.push_back( L1ParticleMap::kJet ) ; 01450 objectTypes.push_back( L1ParticleMap::kJet ) ; 01451 01452 evaluateTripleSameObjectTrigger( inputJetRefs, 01453 singleThresholds_[ itrig ], 01454 decision, 01455 outputJetRefsTmp, 01456 combosTmp ) ; 01457 } 01458 else if( itrig == L1ParticleMap::kTripleTauJet40 ) 01459 { 01460 objectTypes.push_back( L1ParticleMap::kJet ) ; 01461 objectTypes.push_back( L1ParticleMap::kJet ) ; 01462 objectTypes.push_back( L1ParticleMap::kJet ) ; 01463 01464 evaluateTripleSameObjectTrigger( inputTauRefs, 01465 singleThresholds_[ itrig ], 01466 decision, 01467 outputJetRefsTmp, 01468 combosTmp ) ; 01469 } 01470 else if( itrig == L1ParticleMap::kDoubleMu3_IsoEG5 ) 01471 { 01472 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01473 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01474 objectTypes.push_back( L1ParticleMap::kEM ) ; 01475 01476 evaluateDoublePlusSingleObjectTrigger( 01477 inputMuonRefsDouble, 01478 inputIsoEmRefs, 01479 doubleThresholds_[ itrig ].first, 01480 doubleThresholds_[ itrig ].second, 01481 decision, 01482 outputMuonRefsTmp, 01483 outputEmRefsTmp, 01484 combosTmp ) ; 01485 } 01486 else if( itrig == L1ParticleMap::kDoubleMu3_EG10 ) 01487 { 01488 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01489 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01490 objectTypes.push_back( L1ParticleMap::kEM ) ; 01491 01492 evaluateDoublePlusSingleObjectTrigger( 01493 inputMuonRefsDouble, 01494 inputRelaxedEmRefs, 01495 doubleThresholds_[ itrig ].first, 01496 doubleThresholds_[ itrig ].second, 01497 decision, 01498 outputMuonRefsTmp, 01499 outputEmRefsTmp, 01500 combosTmp ) ; 01501 } 01502 else if( itrig == L1ParticleMap::kDoubleIsoEG5_Mu3 ) 01503 { 01504 objectTypes.push_back( L1ParticleMap::kEM ) ; 01505 objectTypes.push_back( L1ParticleMap::kEM ) ; 01506 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01507 01508 evaluateDoublePlusSingleObjectTrigger( 01509 inputIsoEmRefs, 01510 inputMuonRefsSingle, 01511 doubleThresholds_[ itrig ].first, 01512 doubleThresholds_[ itrig ].second, 01513 decision, 01514 outputEmRefsTmp, 01515 outputMuonRefsTmp, 01516 combosTmp ) ; 01517 } 01518 else if( itrig == L1ParticleMap::kDoubleEG10_Mu3 ) 01519 { 01520 objectTypes.push_back( L1ParticleMap::kEM ) ; 01521 objectTypes.push_back( L1ParticleMap::kEM ) ; 01522 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01523 01524 evaluateDoublePlusSingleObjectTrigger( 01525 inputRelaxedEmRefs, 01526 inputMuonRefsSingle, 01527 doubleThresholds_[ itrig ].first, 01528 doubleThresholds_[ itrig ].second, 01529 decision, 01530 outputEmRefsTmp, 01531 outputMuonRefsTmp, 01532 combosTmp ) ; 01533 } 01534 else if( itrig == L1ParticleMap::kDoubleMu3_HTT200 ) 01535 { 01536 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01537 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01538 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01539 01540 if( ht >= doubleThresholds_[ itrig ].second ) 01541 { 01542 evaluateDoubleSameObjectTrigger( inputMuonRefsDouble, 01543 doubleThresholds_[ itrig ].first, 01544 decision, 01545 outputMuonRefsTmp, 01546 combosTmp, 01547 true ) ; 01548 01549 if( decision ) 01550 { 01551 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01552 } 01553 } 01554 } 01555 else if( itrig == L1ParticleMap::kDoubleIsoEG5_HTT200 ) 01556 { 01557 objectTypes.push_back( L1ParticleMap::kEM ) ; 01558 objectTypes.push_back( L1ParticleMap::kEM ) ; 01559 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01560 01561 if( ht >= doubleThresholds_[ itrig ].second ) 01562 { 01563 evaluateDoubleSameObjectTrigger( inputIsoEmRefs, 01564 doubleThresholds_[ itrig ].first, 01565 decision, 01566 outputEmRefsTmp, 01567 combosTmp, 01568 true ) ; 01569 01570 if( decision ) 01571 { 01572 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01573 } 01574 } 01575 } 01576 else if( itrig == L1ParticleMap::kDoubleEG10_HTT200 ) 01577 { 01578 objectTypes.push_back( L1ParticleMap::kEM ) ; 01579 objectTypes.push_back( L1ParticleMap::kEM ) ; 01580 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01581 01582 if( ht >= doubleThresholds_[ itrig ].second ) 01583 { 01584 evaluateDoubleSameObjectTrigger( inputRelaxedEmRefs, 01585 doubleThresholds_[ itrig ].first, 01586 decision, 01587 outputEmRefsTmp, 01588 combosTmp, 01589 true ) ; 01590 01591 if( decision ) 01592 { 01593 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01594 } 01595 } 01596 } 01597 else if( itrig == L1ParticleMap::kDoubleJet50_HTT200 ) 01598 { 01599 objectTypes.push_back( L1ParticleMap::kJet ) ; 01600 objectTypes.push_back( L1ParticleMap::kJet ) ; 01601 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01602 01603 if( ht >= doubleThresholds_[ itrig ].second ) 01604 { 01605 evaluateDoubleSameObjectTrigger( inputJetRefs, 01606 doubleThresholds_[ itrig ].first, 01607 decision, 01608 outputJetRefsTmp, 01609 combosTmp, 01610 true ) ; 01611 01612 if( decision ) 01613 { 01614 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01615 } 01616 } 01617 } 01618 else if( itrig == L1ParticleMap::kDoubleTauJet40_HTT200 ) 01619 { 01620 objectTypes.push_back( L1ParticleMap::kJet ) ; 01621 objectTypes.push_back( L1ParticleMap::kJet ) ; 01622 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01623 01624 if( ht >= doubleThresholds_[ itrig ].second ) 01625 { 01626 evaluateDoubleSameObjectTrigger( inputTauRefs, 01627 doubleThresholds_[ itrig ].first, 01628 decision, 01629 outputJetRefsTmp, 01630 combosTmp, 01631 true ) ; 01632 01633 if( decision ) 01634 { 01635 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01636 } 01637 } 01638 } 01639 else if( itrig == L1ParticleMap::kDoubleMu3_ETM20 ) 01640 { 01641 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01642 objectTypes.push_back( L1ParticleMap::kMuon ) ; 01643 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01644 01645 if( met >= doubleThresholds_[ itrig ].second ) 01646 { 01647 evaluateDoubleSameObjectTrigger( inputMuonRefsDouble, 01648 doubleThresholds_[ itrig ].first, 01649 decision, 01650 outputMuonRefsTmp, 01651 combosTmp, 01652 true ) ; 01653 01654 if( decision ) 01655 { 01656 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01657 } 01658 } 01659 } 01660 else if( itrig == L1ParticleMap::kDoubleIsoEG5_ETM20 ) 01661 { 01662 objectTypes.push_back( L1ParticleMap::kEM ) ; 01663 objectTypes.push_back( L1ParticleMap::kEM ) ; 01664 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01665 01666 if( met >= doubleThresholds_[ itrig ].second ) 01667 { 01668 evaluateDoubleSameObjectTrigger( inputIsoEmRefs, 01669 doubleThresholds_[ itrig ].first, 01670 decision, 01671 outputEmRefsTmp, 01672 combosTmp, 01673 true ) ; 01674 01675 if( decision ) 01676 { 01677 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01678 } 01679 } 01680 } 01681 else if( itrig == L1ParticleMap::kDoubleEG10_ETM20 ) 01682 { 01683 objectTypes.push_back( L1ParticleMap::kEM ) ; 01684 objectTypes.push_back( L1ParticleMap::kEM ) ; 01685 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01686 01687 if( met >= doubleThresholds_[ itrig ].second ) 01688 { 01689 evaluateDoubleSameObjectTrigger( inputRelaxedEmRefs, 01690 doubleThresholds_[ itrig ].first, 01691 decision, 01692 outputEmRefsTmp, 01693 combosTmp, 01694 true ) ; 01695 01696 if( decision ) 01697 { 01698 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01699 } 01700 } 01701 } 01702 else if( itrig == L1ParticleMap::kDoubleJet50_ETM20 ) 01703 { 01704 objectTypes.push_back( L1ParticleMap::kJet ) ; 01705 objectTypes.push_back( L1ParticleMap::kJet ) ; 01706 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01707 01708 if( met >= doubleThresholds_[ itrig ].second ) 01709 { 01710 evaluateDoubleSameObjectTrigger( inputJetRefs, 01711 doubleThresholds_[ itrig ].first, 01712 decision, 01713 outputJetRefsTmp, 01714 combosTmp, 01715 true ) ; 01716 01717 if( decision ) 01718 { 01719 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01720 } 01721 } 01722 } 01723 else if( itrig == L1ParticleMap::kDoubleTauJet40_ETM20 ) 01724 { 01725 objectTypes.push_back( L1ParticleMap::kJet ) ; 01726 objectTypes.push_back( L1ParticleMap::kJet ) ; 01727 objectTypes.push_back( L1ParticleMap::kEtMiss ) ; 01728 01729 if( met >= doubleThresholds_[ itrig ].second ) 01730 { 01731 evaluateDoubleSameObjectTrigger( inputTauRefs, 01732 doubleThresholds_[ itrig ].first, 01733 decision, 01734 outputJetRefsTmp, 01735 combosTmp, 01736 true ) ; 01737 01738 if( decision ) 01739 { 01740 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01741 } 01742 } 01743 } 01744 else if( itrig == L1ParticleMap::kQuadJet30 ) 01745 { 01746 objectTypes.push_back( L1ParticleMap::kJet ) ; 01747 objectTypes.push_back( L1ParticleMap::kJet ) ; 01748 objectTypes.push_back( L1ParticleMap::kJet ) ; 01749 objectTypes.push_back( L1ParticleMap::kJet ) ; 01750 01751 evaluateQuadSameObjectTrigger( inputJetRefs, 01752 singleThresholds_[ itrig ], 01753 decision, 01754 outputJetRefsTmp, 01755 combosTmp ) ; 01756 } 01757 else if( itrig == L1ParticleMap::kExclusiveDoubleIsoEG4 ) 01758 { 01759 objectTypes.push_back( L1ParticleMap::kEM ) ; 01760 objectTypes.push_back( L1ParticleMap::kEM ) ; 01761 01762 evaluateDoubleExclusiveIsoEG(inputIsoEmRefs, 01763 inputJetRefs, 01764 doubleThresholds_[ itrig ].first, 01765 doubleThresholds_[ itrig ].second, 01766 decision, 01767 outputEmRefsTmp, 01768 combosTmp); 01769 01770 } 01771 else if( itrig == L1ParticleMap::kExclusiveDoubleJet60 ) 01772 { 01773 objectTypes.push_back( L1ParticleMap::kJet ) ; 01774 objectTypes.push_back( L1ParticleMap::kJet ) ; 01775 01776 if( inputJetRefs.size() == 2 ) 01777 { 01778 evaluateDoubleSameObjectTrigger( inputJetRefs, 01779 singleThresholds_[ itrig ], 01780 decision, 01781 outputJetRefsTmp, 01782 combosTmp ) ; 01783 } 01784 } 01785 else if( itrig == L1ParticleMap::kExclusiveJet25_Gap_Jet25 ) 01786 { 01787 objectTypes.push_back( L1ParticleMap::kJet ) ; 01788 objectTypes.push_back( L1ParticleMap::kJet ) ; 01789 01790 if( inputJetRefs.size() == 2 ) 01791 { 01792 evaluateJetGapJetTrigger( inputForJetRefs, 01793 singleThresholds_[ itrig ], 01794 decision, 01795 outputJetRefsTmp, 01796 combosTmp ) ; 01797 } 01798 } 01799 else if( itrig == L1ParticleMap::kIsoEG10_Jet20_ForJet10 ) 01800 { 01801 objectTypes.push_back( L1ParticleMap::kEM ) ; 01802 objectTypes.push_back( L1ParticleMap::kJet ) ; 01803 01804 evaluateForwardRapidityGap(inputForJetRefs, 01805 singleThresholds_[ itrig ], 01806 decision); 01807 01808 if(decision){ 01809 decision = false; 01810 evaluateDoubleDifferentCaloObjectTrigger( 01811 inputIsoEmRefs, 01812 inputCenJetTauJetRefs, 01813 doubleThresholds_[ itrig ].first, 01814 doubleThresholds_[ itrig ].second, 01815 decision, 01816 outputEmRefsTmp, 01817 outputJetRefsTmp, 01818 combosTmp ); 01819 } 01820 } 01821 else if( itrig == L1ParticleMap::kMinBias_HTT10 ) 01822 { 01823 objectTypes.push_back( L1ParticleMap::kEtHad ) ; 01824 01825 if( ht >= 10. ) 01826 { 01827 decision = true ; 01828 metRefTmp = L1EtMissParticleRefProd( metHandle ) ; 01829 } 01830 } 01831 else if( itrig == L1ParticleMap::kZeroBias ) 01832 { 01833 decision = true ; 01834 } 01835 01836 L1EmParticleVectorRef outputEmRefs ; 01837 L1JetParticleVectorRef outputJetRefs ; 01838 L1MuonParticleVectorRef outputMuonRefs ; 01839 L1EtMissParticleRefProd metRef ; 01840 L1ParticleMap::L1IndexComboVector combos ; // unfilled for single objs 01841 01842 if( decision ) 01843 { 01844 // if( prescaleCounters_[ itrig ] % prescales_[ itrig ] ) 01845 01846 double rand = RandFlat::shoot() * ( double ) prescales_[ itrig ] ; 01847 if( rand > 1. ) 01848 { 01849 decision = false ; 01850 } 01851 else 01852 { 01853 outputEmRefs = outputEmRefsTmp ; 01854 outputJetRefs = outputJetRefsTmp ; 01855 outputMuonRefs = outputMuonRefsTmp ; 01856 metRef = metRefTmp ; 01857 combos = combosTmp ; 01858 } 01859 01860 ++prescaleCounters_[ itrig ] ; 01861 } 01862 01863 // Construct a L1ParticleMap and add it to the collection. 01864 mapColl->push_back( L1ParticleMap( 01865 ( L1ParticleMap::L1TriggerType ) itrig, 01866 decision, 01867 objectTypes, 01868 outputEmRefs, 01869 outputJetRefs, 01870 outputMuonRefs, 01871 metRef, 01872 combos ) ) ; 01873 01874 globalDecision = globalDecision || decision ; 01875 decisionWord.push_back( decision ) ; 01876 } 01877 01878 // Put the L1ParticleMapCollection into the event. 01879 iEvent.put( mapColl ) ; 01880 01881 // Make a L1GlobalTriggerReadoutRecord and put it into the event. 01882 auto_ptr< L1GlobalTriggerReadoutRecord > gtRecord( 01883 new L1GlobalTriggerReadoutRecord() ) ; 01884 gtRecord->setDecision( globalDecision ) ; 01885 gtRecord->setDecisionWord( decisionWord ) ; 01886 iEvent.put( gtRecord ) ; 01887 01888 return ; 01889 }
std::pair< double, double > L1ExtraParticleMapProd::doubleThresholds_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes] [private] |
Definition at line 164 of file L1ExtraParticleMapProd.h.
Referenced by L1ExtraParticleMapProd(), and produce().
int L1ExtraParticleMapProd::prescaleCounters_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes] [private] |
Definition at line 162 of file L1ExtraParticleMapProd.h.
Referenced by L1ExtraParticleMapProd(), and produce().
int L1ExtraParticleMapProd::prescales_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes] [private] |
Definition at line 160 of file L1ExtraParticleMapProd.h.
Referenced by L1ExtraParticleMapProd(), and produce().
double L1ExtraParticleMapProd::singleThresholds_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes] [private] |
Definition at line 159 of file L1ExtraParticleMapProd.h.
Referenced by L1ExtraParticleMapProd(), and produce().