CMS 3D CMS Logo

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

#include <L1DummyProducer.h>

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

Public Member Functions

 L1DummyProducer (const edm::ParameterSet &)
 
template<class T >
void SimpleDigi (CLHEP::HepRandomEngine *, std::unique_ptr< T > &data, int type=0)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< EcalTrigPrimDigiCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< HcalTrigPrimDigiCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1CaloEmCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1CaloRegionCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1GctEmCandCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1GctJetCandCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1MuRegionalCandCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1MuDTTrackContainer > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1MuDTChambPhContainer > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1MuDTChambThContainer > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1MuGMTCandCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1MuGMTReadoutCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *, std::unique_ptr< LTCDigiCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< CSCCorrelatedLCTDigiCollection > &data, int type)
 
template<>
void SimpleDigi (CLHEP::HepRandomEngine *engine, std::unique_ptr< L1CSCTrackCollection > &data, int type)
 
 ~L1DummyProducer () 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
 
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)
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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)
 

Private Member Functions

void beginJob (void) override
 
void endJob () override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
int verbose ()
 

Private Attributes

double EBase_
 
double ESigm_
 
std::string instName [dedefs::DEnsys][5]
 
bool m_doSys [dedefs::DEnsys]
 
int nevt_
 
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 ()
 
- Protected Member Functions inherited from edm::ProducerBase
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, 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)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 37 of file L1DummyProducer.h.

Constructor & Destructor Documentation

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

assertions/temporary

list of collections to be produced

rnd # settings

Definition at line 9 of file L1DummyProducer.cc.

References gather_cfg::cout, dedefs::CTF, dedefs::CTP, dedefs::DEnsys, dedefs::DTF, dedefs::DTP, relativeConstraints::empty, dedefs::ETP, Exception, dedefs::GCT, edm::ParameterSet::getUntrackedParameter(), dedefs::GLT, dedefs::GMT, dedefs::HTP, mps_fire::i, dqmiolumiharvest::j, dedefs::LTC, dedefs::RCT, dedefs::RPC, AlCaHLTBitMon_QueryRunRegistry::string, dedefs::SystLabel, and verbose.

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

Definition at line 139 of file L1DummyProducer.cc.

139 {}

Member Function Documentation

void L1DummyProducer::beginJob ( void  )
inlineoverrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 43 of file L1DummyProducer.h.

References produce().

43 {};
void L1DummyProducer::endJob ( void  )
inlineoverrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 46 of file L1DummyProducer.h.

References data, and SimpleDigi().

46 {};
void L1DummyProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

define the data collections

fill candidate collections

put collection

Definition at line 141 of file L1DummyProducer.cc.

References gather_cfg::cout, dedefs::CTF, dedefs::CTP, dedefs::DTF, dedefs::DTP, dedefs::ETP, dedefs::GCT, edm::RandomNumberGenerator::getEngine(), dedefs::GLT, dedefs::GMT, dedefs::HTP, dedefs::LTC, eostools::move(), edm::Event::put(), dedefs::RCT, dedefs::RPC, edm::Event::streamID(), and verbose.

Referenced by beginJob().

