CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Member Functions | Private Member Functions | Private Attributes
L1EmulBias Class Reference

#include <L1EmulBias.h>

Inheritance diagram for L1EmulBias:
edm::EDProducer edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1EmulBias (const edm::ParameterSet &)
 
template<>
void ModifyCollection (std::unique_ptr< CSCCorrelatedLCTDigiCollection > &data, const edm::Handle< CSCCorrelatedLCTDigiCollection > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< EcalTrigPrimDigiCollection > &data, const edm::Handle< EcalTrigPrimDigiCollection > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< HcalTrigPrimDigiCollection > &data, const edm::Handle< HcalTrigPrimDigiCollection > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< L1CaloEmCollection > &data, const edm::Handle< L1CaloEmCollection > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< L1CaloRegionCollection > &data, const edm::Handle< L1CaloRegionCollection > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< L1CSCTrackCollection > &data, const edm::Handle< L1CSCTrackCollection > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< L1GctEmCandCollection > &data, const edm::Handle< L1GctEmCandCollection > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< L1GctJetCandCollection > &data, const edm::Handle< L1GctJetCandCollection > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< L1MuDTChambPhContainer > &data, const edm::Handle< L1MuDTChambPhContainer > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< L1MuDTChambThContainer > &data, const edm::Handle< L1MuDTChambThContainer > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< L1MuDTTrackContainer > &data, const edm::Handle< L1MuDTTrackContainer > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< L1MuGMTCandCollection > &data, const edm::Handle< L1MuGMTCandCollection > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< L1MuGMTReadoutCollection > &data, const edm::Handle< L1MuGMTReadoutCollection > emul, CLHEP::HepRandomEngine *)
 
template<>
void ModifyCollection (std::unique_ptr< L1MuRegionalCandCollection > &data, const edm::Handle< L1MuRegionalCandCollection > emul, CLHEP::HepRandomEngine *engine)
 
template<>
void ModifyCollection (std::unique_ptr< LTCDigiCollection > &data, const edm::Handle< LTCDigiCollection > emul, CLHEP::HepRandomEngine *)
 
template<class T >
void ModifyCollection (std::unique_ptr< T > &data, const edm::Handle< T > emul, CLHEP::HepRandomEngine *)
 
 ~L1EmulBias () override
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducer () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Protected Member Functions

void beginJob (void) override
 
void endJob (void) override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Private Member Functions

int verbose ()
 

Private Attributes

std::string instName [dedefs::DEnsys][5]
 
edm::InputTag m_DEsource [dedefs::DEnsys][2]
 
bool m_doSys [dedefs::DEnsys]
 
int verbose_
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 

Detailed Description

Definition at line 35 of file L1EmulBias.h.

Constructor & Destructor Documentation

◆ L1EmulBias()

L1EmulBias::L1EmulBias ( const edm::ParameterSet iConfig)
explicit

assertion/temporary

List of collections to be produced

Definition at line 9 of file L1EmulBias.cc.

9  {
10  verbose_ = iConfig.getUntrackedParameter<int>("VerboseFlag", 0);
11 
12  for (int sys = 0; sys < DEnsys; sys++) {
13  std::string label = SystLabel[sys] + "source";
14  m_DEsource[sys][0] = iConfig.getParameter<edm::InputTag>(label);
15  if (sys == CTF) {
16  std::string label = "CTTsource";
17  m_DEsource[sys][1] = iConfig.getParameter<edm::InputTag>(label);
18  }
19  }
20 
21  std::vector<unsigned int> compColls = iConfig.getUntrackedParameter<std::vector<unsigned int> >("DO_SYSTEM");
22  for (int i = 0; i < DEnsys; i++)
23  m_doSys[i] = compColls[i];
24 
25  if (verbose()) {
26  std::cout << "[L1EmulBias] do sys? ";
27  for (int i = 0; i < DEnsys; i++)
28  std::cout << m_doSys[i];
29  std::cout << "\n\t";
30  for (int i = 0; i < DEnsys; i++)
31  if (m_doSys[i])
32  std::cout << SystLabel[i] << " ";
33  std::cout << std::endl;
34  }
35 
36  std::string CollInstName[DEnsys][5];
37  for (int i = 0; i < DEnsys; i++)
38  for (int j = 0; j < 5; j++)
39  CollInstName[i][j] = std::string("");
40 
41  CollInstName[GCT][0] += "isoEm";
42  CollInstName[GCT][1] += "nonIsoEm";
43  CollInstName[GCT][2] += "cenJets";
44  CollInstName[GCT][3] += "forJets";
45  CollInstName[GCT][4] += "tauJets";
46  CollInstName[DTF][0] += "DT";
47  CollInstName[DTF][1] += "DTTF";
48  CollInstName[CTF][0] += "CSC";
49  CollInstName[CTF][1] += "";
50  CollInstName[RPC][0] += "RPCb";
51  CollInstName[RPC][1] += "RPCf";
52 
53  for (int i = 0; i < DEnsys; i++)
54  for (int j = 0; j < 5; j++)
55  instName[i][j] = CollInstName[i][j];
56 
57  if (verbose())
58  for (int i = 0; i < DEnsys; i++)
59  for (int j = 0; j < 5; j++)
60  if (!instName[i][j].empty())
61  std::cout << "[emulbias] " << i << " " << SystLabel[i] << " " << j << " " << instName[i][j] << std::endl;
62 
64  assert(ETP == 0);
65  assert(HTP == 1);
66  assert(RCT == 2);
67  assert(GCT == 3);
68  assert(DTP == 4);
69  assert(DTF == 5);
70  assert(CTP == 6);
71  assert(CTF == 7);
72  assert(RPC == 8);
73  assert(LTC == 9);
74  assert(GMT == 10);
75  assert(GLT == 11);
76 
78  if (m_doSys[ETP])
79  produces<EcalTrigPrimDigiCollection>(instName[ETP][0]);
80  if (m_doSys[HTP])
81  produces<HcalTrigPrimDigiCollection>(instName[HTP][0]);
82  if (m_doSys[RCT])
83  produces<L1CaloEmCollection>(instName[RCT][0]);
84  if (m_doSys[RCT])
85  produces<L1CaloRegionCollection>(instName[RCT][0]);
86  if (m_doSys[GCT])
87  produces<L1GctEmCandCollection>(instName[GCT][0]);
88  if (m_doSys[GCT])
89  produces<L1GctEmCandCollection>(instName[GCT][1]);
90  if (m_doSys[GCT])
91  produces<L1GctJetCandCollection>(instName[GCT][2]);
92  if (m_doSys[GCT])
93  produces<L1GctJetCandCollection>(instName[GCT][3]);
94  if (m_doSys[GCT])
95  produces<L1GctJetCandCollection>(instName[GCT][4]);
96  if (m_doSys[DTP])
97  produces<L1MuDTChambPhContainer>(instName[DTP][0]);
98  if (m_doSys[DTP])
99  produces<L1MuDTChambThContainer>(instName[DTP][0]);
100  if (m_doSys[DTF])
101  produces<L1MuRegionalCandCollection>(instName[DTF][0]);
102  if (m_doSys[DTF])
103  produces<L1MuDTTrackContainer>(instName[DTF][1]);
104  if (m_doSys[CTP])
105  produces<CSCCorrelatedLCTDigiCollection>(instName[CTP][0]);
106  if (m_doSys[CTF])
107  produces<L1MuRegionalCandCollection>(instName[CTF][0]);
108  if (m_doSys[CTF])
109  produces<L1CSCTrackCollection>(instName[CTF][1]);
110  if (m_doSys[RPC])
111  produces<L1MuRegionalCandCollection>(instName[RPC][0]);
112  if (m_doSys[RPC])
113  produces<L1MuRegionalCandCollection>(instName[RPC][1]);
114  if (m_doSys[LTC])
115  produces<LTCDigiCollection>(instName[LTC][0]);
116  if (m_doSys[GMT])
117  produces<L1MuGMTCandCollection>(instName[GMT][0]);
118  if (m_doSys[GMT])
119  produces<L1MuGMTReadoutCollection>(instName[GMT][0]);
120  if (m_doSys[GLT])
121  produces<L1GlobalTriggerReadoutRecord>(instName[GLT][0]);
122  if (m_doSys[GLT])
123  produces<L1GlobalTriggerEvmReadoutRecord>(instName[GLT][0]);
124  if (m_doSys[GLT])
125  produces<L1GlobalTriggerObjectMapRecord>(instName[GLT][0]);
126 
128  if (!rng.isAvailable()) {
129  throw cms::Exception("Configuration")
130  << "L1EmulBias requires the RandomNumberGeneratorService\n"
131  "which is not present in the configuration file. You must add the service\n"
132  "in the configuration file or remove the modules that require it.";
133  }
134 
135  if (verbose())
136  std::cout << "L1EmulBias::L1EmulBias()... done." << std::endl;
137 }

