CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex >
const & 
esGetTokenRecordIndicesVector (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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, 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
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
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 wantsInputProcessBlocks ()
 
static bool wantsProcessBlocks ()
 
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)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
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<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
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)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 39 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 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::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
assert(be >=bs)
std::string instName[dedefs::DEnsys][5]
const std::string SystLabel[DEnsys]
Definition: DEtrait.h:42
tuple cout
Definition: gather_cfg.py:144
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 45 of file L1DummyProducer.h.

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

Reimplemented from edm::EDProducer.

Definition at line 48 of file L1DummyProducer.h.

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

define the data collections

fill candidate collections

put collection

Implements edm::EDProducer.

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.

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:133
std::vector< L1CSCTrack > L1CSCTrackCollection
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
std::vector< L1GctJetCand > L1GctJetCandCollection
def move
Definition: eostools.py:511
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:98
tuple cout
Definition: gather_cfg.py:144
std::vector< L1CaloRegion > L1CaloRegionCollection
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 67 of file L1DummyProducer.h.

Referenced by SimpleDigi().

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

Definition at line 72 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, EcalBarrel, relval_parameters_module::energy, ESigm_, EcalTriggerPrimitiveDigi::setSample(), EcalTriggerPrimitiveDigi::setSize(), and verbose().

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

Definition at line 96 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, relval_parameters_module::energy, ESigm_, HcalTriggerPrimitiveDigi::setSample(), HcalTriggerPrimitiveDigi::setSize(), and verbose().

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

Definition at line 118 of file L1DummyProducer.h.

References makePileupJSON::bx, gather_cfg::cout, EBase_, relval_parameters_module::energy, ESigm_, nevt_, HLT_FULL_cff::region, and verbose().

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

Definition at line 139 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, relval_parameters_module::energy, ESigm_, and verbose().

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

Definition at line 161 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, relval_parameters_module::energy, ESigm_, PVValHelper::eta, Exception, phi, and verbose().

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

Definition at line 194 of file L1DummyProducer.h.

References gather_cfg::cout, EBase_, relval_parameters_module::energy, ESigm_, PVValHelper::eta, Exception, reco::isTau(), phi, and verbose().

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

References cms::cuda::assert(), makePileupJSON::bx, RecoTauCleanerPlugins::charge, gather_cfg::cout, PVValHelper::eta, mps_fire::i, phi, Pi, DiDispStaMuonMonitor_cfi::pt, quality, L1MuRegionalCand::setEtaValue(), L1MuRegionalCand::setPhiValue(), L1MuRegionalCand::setPtValue(), and verbose().

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

Definition at line 269 of file L1DummyProducer.h.

References cms::cuda::assert(), gather_cfg::cout, L1MuRegionalCand::setBx(), L1MuRegionalCand::setDataWord(), SimpleDigi(), tracks, and verbose().

271  {
272  assert(type == 0);
273  int type_idx = type; //choose data type: 0 DT, 1 bRPC, 2 CSC, 3 fRPC
274  if (verbose())
275  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTTrackContainer>....\n" << std::flush;
276  std::unique_ptr<L1MuRegionalCandCollection> tracks(new L1MuRegionalCandCollection());
277  SimpleDigi(engine, tracks, type_idx);
278  typedef std::vector<L1MuDTTrackCand> L1MuDTTrackCandCollection;
279  std::unique_ptr<L1MuDTTrackCandCollection> tracksd(new L1MuDTTrackCandCollection());
280  for (L1MuRegionalCandCollection::const_iterator it = tracks->begin(); it != tracks->end(); it++) {
281  L1MuDTTrackCand* cnd = new L1MuDTTrackCand();
282  cnd->setDataWord(it->getDataWord());
283  cnd->setBx(it->bx());
284  tracksd->push_back(L1MuDTTrackCand());
285  tracksd->push_back(*cnd);
286  }
287  data->setContainer(*tracksd);
288  if (verbose())
289  std::cout << "L1DummyProducer::SimpleDigi<L1MuDTTrackContainer> end.\n" << std::flush;
290  //L1MuDTTrackCand( unsigned dataword, int bx, int uwh, int usc, int utag,
291  // int adr1, int adr2, int adr3, int adr4, int utc );
292 }
auto const & tracks
cannot be loose
assert(be >=bs)
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
tuple cout
Definition: gather_cfg.py:144
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1MuDTChambPhContainer > &  data,
int  type 
)
inline

Definition at line 295 of file L1DummyProducer.h.

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

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

Definition at line 329 of file L1DummyProducer.h.

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

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

Definition at line 359 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().

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

tbd: add GMT extended cand(!)

Definition at line 398 of file L1DummyProducer.h.

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

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

Definition at line 447 of file L1DummyProducer.h.

References gather_cfg::cout, and verbose().

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

Definition at line 481 of file L1DummyProducer.h.

References CSCCorrelatedLCTDigi::clear(), gather_cfg::cout, CSCDetId, emtf::MAX_ENDCAP, emtf::MIN_ENDCAP, and verbose().