141  {
143  CLHEP::HepRandomEngine* engine = &rng->getEngine(iEvent.streamID());
144 
145  if (verbose())
146  std::cout << "L1DummyProducer::produce...\n" << std::flush;
147 
149  std::unique_ptr<EcalTrigPrimDigiCollection> ecal_tp_data(new EcalTrigPrimDigiCollection);
150  std::unique_ptr<HcalTrigPrimDigiCollection> hcal_tp_data(new HcalTrigPrimDigiCollection);
151  std::unique_ptr<L1CaloEmCollection> rct_em_data(new L1CaloEmCollection);
152  std::unique_ptr<L1CaloRegionCollection> rct_rgn_data(new L1CaloRegionCollection);
153  std::unique_ptr<L1GctEmCandCollection> gct_isolaem_data(new L1GctEmCandCollection);
154  std::unique_ptr<L1GctEmCandCollection> gct_noisoem_data(new L1GctEmCandCollection);
155  std::unique_ptr<L1GctJetCandCollection> gct_cenjets_data(new L1GctJetCandCollection);
156  std::unique_ptr<L1GctJetCandCollection> gct_forjets_data(new L1GctJetCandCollection);
157  std::unique_ptr<L1GctJetCandCollection> gct_taujets_data(new L1GctJetCandCollection);
158  std::unique_ptr<L1MuDTChambPhContainer> dtp_ph_data(new L1MuDTChambPhContainer);
159  std::unique_ptr<L1MuDTChambThContainer> dtp_th_data(new L1MuDTChambThContainer);
160  std::unique_ptr<L1MuRegionalCandCollection> dtf_data(new L1MuRegionalCandCollection);
161  std::unique_ptr<L1MuDTTrackContainer> dtf_trk_data(new L1MuDTTrackContainer);
162  std::unique_ptr<CSCCorrelatedLCTDigiCollection> ctp_data(new CSCCorrelatedLCTDigiCollection);
163  std::unique_ptr<L1MuRegionalCandCollection> ctf_data(new L1MuRegionalCandCollection);
164  std::unique_ptr<L1CSCTrackCollection> ctf_trk_data(new L1CSCTrackCollection);
165  std::unique_ptr<L1MuRegionalCandCollection> rpc_cen_data(new L1MuRegionalCandCollection);
166  std::unique_ptr<L1MuRegionalCandCollection> rpc_for_data(new L1MuRegionalCandCollection);
167  std::unique_ptr<LTCDigiCollection> ltc_data(new LTCDigiCollection);
168  std::unique_ptr<L1MuGMTCandCollection> gmt_data(new L1MuGMTCandCollection);
169  std::unique_ptr<L1MuGMTReadoutCollection> gmt_rdt_data(new L1MuGMTReadoutCollection);
170  std::unique_ptr<L1GlobalTriggerReadoutRecord> glt_rdt_data(new L1GlobalTriggerReadoutRecord);
171  std::unique_ptr<L1GlobalTriggerEvmReadoutRecord> glt_evm_data(new L1GlobalTriggerEvmReadoutRecord);
172  std::unique_ptr<L1GlobalTriggerObjectMapRecord> glt_obj_data(new L1GlobalTriggerObjectMapRecord);
173 
175  if (m_doSys[ETP])
176  SimpleDigi(engine, ecal_tp_data);
177  if (m_doSys[HTP])
178  SimpleDigi(engine, hcal_tp_data);
179  if (m_doSys[RCT])
180  SimpleDigi(engine, rct_em_data);
181  if (m_doSys[RCT])
182  SimpleDigi(engine, rct_rgn_data);
183  if (m_doSys[GCT])
184  SimpleDigi(engine, gct_isolaem_data, 0);
185  if (m_doSys[GCT])
186  SimpleDigi(engine, gct_noisoem_data, 1);
187  if (m_doSys[GCT])
188  SimpleDigi(engine, gct_cenjets_data, 0);
189  if (m_doSys[GCT])
190  SimpleDigi(engine, gct_forjets_data, 1);
191  if (m_doSys[GCT])
192  SimpleDigi(engine, gct_taujets_data, 2);
193  if (m_doSys[DTP])
194  SimpleDigi(engine, dtp_ph_data);
195  if (m_doSys[DTP])
196  SimpleDigi(engine, dtp_th_data);
197  if (m_doSys[DTF])
198  SimpleDigi(engine, dtf_data, 0);
199  if (m_doSys[DTF])
200  SimpleDigi(engine, dtf_trk_data);
201  if (m_doSys[CTP])
202  SimpleDigi(engine, ctp_data);
203  if (m_doSys[CTF])
204  SimpleDigi(engine, ctf_data, 2);
205  if (m_doSys[CTF])
206  SimpleDigi(engine, ctf_trk_data);
207  if (m_doSys[RPC])
208  SimpleDigi(engine, rpc_cen_data, 1);
209  if (m_doSys[RPC])
210  SimpleDigi(engine, rpc_for_data, 3);
211  if (m_doSys[LTC])
212  SimpleDigi(engine, ltc_data);
213  if (m_doSys[GMT])
214  SimpleDigi(engine, gmt_data);
215  if (m_doSys[GMT])
216  SimpleDigi(engine, gmt_rdt_data);
217  if (m_doSys[GLT])
218  SimpleDigi(engine, glt_rdt_data);
219  if (m_doSys[GLT])
220  SimpleDigi(engine, glt_evm_data);
221  if (m_doSys[GLT])
222  SimpleDigi(engine, glt_obj_data);
223 
225  if (m_doSys[ETP])
226  iEvent.put(std::move(ecal_tp_data), instName[ETP][0]);
227  if (m_doSys[HTP])
228  iEvent.put(std::move(hcal_tp_data), instName[HTP][0]);
229  if (m_doSys[RCT])
230  iEvent.put(std::move(rct_em_data), instName[RCT][0]);
231  if (m_doSys[RCT])
232  iEvent.put(std::move(rct_rgn_data), instName[RCT][0]);
233  if (m_doSys[GCT])
234  iEvent.put(std::move(gct_isolaem_data), instName[GCT][0]);
235  if (m_doSys[GCT])
236  iEvent.put(std::move(gct_noisoem_data), instName[GCT][1]);
237  if (m_doSys[GCT])
238  iEvent.put(std::move(gct_cenjets_data), instName[GCT][2]);
239  if (m_doSys[GCT])
240  iEvent.put(std::move(gct_forjets_data), instName[GCT][3]);
241  if (m_doSys[GCT])
242  iEvent.put(std::move(gct_taujets_data), instName[GCT][4]);
243  if (m_doSys[DTP])
244  iEvent.put(std::move(dtp_ph_data), instName[DTP][0]);
245  if (m_doSys[DTP])
246  iEvent.put(std::move(dtp_th_data), instName[DTP][0]);
247  if (m_doSys[DTF])
248  iEvent.put(std::move(dtf_data), instName[DTF][0]);
249  if (m_doSys[DTF])
250  iEvent.put(std::move(dtf_trk_data), instName[DTF][1]);
251  if (m_doSys[CTP])
252  iEvent.put(std::move(ctp_data), instName[CTP][0]);
253  if (m_doSys[CTF])
254  iEvent.put(std::move(ctf_data), instName[CTF][0]);
255  if (m_doSys[CTF])
256  iEvent.put(std::move(ctf_trk_data), instName[CTF][1]);
257  if (m_doSys[RPC])
258  iEvent.put(std::move(rpc_cen_data), instName[RPC][0]);
259  if (m_doSys[RPC])
260  iEvent.put(std::move(rpc_for_data), instName[RPC][1]);
261  if (m_doSys[LTC])
262  iEvent.put(std::move(ltc_data), instName[LTC][0]);
263  if (m_doSys[GMT])
264  iEvent.put(std::move(gmt_data), instName[GMT][0]);
265  if (m_doSys[GMT])
266  iEvent.put(std::move(gmt_rdt_data), instName[GMT][0]);
267  if (m_doSys[GLT])
268  iEvent.put(std::move(glt_rdt_data), instName[GLT][0]);
269  if (m_doSys[GLT])
270  iEvent.put(std::move(glt_evm_data), instName[GLT][0]);
271  if (m_doSys[GLT])
272  iEvent.put(std::move(glt_obj_data), instName[GLT][0]);
273 
274  nevt_++;
275 
276  if (verbose())
277  std::cout << "L1DummyProducer::produce end.\n" << std::flush;
278 }
std::vector< L1CaloEmCand > L1CaloEmCollection
bool m_doSys[dedefs::DEnsys]
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:131
std::vector< L1CSCTrack > L1CSCTrackCollection
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
std::vector< L1GctJetCand > L1GctJetCandCollection
std::string instName[dedefs::DEnsys][5]
std::vector< LTCDigi > LTCDigiCollection
Definition: LTCDigi.h:91
std::vector< L1MuRegionalCand > L1MuRegionalCandCollection
void SimpleDigi(CLHEP::HepRandomEngine *, std::unique_ptr< T > &data, int type=0)
StreamID streamID() const
Definition: Event.h:96
std::vector< L1CaloRegion > L1CaloRegionCollection
def move(src, dest)
Definition: eostools.py:511
std::vector< L1MuGMTCand > L1MuGMTCandCollection
Definition: DEtrait.h:99
std::vector< L1GctEmCand > L1GctEmCandCollection
template<class T >
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  ,
std::unique_ptr< T > &  data,
int  type = 0 
)