References cms::cuda::assert(), gather_cfg::cout, dedefs::CTF, dedefs::CTP, dedefs::DEnsys, dedefs::DTF, dedefs::DTP, relativeConstraints::empty, dedefs::ETP, Exception, dedefs::GCT, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), dedefs::GLT, dedefs::GMT, dedefs::HTP, mps_fire::i, edm::Service< T >::isAvailable(), dqmiolumiharvest::j, label, dedefs::LTC, dedefs::RCT, dedefs::RPC, AlCaHLTBitMon_QueryRunRegistry::string, dedefs::SystLabel, and verbose.

◆ ~L1EmulBias()

L1EmulBias::~L1EmulBias ( )
override

Definition at line 139 of file L1EmulBias.cc.

139 {}

Member Function Documentation

◆ beginJob()

void L1EmulBias::beginJob ( void  )
inlineoverrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 41 of file L1EmulBias.h.

41 {};

◆ endJob()

void L1EmulBias::endJob ( void  )
inlineoverrideprotectedvirtual

Reimplemented from edm::EDProducer.

Definition at line 44 of file L1EmulBias.h.

44 {};

◆ ModifyCollection() [1/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< CSCCorrelatedLCTDigiCollection > &  data,
const edm::Handle< CSCCorrelatedLCTDigiCollection emul,
CLHEP::HepRandomEngine *   
)
inline

modify digi

append digi

Definition at line 394 of file L1EmulBias.h.

396  {
397  //typedef MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection;
398  typedef CSCCorrelatedLCTDigiCollection::DigiRangeIterator mapIt; //map iterator
399  typedef CSCCorrelatedLCTDigiCollection::const_iterator vecIt; //vec iterator
400  //loop over data (map<idx,vec_digi>)
401  for (mapIt mit = emul->begin(); mit != emul->end(); mit++) {
402  //get detector index
403  CSCDetId did = (*mit).first;
404  //get vec_digi range(pair) corresponding to idx of map
405  //CSCCorrelatedLCTDigiCollection::Range ctpRange = emul->get(did)
406  //loop over digi vector (ie between begin and end pointers in range)
407  //for (vecIt vit = ctpRange.first; vit != ctpRange.second; vit++) {
408  for (vecIt vit = emul->get((*mit).first).first; vit != emul->get((*mit).first).second; vit++) {
410  CSCCorrelatedLCTDigi dg = *vit;
411  //dg.clear;
412  uint16_t tn = dg.getTrknmb();
413  if (tn == 2)
414  tn--;
415  dg.setTrknmb(tn);
416  //dg.setTrknmb (dg.getTrknmb ());
417  //dg.setMPCLink (dg.getMPCLink ());
418  //dg.setWireGroup(dg.getWireGroup());
420  data->insertDigi(did, dg);
421  }
422  }
423 }

References data, CSCCorrelatedLCTDigi::getTrknmb(), and CSCCorrelatedLCTDigi::setTrknmb().

