CMS 3D CMS Logo

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

#include <NewAlignment/LaserAlignmentT0Producer/src/LaserAlignmentT0Producer.cc>

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

Public Member Functions

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

Private Member Functions

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

Private Attributes

std::string digiLabel
 
std::string digiProducer
 
std::vector< edm::ParameterSetdigiProducerList
 
std::string digiType
 
std::vector< unsigned int > theLasDetIds
 

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

Detailed Description

Description: AlCaRECO producer (TkLAS data filter) running on T0

Implementation: <Notes on="" implementation>="">

Definition at line 34 of file LaserAlignmentT0Producer.h.

Constructor & Destructor Documentation

◆ LaserAlignmentT0Producer()

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

Loops all input SiStripDigi or SiStripRawDigi collections and announces the corresponding product

Definition at line 13 of file LaserAlignmentT0Producer.cc.

13  {
14  // alias for the Branches in the output file
15  std::string alias(iConfig.getParameter<std::string>("@module_label"));
16 
17  // the list of input digi products from the cfg
18  digiProducerList = iConfig.getParameter<std::vector<edm::ParameterSet>>("DigiProducerList");
19 
20  // loop all input products
21  for (std::vector<edm::ParameterSet>::iterator aDigiProducer = digiProducerList.begin();
22  aDigiProducer != digiProducerList.end();
23  ++aDigiProducer) {
24  std::string digiProducer = aDigiProducer->getParameter<std::string>("DigiProducer");
25  std::string digiLabel = aDigiProducer->getParameter<std::string>("DigiLabel");
26  std::string digiType = aDigiProducer->getParameter<std::string>("DigiType");
27 
28  // check if raw/processed digis in this collection
29  if (digiType == "Raw") {
30  produces<edm::DetSetVector<SiStripRawDigi>>(digiLabel).setBranchAlias(alias + "siStripRawDigis");
31  } else if (digiType == "Processed") { // "ZeroSuppressed" digis (non-raw)
32  produces<edm::DetSetVector<SiStripDigi>>(digiLabel).setBranchAlias(alias + "siStripDigis");
33  } else {
34  throw cms::Exception("LaserAlignmentT0Producer")
35  << "ERROR ** Unknown DigiType: " << digiType << " specified in cfg file" << std::endl;
36  }
37  }
38 }