Definition at line 65 of file L1DummyProducer.h.

Referenced by endJob(), and SimpleDigi().

65  {
66  /*collections generated in specializations below*/
67 }
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< EcalTrigPrimDigiCollection > &  data,
int  type 
)
inline

Definition at line 70 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, EcalBarrel, HCALHighEnergyHPDFilter_cfi::energy, ESigm_, LEDCalibrationChannels::ieta, createfilelist::int, LEDCalibrationChannels::iphi, EcalTriggerPrimitiveDigi::setSample(), EcalTriggerPrimitiveDigi::setSize(), and verbose().

72  {
73  if (verbose())
74  std::cout << "L1DummyProducer::SimpleDigi<EcalTrigPrimDigiCollection>....\n" << std::flush;
75  int side = (engine->flat() > 0.5) ? -1 : 1;
76  int ieta = (int)(1 + 17 * engine->flat()); //1-17
77  int iphi = (int)(1 + 72 * engine->flat()); //1-72
78  const EcalTrigTowerDetId e_id(side, EcalBarrel, ieta, iphi, 0);
79  EcalTriggerPrimitiveDigi e_digi(e_id);
80  int energy = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
81  bool fg = (engine->flat() > 0.5);
82  int ttf = (int)(8 * engine->flat()); //0-7
83  EcalTriggerPrimitiveSample e_sample(energy, fg, ttf);
84  e_digi.setSize(1); //set sampleOfInterest to 0
85  e_digi.setSample(0, e_sample);
86  data->push_back(e_digi);
87  //EcalTriggerPrimitiveSample(int encodedEt, bool finegrain, int triggerFlag);
88  //const EcalTrigTowerDetId e_id( zside , EcalBarrel, etaTT, phiTT, 0);
89  if (verbose())
90  std::cout << "L1DummyProducer::SimpleDigi<EcalTrigPrimDigiCollection> end.\n" << std::flush;
91 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< HcalTrigPrimDigiCollection > &  data,
int  type 
)
inline

Definition at line 94 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, HCALHighEnergyHPDFilter_cfi::energy, ESigm_, LEDCalibrationChannels::ieta, createfilelist::int, LEDCalibrationChannels::iphi, HcalTriggerPrimitiveDigi::setSample(), HcalTriggerPrimitiveDigi::setSize(), and verbose().

96  {
97  if (verbose())
98  std::cout << "L1DummyProducer::SimpleDigi<HcalTrigPrimDigiCollection>....\n" << std::flush;
99  int side = (engine->flat() > 0.5) ? -1 : 1;
100  int ieta = (int)(1 + 17 * engine->flat());
101  int iphi = (int)(1 + 72 * engine->flat());
102  const HcalTrigTowerDetId h_id(side * ieta, iphi);
103  HcalTriggerPrimitiveDigi h_digi(h_id);
104  int energy = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
105  HcalTriggerPrimitiveSample h_sample(energy, false, 0, 0);
106  h_digi.setSize(1); //set sampleOfInterest to 0
107  h_digi.setSample(0, h_sample);
108  data->push_back(h_digi);
109  //HcalTriggerPrimitiveSample(int encodedEt, bool finegrain, int slb, int slbchan);
110  //HcalTrigTowerDetId(int ieta, int iphi);
111  if (verbose())
112  std::cout << "L1DummyProducer::SimpleDigi<HcalTrigPrimDigiCollection> end.\n" << std::flush;
113 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1CaloEmCollection > &  data,
int  type 
)
inline

Definition at line 116 of file L1DummyProducer.h.

References l1GtPatternGenerator_cfi::bx, gather_cfg::cout, EBase_, HCALHighEnergyHPDFilter_cfi::energy, ESigm_, createfilelist::int, nevt_, HLT_2018_cff::region, and verbose().

118  {
119  if (verbose())
120  std::cout << "L1DummyProducer::SimpleDigi<L1CaloEmCollection>....\n" << std::flush;
121  int energy = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
122  unsigned rank = energy & 0x3f;
123  unsigned region = (engine->flat() > 0.5 ? 0 : 1);
124  unsigned card = (unsigned)(7 * engine->flat());
125  unsigned crate = (unsigned)(18 * engine->flat());
126  bool iso = (engine->flat() > 0.4);
127  uint16_t index = (unsigned)(4 * engine->flat());
128  int16_t bx = nevt_;
129  L1CaloEmCand cand(rank, region, card, crate, iso, index, bx);
130  data->push_back(cand);
131  //L1CaloEmCand(unsigned rank, unsigned region, unsigned card, unsigned crate, bool iso, uint16_t index, int16_t bx);
132  if (verbose())
133  std::cout << "L1DummyProducer::SimpleDigi<L1CaloEmCollection> end.\n" << std::flush;
134 }
Level-1 Region Calorimeter Trigger EM candidate.
Definition: L1CaloEmCand.h:17
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1CaloRegionCollection > &  data,
int  type 
)
inline