◆ ModifyCollection() [2/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< EcalTrigPrimDigiCollection > &  data,
const edm::Handle< EcalTrigPrimDigiCollection emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 71 of file L1EmulBias.h.

73  {
75  for (col_cit it = emul->begin(); it != emul->end(); it++) {
77  int iphi = it->id().iphi();
78  bool reset = (iphi > 18 && iphi < 39); //remove few supermodules
79  for (int s = 0; s < 5; s++) {
80  uint16_t sample = it->sample(s).raw();
81  if (sample == 0)
82  continue;
83  uint16_t tmp = reset ? 0 : sample;
84  if (reset)
85  tmp = sample >> 1;
86  col.setSampleValue(s, tmp);
87  if (verbose() && sample != 0)
88  std::cout << "[emulbias] etp " << *it << "\t sample: " << s << " " << std::hex << sample << " -> "
89  << col.sample(s).raw() << std::dec << std::endl;
90  }
91  data->push_back(col);
92  }
93 }

References edm::SortedCollection< T, SORT >::begin(), cuy::col, gather_cfg::cout, data, TauDecayModes::dec, edm::SortedCollection< T, SORT >::end(), LEDCalibrationChannels::iphi, reset(), alignCSCRings::s, simplePhotonAnalyzer_cfi::sample, createJobs::tmp, and verbose().

◆ ModifyCollection() [3/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< HcalTrigPrimDigiCollection > &  data,
const edm::Handle< HcalTrigPrimDigiCollection emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 96 of file L1EmulBias.h.

98  {
100  for (col_cit it = emul->begin(); it != emul->end(); it++) {
102  int iphi = it->id().iphi();
103  bool reset = (iphi > 18 && iphi < 27); //remove few supermodules
104  for (int s = 0; s < 5; s++) {
105  uint16_t sample = it->sample(s).raw();
106  if (sample == 0)
107  continue;
108  uint16_t tmp = reset ? 0 : sample;
109  if (reset)
110  tmp = sample >> 1;
111  col.setSample(s, tmp);
112  }
113  data->push_back(col);
114  }
115 }

References edm::SortedCollection< T, SORT >::begin(), cuy::col, data, edm::SortedCollection< T, SORT >::end(), LEDCalibrationChannels::iphi, reset(), alignCSCRings::s, simplePhotonAnalyzer_cfi::sample, and createJobs::tmp.

◆ ModifyCollection() [4/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1CaloEmCollection > &  data,
const edm::Handle< L1CaloEmCollection emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 118 of file L1EmulBias.h.

120  {
121  typedef L1CaloEmCollection::const_iterator col_cit;
122  for (col_cit it = emul->begin(); it != emul->end(); it++) {
123  unsigned crate = it->rctCrate();
124  unsigned raw = it->raw();
125  bool iso = it->isolated();
126  unsigned rdata = raw;
127  if (crate < 4 * engine->flat())
128  rdata = raw >> 1;
129  L1CaloEmCand cand(rdata, crate, iso, it->index(), it->bx(), false);
130  data->push_back(cand);
131  }
132  //L1CaloEmCand(uint16_t data, unsigned crate, bool iso);
133  //L1CaloEmCand(uint16_t data, unsigned crate, bool iso, uint16_t index, int16_t bx, bool dummy);
134 }

References data.

◆ ModifyCollection() [5/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1CaloRegionCollection > &  data,
const edm::Handle< L1CaloRegionCollection emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 137 of file L1EmulBias.h.

139  {
140  typedef L1CaloRegionCollection::const_iterator col_cit;
141  for (col_cit it = emul->begin(); it != emul->end(); it++) {
142  unsigned crate = it->rctCrate();
143  unsigned raw = it->et();
144  uint16_t rdata = raw;
145  if (crate < 4 * engine->flat())
146  rdata = raw >> 1;
147  L1CaloRegion cand(rdata, it->gctEta(), it->gctPhi(), it->bx());
148  data->push_back(cand);
149  }
150  //L1CaloRegion(uint16_t data, unsigned ieta, unsigned iphi, int16_t bx);
151  //Note: raw data accessor missing in dataformats!
152 }

References data.

◆ ModifyCollection() [6/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1CSCTrackCollection > &  data,
const edm::Handle< L1CSCTrackCollection emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 426 of file L1EmulBias.h.

428  {
429  typedef L1CSCTrackCollection::const_iterator col_cit;
430  //typedef std::vector<L1CSCTrack> L1CSCTrackCollection;
431  //typedef std::pair<csc::L1Track,CSCCorrelatedLCTDigiCollection> L1CSCTrack;
432  //typedef MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection;
433  typedef CSCCorrelatedLCTDigiCollection::DigiRangeIterator mapIt; //map iterator
434  typedef CSCCorrelatedLCTDigiCollection::const_iterator vecIt; //vec iterator
435  CSCCorrelatedLCTDigiCollection_ ctf_trk_data_v, ctf_trk_emul_v; //vector
436  //loop over csc-tracks (ie pairs<l1track,digi_vec>)
437  for (col_cit tcit = emul->begin(); tcit != emul->end(); tcit++) {
438  csc::L1Track l1trk = tcit->first;
439  if (l1trk.quality() < 4)
440  l1trk.setPtPacked((l1trk.pt_packed() >> 2) & 0x1f);
441  l1trk.setType(l1trk.type_idx());
442  //L1MuRegionalCand reg(tcit->first.getDataWord(), tcit->first.bx());
443  std::unique_ptr<CSCCorrelatedLCTDigiCollection> dgcoll(new CSCCorrelatedLCTDigiCollection);
444  CSCCorrelatedLCTDigiCollection ldc = tcit->second; //muondigicollection=map
445  //get the lct-digi-collection (ie muon-digi-collection)
446  //loop over data (map<idx,vec_digi>)
447  for (mapIt mit = ldc.begin(); mit != ldc.end(); mit++) {
448  //get vec_digi range(pair) corresponding to idx of map
449  //loop over digi vector (ie between begin and end pointers in range)
450  //CSCCorrelatedLCTDigiCollection::Range ctpRange = ctp_lct_data_->get((*mit).first)
451  CSCDetId did = (*mit).first;
452  //for (vecIt vit = ctpRange.first; vit != ctpRange.second; vit++) {
453  for (vecIt vit = ldc.get((*mit).first).first; vit != ldc.get((*mit).first).second; vit++) {
454  CSCCorrelatedLCTDigi dg = *vit;
455  uint16_t tn = dg.getTrknmb();
456  if (tn == 2)
457  tn--;
458  dg.setTrknmb(tn);
459  dgcoll->insertDigi(did, dg);
460  }
461  }
462  L1CSCTrack l1csctrk = std::make_pair(l1trk, *dgcoll);
463  data->push_back(l1csctrk);
464  }
465 }

References data, CSCCorrelatedLCTDigi::getTrknmb(), L1MuRegionalCand::pt_packed(), L1MuRegionalCand::quality(), L1MuRegionalCand::setPtPacked(), CSCCorrelatedLCTDigi::setTrknmb(), L1MuRegionalCand::setType(), and L1MuRegionalCand::type_idx().

◆ ModifyCollection() [7/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1GctEmCandCollection > &  data,
const edm::Handle< L1GctEmCandCollection emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 155 of file L1EmulBias.h.

157  {
158  typedef L1GctEmCandCollection::const_iterator col_cit;
159  for (col_cit it = emul->begin(); it != emul->end(); it++) {
160  unsigned raw = it->raw();
161  uint16_t rdata = raw;
162  if (it->phiIndex() < 4 * engine->flat()) //0-17
163  rdata = raw >> 1;
164  L1GctEmCand cand(rdata, it->isolated());
165  data->push_back(cand);
166  }
167  //etaIndex(), etaSign() : -6 to -0, +0 to +6
168  //L1GctEmCand(uint16_t data, bool iso);
169 }

References data.

◆ ModifyCollection() [8/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1GctJetCandCollection > &  data,
const edm::Handle< L1GctJetCandCollection emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 172 of file L1EmulBias.h.

174  {
175  typedef L1GctJetCandCollection::const_iterator col_cit;
176  for (col_cit it = emul->begin(); it != emul->end(); it++) {
177  unsigned raw = it->raw();
178  uint16_t rdata = raw;
179  if (it->phiIndex() < 4 * engine->flat()) //0-17
180  rdata = raw >> 1;
181  L1GctJetCand cand(rdata, it->isTau(), it->isForward());
182  data->push_back(cand);
183  }
184  //L1GctJetCand(uint16_t data, bool isTau, bool isFor);
185 }

References data.

◆ ModifyCollection() [9/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1MuDTChambPhContainer > &  data,
const edm::Handle< L1MuDTChambPhContainer emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 257 of file L1EmulBias.h.

259  {
260  typedef std::vector<L1MuDTChambPhDigi> Phi_Container;
261  typedef Phi_Container::const_iterator col_it;
262  Phi_Container const* tracks_in = emul->getContainer();
263  Phi_Container tracks(tracks_in->size());
264  int uqua;
265  for (col_it it = tracks_in->begin(); it != tracks_in->end(); it++) {
266  uqua = it->code(); // (int)(10*engine->flat());
267  uqua = (uqua < 2 ? uqua + 1 : uqua);
269  it->bxNum(), it->whNum(), it->scNum(), it->stNum(), it->phi(), it->phiB(), uqua, it->Ts2Tag(), it->BxCnt());
270  tracks.push_back(cand);
271  }
272  data->setContainer(tracks);
273 }

References data, L1MuDTChambPhContainer::getContainer(), and PDWG_EXOHSCP_cff::tracks.

◆ ModifyCollection() [10/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1MuDTChambThContainer > &  data,
const edm::Handle< L1MuDTChambThContainer emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 276 of file L1EmulBias.h.

278  {
279  typedef std::vector<L1MuDTChambThDigi> Thi_Container;
280  typedef Thi_Container::const_iterator col_cit;
281  Thi_Container const* tracks_in = emul->getContainer();
282  Thi_Container tracks(tracks_in->size());
283  int uos[7], uqa[7];
284  for (col_cit it = tracks_in->begin(); it != tracks_in->end(); it++) {
285  for (int j = 0; j < 7; j++) {
286  uos[j] = (it->position(j) ? 0 : 1);
287  uqa[j] = (it->quality(j) ? 0 : 1);
288  }
289  int stnum = it->stNum();
290  stnum = (stnum > 2 ? stnum - 1 : stnum);
291  L1MuDTChambThDigi cand(it->bxNum(), it->whNum(), it->scNum(), stnum, uos, uqa);
292  tracks.push_back(cand);
293  }
294  data->setContainer(tracks);
295 }

References data, L1MuDTChambThContainer::getContainer(), dqmiolumiharvest::j, and PDWG_EXOHSCP_cff::tracks.

◆ ModifyCollection() [11/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1MuDTTrackContainer > &  data,
const edm::Handle< L1MuDTTrackContainer emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 226 of file L1EmulBias.h.

228  {
229  typedef std::vector<L1MuDTTrackCand> TrackContainer;
230  typedef TrackContainer::const_iterator col_cit;
231  TrackContainer const* tracks_in = emul->getContainer();
233  for (col_cit it = tracks_in->begin(); it != tracks_in->end(); it++) {
234  L1MuDTTrackCand cand(*it);
235  cand.setType(it->type_idx());
236  unsigned pt = it->pt_packed(); //0..31
237  unsigned qua = it->quality(); //0..7
238  if (qua < 4) {
239  cand.setPtPacked((pt >> 2) & 0x1f);
240  cand.setQualityPacked((qua << 1) & 0x07);
241  }
242  tracks.push_back(cand);
243  }
244  data->setContainer(tracks);
245  /* few alternatives...
246  unsigned phip = it->phi_packed();
247  unsigned raw = it->getDataWord();
248  uint16_t rdata = raw;
249  if(2.5<fabs(it->phiValue())<3.0)
250  rdata = raw>>1;
251  L1MuRegionalCand cand(rdata,it->bx());
252  double rnd = engine->flat();
253  */
254 }

References data, L1MuDTTrackContainer::getContainer(), DiDispStaMuonMonitor_cfi::pt, and PDWG_EXOHSCP_cff::tracks.

◆ ModifyCollection() [12/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1MuGMTCandCollection > &  data,
const edm::Handle< L1MuGMTCandCollection emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 310 of file L1EmulBias.h.

312  {
313  //typedef std::vector<L1MuGMTCand> L1MuGMTCandCollection;
314  typedef std::vector<L1MuGMTCand>::const_iterator col_cit;
315  for (col_cit it = emul->begin(); it != emul->end(); it++) {
316  float phiv = it->phiValue();
317  unsigned dword = it->getDataWord();
318  if (phiv > 2. && phiv < 4.)
319  dword = dword >> 2;
320  L1MuGMTCand cand(dword, it->bx());
321  data->push_back(cand);
322  //cand.setPtPacked(cand.ptIndex()>>1);
323  //data->push_back(L1MuGMTCand((it->getDataWord()>>1),it->bx()));
324  }
325 }

References data.

◆ ModifyCollection() [13/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1MuGMTReadoutCollection > &  data,
const edm::Handle< L1MuGMTReadoutCollection emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 328 of file L1EmulBias.h.

330  {
331  typedef std::vector<L1MuGMTReadoutRecord>::const_iterator col_cit;
332  std::vector<L1MuGMTReadoutRecord> col = emul->getRecords();
333  for (col_cit it = col.begin(); it != col.end(); it++) {
334  L1MuGMTReadoutRecord rec(it->getBxInEvent());
335  rec.setBxNr(it->getBxNr());
336  rec.setEvNr(it->getEvNr());
337  rec.setBCERR(it->getBCERR());
338 
339  std::unique_ptr<L1MuRegionalCandCollection> new_dttf(new L1MuRegionalCandCollection);
340  std::unique_ptr<L1MuRegionalCandCollection> new_rpcb(new L1MuRegionalCandCollection);
341  std::unique_ptr<L1MuRegionalCandCollection> new_csc(new L1MuRegionalCandCollection);
342  std::unique_ptr<L1MuRegionalCandCollection> new_rpcf(new L1MuRegionalCandCollection);
343 
344  L1MuRegionalCandCollection old_dttf = it->getDTBXCands();
345  L1MuRegionalCandCollection old_rpcb = it->getBrlRPCCands();
346  L1MuRegionalCandCollection old_csc = it->getCSCCands();
347  L1MuRegionalCandCollection old_rpcf = it->getFwdRPCCands();
348 
349  typedef L1MuRegionalCandCollection::const_iterator ait;
350  for (ait it = old_dttf.begin(); it != old_dttf.end(); it++) {
351  L1MuRegionalCand cand(*it);
352  if (it->quality() < 4)
353  cand.setPtPacked((it->pt_packed() >> 2) & 0x1f);
354  cand.setType(it->type_idx());
355  new_dttf->push_back(cand);
356  }
357  for (ait it = old_rpcb.begin(); it != old_rpcb.end(); it++) {
358  L1MuRegionalCand cand(*it);
359  if (it->quality() < 4)
360  cand.setPtPacked((it->pt_packed() >> 2) & 0x1f);
361  cand.setType(it->type_idx());
362  new_rpcb->push_back(cand);
363  }
364  for (ait it = old_csc.begin(); it != old_csc.end(); it++) {
365  L1MuRegionalCand cand(*it);
366  if (it->quality() < 4)
367  cand.setPtPacked((it->pt_packed() >> 2) & 0x1f);
368  cand.setType(it->type_idx());
369  new_csc->push_back(cand);
370  }
371  for (ait it = old_rpcf.begin(); it != old_rpcf.end(); it++) {
372  L1MuRegionalCand cand(*it);
373  if (it->quality() < 4)
374  cand.setPtPacked((it->pt_packed() >> 2) & 0x1f);
375  cand.setType(it->type_idx());
376  new_rpcf->push_back(cand);
377  }
378 
379  for (unsigned i = 0; i < old_dttf.size(); i++)
380  rec.setInputCand(i, new_dttf->at(i)); //dt : 0..3
381  for (unsigned i = 0; i < old_rpcb.size(); i++)
382  rec.setInputCand(i + 4, new_rpcb->at(i)); //rpcb: 4..7
383  for (unsigned i = 0; i < old_csc.size(); i++)
384  rec.setInputCand(i + 8, new_csc->at(i)); //csc : 8..11
385  for (unsigned i = 0; i < old_rpcf.size(); i++)
386  rec.setInputCand(i + 12, new_rpcf->at(i)); //rpcf:12..15
387 
388  data->addRecord(rec);
389  }
390  //void addRecord(L1MuGMTReadoutRecord const& rec) {
391 }

References cuy::col, data, L1MuGMTReadoutCollection::getRecords(), mps_fire::i, and L1MuGMTReadoutRecord::setBxNr().

◆ ModifyCollection() [14/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< L1MuRegionalCandCollection > &  data,
const edm::Handle< L1MuRegionalCandCollection emul,
CLHEP::HepRandomEngine *  engine 
)
inline

Definition at line 188 of file L1EmulBias.h.

190  {
191  typedef L1MuRegionalCandCollection::const_iterator col_cit;
192  for (col_cit it = emul->begin(); it != emul->end(); it++) {
193  L1MuRegionalCand cand(*it);
194  //unsigned raw = it->getDataWord();
195  unsigned phi = it->phi_packed();
196  if (phi > 90 && phi < 110)
197  cand.setPtPacked((it->pt_packed()) >> 1);
198  //raw = (raw>>2);
199  //L1MuRegionalCand cand(raw);
200  //cand.setType(it->type_idx());
201  data->push_back(cand);
202  }
203  /* few alternatives...
204  unsigned pt= it->pt_packed(); //0..31
205  unsigned int qua = it->quality(); //0..7
206  if(qua<4){cand.setPtPacked((pt>>2)&0x1f);cand.setQualityPacked((qua<<1)&0x07);}
207  double rnd = CLHEP::RandGaussQ::shoot(engine);
208  if(rnd>0.7) {
209  raw_=(raw>>1);
210  cand.setDataWord(raw_);
211  } else if (rnd>0.3) {
212  pt_ *= (int)(1+0.3*engine->flat());
213  cand.setPtPacked(pt_);
214  } else
215  cand.reset();
216  unsigned raw = it->getDataWord();
217  if(2.5<fabs(it->phiValue())<3.0)
218  rdata = raw>>1;
219  L1MuRegionalCand cand(rdata,it->bx());
220  */
221  //L1MuRegionalCand(unsigned dataword = 0, int bx = 0);
222  //L1MuRegionalCand(unsigned type_idx, unsigned phi, unsigned eta, unsigned pt, unsigned charge, unsigned ch_valid, unsigned finehalo, unsigned quality, int bx);
223 }

References data, and phi.

◆ ModifyCollection() [15/16]

template<>
void L1EmulBias::ModifyCollection ( std::unique_ptr< LTCDigiCollection > &  data,
const edm::Handle< LTCDigiCollection emul,
CLHEP::HepRandomEngine *   
)
inline

Definition at line 298 of file L1EmulBias.h.

300  {
301  typedef std::vector<LTCDigi>::const_iterator col_cit;
302  for (col_cit it = emul->begin(); it != emul->end(); it++) {
303  data->push_back(*it);
304  //note: raw data accessor missing in dataformats!
305  //data->push_back(LTCDigi(it->data()>>1));
306  }
307 }

References data.

◆ ModifyCollection() [16/16]

template<class T >
void L1EmulBias::ModifyCollection ( std::unique_ptr< T > &  data,
const edm::Handle< T emul,
CLHEP::HepRandomEngine *   
)

Definition at line 66 of file L1EmulBias.h.

66  {
67  data = (std::unique_ptr<T>)(const_cast<T*>(emul.product()));
68 }

References data, and edm::Handle< T >::product().

◆ produce()

void L1EmulBias::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprotectedvirtual

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 142 of file L1EmulBias.cc.

142  {
144  CLHEP::HepRandomEngine* engine = &rng->getEngine(iEvent.streamID());
145 
146  if (verbose())
147  std::cout << "L1EmulBias::produce...\n" << std::flush;
148 
154  edm::Handle<L1GctEmCandCollection> gct_isolaem_emul;
155  edm::Handle<L1GctEmCandCollection> gct_noisoem_emul;
156  edm::Handle<L1GctJetCandCollection> gct_cenjets_emul;
157  edm::Handle<L1GctJetCandCollection> gct_forjets_emul;
158  edm::Handle<L1GctJetCandCollection> gct_taujets_emul;
175 
177  if (m_doSys[ETP])
178  iEvent.getByLabel(m_DEsource[ETP][0].label(), instName[ETP][0], ecal_tp_emul);
179  if (m_doSys[HTP])
180  iEvent.getByLabel(m_DEsource[HTP][0].label(), instName[HTP][0], hcal_tp_emul);
181  if (m_doSys[RCT])
182  iEvent.getByLabel(m_DEsource[RCT][0].label(), instName[RCT][0], rct_em_emul);
183  if (m_doSys[RCT])
184  iEvent.getByLabel(m_DEsource[RCT][0].label(), instName[RCT][0], rct_rgn_emul);
185  if (m_doSys[GCT])
186  iEvent.getByLabel(m_DEsource[GCT][0].label(), instName[GCT][0], gct_isolaem_emul);
187  if (m_doSys[GCT])
188  iEvent.getByLabel(m_DEsource[GCT][0].label(), instName[GCT][1], gct_noisoem_emul);
189  if (m_doSys[GCT])
190  iEvent.getByLabel(m_DEsource[GCT][0].label(), instName[GCT][2], gct_cenjets_emul);
191  if (m_doSys[GCT])
192  iEvent.getByLabel(m_DEsource[GCT][0].label(), instName[GCT][3], gct_forjets_emul);
193  if (m_doSys[GCT])
194  iEvent.getByLabel(m_DEsource[GCT][0].label(), instName[GCT][4], gct_taujets_emul);
195  if (m_doSys[DTP])
196  iEvent.getByLabel(m_DEsource[DTP][0].label(), instName[DTP][0], dtp_ph_emul);
197  if (m_doSys[DTP])
198  iEvent.getByLabel(m_DEsource[DTP][0].label(), instName[DTP][0], dtp_th_emul);
199  if (m_doSys[DTF])
200  iEvent.getByLabel(m_DEsource[DTF][0].label(), instName[DTF][0], dtf_emul);
201  if (m_doSys[DTF])
202  iEvent.getByLabel(m_DEsource[DTF][0].label(), instName[DTF][1], dtf_trk_emul);
203  if (m_doSys[CTP])
204  iEvent.getByLabel(m_DEsource[CTP][0].label(), instName[CTP][0], ctp_emul);
205  if (m_doSys[CTF])
206  iEvent.getByLabel(m_DEsource[CTF][0].label(), instName[CTF][0], ctf_emul);
207  if (m_doSys[CTF])
208  iEvent.getByLabel(m_DEsource[CTF][1].label(), instName[CTF][1], ctf_trk_emul);
209  if (m_doSys[RPC])
210  iEvent.getByLabel(m_DEsource[RPC][0].label(), instName[RPC][0], rpc_cen_emul);
211  if (m_doSys[RPC])
212  iEvent.getByLabel(m_DEsource[RPC][0].label(), instName[RPC][1], rpc_for_emul);
213  if (m_doSys[LTC])
214  iEvent.getByLabel(m_DEsource[LTC][0].label(), instName[LTC][0], ltc_emul);
215  if (m_doSys[GMT])
216  iEvent.getByLabel(m_DEsource[GMT][0].label(), instName[GMT][0], gmt_emul);
217  if (m_doSys[GMT])
218  iEvent.getByLabel(m_DEsource[GMT][0].label(), instName[GMT][0], gmt_rdt_emul);
219  if (m_doSys[GLT])
220  iEvent.getByLabel(m_DEsource[GLT][0].label(), instName[GLT][0], glt_rdt_emul);
221  if (m_doSys[GLT])
222  iEvent.getByLabel(m_DEsource[GLT][0].label(), instName[GLT][0], glt_evm_emul);
223  if (m_doSys[GLT])
224  iEvent.getByLabel(m_DEsource[GLT][0].label(), instName[GLT][0], glt_obj_emul);
225 
227  if (m_doSys[ETP])
228  assert(ecal_tp_emul.isValid());
229  if (m_doSys[HTP])
230  assert(hcal_tp_emul.isValid());
231  if (m_doSys[RCT])
232  assert(rct_em_emul.isValid());
233  if (m_doSys[RCT])
234  assert(rct_rgn_emul.isValid());
235  if (m_doSys[GCT])
236  assert(gct_isolaem_emul.isValid());
237  if (m_doSys[GCT])
238  assert(gct_noisoem_emul.isValid());
239  if (m_doSys[GCT])
240  assert(gct_cenjets_emul.isValid());
241  if (m_doSys[GCT])
242  assert(gct_forjets_emul.isValid());
243  if (m_doSys[GCT])
244  assert(gct_taujets_emul.isValid());
245  if (m_doSys[DTP])
246  assert(dtp_ph_emul.isValid());
247  if (m_doSys[DTP])
248  assert(dtp_th_emul.isValid());
249  if (m_doSys[DTF])
250  assert(dtf_emul.isValid());
251  if (m_doSys[DTF])
252  assert(dtf_trk_emul.isValid());
253  if (m_doSys[CTP])
254  assert(ctp_emul.isValid());
255  if (m_doSys[CTF])
256  assert(ctf_emul.isValid());
257  if (m_doSys[CTF])
258  assert(ctf_trk_emul.isValid());
259  if (m_doSys[RPC])
260  assert(rpc_cen_emul.isValid());
261  if (m_doSys[RPC])
262  assert(rpc_for_emul.isValid());
263  if (m_doSys[LTC])
264  assert(ltc_emul.isValid());
265  if (m_doSys[GMT])
266  assert(gmt_emul.isValid());
267  if (m_doSys[GMT])
268  assert(gmt_rdt_emul.isValid());
269  if (m_doSys[GLT])
270  assert(glt_rdt_emul.isValid());
271  if (m_doSys[GLT])
272  assert(glt_evm_emul.isValid());
273  if (m_doSys[GLT])
274  assert(glt_obj_emul.isValid());
275 
277  std::unique_ptr<EcalTrigPrimDigiCollection> ecal_tp_data(new EcalTrigPrimDigiCollection);
278  std::unique_ptr<HcalTrigPrimDigiCollection> hcal_tp_data(new HcalTrigPrimDigiCollection);
279  std::unique_ptr<L1CaloEmCollection> rct_em_data(new L1CaloEmCollection);
280  std::unique_ptr<L1CaloRegionCollection> rct_rgn_data(new L1CaloRegionCollection);
281  std::unique_ptr<L1GctEmCandCollection> gct_isolaem_data(new L1GctEmCandCollection);
282  std::unique_ptr<L1GctEmCandCollection> gct_noisoem_data(new L1GctEmCandCollection);
283  std::unique_ptr<L1GctJetCandCollection> gct_cenjets_data(new L1GctJetCandCollection);
284  std::unique_ptr<L1GctJetCandCollection> gct_forjets_data(new L1GctJetCandCollection);
285  std::unique_ptr<L1GctJetCandCollection> gct_taujets_data(new L1GctJetCandCollection);
286  std::unique_ptr<L1MuDTChambPhContainer> dtp_ph_data(new L1MuDTChambPhContainer);
287  std::unique_ptr<L1MuDTChambThContainer> dtp_th_data(new L1MuDTChambThContainer);
288  std::unique_ptr<L1MuRegionalCandCollection> dtf_data(new L1MuRegionalCandCollection);
289  std::unique_ptr<L1MuDTTrackContainer> dtf_trk_data(new L1MuDTTrackContainer);
290  std::unique_ptr<CSCCorrelatedLCTDigiCollection> ctp_data(new CSCCorrelatedLCTDigiCollection);
291  std::unique_ptr<L1MuRegionalCandCollection> ctf_data(new L1MuRegionalCandCollection);
292  std::unique_ptr<L1CSCTrackCollection> ctf_trk_data(new L1CSCTrackCollection);
293  std::unique_ptr<L1MuRegionalCandCollection> rpc_cen_data(new L1MuRegionalCandCollection);
294  std::unique_ptr<L1MuRegionalCandCollection> rpc_for_data(new L1MuRegionalCandCollection);
295  std::unique_ptr<LTCDigiCollection> ltc_data(new LTCDigiCollection);
296  std::unique_ptr<L1MuGMTCandCollection> gmt_data(new L1MuGMTCandCollection);
297  std::unique_ptr<L1MuGMTReadoutCollection> gmt_rdt_data(new L1MuGMTReadoutCollection);
298  std::unique_ptr<L1GlobalTriggerReadoutRecord> glt_rdt_data(new L1GlobalTriggerReadoutRecord);
299  std::unique_ptr<L1GlobalTriggerEvmReadoutRecord> glt_evm_data(new L1GlobalTriggerEvmReadoutRecord);
300  std::unique_ptr<L1GlobalTriggerObjectMapRecord> glt_obj_data(new L1GlobalTriggerObjectMapRecord);
301 
302  if (verbose())
303  std::cout << "L1EmulBias::produce - modify...\n" << std::flush;
304 
306  if (m_doSys[ETP])
307  ModifyCollection(ecal_tp_data, ecal_tp_emul, engine);
308  if (m_doSys[HTP])
309  ModifyCollection(hcal_tp_data, hcal_tp_emul, engine);
310  if (m_doSys[RCT])
311  ModifyCollection(rct_em_data, rct_em_emul, engine);
312  if (m_doSys[RCT])
313  ModifyCollection(rct_rgn_data, rct_rgn_emul, engine);
314  if (m_doSys[GCT])
315  ModifyCollection(gct_isolaem_data, gct_isolaem_emul, engine);
316  if (m_doSys[GCT])
317  ModifyCollection(gct_noisoem_data, gct_noisoem_emul, engine);
318  if (m_doSys[GCT])
319  ModifyCollection(gct_cenjets_data, gct_cenjets_emul, engine);
320  if (m_doSys[GCT])
321  ModifyCollection(gct_forjets_data, gct_forjets_emul, engine);
322  if (m_doSys[GCT])
323  ModifyCollection(gct_taujets_data, gct_taujets_emul, engine);
324  if (m_doSys[DTP])
325  ModifyCollection(dtp_ph_data, dtp_ph_emul, engine);
326  if (m_doSys[DTP])
327  ModifyCollection(dtp_th_data, dtp_th_emul, engine);
328  if (m_doSys[DTF])
329  ModifyCollection(dtf_data, dtf_emul, engine);
330  if (m_doSys[DTF])
331  ModifyCollection(dtf_trk_data, dtf_trk_emul, engine);
332  if (m_doSys[CTP])
333  ModifyCollection(ctp_data, ctp_emul, engine);
334  if (m_doSys[CTF])
335  ModifyCollection(ctf_data, ctf_emul, engine);
336  if (m_doSys[CTF])
337  ModifyCollection(ctf_trk_data, ctf_trk_emul, engine);
338  if (m_doSys[RPC])
339  ModifyCollection(rpc_cen_data, rpc_cen_emul, engine);
340  if (m_doSys[RPC])
341  ModifyCollection(rpc_for_data, rpc_for_emul, engine);
342  if (m_doSys[LTC])
343  ModifyCollection(ltc_data, ltc_emul, engine);
344  if (m_doSys[GMT])
345  ModifyCollection(gmt_data, gmt_emul, engine);
346  if (m_doSys[GMT])
347  ModifyCollection(gmt_rdt_data, gmt_rdt_emul, engine);
348  if (m_doSys[GLT])
349  ModifyCollection(glt_rdt_data, glt_rdt_emul, engine);
350  if (m_doSys[GLT])
351  ModifyCollection(glt_evm_data, glt_evm_emul, engine);
352  if (m_doSys[GLT])
353  ModifyCollection(glt_obj_data, glt_obj_emul, engine);
354 
355  if (verbose())
356  std::cout << "L1EmulBias::produce - put...\n" << std::flush;
357 
359  if (m_doSys[ETP])
360  iEvent.put(std::move(ecal_tp_data), instName[ETP][0]);
361  if (m_doSys[HTP])
362  iEvent.put(std::move(hcal_tp_data), instName[HTP][0]);
363  if (m_doSys[RCT])
364  iEvent.put(std::move(rct_em_data), instName[RCT][0]);
365  if (m_doSys[RCT])
366  iEvent.put(std::move(rct_rgn_data), instName[RCT][0]);
367  if (m_doSys[GCT])
368  iEvent.put(std::move(gct_isolaem_data), instName[GCT][0]);
369  if (m_doSys[GCT])
370  iEvent.put(std::move(gct_noisoem_data), instName[GCT][1]);
371  if (m_doSys[GCT])
372  iEvent.put(std::move(gct_cenjets_data), instName[GCT][2]);
373  if (m_doSys[GCT])
374  iEvent.put(std::move(gct_forjets_data), instName[GCT][3]);
375  if (m_doSys[GCT])
376  iEvent.put(std::move(gct_taujets_data), instName[GCT][4]);
377  if (m_doSys[DTP])
378  iEvent.put(std::move(dtp_ph_data), instName[DTP][0]);
379  if (m_doSys[DTP])
380  iEvent.put(std::move(dtp_th_data), instName[DTP][0]);
381  if (m_doSys[DTF])
382  iEvent.put(std::move(dtf_data), instName[DTF][0]);
383  if (m_doSys[DTF])
384  iEvent.put(std::move(dtf_trk_data), instName[DTF][1]);
385  if (m_doSys[CTP])
386  iEvent.put(std::move(ctp_data), instName[CTP][0]);
387  if (m_doSys[CTF])
388  iEvent.put(std::move(ctf_data), instName[CTF][0]);
389  if (m_doSys[CTF])
390  iEvent.put(std::move(ctf_trk_data), instName[CTF][1]);
391  if (m_doSys[RPC])
392  iEvent.put(std::move(rpc_cen_data), instName[RPC][0]);
393  if (m_doSys[RPC])
394  iEvent.put(std::move(rpc_for_data), instName[RPC][1]);
395  if (m_doSys[LTC])
396  iEvent.put(std::move(ltc_data), instName[LTC][0]);
397  if (m_doSys[GMT])
398  iEvent.put(std::move(gmt_data), instName[GMT][0]);
399  if (m_doSys[GMT])
400  iEvent.put(std::move(gmt_rdt_data), instName[GMT][0]);
401  if (m_doSys[GLT])
402  iEvent.put(std::move(glt_rdt_data), instName[GLT][0]);
403  if (m_doSys[GLT])
404  iEvent.put(std::move(glt_evm_data), instName[GLT][0]);
405  if (m_doSys[GLT])
406  iEvent.put(std::move(glt_obj_data), instName[GLT][0]);
407 
408  if (verbose())
409  std::cout << "L1EmulBias::produce...done.\n" << std::flush;
410 }

References cms::cuda::assert(), gather_cfg::cout, dedefs::CTF, dedefs::CTP, dedefs::DTF, dedefs::DTP, dedefs::ETP, dedefs::GCT, edm::RandomNumberGenerator::getEngine(), dedefs::GLT, dedefs::GMT, dedefs::HTP, iEvent, edm::HandleBase::isValid(), label, dedefs::LTC, eostools::move(), dedefs::RCT, dedefs::RPC, and verbose.

◆ verbose()

int L1EmulBias::verbose ( )
inlineprivate

Definition at line 52 of file L1EmulBias.h.

52 { return verbose_; }

References verbose_.

Referenced by ModifyCollection().

Member Data Documentation

◆ instName

std::string L1EmulBias::instName[dedefs::DEnsys][5]
private

Definition at line 55 of file L1EmulBias.h.

◆ m_DEsource

edm::InputTag L1EmulBias::m_DEsource[dedefs::DEnsys][2]
private

Definition at line 53 of file L1EmulBias.h.

◆ m_doSys

bool L1EmulBias::m_doSys[dedefs::DEnsys]
private

Definition at line 54 of file L1EmulBias.h.

◆ verbose_

int L1EmulBias::verbose_
private

Definition at line 51 of file L1EmulBias.h.

Referenced by verbose().

dedefs::HTP
Definition: DEtrait.h:40
dedefs::SystLabel
const std::string SystLabel[DEnsys]
Definition: DEtrait.h:42
edm::RandomNumberGenerator::getEngine
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
PDWG_EXOHSCP_cff.tracks
tracks
Definition: PDWG_EXOHSCP_cff.py:28
mps_fire.i
i
Definition: mps_fire.py:355
edm::SortedCollection::const_iterator
std::vector< T >::const_iterator const_iterator
Definition: SortedCollection.h:80
L1GctJetCand
Level-1 Trigger jet candidate.
Definition: L1GctJetCand.h:17
L1CSCTrack
std::pair< csc::L1Track, CSCCorrelatedLCTDigiCollection > L1CSCTrack
Definition: L1CSCTrackCollection.h:7
edm::Handle::product
T const * product() const
Definition: Handle.h:70
CSCCorrelatedLCTDigi::getTrknmb
uint16_t getTrknmb() const
return track number
Definition: CSCCorrelatedLCTDigi.h:47
L1CaloRegion
A calorimeter trigger region (sum of 4x4 trigger towers)
Definition: L1CaloRegion.h:21
dedefs::RPC
Definition: DEtrait.h:40
simplePhotonAnalyzer_cfi.sample
sample
Definition: simplePhotonAnalyzer_cfi.py:12
L1MuGMTCandCollection
std::vector< L1MuGMTCand > L1MuGMTCandCollection
Definition: DEtrait.h:99
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
L1GctJetCandCollection
std::vector< L1GctJetCand > L1GctJetCandCollection
Definition: L1GctCollections.h:31
L1EmulBias::verbose_
int verbose_
Definition: L1EmulBias.h:51
cuy.col
col
Definition: cuy.py:1010
gather_cfg.cout
cout
Definition: gather_cfg.py:144
dedefs::CTP
Definition: DEtrait.h:40
L1GctEmCand
Level-1 Trigger EM candidate at output of GCT.
Definition: L1GctEmCand.h:21
cms::cuda::assert
assert(be >=bs)
edm::SortedCollection
Definition: SortedCollection.h:49
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
L1CSCTrackCollection
std::vector< L1CSCTrack > L1CSCTrackCollection
Definition: L1CSCTrackCollection.h:8
edm::Handle
Definition: AssociativeIterator.h:50
edm::Service::isAvailable
bool isAvailable() const
Definition: Service.h:40
L1MuGMTCand
Definition: L1MuGMTCand.h:39
L1GlobalTriggerReadoutRecord
Definition: L1GlobalTriggerReadoutRecord.h:46
L1MuDTChambPhContainer
Definition: L1MuDTChambPhContainer.h:33
L1MuDTChambPhContainer::getContainer
Phi_Container const * getContainer() const
Definition: L1MuDTChambPhContainer.cc:41
MuonDigiCollection::const_iterator
std::vector< DigiType >::const_iterator const_iterator
Definition: MuonDigiCollection.h:94
L1MuRegionalCand::setType
void setType(unsigned type)
Set Type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC.
Definition: L1MuRegionalCand.h:114
dedefs::DTP
Definition: DEtrait.h:40
L1MuDTTrackCand
Definition: L1MuDTTrackCand.h:33
LEDCalibrationChannels.iphi
iphi
Definition: LEDCalibrationChannels.py:64
alignCSCRings.s
s
Definition: alignCSCRings.py:92
L1CaloEmCollection
std::vector< L1CaloEmCand > L1CaloEmCollection
Definition: L1CaloCollections.h:10
L1MuGMTReadoutRecord
Definition: L1MuGMTReadoutRecord.h:44
L1GlobalTriggerEvmReadoutRecord
Definition: L1GlobalTriggerEvmReadoutRecord.h:36
edm::SortedCollection::begin
const_iterator begin() const
Definition: SortedCollection.h:262
dedefs::GCT
Definition: DEtrait.h:40
L1EmulBias::m_DEsource
edm::InputTag m_DEsource[dedefs::DEnsys][2]
Definition: L1EmulBias.h:53
CSCCorrelatedLCTDigiCollection_
std::vector< CSCCorrelatedLCTDigi > CSCCorrelatedLCTDigiCollection_
Definition: DEtrait.h:97
GMT
Definition: L1GtDefinitions.h:27
L1MuRegionalCand
Definition: L1MuRegionalCand.h:26
dedefs::ETP
Definition: DEtrait.h:40
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
LTCDigiCollection
std::vector< LTCDigi > LTCDigiCollection
Definition: LTCDigi.h:91
HcalTriggerPrimitiveDigi
Definition: HcalTriggerPrimitiveDigi.h:13
L1EmulBias::m_doSys
bool m_doSys[dedefs::DEnsys]
Definition: L1EmulBias.h:54
CSCCorrelatedLCTDigi::setTrknmb
void setTrknmb(const uint16_t number)
Set track number (1,2) after sorting LCTs.
Definition: CSCCorrelatedLCTDigi.h:107
dedefs::GLT
Definition: DEtrait.h:40
L1MuGMTReadoutCollection::getRecords
std::vector< L1MuGMTReadoutRecord > const & getRecords() const
Definition: L1MuGMTReadoutCollection.h:52
L1GlobalTriggerObjectMapRecord
Definition: L1GlobalTriggerObjectMapRecord.h:29
dedefs::DTF
Definition: DEtrait.h:40
edm::SortedCollection::end
const_iterator end() const
Definition: SortedCollection.h:267
CSCDetId
Definition: CSCDetId.h:26
L1MuRegionalCand::setPtPacked
void setPtPacked(unsigned pt)
Set Pt: 0..31.
Definition: L1MuRegionalCand.h:123
cand
Definition: decayParser.h:34
edm::Service< edm::RandomNumberGenerator >
iEvent
int iEvent
Definition: GenABIO.cc:224
L1MuDTChambThContainer::getContainer
The_Container const * getContainer() const
Definition: L1MuDTChambThContainer.cc:41
dedefs::LTC
Definition: DEtrait.h:40
CSCCorrelatedLCTDigiCollection
dedefs::DEnsys
const int DEnsys
Definition: DEtrait.h:38
DDAxes::phi
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
L1MuGMTReadoutCollection
Definition: L1MuGMTReadoutCollection.h:39
TrackContainer
std::vector< TrackWithHistory * > TrackContainer
Definition: TrackContainer.h:8
eostools.move
def move(src, dest)
Definition: eostools.py:511
L1CaloRegionCollection
std::vector< L1CaloRegion > L1CaloRegionCollection
Definition: L1CaloCollections.h:11
L1GctEmCandCollection
std::vector< L1GctEmCand > L1GctEmCandCollection
Definition: L1GctCollections.h:30
L1MuDTChambThDigi
Definition: L1MuDTChambThDigi.h:33
EcalTriggerPrimitiveDigi
Definition: EcalTriggerPrimitiveDigi.h:16
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
Exception
Definition: hltDiff.cc:246
L1EmulBias::instName
std::string instName[dedefs::DEnsys][5]
Definition: L1EmulBias.h:55
L1EmulBias::ModifyCollection
void ModifyCollection(std::unique_ptr< T > &data, const edm::Handle< T > emul, CLHEP::HepRandomEngine *)
Definition: L1EmulBias.h:66
csc::L1Track
Definition: L1Track.h:21
L1MuRegionalCandCollection
std::vector< L1MuRegionalCand > L1MuRegionalCandCollection
Definition: RPCRecHitFilter.cc:53
L1MuRegionalCand::pt_packed
unsigned pt_packed() const
return pt packed as in hardware
Definition: L1MuRegionalCand.h:89
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
reset
void reset(double vett[256])
Definition: TPedValues.cc:11
L1MuDTTrackContainer::getContainer
TrackContainer const * getContainer() const
Definition: L1MuDTTrackContainer.cc:46
L1MuDTTrackContainer
Definition: L1MuDTTrackContainer.h:33
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
DigiContainerIterator
Definition: MuonDigiCollection.h:30
L1CaloEmCand
Level-1 Region Calorimeter Trigger EM candidate.
Definition: L1CaloEmCand.h:17
L1MuDTChambThContainer
Definition: L1MuDTChambThContainer.h:33
dedefs::RCT
Definition: DEtrait.h:40
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
dedefs::CTF
Definition: DEtrait.h:40
edm::InputTag
Definition: InputTag.h:15
label
const char * label
Definition: PFTauDecayModeTools.cc:11
L1MuRegionalCand::type_idx
unsigned type_idx() const
return type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
Definition: L1MuRegionalCand.h:76
CSCCorrelatedLCTDigi
Definition: CSCCorrelatedLCTDigi.h:19
L1MuDTChambPhDigi
Definition: L1MuDTChambPhDigi.h:31
L1MuRegionalCand::quality
unsigned int quality() const
return quality
Definition: L1MuRegionalCand.h:73
L1MuGMTReadoutRecord::setBxNr
void setBxNr(int bxnr)
set counters
Definition: L1MuGMTReadoutRecord.h:103
L1EmulBias::verbose
int verbose()
Definition: L1EmulBias.h:52