#include <L1Trigger/HardwareValidation/plugins/L1EmulBias.h>
Definition at line 38 of file L1EmulBias.h.
L1EmulBias::L1EmulBias | ( | const edm::ParameterSet & | iConfig | ) | [explicit] |
assertion/temporary
List of collections to be produced
Definition at line 5 of file L1EmulBias.cc.
References GenMuonPlsPt100GeV_cfg::cout, dedefs::CTF, dedefs::CTP, dedefs::DEnsys, dedefs::DTF, dedefs::DTP, lat::endl(), dedefs::ETP, dedefs::GCT, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), dedefs::GLT, GMT, dedefs::HTP, i, instName, j, label, dedefs::LTC, m_DEsource, m_doSys, dedefs::RCT, rndFlat_, rndGaus_, dedefs::RPC, dedefs::SystLabel, verbose(), and verbose_.
00005 { 00006 00007 verbose_ = iConfig.getUntrackedParameter<int>("VerboseFlag",0); 00008 00009 for(int sys=0; sys<DEnsys; sys++) { 00010 std::string label = SystLabel[sys] + "source"; 00011 m_DEsource[sys][0] = iConfig.getParameter<edm::InputTag>(label); 00012 if(sys==CTF) { 00013 std::string label = "CTTsource"; 00014 m_DEsource[sys][1] = iConfig.getParameter<edm::InputTag>(label); 00015 } 00016 } 00017 00018 std::vector<unsigned int> compColls 00019 = iConfig.getUntrackedParameter<std::vector<unsigned int> >("DO_SYSTEM"); 00020 for(int i=0; i<DEnsys; i++) 00021 m_doSys[i] = compColls[i]; 00022 00023 if(verbose()) { 00024 std::cout << "[L1EmulBias] do sys? "; 00025 for(int i=0; i<DEnsys; i++) 00026 std::cout << m_doSys[i]; 00027 std::cout << "\n\t"; 00028 for(int i=0; i<DEnsys; i++) 00029 if(m_doSys[i]) 00030 std::cout << SystLabel[i] << " "; 00031 std::cout << std::endl; 00032 } 00033 00034 std::string CollInstName[DEnsys][5]; 00035 for(int i=0; i<DEnsys; i++) 00036 for(int j=0; j<5; j++) 00037 CollInstName[i][j]=std::string(""); 00038 00039 CollInstName[GCT][0]+="isoEm" ; 00040 CollInstName[GCT][1]+="nonIsoEm"; 00041 CollInstName[GCT][2]+="cenJets" ; 00042 CollInstName[GCT][3]+="forJets" ; 00043 CollInstName[GCT][4]+="tauJets" ; 00044 CollInstName[DTF][0]+="DT" ; 00045 CollInstName[DTF][1]+="DTTF" ; 00046 CollInstName[CTF][0]+="CSC" ; 00047 CollInstName[CTF][1]+="" ; 00048 CollInstName[RPC][0]+="RPCb" ; 00049 CollInstName[RPC][1]+="RPCf" ; 00050 00051 for(int i=0; i<DEnsys; i++) 00052 for(int j=0; j<5; j++) 00053 instName[i][j] = CollInstName[i][j]; 00054 00055 if(verbose()) 00056 for(int i=0; i<DEnsys; i++) 00057 for(int j=0; j<5; j++) 00058 if(instName[i][j] != "") 00059 std::cout << "[emulbias] " << i << " " << SystLabel[i] 00060 << " " << j << " " << instName[i][j] 00061 << std::endl; 00062 00064 assert(ETP==0); assert(HTP==1); assert(RCT== 2); assert(GCT== 3); 00065 assert(DTP==4); assert(DTF==5); assert(CTP== 6); assert(CTF== 7); 00066 assert(RPC==8); assert(LTC==9); assert(GMT==10); assert(GLT==11); 00067 00069 if(m_doSys[ETP]) produces<EcalTrigPrimDigiCollection> (instName[ETP][0]); 00070 if(m_doSys[HTP]) produces<HcalTrigPrimDigiCollection> (instName[HTP][0]); 00071 if(m_doSys[RCT]) produces<L1CaloEmCollection> (instName[RCT][0]); 00072 if(m_doSys[RCT]) produces<L1CaloRegionCollection> (instName[RCT][0]); 00073 if(m_doSys[GCT]) produces<L1GctEmCandCollection> (instName[GCT][0]); 00074 if(m_doSys[GCT]) produces<L1GctEmCandCollection> (instName[GCT][1]); 00075 if(m_doSys[GCT]) produces<L1GctJetCandCollection> (instName[GCT][2]); 00076 if(m_doSys[GCT]) produces<L1GctJetCandCollection> (instName[GCT][3]); 00077 if(m_doSys[GCT]) produces<L1GctJetCandCollection> (instName[GCT][4]); 00078 if(m_doSys[DTP]) produces<L1MuDTChambPhContainer> (instName[DTP][0]); 00079 if(m_doSys[DTP]) produces<L1MuDTChambThContainer> (instName[DTP][0]); 00080 if(m_doSys[DTF]) produces<L1MuRegionalCandCollection> (instName[DTF][0]); 00081 if(m_doSys[DTF]) produces<L1MuDTTrackContainer> (instName[DTF][1]); 00082 if(m_doSys[CTP]) produces<CSCCorrelatedLCTDigiCollection> (instName[CTP][0]); 00083 if(m_doSys[CTF]) produces<L1MuRegionalCandCollection> (instName[CTF][0]); 00084 if(m_doSys[CTF]) produces<L1CSCTrackCollection> (instName[CTF][1]); 00085 if(m_doSys[RPC]) produces<L1MuRegionalCandCollection> (instName[RPC][0]); 00086 if(m_doSys[RPC]) produces<L1MuRegionalCandCollection> (instName[RPC][1]); 00087 if(m_doSys[LTC]) produces<LTCDigiCollection> (instName[LTC][0]); 00088 if(m_doSys[GMT]) produces<L1MuGMTCandCollection> (instName[GMT][0]); 00089 if(m_doSys[GMT]) produces<L1MuGMTReadoutCollection> (instName[GMT][0]); 00090 if(m_doSys[GLT]) produces<L1GlobalTriggerReadoutRecord> (instName[GLT][0]); 00091 if(m_doSys[GLT]) produces<L1GlobalTriggerEvmReadoutRecord>(instName[GLT][0]); 00092 if(m_doSys[GLT]) produces<L1GlobalTriggerObjectMapRecord> (instName[GLT][0]); 00093 00094 edm::Service<edm::RandomNumberGenerator> rng; 00095 CLHEP::HepRandomEngine& engine = rng->getEngine(); 00096 rndFlat_ = new CLHEP::RandFlat (engine, 0., 1.); 00097 rndGaus_ = new CLHEP::RandGaussQ(engine, 0., 1.); 00098 00099 if(verbose()) 00100 std::cout << "L1EmulBias::L1EmulBias()... done." << std::endl; 00101 }
L1EmulBias::~L1EmulBias | ( | ) |
void L1EmulBias::beginJob | ( | const edm::EventSetup & | ) | [protected, virtual] |
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1CSCTrackCollection > & | data, | |
const edm::Handle< L1CSCTrackCollection > | emul | |||
) | [inline] |
Definition at line 419 of file L1EmulBias.h.
References CSCCorrelatedLCTDigi::getTrknmb(), L1MuRegionalCand::pt_packed(), L1MuRegionalCand::quality(), L1MuRegionalCand::setPtPacked(), CSCCorrelatedLCTDigi::setTrknmb(), L1MuRegionalCand::setType(), and L1MuRegionalCand::type_idx().
00420 { 00421 typedef L1CSCTrackCollection::const_iterator col_cit; 00422 //typedef std::vector<L1CSCTrack> L1CSCTrackCollection; 00423 //typedef std::pair<csc::L1Track,CSCCorrelatedLCTDigiCollection> L1CSCTrack; 00424 //typedef MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection; 00425 typedef CSCCorrelatedLCTDigiCollection::DigiRangeIterator mapIt;//map iterator 00426 typedef CSCCorrelatedLCTDigiCollection::const_iterator vecIt;//vec iterator 00427 CSCCorrelatedLCTDigiCollection_ ctf_trk_data_v, ctf_trk_emul_v; //vector 00428 //loop over csc-tracks (ie pairs<l1track,digi_vec>) 00429 for(col_cit tcit=emul->begin(); tcit!=emul->end(); tcit++) { 00430 csc::L1Track l1trk = tcit->first; 00431 if(l1trk.quality()<4) 00432 l1trk.setPtPacked((l1trk.pt_packed()>>2)&0x1f); 00433 l1trk.setType(l1trk.type_idx()); 00434 //L1MuRegionalCand reg(tcit->first.getDataWord(), tcit->first.bx()); 00435 std::auto_ptr<CSCCorrelatedLCTDigiCollection> dgcoll(new CSCCorrelatedLCTDigiCollection); 00436 CSCCorrelatedLCTDigiCollection ldc = tcit->second; //muondigicollection=map 00437 //get the lct-digi-collection (ie muon-digi-collection) 00438 //loop over data (map<idx,vec_digi>) 00439 for (mapIt mit = ldc.begin(); mit != ldc.end(); mit++) { 00440 //get vec_digi range(pair) corresponding to idx of map 00441 //loop over digi vector (ie between begin and end pointers in range) 00442 //CSCCorrelatedLCTDigiCollection::Range ctpRange = ctp_lct_data_->get((*mit).first) 00443 CSCDetId did = (*mit).first; 00444 //for (vecIt vit = ctpRange.first; vit != ctpRange.second; vit++) { 00445 for (vecIt vit = ldc.get((*mit).first).first; 00446 vit != ldc.get((*mit).first).second; vit++) { 00447 CSCCorrelatedLCTDigi dg = *vit; 00448 uint16_t tn = dg.getTrknmb(); 00449 if(tn==2) tn--; 00450 dg.setTrknmb(tn); 00451 dgcoll->insertDigi(did,dg); 00452 } 00453 } 00454 L1CSCTrack l1csctrk = std::make_pair(l1trk,*dgcoll); 00455 data->push_back(l1csctrk); 00456 } 00457 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< CSCCorrelatedLCTDigiCollection > & | data, | |
const edm::Handle< CSCCorrelatedLCTDigiCollection > | emul | |||
) | [inline] |
modify digi
append digi
Definition at line 389 of file L1EmulBias.h.
References CSCCorrelatedLCTDigi::getTrknmb(), and CSCCorrelatedLCTDigi::setTrknmb().
00390 { 00391 //typedef MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection; 00392 typedef CSCCorrelatedLCTDigiCollection::DigiRangeIterator mapIt;//map iterator 00393 typedef CSCCorrelatedLCTDigiCollection::const_iterator vecIt;//vec iterator 00394 //loop over data (map<idx,vec_digi>) 00395 for (mapIt mit = emul->begin(); mit != emul->end(); mit++) { 00396 //get detector index 00397 CSCDetId did = (*mit).first; 00398 //get vec_digi range(pair) corresponding to idx of map 00399 //CSCCorrelatedLCTDigiCollection::Range ctpRange = emul->get(did) 00400 //loop over digi vector (ie between begin and end pointers in range) 00401 //for (vecIt vit = ctpRange.first; vit != ctpRange.second; vit++) { 00402 for (vecIt vit = emul->get((*mit).first).first; 00403 vit != emul->get((*mit).first).second; vit++) { 00405 CSCCorrelatedLCTDigi dg = *vit; 00406 //dg.clear; 00407 uint16_t tn = dg.getTrknmb(); 00408 if(tn==2) tn--; 00409 dg.setTrknmb(tn); 00410 //dg.setTrknmb (dg.getTrknmb ()); 00411 //dg.setMPCLink (dg.getMPCLink ()); 00412 //dg.setWireGroup(dg.getWireGroup()); 00414 data->insertDigi(did,dg); 00415 } 00416 } 00417 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1MuGMTReadoutCollection > & | data, | |
const edm::Handle< L1MuGMTReadoutCollection > | emul | |||
) | [inline] |
Definition at line 324 of file L1EmulBias.h.
References parsecf::pyparsing::col(), i, it, L1MuRegionalCand::setPtPacked(), and L1MuRegionalCand::setType().
00325 { 00326 typedef std::vector<L1MuGMTReadoutRecord>::const_iterator col_cit; 00327 std::vector<L1MuGMTReadoutRecord> col = emul->getRecords(); 00328 for(col_cit it = col.begin(); it!=col.end(); it++) { 00329 L1MuGMTReadoutRecord rec(it->getBxInEvent()); 00330 rec.setBxNr (it->getBxNr ()); 00331 rec.setEvNr (it->getEvNr ()); 00332 rec.setBCERR(it->getBCERR()); 00333 00334 std::auto_ptr<L1MuRegionalCandCollection> new_dttf(new L1MuRegionalCandCollection); 00335 std::auto_ptr<L1MuRegionalCandCollection> new_rpcb(new L1MuRegionalCandCollection); 00336 std::auto_ptr<L1MuRegionalCandCollection> new_csc (new L1MuRegionalCandCollection); 00337 std::auto_ptr<L1MuRegionalCandCollection> new_rpcf(new L1MuRegionalCandCollection); 00338 00339 L1MuRegionalCandCollection old_dttf = it->getDTBXCands(); 00340 L1MuRegionalCandCollection old_rpcb = it->getBrlRPCCands(); 00341 L1MuRegionalCandCollection old_csc = it->getCSCCands(); 00342 L1MuRegionalCandCollection old_rpcf = it->getFwdRPCCands(); 00343 00344 typedef L1MuRegionalCandCollection::const_iterator ait; 00345 for(ait it = old_dttf.begin(); it!=old_dttf.end(); it++) { 00346 L1MuRegionalCand cand(*it); 00347 if(it->quality()<4) 00348 cand.setPtPacked((it->pt_packed()>>2)&0x1f); 00349 cand.setType(it->type_idx()); 00350 new_dttf->push_back(cand); 00351 } 00352 for(ait it = old_rpcb.begin(); it!=old_rpcb.end(); it++) { 00353 L1MuRegionalCand cand(*it); 00354 if(it->quality()<4) 00355 cand.setPtPacked((it->pt_packed()>>2)&0x1f); 00356 cand.setType(it->type_idx()); 00357 new_rpcb->push_back(cand); 00358 } 00359 for(ait it = old_csc.begin(); it!=old_csc.end(); it++) { 00360 L1MuRegionalCand cand(*it); 00361 if(it->quality()<4) 00362 cand.setPtPacked((it->pt_packed()>>2)&0x1f); 00363 cand.setType(it->type_idx()); 00364 new_csc->push_back(cand); 00365 } 00366 for(ait it = old_rpcf.begin(); it!=old_rpcf.end(); it++) { 00367 L1MuRegionalCand cand(*it); 00368 if(it->quality()<4) 00369 cand.setPtPacked((it->pt_packed()>>2)&0x1f); 00370 cand.setType(it->type_idx()); 00371 new_rpcf->push_back(cand); 00372 } 00373 00374 for(unsigned i=0; i<old_dttf.size(); i++) 00375 rec.setInputCand(i ,new_dttf->at(i));//dt : 0..3 00376 for(unsigned i=0; i<old_rpcb.size(); i++) 00377 rec.setInputCand(i+ 4,new_rpcb->at(i));//rpcb: 4..7 00378 for(unsigned i=0; i<old_csc .size(); i++) 00379 rec.setInputCand(i+ 8,new_csc ->at(i));//csc : 8..11 00380 for(unsigned i=0; i<old_rpcf.size(); i++) 00381 rec.setInputCand(i+12,new_rpcf->at(i));//rpcf:12..15 00382 00383 data->addRecord(rec); 00384 } 00385 //void addRecord(L1MuGMTReadoutRecord const& rec) { 00386 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1MuGMTCandCollection > & | data, | |
const edm::Handle< L1MuGMTCandCollection > | emul | |||
) | [inline] |
Definition at line 307 of file L1EmulBias.h.
References it.
00308 { 00309 //typedef std::vector<L1MuGMTCand> L1MuGMTCandCollection; 00310 typedef std::vector<L1MuGMTCand>::const_iterator col_cit; 00311 for(col_cit it=emul->begin(); it!=emul->end(); it++) { 00312 float phiv = it->phiValue(); 00313 unsigned dword = it->getDataWord(); 00314 if(phiv>2. && phiv<4.) 00315 dword = dword>>2; 00316 L1MuGMTCand cand(dword,it->bx()); 00317 data->push_back(cand); 00318 //cand.setPtPacked(cand.ptIndex()>>1); 00319 //data->push_back(L1MuGMTCand((it->getDataWord()>>1),it->bx())); 00320 } 00321 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< LTCDigiCollection > & | data, | |
const edm::Handle< LTCDigiCollection > | emul | |||
) | [inline] |
Definition at line 296 of file L1EmulBias.h.
References it.
00297 { 00298 typedef std::vector<LTCDigi>::const_iterator col_cit; 00299 for(col_cit it=emul->begin(); it!=emul->end(); it++) { 00300 data->push_back(*it); 00301 //note: raw data accessor missing in dataformats! 00302 //data->push_back(LTCDigi(it->data()>>1)); 00303 } 00304 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1MuDTChambThContainer > & | data, | |
const edm::Handle< L1MuDTChambThContainer > | emul | |||
) | [inline] |
Definition at line 274 of file L1EmulBias.h.
00275 { 00276 typedef std::vector<L1MuDTChambThDigi> Thi_Container; 00277 typedef Thi_Container::const_iterator col_cit; 00278 Thi_Container* tracks_in = emul->getContainer(); 00279 Thi_Container tracks(tracks_in->size()); 00280 int uos[7],uqa[7]; 00281 for(col_cit it=tracks_in->begin(); it!=tracks_in->end(); it++) { 00282 for(int j=0; j<7; j++) { 00283 uos[j]=(it->position(j)?0:1); 00284 uqa[j]=(it->quality (j)?0:1); 00285 } 00286 int stnum = it->stNum(); 00287 stnum = (stnum>2?stnum-1:stnum); 00288 L1MuDTChambThDigi 00289 cand(it->bxNum(),it->whNum(),it->scNum(),stnum,uos,uqa); 00290 tracks.push_back(cand); 00291 } 00292 data->setContainer(tracks); 00293 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1MuDTChambPhContainer > & | data, | |
const edm::Handle< L1MuDTChambPhContainer > | emul | |||
) | [inline] |
Definition at line 255 of file L1EmulBias.h.
00256 { 00257 typedef std::vector<L1MuDTChambPhDigi> Phi_Container; 00258 typedef Phi_Container::const_iterator col_it; 00259 Phi_Container* tracks_in = emul->getContainer(); 00260 Phi_Container tracks(tracks_in->size()); 00261 int uqua; 00262 for(col_it it=tracks_in->begin(); it!=tracks_in->end(); it++) { 00263 uqua = it->code(); // (int)(10*rndFlat_->fire()); 00264 uqua = (uqua<2?uqua+1:uqua); 00265 L1MuDTChambPhDigi 00266 cand(it->bxNum(),it->whNum(),it->scNum(),it->stNum(), 00267 it->phi(),it->phiB(),uqua,it->Ts2Tag(),it->BxCnt() ); 00268 tracks.push_back(cand); 00269 } 00270 data->setContainer(tracks); 00271 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1MuDTTrackContainer > & | data, | |
const edm::Handle< L1MuDTTrackContainer > | emul | |||
) | [inline] |
Definition at line 225 of file L1EmulBias.h.
References it, L1MuRegionalCand::setPtPacked(), L1MuRegionalCand::setQualityPacked(), L1MuRegionalCand::setType(), and tracks.
00226 { 00227 typedef std::vector<L1MuDTTrackCand> TrackContainer; 00228 typedef TrackContainer::const_iterator col_cit; 00229 TrackContainer* tracks_in = emul->getContainer(); 00230 TrackContainer tracks; 00231 for(col_cit it = tracks_in->begin(); it!=tracks_in->end(); it++) { 00232 L1MuDTTrackCand cand(*it); 00233 cand.setType(it->type_idx()); 00234 unsigned pt = it->pt_packed(); //0..31 00235 unsigned qua = it->quality(); //0..7 00236 if(qua<4) { 00237 cand.setPtPacked((pt>>2)&0x1f); 00238 cand.setQualityPacked((qua<<1)&0x07); 00239 } 00240 tracks.push_back(cand); 00241 } 00242 data->setContainer(tracks); 00243 /* few alternatives... 00244 unsigned phip = it->phi_packed(); 00245 unsigned raw = it->getDataWord(); 00246 uint16_t rdata = raw; 00247 if(2.5<fabs(it->phiValue())<3.0) 00248 rdata = raw>>1; 00249 L1MuRegionalCand cand(rdata,it->bx()); 00250 double rnd = rndFlat_->fire(); 00251 */ 00252 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1MuRegionalCandCollection > & | data, | |
const edm::Handle< L1MuRegionalCandCollection > | emul | |||
) | [inline] |
Definition at line 188 of file L1EmulBias.h.
References it, phi, and L1MuRegionalCand::setPtPacked().
00189 { 00190 typedef L1MuRegionalCandCollection::const_iterator col_cit; 00191 for(col_cit it = emul->begin(); it!=emul->end(); it++) { 00192 L1MuRegionalCand cand(*it); 00193 //unsigned raw = it->getDataWord(); 00194 unsigned phi = it->phi_packed(); 00195 if(phi>90 && phi<110) 00196 cand.setPtPacked( (it->pt_packed())>>1 ); 00197 //raw = (raw>>2); 00198 //L1MuRegionalCand cand(raw); 00199 //cand.setType(it->type_idx()); 00200 data->push_back(cand); 00201 } 00202 /* few alternatives... 00203 unsigned pt= it->pt_packed(); //0..31 00204 unsigned int qua = it->quality(); //0..7 00205 if(qua<4){cand.setPtPacked((pt>>2)&0x1f);cand.setQualityPacked((qua<<1)&0x07);} 00206 double rnd = rndGaus_->fire(); 00207 if(rnd>0.7) { 00208 raw_=(raw>>1); 00209 cand.setDataWord(raw_); 00210 } else if (rnd>0.3) { 00211 pt_ *= (int)(1+0.3*rndFlat_->fire()); 00212 cand.setPtPacked(pt_); 00213 } else 00214 cand.reset(); 00215 unsigned raw = it->getDataWord(); 00216 if(2.5<fabs(it->phiValue())<3.0) 00217 rdata = raw>>1; 00218 L1MuRegionalCand cand(rdata,it->bx()); 00219 */ 00220 //L1MuRegionalCand(unsigned dataword = 0, int bx = 0); 00221 //L1MuRegionalCand(unsigned type_idx, unsigned phi, unsigned eta, unsigned pt, unsigned charge, unsigned ch_valid, unsigned finehalo, unsigned quality, int bx); 00222 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1GctJetCandCollection > & | data, | |
const edm::Handle< L1GctJetCandCollection > | emul | |||
) | [inline] |
Definition at line 173 of file L1EmulBias.h.
00174 { 00175 typedef L1GctJetCandCollection::const_iterator col_cit; 00176 for(col_cit it = emul->begin(); it!=emul->end(); it++) { 00177 unsigned raw = it->raw(); 00178 uint16_t rdata = raw; 00179 if(it->phiIndex()<4*rndFlat_->fire()) //0-17 00180 rdata = raw>>1; 00181 L1GctJetCand cand(rdata,it->isTau(),it->isForward()); 00182 data->push_back(cand); 00183 } 00184 //L1GctJetCand(uint16_t data, bool isTau, bool isFor); 00185 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1GctEmCandCollection > & | data, | |
const edm::Handle< L1GctEmCandCollection > | emul | |||
) | [inline] |
Definition at line 157 of file L1EmulBias.h.
00158 { 00159 typedef L1GctEmCandCollection::const_iterator col_cit; 00160 for(col_cit it = emul->begin(); it!=emul->end(); it++) { 00161 unsigned raw = it->raw(); 00162 uint16_t rdata = raw; 00163 if(it->phiIndex()<4*rndFlat_->fire()) //0-17 00164 rdata = raw>>1; 00165 L1GctEmCand cand(rdata,it->isolated()); 00166 data->push_back(cand); 00167 } 00168 //etaIndex(), etaSign() : -6 to -0, +0 to +6 00169 //L1GctEmCand(uint16_t data, bool iso); 00170 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1CaloRegionCollection > & | data, | |
const edm::Handle< L1CaloRegionCollection > | emul | |||
) | [inline] |
Definition at line 140 of file L1EmulBias.h.
References it.
00141 { 00142 typedef L1CaloRegionCollection::const_iterator col_cit; 00143 for(col_cit it = emul->begin(); it!=emul->end(); it++) { 00144 unsigned crate = it->rctCrate(); 00145 unsigned raw = it->et(); 00146 uint16_t rdata = raw; 00147 if(crate<4*rndFlat_->fire()) 00148 rdata = raw>>1; 00149 L1CaloRegion cand(rdata,it->gctEta(),it->gctPhi(),it->bx()); 00150 data->push_back(cand); 00151 } 00152 //L1CaloRegion(uint16_t data, unsigned ieta, unsigned iphi, int16_t bx); 00153 //Note: raw data accessor missing in dataformats! 00154 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< L1CaloEmCollection > & | data, | |
const edm::Handle< L1CaloEmCollection > | emul | |||
) | [inline] |
Definition at line 121 of file L1EmulBias.h.
References it.
00122 { 00123 typedef L1CaloEmCollection::const_iterator col_cit; 00124 for(col_cit it = emul->begin(); it!=emul->end(); it++) { 00125 unsigned crate = it->rctCrate(); 00126 unsigned raw = it->raw(); 00127 bool iso = it->isolated(); 00128 unsigned rdata = raw; 00129 if(crate<4*rndFlat_->fire()) 00130 rdata = raw>>1; 00131 L1CaloEmCand cand(rdata,crate,iso,it->index(),it->bx(),false); 00132 data->push_back(cand); 00133 } 00134 //L1CaloEmCand(uint16_t data, unsigned crate, bool iso); 00135 //L1CaloEmCand(uint16_t data, unsigned crate, bool iso, uint16_t index, int16_t bx, bool dummy); 00136 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< EcalTrigPrimDigiCollection > & | data, | |
const edm::Handle< EcalTrigPrimDigiCollection > | emul | |||
) | [inline] |
Definition at line 77 of file L1EmulBias.h.
References parsecf::pyparsing::col(), GenMuonPlsPt100GeV_cfg::cout, lat::endl(), it, EcalTriggerPrimitiveSample::raw(), reset(), s, EcalTriggerPrimitiveDigi::sample(), EcalTriggerPrimitiveDigi::setSampleValue(), tmp, and verbose().
00078 { 00079 typedef EcalTrigPrimDigiCollection::const_iterator col_cit; 00080 for(col_cit it = emul->begin(); it!=emul->end(); it++) { 00081 EcalTriggerPrimitiveDigi col(*it); 00082 int iphi = it->id().iphi(); 00083 bool reset = (iphi>18 && iphi<39);//remove few supermodules 00084 for(int s=0; s<5; s++) { 00085 uint16_t sample = it->sample(s).raw(); 00086 if(sample==0) continue; 00087 uint16_t tmp = reset?0:sample; 00088 if(reset) 00089 tmp = sample>>1; 00090 col.setSampleValue(s,tmp); 00091 if(verbose() && sample!=0) 00092 std::cout << "[emulbias] etp " << *it << "\t sample: " << s << " " 00093 << std::hex << sample << " -> " << col.sample(s).raw() 00094 << std::dec << std::endl; 00095 } 00096 data->push_back(col); 00097 } 00098 }
void L1EmulBias::ModifyCollection | ( | std::auto_ptr< T > & | data, | |
const edm::Handle< T > | emul | |||
) | [inline] |
Definition at line 72 of file L1EmulBias.h.
References edm::Handle< T >::product().
Referenced by produce().
void L1EmulBias::produce | ( | edm::Event & | iEvent, | |
const edm::EventSetup & | iSetup | |||
) | [protected, virtual] |
list the emulated collections
get the emulated collections
assert collection validity
declare the data collections
fill data as modified emul collections
append data into event
Implements edm::EDProducer.
Definition at line 117 of file L1EmulBias.cc.
References GenMuonPlsPt100GeV_cfg::cout, dedefs::CTF, dedefs::CTP, dedefs::DTF, dedefs::DTP, dedefs::ETP, flush(), dedefs::GCT, edm::Event::getByLabel(), dedefs::GLT, GMT, dedefs::HTP, instName, edm::Handle< T >::isValid(), label, dedefs::LTC, m_DEsource, m_doSys, ModifyCollection(), edm::Event::put(), dedefs::RCT, dedefs::RPC, and verbose().
00117 { 00118 00119 if(verbose()) 00120 std::cout << "L1EmulBias::produce...\n" << std::flush; 00121 00123 edm::Handle<EcalTrigPrimDigiCollection> ecal_tp_emul; 00124 edm::Handle<HcalTrigPrimDigiCollection> hcal_tp_emul; 00125 edm::Handle<L1CaloEmCollection> rct_em_emul; 00126 edm::Handle<L1CaloRegionCollection> rct_rgn_emul; 00127 edm::Handle<L1GctEmCandCollection> gct_isolaem_emul; 00128 edm::Handle<L1GctEmCandCollection> gct_noisoem_emul; 00129 edm::Handle<L1GctJetCandCollection> gct_cenjets_emul; 00130 edm::Handle<L1GctJetCandCollection> gct_forjets_emul; 00131 edm::Handle<L1GctJetCandCollection> gct_taujets_emul; 00132 edm::Handle<L1MuDTChambPhContainer> dtp_ph_emul; 00133 edm::Handle<L1MuDTChambThContainer> dtp_th_emul; 00134 edm::Handle<L1MuRegionalCandCollection> dtf_emul; 00135 edm::Handle<L1MuDTTrackContainer> dtf_trk_emul; 00136 edm::Handle<CSCCorrelatedLCTDigiCollection> ctp_emul; 00137 edm::Handle<L1MuRegionalCandCollection> ctf_emul; 00138 edm::Handle<L1CSCTrackCollection> ctf_trk_emul; 00139 edm::Handle<L1MuRegionalCandCollection> rpc_cen_emul; 00140 edm::Handle<L1MuRegionalCandCollection> rpc_for_emul; 00141 edm::Handle<LTCDigiCollection> ltc_emul; 00142 edm::Handle<L1MuGMTCandCollection> gmt_emul; 00143 edm::Handle<L1MuGMTReadoutCollection> gmt_rdt_emul; 00144 edm::Handle<L1GlobalTriggerReadoutRecord> gt_em_emul; 00145 edm::Handle<L1GlobalTriggerReadoutRecord> glt_rdt_emul; 00146 edm::Handle<L1GlobalTriggerEvmReadoutRecord> glt_evm_emul; 00147 edm::Handle<L1GlobalTriggerObjectMapRecord> glt_obj_emul; 00148 00150 if(m_doSys[ETP]) iEvent.getByLabel(m_DEsource[ETP][0].label(),instName[ETP][0], ecal_tp_emul); 00151 if(m_doSys[HTP]) iEvent.getByLabel(m_DEsource[HTP][0].label(),instName[HTP][0], hcal_tp_emul); 00152 if(m_doSys[RCT]) iEvent.getByLabel(m_DEsource[RCT][0].label(),instName[RCT][0], rct_em_emul); 00153 if(m_doSys[RCT]) iEvent.getByLabel(m_DEsource[RCT][0].label(),instName[RCT][0], rct_rgn_emul); 00154 if(m_doSys[GCT]) iEvent.getByLabel(m_DEsource[GCT][0].label(),instName[GCT][0],gct_isolaem_emul); 00155 if(m_doSys[GCT]) iEvent.getByLabel(m_DEsource[GCT][0].label(),instName[GCT][1],gct_noisoem_emul); 00156 if(m_doSys[GCT]) iEvent.getByLabel(m_DEsource[GCT][0].label(),instName[GCT][2],gct_cenjets_emul); 00157 if(m_doSys[GCT]) iEvent.getByLabel(m_DEsource[GCT][0].label(),instName[GCT][3],gct_forjets_emul); 00158 if(m_doSys[GCT]) iEvent.getByLabel(m_DEsource[GCT][0].label(),instName[GCT][4],gct_taujets_emul); 00159 if(m_doSys[DTP]) iEvent.getByLabel(m_DEsource[DTP][0].label(),instName[DTP][0], dtp_ph_emul); 00160 if(m_doSys[DTP]) iEvent.getByLabel(m_DEsource[DTP][0].label(),instName[DTP][0], dtp_th_emul); 00161 if(m_doSys[DTF]) iEvent.getByLabel(m_DEsource[DTF][0].label(),instName[DTF][0], dtf_emul); 00162 if(m_doSys[DTF]) iEvent.getByLabel(m_DEsource[DTF][0].label(),instName[DTF][1], dtf_trk_emul); 00163 if(m_doSys[CTP]) iEvent.getByLabel(m_DEsource[CTP][0].label(),instName[CTP][0], ctp_emul); 00164 if(m_doSys[CTF]) iEvent.getByLabel(m_DEsource[CTF][0].label(),instName[CTF][0], ctf_emul); 00165 if(m_doSys[CTF]) iEvent.getByLabel(m_DEsource[CTF][1].label(),instName[CTF][1], ctf_trk_emul); 00166 if(m_doSys[RPC]) iEvent.getByLabel(m_DEsource[RPC][0].label(),instName[RPC][0], rpc_cen_emul); 00167 if(m_doSys[RPC]) iEvent.getByLabel(m_DEsource[RPC][0].label(),instName[RPC][1], rpc_for_emul); 00168 if(m_doSys[LTC]) iEvent.getByLabel(m_DEsource[LTC][0].label(),instName[LTC][0], ltc_emul); 00169 if(m_doSys[GMT]) iEvent.getByLabel(m_DEsource[GMT][0].label(),instName[GMT][0], gmt_emul); 00170 if(m_doSys[GMT]) iEvent.getByLabel(m_DEsource[GMT][0].label(),instName[GMT][0], gmt_rdt_emul); 00171 if(m_doSys[GLT]) iEvent.getByLabel(m_DEsource[GLT][0].label(),instName[GLT][0], glt_rdt_emul); 00172 if(m_doSys[GLT]) iEvent.getByLabel(m_DEsource[GLT][0].label(),instName[GLT][0], glt_evm_emul); 00173 if(m_doSys[GLT]) iEvent.getByLabel(m_DEsource[GLT][0].label(),instName[GLT][0], glt_obj_emul); 00174 00176 if(m_doSys[ETP]) assert( ecal_tp_emul.isValid()); 00177 if(m_doSys[HTP]) assert( hcal_tp_emul.isValid()); 00178 if(m_doSys[RCT]) assert( rct_em_emul.isValid()); 00179 if(m_doSys[RCT]) assert( rct_rgn_emul.isValid()); 00180 if(m_doSys[GCT]) assert(gct_isolaem_emul.isValid()); 00181 if(m_doSys[GCT]) assert(gct_noisoem_emul.isValid()); 00182 if(m_doSys[GCT]) assert(gct_cenjets_emul.isValid()); 00183 if(m_doSys[GCT]) assert(gct_forjets_emul.isValid()); 00184 if(m_doSys[GCT]) assert(gct_taujets_emul.isValid()); 00185 if(m_doSys[DTP]) assert( dtp_ph_emul.isValid()); 00186 if(m_doSys[DTP]) assert( dtp_th_emul.isValid()); 00187 if(m_doSys[DTF]) assert( dtf_emul.isValid()); 00188 if(m_doSys[DTF]) assert( dtf_trk_emul.isValid()); 00189 if(m_doSys[CTP]) assert( ctp_emul.isValid()); 00190 if(m_doSys[CTF]) assert( ctf_emul.isValid()); 00191 if(m_doSys[CTF]) assert( ctf_trk_emul.isValid()); 00192 if(m_doSys[RPC]) assert( rpc_cen_emul.isValid()); 00193 if(m_doSys[RPC]) assert( rpc_for_emul.isValid()); 00194 if(m_doSys[LTC]) assert( ltc_emul.isValid()); 00195 if(m_doSys[GMT]) assert( gmt_emul.isValid()); 00196 if(m_doSys[GMT]) assert( gmt_rdt_emul.isValid()); 00197 if(m_doSys[GLT]) assert( glt_rdt_emul.isValid()); 00198 if(m_doSys[GLT]) assert( glt_evm_emul.isValid()); 00199 if(m_doSys[GLT]) assert( glt_obj_emul.isValid()); 00200 00202 std::auto_ptr<EcalTrigPrimDigiCollection> ecal_tp_data(new EcalTrigPrimDigiCollection ); 00203 std::auto_ptr<HcalTrigPrimDigiCollection> hcal_tp_data(new HcalTrigPrimDigiCollection ); 00204 std::auto_ptr<L1CaloEmCollection> rct_em_data(new L1CaloEmCollection ); 00205 std::auto_ptr<L1CaloRegionCollection> rct_rgn_data(new L1CaloRegionCollection ); 00206 std::auto_ptr<L1GctEmCandCollection> gct_isolaem_data(new L1GctEmCandCollection ); 00207 std::auto_ptr<L1GctEmCandCollection> gct_noisoem_data(new L1GctEmCandCollection ); 00208 std::auto_ptr<L1GctJetCandCollection> gct_cenjets_data(new L1GctJetCandCollection ); 00209 std::auto_ptr<L1GctJetCandCollection> gct_forjets_data(new L1GctJetCandCollection ); 00210 std::auto_ptr<L1GctJetCandCollection> gct_taujets_data(new L1GctJetCandCollection ); 00211 std::auto_ptr<L1MuDTChambPhContainer> dtp_ph_data(new L1MuDTChambPhContainer ); 00212 std::auto_ptr<L1MuDTChambThContainer> dtp_th_data(new L1MuDTChambThContainer ); 00213 std::auto_ptr<L1MuRegionalCandCollection> dtf_data(new L1MuRegionalCandCollection ); 00214 std::auto_ptr<L1MuDTTrackContainer> dtf_trk_data(new L1MuDTTrackContainer ); 00215 std::auto_ptr<CSCCorrelatedLCTDigiCollection> ctp_data(new CSCCorrelatedLCTDigiCollection ); 00216 std::auto_ptr<L1MuRegionalCandCollection> ctf_data(new L1MuRegionalCandCollection ); 00217 std::auto_ptr<L1CSCTrackCollection> ctf_trk_data(new L1CSCTrackCollection ); 00218 std::auto_ptr<L1MuRegionalCandCollection> rpc_cen_data(new L1MuRegionalCandCollection ); 00219 std::auto_ptr<L1MuRegionalCandCollection> rpc_for_data(new L1MuRegionalCandCollection ); 00220 std::auto_ptr<LTCDigiCollection> ltc_data(new LTCDigiCollection ); 00221 std::auto_ptr<L1MuGMTCandCollection> gmt_data(new L1MuGMTCandCollection ); 00222 std::auto_ptr<L1MuGMTReadoutCollection> gmt_rdt_data(new L1MuGMTReadoutCollection ); 00223 std::auto_ptr<L1GlobalTriggerReadoutRecord> glt_rdt_data(new L1GlobalTriggerReadoutRecord ); 00224 std::auto_ptr<L1GlobalTriggerEvmReadoutRecord> glt_evm_data(new L1GlobalTriggerEvmReadoutRecord); 00225 std::auto_ptr<L1GlobalTriggerObjectMapRecord> glt_obj_data(new L1GlobalTriggerObjectMapRecord ); 00226 00227 if(verbose()) 00228 std::cout << "L1EmulBias::produce - modify...\n" << std::flush; 00229 00231 if(m_doSys[ETP]) ModifyCollection( ecal_tp_data, ecal_tp_emul); 00232 if(m_doSys[HTP]) ModifyCollection( hcal_tp_data, hcal_tp_emul); 00233 if(m_doSys[RCT]) ModifyCollection( rct_em_data, rct_em_emul); 00234 if(m_doSys[RCT]) ModifyCollection( rct_rgn_data, rct_rgn_emul); 00235 if(m_doSys[GCT]) ModifyCollection(gct_isolaem_data,gct_isolaem_emul); 00236 if(m_doSys[GCT]) ModifyCollection(gct_noisoem_data,gct_noisoem_emul); 00237 if(m_doSys[GCT]) ModifyCollection(gct_cenjets_data,gct_cenjets_emul); 00238 if(m_doSys[GCT]) ModifyCollection(gct_forjets_data,gct_forjets_emul); 00239 if(m_doSys[GCT]) ModifyCollection(gct_taujets_data,gct_taujets_emul); 00240 if(m_doSys[DTP]) ModifyCollection( dtp_ph_data, dtp_ph_emul); 00241 if(m_doSys[DTP]) ModifyCollection( dtp_th_data, dtp_th_emul); 00242 if(m_doSys[DTF]) ModifyCollection( dtf_data, dtf_emul); 00243 if(m_doSys[DTF]) ModifyCollection( dtf_trk_data, dtf_trk_emul); 00244 if(m_doSys[CTP]) ModifyCollection( ctp_data, ctp_emul); 00245 if(m_doSys[CTF]) ModifyCollection( ctf_data, ctf_emul); 00246 if(m_doSys[CTF]) ModifyCollection( ctf_trk_data, ctf_trk_emul); 00247 if(m_doSys[RPC]) ModifyCollection( rpc_cen_data, rpc_cen_emul); 00248 if(m_doSys[RPC]) ModifyCollection( rpc_for_data, rpc_for_emul); 00249 if(m_doSys[LTC]) ModifyCollection( ltc_data, ltc_emul); 00250 if(m_doSys[GMT]) ModifyCollection( gmt_data, gmt_emul); 00251 if(m_doSys[GMT]) ModifyCollection( gmt_rdt_data, gmt_rdt_emul); 00252 if(m_doSys[GLT]) ModifyCollection( glt_rdt_data, glt_rdt_emul); 00253 if(m_doSys[GLT]) ModifyCollection( glt_evm_data, glt_evm_emul); 00254 if(m_doSys[GLT]) ModifyCollection( glt_obj_data, glt_obj_emul); 00255 00256 if(verbose()) 00257 std::cout << "L1EmulBias::produce - put...\n" << std::flush; 00258 00260 if(m_doSys[ETP]) iEvent.put( ecal_tp_data, instName[ETP][0]); 00261 if(m_doSys[HTP]) iEvent.put( hcal_tp_data, instName[HTP][0]); 00262 if(m_doSys[RCT]) iEvent.put( rct_em_data, instName[RCT][0]); 00263 if(m_doSys[RCT]) iEvent.put( rct_rgn_data, instName[RCT][0]); 00264 if(m_doSys[GCT]) iEvent.put(gct_isolaem_data, instName[GCT][0]); 00265 if(m_doSys[GCT]) iEvent.put(gct_noisoem_data, instName[GCT][1]); 00266 if(m_doSys[GCT]) iEvent.put(gct_cenjets_data, instName[GCT][2]); 00267 if(m_doSys[GCT]) iEvent.put(gct_forjets_data, instName[GCT][3]); 00268 if(m_doSys[GCT]) iEvent.put(gct_taujets_data, instName[GCT][4]); 00269 if(m_doSys[DTP]) iEvent.put( dtp_ph_data, instName[DTP][0]); 00270 if(m_doSys[DTP]) iEvent.put( dtp_th_data, instName[DTP][0]); 00271 if(m_doSys[DTF]) iEvent.put( dtf_data, instName[DTF][0]); 00272 if(m_doSys[DTF]) iEvent.put( dtf_trk_data, instName[DTF][1]); 00273 if(m_doSys[CTP]) iEvent.put( ctp_data, instName[CTP][0]); 00274 if(m_doSys[CTF]) iEvent.put( ctf_data, instName[CTF][0]); 00275 if(m_doSys[CTF]) iEvent.put( ctf_trk_data, instName[CTF][1]); 00276 if(m_doSys[RPC]) iEvent.put( rpc_cen_data, instName[RPC][0]); 00277 if(m_doSys[RPC]) iEvent.put( rpc_for_data, instName[RPC][1]); 00278 if(m_doSys[LTC]) iEvent.put( ltc_data, instName[LTC][0]); 00279 if(m_doSys[GMT]) iEvent.put( gmt_data, instName[GMT][0]); 00280 if(m_doSys[GMT]) iEvent.put( gmt_rdt_data, instName[GMT][0]); 00281 if(m_doSys[GLT]) iEvent.put( glt_rdt_data, instName[GLT][0]); 00282 if(m_doSys[GLT]) iEvent.put( glt_evm_data, instName[GLT][0]); 00283 if(m_doSys[GLT]) iEvent.put( glt_obj_data, instName[GLT][0]); 00284 00285 if(verbose()) 00286 std::cout << "L1EmulBias::produce...done.\n" << std::flush; 00287 00288 }
Definition at line 55 of file L1EmulBias.h.
References verbose_.
Referenced by L1EmulBias(), ModifyCollection(), and produce().
00055 {return verbose_;}
std::string L1EmulBias::instName[dedefs::DEnsys][5] [private] |
edm::InputTag L1EmulBias::m_DEsource[dedefs::DEnsys][2] [private] |
bool L1EmulBias::m_doSys[dedefs::DEnsys] [private] |
CLHEP::RandFlat* L1EmulBias::rndFlat_ [private] |
Definition at line 59 of file L1EmulBias.h.
Referenced by L1EmulBias(), ModifyCollection(), and ~L1EmulBias().
CLHEP::RandGaussQ* L1EmulBias::rndGaus_ [private] |
int L1EmulBias::verbose_ [private] |