Definition at line 137 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, HCALHighEnergyHPDFilter_cfi::energy, ESigm_, EgHLTOffHistBins_cfi::et, createfilelist::int, and verbose().

139  {
140  if (verbose())
141  std::cout << "L1DummyProducer::SimpleDigi<L1CaloRegionCollection>....\n" << std::flush;
142  int energy = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
143  unsigned et = energy & 0x3ff;
144  bool overFlow = false; //(engine->flat()>0.4);
145  bool tauVeto = false; //(engine->flat()>0.3);
146  bool mip = false; //(engine->flat()>0.1);
147  bool quiet = false; //(engine->flat()>0.6);
148  unsigned crate = (unsigned)(18 * engine->flat());
149  unsigned card = (unsigned)(7 * engine->flat());
150  unsigned rgn = crate % 2; //(engine->flat()>0.5?0:1);
151  L1CaloRegion cand(et, overFlow, tauVeto, mip, quiet, crate, card, rgn);
152  data->push_back(cand);
153  //L1CaloRegion(unsigned et, bool overFlow, bool tauVeto, bool mip, bool quiet, unsigned crate, unsigned card, unsigned rgn);
154  if (verbose())
155  std::cout << "L1DummyProducer::SimpleDigi<L1CaloRegionCollection> end.\n" << std::flush;
156 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
A calorimeter trigger region (sum of 4x4 trigger towers)
Definition: L1CaloRegion.h:21
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1GctEmCandCollection > &  data,
int  type 
)
inline

Definition at line 159 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, HCALHighEnergyHPDFilter_cfi::energy, ESigm_, PVValHelper::eta, Exception, createfilelist::int, phi, verbose(), and testProducerWithPsetDescEmpty_cfi::x1.

161  {
162  if (verbose())
163  std::cout << "L1DummyProducer::SimpleDigi<L1GctEmCandCollection>....\n" << std::flush;
164  bool iso; //= type==0;
165  switch (type) { // 0 iso, 1 noniso
166  case 0:
167  iso = true;
168  break;
169  case 1:
170  iso = false;
171  break;
172  default:
173  throw cms::Exception("L1DummyProducerInvalidType")
174  << "L1DummyProducer::SimpleDigi production of L1GctEmCandCollection "
175  << " invalid type: " << type << std::endl;
176  }
177  int energy = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
178  unsigned rank = energy & 0x3f;
179  unsigned phi = (unsigned)(18 * engine->flat());
180  unsigned eta = (unsigned)(7 * engine->flat());
181  if (engine->flat() > 0.5) //-z (eta sign)
182  eta = (eta & 0x7) + (0x1 << 3);
183  L1GctEmCand cand(rank, phi, eta, iso);
184  data->push_back(cand);
185  // eta = -6 to -0, +0 to +6. Sign is bit 3, 1 means -ve Z, 0 means +ve Z
186  //L1GctEmCand(unsigned rank, unsigned phi, unsigned eta, bool iso);
187  if (verbose())
188  std::cout << "L1DummyProducer::SimpleDigi<L1GctEmCandCollection> end.\n" << std::flush;
189 }
type
Definition: HCALResponse.h:21
Level-1 Trigger EM candidate at output of GCT.
Definition: L1GctEmCand.h:21
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1GctJetCandCollection > &  data,
int  type 
)
inline

Definition at line 192 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, HCALHighEnergyHPDFilter_cfi::energy, ESigm_, PVValHelper::eta, Exception, createfilelist::int, reco::isTau(), phi, verbose(), and testProducerWithPsetDescEmpty_cfi::x1.

194  {
195  if (verbose())
196  std::cout << "L1DummyProducer::SimpleDigi<L1GctJetCandCollection>....\n" << std::flush;
197  bool isFor, isTau;
198  switch (type) { // 0 cen, 1 for, 2 tau
199  case 0:
200  isFor = false;
201  isTau = false;
202  break;
203  case 1:
204  isFor = true;
205  isTau = false;
206  break;
207  case 2:
208  isFor = false;
209  isTau = true;
210  break;
211  default:
212  throw cms::Exception("L1DummyProducerInvalidType")
213  << "L1DummyProducer::SimpleDigi production of L1GctJetCandCollection "
214  << " invalid type: " << type << std::endl;
215  }
216 
217  int energy = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
218  unsigned rank = energy & 0x3f;
219  unsigned phi = (unsigned)(18 * engine->flat());
220  unsigned eta = (unsigned)(7 * engine->flat());
221  if (engine->flat() > 0.5) //-z (eta sign)
222  eta = (eta & 0x7) + (0x1 << 3);
223  L1GctJetCand cand(rank, phi, eta, isTau, isFor);
224  data->push_back(cand);
225  //L1GctJetCand(unsigned rank, unsigned phi, unsigned eta, bool isTau, bool isFor);
226  if (verbose())
227  std::cout << "L1DummyProducer::SimpleDigi<L1GctJetCandCollection> end.\n" << std::flush;
228 }
type
Definition: HCALResponse.h:21
Level-1 Trigger jet candidate.
Definition: L1GctJetCand.h:17
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
bool isTau(const Candidate &part)
Definition: pdgIdUtils.h:11
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuRegionalCandCollection > &  data,
int  type 
)
inline

Definition at line 231 of file L1DummyProducer.h.

