00001
00002
00003
00004
00005
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #include <memory>
00018
00019
00020 #include "L1Trigger/L1ExtraFromDigis/interface/L1ExtraParticleMapProd.h"
00021
00022
00023
00024 #include "DataFormats/Common/interface/Handle.h"
00025 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00026
00027 #include "CLHEP/Random/RandFlat.h"
00028
00029 static const int kDefault = -1 ;
00030
00031
00032
00033
00034
00035
00036
00037
00038
00039
00040
00041
00042 L1ExtraParticleMapProd::L1ExtraParticleMapProd(
00043 const edm::ParameterSet& iConfig)
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
00062 produces< L1ParticleMapCollection >() ;
00063 produces< L1GlobalTriggerReadoutRecord >();
00064
00065
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
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
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
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
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
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
00682 doubleThresholds_[ L1ParticleMap::kExclusiveDoubleIsoEG4 ].first =
00683 iConfig.getParameter< double >( "L1_ExclusiveDoubleIsoEG4_thresh1" );
00684 doubleThresholds_[ L1ParticleMap::kExclusiveDoubleIsoEG4 ].second =
00685 iConfig.getParameter< double >( "L1_ExclusiveDoubleIsoEG4_thresh2" );
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
00711
00712
00713
00714
00715
00716
00717
00718
00719
00720
00721
00722
00723
00724
00725
00726
00727
00728
00729
00730
00731
00732
00733
00734
00735
00736
00737
00738
00739
00740
00741
00742
00743
00744
00745
00746
00747
00748
00749
00750
00751 }
00752
00753
00754 L1ExtraParticleMapProd::~L1ExtraParticleMapProd()
00755 {
00756
00757
00758 }
00759
00760
00761
00762
00763
00764
00765
00766 void
00767 L1ExtraParticleMapProd::produce(edm::Event& iEvent,
00768 const edm::EventSetup& iSetup)
00769 {
00770 using namespace edm;
00771 using namespace std;
00772 using namespace reco;
00773 using namespace l1extra ;
00774
00775
00776
00777
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
00807
00808
00809
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 ;
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 ;
01841
01842 if( decision )
01843 {
01844
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
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
01879 iEvent.put( mapColl ) ;
01880
01881
01882 auto_ptr< L1GlobalTriggerReadoutRecord > gtRecord(
01883 new L1GlobalTriggerReadoutRecord() ) ;
01884 gtRecord->setDecision( globalDecision ) ;
01885 gtRecord->setDecisionWord( decisionWord ) ;
01886 iEvent.put( gtRecord ) ;
01887
01888 return ;
01889 }
01890
01891
01892 template< class TCollection >
01893 void
01894 L1ExtraParticleMapProd::addToVectorRefs(
01895 const edm::Handle< TCollection >& handle,
01896 std::vector< edm::Ref< TCollection > >& vectorRefs )
01897 {
01898 for( size_t i = 0 ; i < handle->size() ; ++i )
01899 {
01900 vectorRefs.push_back( edm::Ref< TCollection >( handle, i ) ) ;
01901 }
01902 }
01903
01904 template< class TCollection >
01905 void
01906 L1ExtraParticleMapProd::evaluateSingleObjectTrigger(
01907 const std::vector< edm::Ref< TCollection > >& inputRefs,
01908 const double& etThreshold,
01909 bool& decision,
01910 std::vector< edm::Ref< TCollection > >& outputRefs )
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 }
01921
01922 template< class TCollection >
01923 void
01924 L1ExtraParticleMapProd::evaluateDoubleSameObjectTrigger(
01925 const std::vector< edm::Ref< TCollection > >& inputRefs,
01926 const double& etThreshold,
01927 bool& decision,
01928 std::vector< edm::Ref< TCollection > >& outputRefs,
01929 l1extra::L1ParticleMap::L1IndexComboVector& combos,
01930 bool combinedWithGlobalObject )
01931 {
01932
01933
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
01947
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
01964
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
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 }
01988
01989
01990 template< class TCollection >
01991 void
01992 L1ExtraParticleMapProd::evaluateTripleSameObjectTrigger(
01993 const std::vector< edm::Ref< TCollection > >& inputRefs,
01994 const double& etThreshold,
01995 bool& decision,
01996 std::vector< edm::Ref< TCollection > >& outputRefs,
01997 l1extra::L1ParticleMap::L1IndexComboVector& combos )
01998 {
01999
02000
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
02019
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
02042
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
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 }
02074
02075
02076 template< class TCollection1, class TCollection2 >
02077 void
02078 L1ExtraParticleMapProd::evaluateDoublePlusSingleObjectTrigger(
02079 const std::vector< edm::Ref< TCollection1 > >& inputRefs1,
02080 const std::vector< edm::Ref< TCollection2 > >& inputRefs2,
02081 const double& etThreshold1,
02082 const double& etThreshold2,
02083 bool& decision,
02084 std::vector< edm::Ref< TCollection1 > >& outputRefs1,
02085 std::vector< edm::Ref< TCollection2 > >& outputRefs2,
02086 l1extra::L1ParticleMap::L1IndexComboVector& combos )
02087 {
02088
02089
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
02108
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
02137
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
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 }
02169
02170
02171 template< class TCollection >
02172 void
02173 L1ExtraParticleMapProd::evaluateQuadSameObjectTrigger(
02174 const std::vector< edm::Ref< TCollection > >& inputRefs,
02175 const double& etThreshold,
02176 bool& decision,
02177 std::vector< edm::Ref< TCollection > >& outputRefs,
02178 l1extra::L1ParticleMap::L1IndexComboVector& combos )
02179 {
02180
02181
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
02205
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
02235
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
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 }
02276
02277
02278 template< class TCollection1, class TCollection2 >
02279 void
02280 L1ExtraParticleMapProd::evaluateDoubleDifferentObjectTrigger(
02281 const std::vector< edm::Ref< TCollection1 > >& inputRefs1,
02282 const std::vector< edm::Ref< TCollection2 > >& inputRefs2,
02283 const double& etThreshold1,
02284 const double& etThreshold2,
02285 bool& decision,
02286 std::vector< edm::Ref< TCollection1 > >& outputRefs1,
02287 std::vector< edm::Ref< TCollection2 > >& outputRefs2,
02288 l1extra::L1ParticleMap::L1IndexComboVector& combos )
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
02304
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
02324
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
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 }
02347
02348
02349 template< class TCollection >
02350 void
02351 L1ExtraParticleMapProd::evaluateDoubleDifferentObjectSameTypeTrigger(
02352 const std::vector< edm::Ref< TCollection > >& inputRefs1,
02353 const std::vector< edm::Ref< TCollection > >& inputRefs2,
02354 const double& etThreshold1,
02355 const double& etThreshold2,
02356 bool& decision,
02357 std::vector< edm::Ref< TCollection > >& outputRefs,
02358 l1extra::L1ParticleMap::L1IndexComboVector& combos )
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
02375
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
02395
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
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 }
02418
02419 void
02420 L1ExtraParticleMapProd::evaluateDoubleDifferentCaloObjectTrigger(
02421 const l1extra::L1EmParticleVectorRef& inputRefs1,
02422 const l1extra::L1JetParticleVectorRef& inputRefs2,
02423 const double& etThreshold1,
02424 const double& etThreshold2,
02425 bool& decision,
02426 l1extra::L1EmParticleVectorRef& outputRefs1,
02427 l1extra::L1JetParticleVectorRef& outputRefs2,
02428 l1extra::L1ParticleMap::L1IndexComboVector& combos )
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
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
02449
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
02469
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
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 }
02492
02493
02494 void L1ExtraParticleMapProd::evaluateJetGapJetTrigger(
02495 const l1extra::L1JetParticleVectorRef& inputRefs,
02496 const double& etThreshold,
02497 bool& decision,
02498 l1extra::L1JetParticleVectorRef& outputRefs,
02499 l1extra::L1ParticleMap::L1IndexComboVector& combos )
02500 {
02501
02502
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
02521
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
02538
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
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 }
02561
02562
02563
02564 void
02565 L1ExtraParticleMapProd::evaluateForwardRapidityGap(
02566 const l1extra::L1JetParticleVectorRef& inputRefs,
02567 const double& etThreshold,
02568 bool& decision
02569 )
02570 {
02571 decision = true;
02572
02573
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 ;
02591 }
02592 }
02593 }
02594 }
02595 }
02596
02597 void
02598 L1ExtraParticleMapProd::evaluateDoubleExclusiveIsoEG(
02599 const l1extra::L1EmParticleVectorRef& inputRefs1,
02600 const l1extra::L1JetParticleVectorRef& inputRefs2,
02601 const double& etThreshold1,
02602 const double& etThreshold2,
02603 bool& decision,
02604 l1extra::L1EmParticleVectorRef& outputRefs1,
02605 l1extra::L1ParticleMap::L1IndexComboVector& combos )
02606 {
02607 if ( inputRefs1.size() ==2 )
02608 {
02609 decision=true;
02610 if (inputRefs2.size()>0)
02611 {
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
02621 }
02622 }
02623 if(decision)
02624 {
02625 decision = false;
02626 evaluateDoubleSameObjectTrigger( inputRefs1,
02627 etThreshold1,
02628 decision,
02629 outputRefs1,
02630 combos ) ;
02631 }
02632 }
02633 }
02634
02635
02636
02637