483  {
484  if (verbose())
485  std::cout << "L1DummyProducer::SimpleDigi<CSCCorrelatedLCTDigiCollection>....\n" << std::flush;
486  //typedef MuonDigiCollection<CSCDetId,CSCCorrelatedLCTDigi> CSCCorrelatedLCTDigiCollection;
487  //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);
489  //tbd: set non-trivial random values
490  dg.clear(); // set contents to zero
491  //CSCDetId( int iendcap, int istation, int iring, int ichamber, int ilayer = 0 );
492  enum eMinNum { MIN_ENDCAP = 1, MIN_STATION = 1, MIN_RING = 1, MIN_CHAMBER = 1, MIN_LAYER = 1 };
493  enum eMaxNum { MAX_ENDCAP = 2, MAX_STATION = 4, MAX_RING = 4, MAX_CHAMBER = 36, MAX_LAYER = 6 };
494  float rnd = engine->flat();
495  int ec = (int)(MIN_ENDCAP + (MAX_ENDCAP - MIN_ENDCAP) * rnd + 1);
496  int st = (int)(MIN_STATION + (MAX_STATION - MIN_STATION) * rnd + 1);
497  int rg = (int)(MIN_RING + (MAX_RING - MIN_RING) * rnd + 1);
498  int ch = (int)(MIN_CHAMBER + (MAX_CHAMBER - MIN_CHAMBER) * rnd + 1);
499  int lr = (int)(MIN_LAYER + (MAX_LAYER - MIN_LAYER) * rnd + 1);
500  CSCDetId did = CSCDetId(ec, st, rg, ch, lr);
501  //CSCDetId did = CSCDetId(); //DetId(DetId::Muon, MuonSubdetId::CSC)
502  //MuonDigiCollection::insertDigi(const IndexType& index, const DigiType& digi)
503  data->insertDigi(did, dg);
504  if (verbose())
505  std::cout << "L1DummyProducer::SimpleDigi<CSCCorrelatedLCTDigiCollection> end.\n" << std::flush;
506 }
constexpr int MIN_ENDCAP
Definition: Common.h:45
constexpr int MAX_ENDCAP
Definition: Common.h:46
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
tuple cout
Definition: gather_cfg.py:144
void clear()
clear this LCT
template<>
void L1DummyProducer::SimpleDigi ( CLHEP::HepRandomEngine *  engine,
std::unique_ptr< L1CSCTrackCollection > &  data,
int  type 
)
inline

Definition at line 509 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().

511  {
512  if (verbose())
513  std::cout << "L1DummyProducer::SimpleDigi<L1CSCTrackCollection>...\n" << std::flush;
514  std::unique_ptr<CSCCorrelatedLCTDigiCollection> dgcoll(new CSCCorrelatedLCTDigiCollection);
515  SimpleDigi(engine, dgcoll, 0);
516  csc::L1Track l1trk = csc::L1Track();
517  std::unique_ptr<L1MuRegionalCandCollection> regcoll(new L1MuRegionalCandCollection);
518  SimpleDigi(engine, regcoll, 2);
519  L1MuRegionalCand regcand = *(regcoll->begin());
520  l1trk.setDataWord(regcand.getDataWord());
521  l1trk.setBx(regcand.bx());
522  l1trk.setPhiValue(regcand.phiValue());
523  l1trk.setEtaValue(regcand.etaValue());
524  l1trk.setPtValue(regcand.ptValue());
525  L1CSCTrack l1csctrk = std::make_pair(l1trk, *dgcoll);
526  data->push_back(l1csctrk);
527  //typedef std::vector<L1CSCTrack> L1CSCTrackCollection;
528  //typedef std::pair<csc::L1Track,CSCCorrelatedLCTDigiCollection> L1CSCTrack;
529  //L1Track() : L1MuRegionalCand(), m_name("csc::L1Track") { setType(2); setPtPacked(0); }
530  //L1MuRegionalCand(unsigned dataword = 0, int bx = 0);
531  if (verbose())
532  std::cout << "L1DummyProducer::SimpleDigi<L1CSCTrackCollection> end.\n" << std::flush;
533 }
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)
TTTrack< Ref_Phase2TrackerDigi_ > L1Track
Definition: L1Track.h:8
int bx() const
return bunch crossing identifier
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
tuple cout
Definition: gather_cfg.py:144
int L1DummyProducer::verbose ( )
inlineprivate

Definition at line 56 of file L1DummyProducer.h.

References verbose_.

Referenced by SimpleDigi().

56 { return verbose_; }

Member Data Documentation

double L1DummyProducer::EBase_
private

Definition at line 62 of file L1DummyProducer.h.

Referenced by SimpleDigi().

double L1DummyProducer::ESigm_
private

Definition at line 63 of file L1DummyProducer.h.

Referenced by SimpleDigi().

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

Definition at line 60 of file L1DummyProducer.h.

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

Definition at line 59 of file L1DummyProducer.h.

int L1DummyProducer::nevt_
private

Definition at line 57 of file L1DummyProducer.h.

Referenced by SimpleDigi().

int L1DummyProducer::verbose_
private

Definition at line 55 of file L1DummyProducer.h.

Referenced by verbose().