References l1GtPatternGenerator_cfi::bx, ALCARECOTkAlJpsiMuMu_cff::charge, gather_cfg::cout, PVValHelper::eta, mps_fire::i, createfilelist::int, phi, Pi, DiDispStaMuonMonitor_cfi::pt, qcdUeDQM_cfi::quality, L1MuRegionalCand::setEtaValue(), L1MuRegionalCand::setPhiValue(), L1MuRegionalCand::setPtValue(), and verbose().

233  {
234  if (verbose())
235  std::cout << "L1DummyProducer::SimpleDigi<L1MuRegionalCandCollection>....\n" << std::flush;
236  //typedef std::vector<L1MuRegionalCand> L1MuRegionalCandCollection;
237  assert(type >= 0 && type < 4);
238  unsigned type_idx = type; //tType: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
239  int bx = 0;
240  unsigned phi, eta, pt, charge, ch_valid, finehalo, quality;
241  float phiv(0.), etav(0.), ptv(0.); //linear translation? 0.2pi,-2.5..2.5,0..100
242  for (int i = 0; i < 4; i++) {
243  phi = (int)(144 * engine->flat()); //8bits, 0..143
244  eta = (int)(63 * engine->flat()); //6bits code
245  phiv = phi * 2 * TMath::Pi() / 144.;
246  etav = 2.5 * (-1 + 2 * eta / 63.);
247  pt = ((int)(32 * engine->flat())) & 0x1f; //5bits: 0..31
248  ptv = 100 * (pt / 31.);
249  charge = (engine->flat() > 0.5 ? 0 : 1);
250  ;
251  ch_valid = 0;
252  finehalo = 0;
253  quality = (int)(8 * engine->flat()); //3bits: 0..7
254  L1MuRegionalCand cand(type_idx, phi, eta, pt, charge, ch_valid, finehalo, quality, bx);
255  cand.setPhiValue(phiv);
256  cand.setEtaValue(etav);
257  cand.setPtValue(ptv);
258  data->push_back(cand);
259  }
260  //L1MuRegionalCand(unsigned type_idx, unsigned phi, unsigned eta, unsigned pt,
261  //unsigned charge, unsigned ch_valid, unsigned finehalo, unsigned quality, int bx);
262  if (verbose())
263  std::cout << "L1DummyProducer::SimpleDigi<L1MuRegionalCandCollection> end.\n" << std::flush;
264 }
const double Pi
type
Definition: HCALResponse.h:21
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuDTTrackContainer > &  data,
int  type 
)
inline

Definition at line 267 of file L1DummyProducer.h.

References gather_cfg::cout, L1MuRegionalCand::setBx(), L1MuRegionalCand::setDataWord(), SimpleDigi(), PDWG_EXOHSCP_cff::tracks, and verbose().

269  {
270  assert(type == 0);
271  int type_idx = type; //choose data type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
272  if (verbose())
273  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTTrackContainer>....\n" << std::flush;
274  std::unique_ptr<L1MuRegionalCandCollection> tracks(new L1MuRegionalCandCollection());
275  SimpleDigi(engine, tracks, type_idx);
276  typedef std::vector<L1MuDTTrackCand> L1MuDTTrackCandCollection;
277  std::unique_ptr<L1MuDTTrackCandCollection> tracksd(new L1MuDTTrackCandCollection());
278  for (L1MuRegionalCandCollection::const_iterator it = tracks->begin(); it != tracks->end(); it++) {
279  L1MuDTTrackCand* cnd = new L1MuDTTrackCand();
280  cnd->setDataWord(it->getDataWord());
281  cnd->setBx(it->bx());
282  tracksd->push_back(L1MuDTTrackCand());
283  tracksd->push_back(*cnd);
284  }
285  data->setContainer(*tracksd);
286  if (verbose())
287  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTTrackContainer> end.\n" << std::flush;
288  //L1MuDTTrackCand( unsigned dataword, int bx, int uwh, int usc, int utag,
289  // int adr1, int adr2, int adr3, int adr4, int utc );
290 }
type
Definition: HCALResponse.h:21
void setBx(int bx)
Set Bunch Crossing.
void setDataWord(unsigned dataword)
Set data word.
std::vector< L1MuRegionalCand > L1MuRegionalCandCollection
void SimpleDigi(CLHEP::HepRandomEngine *, std::unique_ptr< T > &data, int type=0)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuDTChambPhContainer > &  data,
int  type 
)
inline

Definition at line 293 of file L1DummyProducer.h.

References gather_cfg::cout, mps_fire::i, createfilelist::int, PDWG_EXOHSCP_cff::tracks, and verbose().

295  {
296  if (verbose())
297  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTChambPhContainer>....\n" << std::flush;
298  typedef std::vector<L1MuDTChambPhDigi> Phi_Container;
299  int ntrk = 4;
300  Phi_Container tracks(ntrk);
301  int ubx, uwh, usc, ust, uphr, uphb, uqua, utag, ucnt;
302  for (int i = 0; i < ntrk; i++) {
303  ubx = 0; //bxNum() - bx
304  uwh = 0; //whNum() - wheel
305  usc = 0; //scNum() - sector
306  ust = 0; //stNum() - station
307  uphr = 0; //phi() - radialAngle
308  uphb = 0; //phiB() - bendingAngle
309  uqua = 0; //code() - qualityCode
310  utag = 0; //Ts2Tag() - Ts2TagCode
311  ucnt = 0; //BxCnt() - BxCntCode
312  uwh = (int)(-2 + 5 * engine->flat());
313  usc = (int)(12 * engine->flat());
314  ust = (int)(1. + 4 * engine->flat());
315  uqua = (int)(8 * engine->flat());
316  L1MuDTChambPhDigi cand(ubx, uwh, usc, ust, uphr, uphb, uqua, utag, ucnt);
317  tracks.push_back(cand);
318  }
319  data->setContainer(tracks);
320  //L1MuDTChambPhDigi( int ubx, int uwh, int usc, int ust,
321  // int uphr, int uphb, int uqua, int utag, int ucnt );
322  if (verbose())
323  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTChambPhContainer> end.\n" << std::flush;
324 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuDTChambThContainer > &  data,
int  type 
)
inline