References SiStripOfflineCRack_cfg::alias, digiLabel, digiProducer, digiProducerList, digiType, Exception, edm::ParameterSet::getParameter(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~LaserAlignmentT0Producer()

LaserAlignmentT0Producer::~LaserAlignmentT0Producer ( )
override

Definition at line 43 of file LaserAlignmentT0Producer.cc.

43 {}

Member Function Documentation

◆ beginJob()

void LaserAlignmentT0Producer::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 137 of file LaserAlignmentT0Producer.cc.

137  {
138  // fill the vector with LAS det ids
139  FillDetIds();
140 }

References FillDetIds().

◆ endJob()

void LaserAlignmentT0Producer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 145 of file LaserAlignmentT0Producer.cc.

145 {}

Referenced by o2olib.O2ORunMgr::executeJob().

◆ FillDetIds()

void LaserAlignmentT0Producer::FillDetIds ( void  )
private

fill a vector with all the det ids of the 434 siStrip modules relevant to the LAS

(ugly mechanism, should later be replaced by some hash-based)

Definition at line 154 of file LaserAlignmentT0Producer.cc.

154  {
155  theLasDetIds.resize(0);
156 
157  // TEC+ internal alignment modules
158  theLasDetIds.push_back(470307208);
159  theLasDetIds.push_back(470323592);
160  theLasDetIds.push_back(470339976);
161  theLasDetIds.push_back(470356360);
162  theLasDetIds.push_back(470372744);
163  theLasDetIds.push_back(470389128);
164  theLasDetIds.push_back(470405512);
165  theLasDetIds.push_back(470421896);
166  theLasDetIds.push_back(470438280);
167  theLasDetIds.push_back(470307464);
168  theLasDetIds.push_back(470323848);
169  theLasDetIds.push_back(470340232);
170  theLasDetIds.push_back(470356616);
171  theLasDetIds.push_back(470373000);
172  theLasDetIds.push_back(470389384);
173  theLasDetIds.push_back(470405768);
174  theLasDetIds.push_back(470422152);
175  theLasDetIds.push_back(470438536);
176  theLasDetIds.push_back(470307720);
177  theLasDetIds.push_back(470324104);
178  theLasDetIds.push_back(470340488);
179  theLasDetIds.push_back(470356872);
180  theLasDetIds.push_back(470373256);
181  theLasDetIds.push_back(470389640);
182  theLasDetIds.push_back(470406024);
183  theLasDetIds.push_back(470422408);
184  theLasDetIds.push_back(470438792);
185  theLasDetIds.push_back(470307976);
186  theLasDetIds.push_back(470324360);
187  theLasDetIds.push_back(470340744);
188  theLasDetIds.push_back(470357128);
189  theLasDetIds.push_back(470373512);
190  theLasDetIds.push_back(470389896);
191  theLasDetIds.push_back(470406280);
192  theLasDetIds.push_back(470422664);
193  theLasDetIds.push_back(470439048);
194  theLasDetIds.push_back(470308232);
195  theLasDetIds.push_back(470324616);
196  theLasDetIds.push_back(470341000);
197  theLasDetIds.push_back(470357384);
198  theLasDetIds.push_back(470373768);
199  theLasDetIds.push_back(470390152);
200  theLasDetIds.push_back(470406536);
201  theLasDetIds.push_back(470422920);
202  theLasDetIds.push_back(470439304);
203  theLasDetIds.push_back(470308488);
204  theLasDetIds.push_back(470324872);
205  theLasDetIds.push_back(470341256);
206  theLasDetIds.push_back(470357640);
207  theLasDetIds.push_back(470374024);
208  theLasDetIds.push_back(470390408);
209  theLasDetIds.push_back(470406792);
210  theLasDetIds.push_back(470423176);
211  theLasDetIds.push_back(470439560);
212  theLasDetIds.push_back(470308744);
213  theLasDetIds.push_back(470325128);
214  theLasDetIds.push_back(470341512);
215  theLasDetIds.push_back(470357896);
216  theLasDetIds.push_back(470374280);
217  theLasDetIds.push_back(470390664);
218  theLasDetIds.push_back(470407048);
219  theLasDetIds.push_back(470423432);
220  theLasDetIds.push_back(470439816);
221  theLasDetIds.push_back(470309000);
222  theLasDetIds.push_back(470325384);
223  theLasDetIds.push_back(470341768);
224  theLasDetIds.push_back(470358152);
225  theLasDetIds.push_back(470374536);
226  theLasDetIds.push_back(470390920);
227  theLasDetIds.push_back(470407304);
228  theLasDetIds.push_back(470423688);
229  theLasDetIds.push_back(470440072);
230  theLasDetIds.push_back(470307272);
231  theLasDetIds.push_back(470323656);
232  theLasDetIds.push_back(470340040);
233  theLasDetIds.push_back(470356424);
234  theLasDetIds.push_back(470372808);
235  theLasDetIds.push_back(470389192);
236  theLasDetIds.push_back(470405576);
237  theLasDetIds.push_back(470421960);
238  theLasDetIds.push_back(470438344);
239  theLasDetIds.push_back(470307528);
240  theLasDetIds.push_back(470323912);
241  theLasDetIds.push_back(470340296);
242  theLasDetIds.push_back(470356680);
243  theLasDetIds.push_back(470373064);
244  theLasDetIds.push_back(470389448);
245  theLasDetIds.push_back(470405832);
246  theLasDetIds.push_back(470422216);
247  theLasDetIds.push_back(470438600);
248  theLasDetIds.push_back(470307784);
249  theLasDetIds.push_back(470324168);
250  theLasDetIds.push_back(470340552);
251  theLasDetIds.push_back(470356936);
252  theLasDetIds.push_back(470373320);
253  theLasDetIds.push_back(470389704);
254  theLasDetIds.push_back(470406088);
255  theLasDetIds.push_back(470422472);
256  theLasDetIds.push_back(470438856);
257  theLasDetIds.push_back(470308040);
258  theLasDetIds.push_back(470324424);
259  theLasDetIds.push_back(470340808);
260  theLasDetIds.push_back(470357192);
261  theLasDetIds.push_back(470373576);
262  theLasDetIds.push_back(470389960);
263  theLasDetIds.push_back(470406344);
264  theLasDetIds.push_back(470422728);
265  theLasDetIds.push_back(470439112);
266  theLasDetIds.push_back(470308296);
267  theLasDetIds.push_back(470324680);
268  theLasDetIds.push_back(470341064);
269  theLasDetIds.push_back(470357448);
270  theLasDetIds.push_back(470373832);
271  theLasDetIds.push_back(470390216);
272  theLasDetIds.push_back(470406600);
273  theLasDetIds.push_back(470422984);
274  theLasDetIds.push_back(470439368);
275  theLasDetIds.push_back(470308552);
276  theLasDetIds.push_back(470324936);
277  theLasDetIds.push_back(470341320);
278  theLasDetIds.push_back(470357704);
279  theLasDetIds.push_back(470374088);
280  theLasDetIds.push_back(470390472);
281  theLasDetIds.push_back(470406856);
282  theLasDetIds.push_back(470423240);
283  theLasDetIds.push_back(470439624);
284  theLasDetIds.push_back(470308808);
285  theLasDetIds.push_back(470325192);
286  theLasDetIds.push_back(470341576);
287  theLasDetIds.push_back(470357960);
288  theLasDetIds.push_back(470374344);
289  theLasDetIds.push_back(470390728);
290  theLasDetIds.push_back(470407112);
291  theLasDetIds.push_back(470423496);
292  theLasDetIds.push_back(470439880);
293  theLasDetIds.push_back(470309064);
294  theLasDetIds.push_back(470325448);
295  theLasDetIds.push_back(470341832);
296  theLasDetIds.push_back(470358216);
297  theLasDetIds.push_back(470374600);
298  theLasDetIds.push_back(470390984);
299  theLasDetIds.push_back(470407368);
300  theLasDetIds.push_back(470423752);
301  theLasDetIds.push_back(470440136);
302 
303  // TEC- internal alignment modules
304  theLasDetIds.push_back(470045064);
305  theLasDetIds.push_back(470061448);
306  theLasDetIds.push_back(470077832);
307  theLasDetIds.push_back(470094216);
308  theLasDetIds.push_back(470110600);
309  theLasDetIds.push_back(470126984);
310  theLasDetIds.push_back(470143368);
311  theLasDetIds.push_back(470159752);
312  theLasDetIds.push_back(470176136);
313  theLasDetIds.push_back(470045320);
314  theLasDetIds.push_back(470061704);
315  theLasDetIds.push_back(470078088);
316  theLasDetIds.push_back(470094472);
317  theLasDetIds.push_back(470110856);
318  theLasDetIds.push_back(470127240);
319  theLasDetIds.push_back(470143624);
320  theLasDetIds.push_back(470160008);
321  theLasDetIds.push_back(470176392);
322  theLasDetIds.push_back(470045576);
323  theLasDetIds.push_back(470061960);
324  theLasDetIds.push_back(470078344);
325  theLasDetIds.push_back(470094728);
326  theLasDetIds.push_back(470111112);
327  theLasDetIds.push_back(470127496);
328  theLasDetIds.push_back(470143880);
329  theLasDetIds.push_back(470160264);
330  theLasDetIds.push_back(470176648);
331  theLasDetIds.push_back(470045832);
332  theLasDetIds.push_back(470062216);
333  theLasDetIds.push_back(470078600);
334  theLasDetIds.push_back(470094984);
335  theLasDetIds.push_back(470111368);
336  theLasDetIds.push_back(470127752);
337  theLasDetIds.push_back(470144136);
338  theLasDetIds.push_back(470160520);
339  theLasDetIds.push_back(470176904);
340  theLasDetIds.push_back(470046088);
341  theLasDetIds.push_back(470062472);
342  theLasDetIds.push_back(470078856);
343  theLasDetIds.push_back(470095240);
344  theLasDetIds.push_back(470111624);
345  theLasDetIds.push_back(470128008);
346  theLasDetIds.push_back(470144392);
347  theLasDetIds.push_back(470160776);
348  theLasDetIds.push_back(470177160);
349  theLasDetIds.push_back(470046344);
350  theLasDetIds.push_back(470062728);
351  theLasDetIds.push_back(470079112);
352  theLasDetIds.push_back(470095496);
353  theLasDetIds.push_back(470111880);
354  theLasDetIds.push_back(470128264);
355  theLasDetIds.push_back(470144648);
356  theLasDetIds.push_back(470161032);
357  theLasDetIds.push_back(470177416);
358  theLasDetIds.push_back(470046600);
359  theLasDetIds.push_back(470062984);
360  theLasDetIds.push_back(470079368);
361  theLasDetIds.push_back(470095752);
362  theLasDetIds.push_back(470112136);
363  theLasDetIds.push_back(470128520);
364  theLasDetIds.push_back(470144904);
365  theLasDetIds.push_back(470161288);
366  theLasDetIds.push_back(470177672);
367  theLasDetIds.push_back(470046856);
368  theLasDetIds.push_back(470063240);
369  theLasDetIds.push_back(470079624);
370  theLasDetIds.push_back(470096008);
371  theLasDetIds.push_back(470112392);
372  theLasDetIds.push_back(470128776);
373  theLasDetIds.push_back(470145160);
374  theLasDetIds.push_back(470161544);
375  theLasDetIds.push_back(470177928);
376  theLasDetIds.push_back(470045128);
377  theLasDetIds.push_back(470061512);
378  theLasDetIds.push_back(470077896);
379  theLasDetIds.push_back(470094280);
380  theLasDetIds.push_back(470110664);
381  theLasDetIds.push_back(470127048);
382  theLasDetIds.push_back(470143432);
383  theLasDetIds.push_back(470159816);
384  theLasDetIds.push_back(470176200);
385  theLasDetIds.push_back(470045384);
386  theLasDetIds.push_back(470061768);
387  theLasDetIds.push_back(470078152);
388  theLasDetIds.push_back(470094536);
389  theLasDetIds.push_back(470110920);
390  theLasDetIds.push_back(470127304);
391  theLasDetIds.push_back(470143688);
392  theLasDetIds.push_back(470160072);
393  theLasDetIds.push_back(470176456);
394  theLasDetIds.push_back(470045640);
395  theLasDetIds.push_back(470062024);
396  theLasDetIds.push_back(470078408);
397  theLasDetIds.push_back(470094792);
398  theLasDetIds.push_back(470111176);
399  theLasDetIds.push_back(470127560);
400  theLasDetIds.push_back(470143944);
401  theLasDetIds.push_back(470160328);
402  theLasDetIds.push_back(470176712);
403  theLasDetIds.push_back(470045896);
404  theLasDetIds.push_back(470062280);
405  theLasDetIds.push_back(470078664);
406  theLasDetIds.push_back(470095048);
407  theLasDetIds.push_back(470111432);
408  theLasDetIds.push_back(470127816);
409  theLasDetIds.push_back(470144200);
410  theLasDetIds.push_back(470160584);
411  theLasDetIds.push_back(470176968);
412  theLasDetIds.push_back(470046152);
413  theLasDetIds.push_back(470062536);
414  theLasDetIds.push_back(470078920);
415  theLasDetIds.push_back(470095304);
416  theLasDetIds.push_back(470111688);
417  theLasDetIds.push_back(470128072);
418  theLasDetIds.push_back(470144456);
419  theLasDetIds.push_back(470160840);
420  theLasDetIds.push_back(470177224);
421  theLasDetIds.push_back(470046408);
422  theLasDetIds.push_back(470062792);
423  theLasDetIds.push_back(470079176);
424  theLasDetIds.push_back(470095560);
425  theLasDetIds.push_back(470111944);
426  theLasDetIds.push_back(470128328);
427  theLasDetIds.push_back(470144712);
428  theLasDetIds.push_back(470161096);
429  theLasDetIds.push_back(470177480);
430  theLasDetIds.push_back(470046664);
431  theLasDetIds.push_back(470063048);
432  theLasDetIds.push_back(470079432);
433  theLasDetIds.push_back(470095816);
434  theLasDetIds.push_back(470112200);
435  theLasDetIds.push_back(470128584);
436  theLasDetIds.push_back(470144968);
437  theLasDetIds.push_back(470161352);
438  theLasDetIds.push_back(470177736);
439  theLasDetIds.push_back(470046920);
440  theLasDetIds.push_back(470063304);
441  theLasDetIds.push_back(470079688);
442  theLasDetIds.push_back(470096072);
443  theLasDetIds.push_back(470112456);
444  theLasDetIds.push_back(470128840);
445  theLasDetIds.push_back(470145224);
446  theLasDetIds.push_back(470161608);
447  theLasDetIds.push_back(470177992);
448 
449  // TEC+ alignment tube modules
450  theLasDetIds.push_back(470307468);
451  theLasDetIds.push_back(470323852);
452  theLasDetIds.push_back(470340236);
453  theLasDetIds.push_back(470356620);
454  theLasDetIds.push_back(470373004);
455  theLasDetIds.push_back(470307716);
456  theLasDetIds.push_back(470324100);
457  theLasDetIds.push_back(470340484);
458  theLasDetIds.push_back(470356868);
459  theLasDetIds.push_back(470373252);
460  theLasDetIds.push_back(470308236);
461  theLasDetIds.push_back(470324620);
462  theLasDetIds.push_back(470341004);
463  theLasDetIds.push_back(470357388);
464  theLasDetIds.push_back(470373772);
465  theLasDetIds.push_back(470308748);
466  theLasDetIds.push_back(470325132);
467  theLasDetIds.push_back(470341516);
468  theLasDetIds.push_back(470357900);
469  theLasDetIds.push_back(470374284);
470  theLasDetIds.push_back(470308996);
471  theLasDetIds.push_back(470325380);
472  theLasDetIds.push_back(470341764);
473  theLasDetIds.push_back(470358148);
474  theLasDetIds.push_back(470374532);
475 
476  // TEC- alignment tube modules
477  theLasDetIds.push_back(470045316);
478  theLasDetIds.push_back(470061700);
479  theLasDetIds.push_back(470078084);
480  theLasDetIds.push_back(470094468);
481  theLasDetIds.push_back(470110852);
482  theLasDetIds.push_back(470045580);
483  theLasDetIds.push_back(470061964);
484  theLasDetIds.push_back(470078348);
485  theLasDetIds.push_back(470094732);
486  theLasDetIds.push_back(470111116);
487  theLasDetIds.push_back(470046084);
488  theLasDetIds.push_back(470062468);
489  theLasDetIds.push_back(470078852);
490  theLasDetIds.push_back(470095236);
491  theLasDetIds.push_back(470111620);
492  theLasDetIds.push_back(470046596);
493  theLasDetIds.push_back(470062980);
494  theLasDetIds.push_back(470079364);
495  theLasDetIds.push_back(470095748);
496  theLasDetIds.push_back(470112132);
497  theLasDetIds.push_back(470046860);
498  theLasDetIds.push_back(470063244);
499  theLasDetIds.push_back(470079628);
500  theLasDetIds.push_back(470096012);
501  theLasDetIds.push_back(470112396);
502 
503  // TIB alignment tube modules
504  theLasDetIds.push_back(369174604);
505  theLasDetIds.push_back(369174600);
506  theLasDetIds.push_back(369174596);
507  theLasDetIds.push_back(369170500);
508  theLasDetIds.push_back(369170504);
509  theLasDetIds.push_back(369170508);
510  theLasDetIds.push_back(369174732);
511  theLasDetIds.push_back(369174728);
512  theLasDetIds.push_back(369174724);
513  theLasDetIds.push_back(369170628);
514  theLasDetIds.push_back(369170632);
515  theLasDetIds.push_back(369170636);
516  theLasDetIds.push_back(369174812);
517  theLasDetIds.push_back(369174808);
518  theLasDetIds.push_back(369174804);
519  theLasDetIds.push_back(369170708);
520  theLasDetIds.push_back(369170712);
521  theLasDetIds.push_back(369170716);
522  theLasDetIds.push_back(369174940);
523  theLasDetIds.push_back(369174936);
524  theLasDetIds.push_back(369174932);
525  theLasDetIds.push_back(369170836);
526  theLasDetIds.push_back(369170840);
527  theLasDetIds.push_back(369170844);
528  theLasDetIds.push_back(369175068);
529  theLasDetIds.push_back(369175064);
530  theLasDetIds.push_back(369175060);
531  theLasDetIds.push_back(369170964);
532  theLasDetIds.push_back(369170968);
533  theLasDetIds.push_back(369170972);
534  theLasDetIds.push_back(369175164);
535  theLasDetIds.push_back(369175160);
536  theLasDetIds.push_back(369175156);
537  theLasDetIds.push_back(369171060);
538  theLasDetIds.push_back(369171064);
539  theLasDetIds.push_back(369171068);
540  theLasDetIds.push_back(369175292);
541  theLasDetIds.push_back(369175288);
542  theLasDetIds.push_back(369175284);
543  theLasDetIds.push_back(369171188);
544  theLasDetIds.push_back(369171192);
545  theLasDetIds.push_back(369171196);
546  theLasDetIds.push_back(369175372);
547  theLasDetIds.push_back(369175368);
548  theLasDetIds.push_back(369175364);
549  theLasDetIds.push_back(369171268);
550  theLasDetIds.push_back(369171272);
551  theLasDetIds.push_back(369171276);
552 
553  // TOB alignment tube modules
554  theLasDetIds.push_back(436232314);
555  theLasDetIds.push_back(436232306);
556  theLasDetIds.push_back(436232298);
557  theLasDetIds.push_back(436228198);
558  theLasDetIds.push_back(436228206);
559  theLasDetIds.push_back(436228214);
560  theLasDetIds.push_back(436232506);
561  theLasDetIds.push_back(436232498);
562  theLasDetIds.push_back(436232490);
563  theLasDetIds.push_back(436228390);
564  theLasDetIds.push_back(436228398);
565  theLasDetIds.push_back(436228406);
566  theLasDetIds.push_back(436232634);
567  theLasDetIds.push_back(436232626);
568  theLasDetIds.push_back(436232618);
569  theLasDetIds.push_back(436228518);
570  theLasDetIds.push_back(436228526);
571  theLasDetIds.push_back(436228534);
572  theLasDetIds.push_back(436232826);
573  theLasDetIds.push_back(436232818);
574  theLasDetIds.push_back(436232810);
575  theLasDetIds.push_back(436228710);
576  theLasDetIds.push_back(436228718);
577  theLasDetIds.push_back(436228726);
578  theLasDetIds.push_back(436233018);
579  theLasDetIds.push_back(436233010);
580  theLasDetIds.push_back(436233002);
581  theLasDetIds.push_back(436228902);
582  theLasDetIds.push_back(436228910);
583  theLasDetIds.push_back(436228918);
584  theLasDetIds.push_back(436233146);
585  theLasDetIds.push_back(436233138);
586  theLasDetIds.push_back(436233130);
587  theLasDetIds.push_back(436229030);
588  theLasDetIds.push_back(436229038);
589  theLasDetIds.push_back(436229046);
590  theLasDetIds.push_back(436233338);
591  theLasDetIds.push_back(436233330);
592  theLasDetIds.push_back(436233322);
593  theLasDetIds.push_back(436229222);
594  theLasDetIds.push_back(436229230);
595  theLasDetIds.push_back(436229238);
596  theLasDetIds.push_back(436233466);
597  theLasDetIds.push_back(436233458);
598  theLasDetIds.push_back(436233450);
599  theLasDetIds.push_back(436229350);
600  theLasDetIds.push_back(436229358);
601  theLasDetIds.push_back(436229366);
602 }

References theLasDetIds.

Referenced by beginJob().

◆ produce()

void LaserAlignmentT0Producer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

outline:

  • loops alls input strip digi products
  • branches depending on if it contains SiStripDigi or SiStripRawDigi
  • for each product: selects only LAS module DetSets and copies them to new DetSetVector

Implements edm::EDProducer.

Definition at line 52 of file LaserAlignmentT0Producer.cc.

52  {
53  using namespace edm;
54 
55  // loop all input products
56  for (std::vector<edm::ParameterSet>::iterator aDigiProducer = digiProducerList.begin();
57  aDigiProducer != digiProducerList.end();
58  ++aDigiProducer) {
59  std::string digiProducer = aDigiProducer->getParameter<std::string>("DigiProducer");
60  std::string digiLabel = aDigiProducer->getParameter<std::string>("DigiLabel");
61  std::string digiType = aDigiProducer->getParameter<std::string>("DigiType");
62 
63  // now a distinction of cases: raw or processed digis?
64 
65  // first we go for raw digis => SiStripRawDigi
66  if (digiType == "Raw") {
67  // retrieve the SiStripRawDigis collection
69  iEvent.getByLabel(digiProducer, digiLabel, theStripDigis);
70 
71  // empty container
72  std::vector<edm::DetSet<SiStripRawDigi>> theDigiVector;
73 
74  // loop the incoming DetSetVector
75  for (edm::DetSetVector<SiStripRawDigi>::const_iterator aDetSet = theStripDigis->begin();
76  aDetSet != theStripDigis->end();
77  ++aDetSet) {
78  // is the current DetSet that of a LAS module?
79  if (find(theLasDetIds.begin(), theLasDetIds.end(), aDetSet->detId()) != theLasDetIds.end()) {
80  // yes it's a LAS module, so copy the Digis to the output
81 
82  // a DetSet for output
83  edm::DetSet<SiStripRawDigi> outputDetSet(aDetSet->detId());
84 
85  // copy all the digis to the output DetSet. Unfortunately, there's no copy constructor..
86  for (edm::DetSet<SiStripRawDigi>::const_iterator aDigi = aDetSet->begin(); aDigi != aDetSet->end(); ++aDigi) {
87  outputDetSet.push_back(*aDigi);
88  }
89 
90  // onto the later DetSetVector
91  theDigiVector.push_back(outputDetSet);
92  }
93  }
94 
95  // create the output collection for the DetSetVector
96  // write output to file
97  iEvent.put(std::make_unique<edm::DetSetVector<SiStripRawDigi>>(theDigiVector), digiLabel);
98 
99  }
100 
101  // then we assume "ZeroSuppressed" (non-raw) => SiStripDigi
102  // and do exactly the same as above
103  else if (digiType == "Processed") {
105  iEvent.getByLabel(digiProducer, digiLabel, theStripDigis);
106 
107  std::vector<edm::DetSet<SiStripDigi>> theDigiVector;
108 
109  for (edm::DetSetVector<SiStripDigi>::const_iterator aDetSet = theStripDigis->begin();
110  aDetSet != theStripDigis->end();
111  ++aDetSet) {
112  if (find(theLasDetIds.begin(), theLasDetIds.end(), aDetSet->detId()) != theLasDetIds.end()) {
113  edm::DetSet<SiStripDigi> outputDetSet(aDetSet->detId());
114  for (edm::DetSet<SiStripDigi>::const_iterator aDigi = aDetSet->begin(); aDigi != aDetSet->end(); ++aDigi) {
115  outputDetSet.push_back(*aDigi);
116  }
117 
118  theDigiVector.push_back(outputDetSet);
119  }
120  }
121 
122  iEvent.put(std::make_unique<edm::DetSetVector<SiStripDigi>>(theDigiVector), digiLabel);
123 
124  }
125 
126  else {
127  throw cms::Exception("LaserAlignmentT0Producer")
128  << "ERROR ** Unknown DigiType: " << digiType << " specified in cfg file" << std::endl;
129  }
130 
131  } // loop all input products
132 }

References digiLabel, digiProducer, digiProducerList, digiType, Exception, spr::find(), iEvent, edm::DetSet< T >::push_back(), AlCaHLTBitMon_QueryRunRegistry::string, and theLasDetIds.

Member Data Documentation

◆ digiLabel

std::string LaserAlignmentT0Producer::digiLabel
private

Definition at line 48 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ digiProducer

std::string LaserAlignmentT0Producer::digiProducer
private

Definition at line 47 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ digiProducerList

std::vector<edm::ParameterSet> LaserAlignmentT0Producer::digiProducerList
private

Definition at line 46 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ digiType

std::string LaserAlignmentT0Producer::digiType
private

Definition at line 49 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ theLasDetIds

std::vector<unsigned int> LaserAlignmentT0Producer::theLasDetIds
private

Definition at line 52 of file LaserAlignmentT0Producer.h.

Referenced by FillDetIds(), and produce().

edm::DetSet::push_back
void push_back(const T &t)
Definition: DetSet.h:66
edm::DetSetVector< SiStripRawDigi >
LaserAlignmentT0Producer::FillDetIds
void FillDetIds(void)
Definition: LaserAlignmentT0Producer.cc:154
edm::DetSet
Definition: DetSet.h:23
edm
HLT enums.
Definition: AlignableModifier.h:19
LaserAlignmentT0Producer::digiProducer
std::string digiProducer
Definition: LaserAlignmentT0Producer.h:47
LaserAlignmentT0Producer::digiLabel
std::string digiLabel
Definition: LaserAlignmentT0Producer.h:48
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
edm::Handle
Definition: AssociativeIterator.h:50
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::DetSetVector::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
LaserAlignmentT0Producer::digiProducerList
std::vector< edm::ParameterSet > digiProducerList
Definition: LaserAlignmentT0Producer.h:46
SiStripOfflineCRack_cfg.alias
alias
Definition: SiStripOfflineCRack_cfg.py:129
Exception
Definition: hltDiff.cc:246
LaserAlignmentT0Producer::digiType
std::string digiType
Definition: LaserAlignmentT0Producer.h:49
LaserAlignmentT0Producer::theLasDetIds
std::vector< unsigned int > theLasDetIds
Definition: LaserAlignmentT0Producer.h:52
edm::DetSet::const_iterator
collection_type::const_iterator const_iterator
Definition: DetSet.h:31