Definition at line 327 of file L1DummyProducer.h.

References gather_cfg::cout, mps_fire::i, createfilelist::int, dqmiolumiharvest::j, PDWG_EXOHSCP_cff::tracks, and verbose().

329  {
330  if (verbose())
331  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTChambThContainer>....\n" << std::flush;
332  typedef std::vector<L1MuDTChambThDigi> The_Container;
333  int ntrk = 4;
334  The_Container tracks(ntrk);
335  int ubx, uwh, usc, ust, uos[7], uqa[7];
336  for (int i = 0; i < ntrk; i++) {
337  ubx = 0;
338  uwh = (int)(-2 + 5 * engine->flat());
339  usc = (int)(12 * engine->flat());
340  ust = (int)(1. + 4 * engine->flat());
341  for (int j = 0; j < 7; j++) {
342  uos[j] = (engine->flat() > 0.5 ? 0 : 1);
343  uqa[j] = (engine->flat() > 0.5 ? 0 : 1);
344  }
345  L1MuDTChambThDigi cand(ubx, uwh, usc, ust, uos, uqa);
346  tracks.push_back(cand);
347  }
348  data->setContainer(tracks);
349  //L1MuDTChambThDigi( int ubx, int uwh, int usc, int ust,
350  // int* uos, [int* uqual] );
351  //"DataFormats/L1DTTrackFinder/interface/L1MuDTChambThContainer.h"
352  if (verbose())
353  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTChambThContainer> end.\n" << std::flush;
354 }
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuGMTCandCollection > &  data,
int  type 
)
inline

Definition at line 357 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, ESigm_, PVValHelper::eta, nevt_, phi, Pi, alignCSCRings::r, L1MuGMTCand::setBx(), L1MuGMTCand::setChargePacked(), L1MuGMTCand::setEtaPacked(), L1MuGMTCand::setEtaValue(), L1MuGMTCand::setIsolation(), L1MuGMTCand::setMIP(), L1MuGMTCand::setPhiPacked(), L1MuGMTCand::setPhiValue(), L1MuGMTCand::setPtPacked(), L1MuGMTCand::setPtValue(), and verbose().

359  {
360  if (verbose())
361  std::cout << "L1DummyProducer::SimpleDigi<L1MuGMTCandCollection>....\n" << std::flush;
362  //typedef std::vector<L1MuGMTCand> L1MuGMTCandCollection;
363  L1MuGMTCand cand(0, nevt_);
364  //cand.setPhiPacked();//8bits
365  //cand.setPtPacked ();//5bits
366  //cand.setQuality ();//3bits
367  //cand.setEtaPacked();//6bits
368  //cand.setIsolation();//1bit
369  //cand.setMIP ();//1bit
370  //cand.setChargePacked();//0:+, 1:-, 2:undef, 3:sync
371  //cand.setBx (nevt_);
372  //set physical values
373  double eng = EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine);
374  double phi = 2 * TMath::Pi() * engine->flat();
375  double eta = 2.5 * (-1 + 2 * engine->flat());
376  cand.setPtValue(eng);
377  cand.setPhiValue(phi);
378  cand.setEtaValue(eta);
379  unsigned engp = (unsigned)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
380  unsigned phip = (unsigned)(255 * engine->flat());
381  unsigned etap = (unsigned)(63 * engine->flat());
382  cand.setPtPacked(engp & 0x1f);
383  cand.setPhiPacked(phip & 0x7f);
384  cand.setEtaPacked(etap & 0x3f);
385  double r = engine->flat();
386  cand.setIsolation(r > 0.2);
387  cand.setMIP(r > 0.7);
388  cand.setChargePacked(r > 0.5 ? 0 : 1);
389  cand.setBx(0);
390  data->push_back(cand);
391  if (verbose())
392  std::cout << "L1DummyProducer::SimpleDigi<L1MuGMTCandCollection> end.\n" << std::flush;
393 }
const double Pi
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuGMTReadoutCollection > &  data,
int  type 
)
inline

tbd: add GMT extended cand(!)

Definition at line 396 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, ESigm_, PVValHelper::eta, mps_fire::i, createfilelist::int, nevt_, EgHLTOffHistBins_cfi::nr, phi, L1MuGMTReadoutRecord::setBxInEvent(), L1MuGMTReadoutRecord::setBxNr(), L1MuGMTReadoutRecord::setEvNr(), L1MuGMTReadoutRecord::setGMTBrlCand(), L1MuGMTReadoutRecord::setGMTCand(), L1MuGMTReadoutRecord::setGMTFwdCand(), L1MuGMTReadoutRecord::setInputCand(), L1MuGMTReadoutRecord::setMIPbit(), L1MuGMTReadoutRecord::setQuietbit(), SimpleDigi(), and verbose().

398  {
399  if (verbose())
400  std::cout << "L1DummyProducer::SimpleDigi<L1MuGMTReadoutCollection>....\n" << std::flush;
401  L1MuGMTReadoutRecord rec(0);
402  int bxn = nevt_;
403  rec.setBxNr(bxn);
404  rec.setEvNr(bxn);
405  rec.setBxInEvent(0);
406  std::unique_ptr<L1MuRegionalCandCollection> trks_dttf(new L1MuRegionalCandCollection);
407  std::unique_ptr<L1MuRegionalCandCollection> trks_rpcb(new L1MuRegionalCandCollection);
408  std::unique_ptr<L1MuRegionalCandCollection> trks_csc(new L1MuRegionalCandCollection);
409  std::unique_ptr<L1MuRegionalCandCollection> trks_rpcf(new L1MuRegionalCandCollection);
410  SimpleDigi(engine, trks_dttf, 0);
411  SimpleDigi(engine, trks_rpcb, 1);
412  SimpleDigi(engine, trks_csc, 2);
413  SimpleDigi(engine, trks_rpcf, 3);
414  for (int i = 0; i < 4; i++) {
415  rec.setInputCand(i, trks_dttf->at(i)); //dt : 0..3
416  rec.setInputCand(i + 4, trks_rpcb->at(i)); //rpcb: 4..7
417  rec.setInputCand(i + 8, trks_csc->at(i)); //csc : 8..11
418  rec.setInputCand(i + 12, trks_rpcf->at(i)); //rpcf:12..15
419  }
420  for (int nr = 0; nr < 4; nr++) {
421  int eng = (int)(EBase_ + ESigm_ * CLHEP::RandGaussQ::shoot(engine));
422  rec.setGMTBrlCand(nr, eng & 0x11, eng & 0x11); //set GMT barrel candidate
423  rec.setGMTFwdCand(nr, eng & 0x11, eng & 0x11); //set GMT forward candidate
424  rec.setGMTCand(nr, eng & 0x11); //set GMT candidate (does not store rank)
425  int eta = (int)(14 * engine->flat()); //0..13
426  int phi = (int)(18 * engine->flat()); //0..17
427  rec.setMIPbit(eta, phi);
428  rec.setQuietbit(eta, phi);
429  }
430  data->addRecord(rec);
432  //rec.setBCERR(int bcerr);
433  //rec.setGMTBrlCand(int nr, L1MuGMTExtendedCand const& cand);
434  //rec.setGMTFwdCand(int nr, L1MuGMTExtendedCand const& cand);
435  //rec.setGMTCand (int nr, L1MuGMTExtendedCand const& cand);
436  //rec.setInputCand (int nr, L1MuRegionalCand const& cand);
437  //L1MuGMTReadoutCollection :: std::vector<L1MuGMTReadoutRecord> m_Records;
438  //L1MuGMTReadoutCollection(int nbx) { m_Records.reserve(nbx); };
439  //L1MuGMTExtendedCand(unsigned data, unsigned rank, int bx=0) : L1MuGMTCand (data, bx), m_rank(rank) {}
440  if (verbose())
441  std::cout << "L1DummyProducer::SimpleDigi<L1MuGMTReadoutCollection> end.\n" << std::flush;
442 }
std::vector< L1MuRegionalCand > L1MuRegionalCandCollection
void SimpleDigi(CLHEP::HepRandomEngine *, std::unique_ptr< T > &data, int type=0)
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  ,
std::unique_ptr< LTCDigiCollection > &  data,
int  type 
)
inline

Definition at line 445 of file L1DummyProducer.h.

References gather_cfg::cout, and verbose().

445  {
446  if (verbose())
447  std::cout << "L1DummyProducer::SimpleDigi<LTCDigiCollection>....\n" << std::flush;
448  //LTCs are FED id 816-823
449  /*
450  6 64-bit words
451  uint64_t *ld = (uint64_t*)data;
452 
453  word0: 59:56 4 bit ld[0]>>56 & 0xf trigType
454  55:32 24 bit ld[0]>>32 & 0x00ffffff eventID
455  31:20 12 bit ld[0]>>20 & 0xfff bunchNumber
456  19: 8 12 bit ld[0]>> 8 & 0x00000fff sourceID (816-823?)
457 
458  word1: 63:32 32 bit ld[1]>>32 & 0xffffffff orbitNumber
459  31:24 8 bit ld[1]>>24 & 0xff versionNumber
460  3: 0 4 bit ld[1 & 0xf daqPartition
461 
462  word2: 63:32 32 bit ld[0]>>32 & 0xffffffff runNumber
463  31: 0 32 bit ld[0] & 0xffffffff eventNumber
464 
465  word3: 63:32 32 bit ld[3]>>32 & 0xffffffff trigInhibitNumber
466  31: 0 32 bit ld[3] & 0xffffffff trigInputStat
467 
468  word4: 63:0 64 bit ld[4] bstGpsTime
469 
470  word5: (empty)
471  */
472  //need to make up something meaningfull to produce here..
473  //LTCDigi(const unsigned char* data);
474  if (verbose())
475  std::cout << "L1DummyProducer::SimpleDigi<LTCDigiCollection> end.\n" << std::flush;
476 }
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< CSCCorrelatedLCTDigiCollection > &  data,
int  type 
)
inline

Definition at line 479 of file L1DummyProducer.h.

References CSCCorrelatedLCTDigi::clear(), gather_cfg::cout, RecoEcal_EventContent_cff::ec, createfilelist::int, emtf::MAX_ENDCAP, emtf::MIN_ENDCAP, and verbose().

481  {
482  if (verbose())
483  std::cout << "L1DummyProducer::SimpleDigi<CSCCorrelatedLCTDigiCollection>....\n" << std::flush;
484  //typedef MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection;
485  //CSCCorrelatedLCTDigi(const int trknmb, const int valid, const int quality, const int keywire, const int strip, const int clct_pattern, const int bend, const int bx, const int& mpclink = 0, const uint16_t & bx0=0, const uint16_t & syncErr = 0, const uint16_t & cscID=0);
487  //tbd: set non-trivial random values
488  dg.clear(); // set contents to zero
489  //CSCDetId( int iendcap, int istation, int iring, int ichamber, int ilayer = 0 );
490  enum eMinNum { MIN_ENDCAP = 1, MIN_STATION = 1, MIN_RING = 1, MIN_CHAMBER = 1, MIN_LAYER = 1 };
491  enum eMaxNum { MAX_ENDCAP = 2, MAX_STATION = 4, MAX_RING = 4, MAX_CHAMBER = 36, MAX_LAYER = 6 };
492  float rnd = engine->flat();
493  int ec = (int)(MIN_ENDCAP + (MAX_ENDCAP - MIN_ENDCAP) * rnd + 1);
494  int st = (int)(MIN_STATION + (MAX_STATION - MIN_STATION) * rnd + 1);
495  int rg = (int)(MIN_RING + (MAX_RING - MIN_RING) * rnd + 1);
496  int ch = (int)(MIN_CHAMBER + (MAX_CHAMBER - MIN_CHAMBER) * rnd + 1);
497  int lr = (int)(MIN_LAYER + (MAX_LAYER - MIN_LAYER) * rnd + 1);
498  CSCDetId did = CSCDetId(ec, st, rg, ch, lr);
499  //CSCDetId did = CSCDetId(); //DetId(DetId::Muon, MuonSubdetId::CSC)
500  //MuonDigiCollection::insertDigi(const IndexType& index, const DigiType& digi)
501  data->insertDigi(did, dg);
502  if (verbose())
503  std::cout << "L1DummyProducer::SimpleDigi<CSCCorrelatedLCTDigiCollection> end.\n" << std::flush;
504 }
int MIN_ENDCAP
Definition: Common.h:58
int MAX_ENDCAP
Definition: Common.h:59
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1CSCTrackCollection > &  data,
int  type 
)
inline

Definition at line 507 of file L1DummyProducer.h.

References L1MuRegionalCand::bx(), gather_cfg::cout, L1MuRegionalCand::etaValue(), L1MuRegionalCand::getDataWord(), L1MuRegionalCand::phiValue(), L1MuRegionalCand::ptValue(), L1MuRegionalCand::setBx(), L1MuRegionalCand::setDataWord(), L1MuRegionalCand::setEtaValue(), L1MuRegionalCand::setPhiValue(), L1MuRegionalCand::setPtValue(), SimpleDigi(), and verbose().

509  {
510  if (verbose())
511  std::cout << "L1DummyProducer::SimpleDigi<L1CSCTrackCollection>...\n" << std::flush;
512  std::unique_ptr<CSCCorrelatedLCTDigiCollection> dgcoll(new CSCCorrelatedLCTDigiCollection);
513  SimpleDigi(engine, dgcoll, 0);
514  csc::L1Track l1trk = csc::L1Track();
515  std::unique_ptr<L1MuRegionalCandCollection> regcoll(new L1MuRegionalCandCollection);
516  SimpleDigi(engine, regcoll, 2);
517  L1MuRegionalCand regcand = *(regcoll->begin());
518  l1trk.setDataWord(regcand.getDataWord());
519  l1trk.setBx(regcand.bx());
520  l1trk.setPhiValue(regcand.phiValue());
521  l1trk.setEtaValue(regcand.etaValue());
522  l1trk.setPtValue(regcand.ptValue());
523  L1CSCTrack l1csctrk = std::make_pair(l1trk, *dgcoll);
524  data->push_back(l1csctrk);
525  //typedef std::vector<L1CSCTrack> L1CSCTrackCollection;
526  //typedef std::pair<csc::L1Track,CSCCorrelatedLCTDigiCollection> L1CSCTrack;
527  //L1Track() : L1MuRegionalCand(), m_name("csc::L1Track") { setType(2); setPtPacked(0); }
528  //L1MuRegionalCand(unsigned dataword = 0, int bx = 0);
529  if (verbose())
530  std::cout << "L1DummyProducer::SimpleDigi<L1CSCTrackCollection> end.\n" << std::flush;
531 }
std::pair< csc::L1Track, CSCCorrelatedLCTDigiCollection > L1CSCTrack
float etaValue() const
get eta-value of muon candidate
void setPtValue(float ptVal)
Set Pt Value.
void setBx(int bx)
Set Bunch Crossing.
float ptValue() const
get pt-value of muon candidate in GeV
void setPhiValue(float phiVal)
Set Phi Value.
void setDataWord(unsigned dataword)
Set data word.
unsigned getDataWord() const
return data word
void setEtaValue(float etaVal)
Set Eta Value (need to set type, first)
float phiValue() const
get phi-value of muon candidate in radians (low edge of bin)
std::vector< L1MuRegionalCand > L1MuRegionalCandCollection
void SimpleDigi(CLHEP::HepRandomEngine *, std::unique_ptr< T > &data, int type=0)
int bx() const
return bunch crossing identifier
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
int L1DummyProducer::verbose ( )
inlineprivate

Definition at line 54 of file L1DummyProducer.h.

References verbose_.

Referenced by SimpleDigi().

54 { return verbose_; }

Member Data Documentation

double L1DummyProducer::EBase_
private

Definition at line 60 of file L1DummyProducer.h.

Referenced by SimpleDigi().

double L1DummyProducer::ESigm_
private

Definition at line 61 of file L1DummyProducer.h.

Referenced by SimpleDigi().

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

Definition at line 58 of file L1DummyProducer.h.

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

Definition at line 57 of file L1DummyProducer.h.

int L1DummyProducer::nevt_
private

Definition at line 55 of file L1DummyProducer.h.

Referenced by SimpleDigi().

int L1DummyProducer::verbose_
private

Definition at line 53 of file L1DummyProducer.h.

Referenced by verbose().