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::global::EDProducer<> edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 LaserAlignmentT0Producer (const edm::ParameterSet &)
 
 ~LaserAlignmentT0Producer () override
 
- Public Member Functions inherited from edm::global::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () 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 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 () override
 
void FillDetIds (void)
 
void produce (edm::StreamID, edm::Event &, const edm::EventSetup &) const 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::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
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::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
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)
 
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 ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
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< Bconsumes (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 ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
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

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

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

Definition at line 34 of file LaserAlignmentT0Producer.cc.

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 59 of file LaserAlignmentT0Producer.cc.

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

59  {
60  // alias for the Branches in the output file
61  std::string alias(iConfig.getParameter<std::string>("@module_label"));
62 
63  // the list of input digi products from the cfg
64  digiProducerList = iConfig.getParameter<std::vector<edm::ParameterSet>>("DigiProducerList");
65 
66  // loop all input products
67  for (const auto& aDigiProducer : digiProducerList) {
68  std::string digiProducer = aDigiProducer.getParameter<std::string>("DigiProducer");
69  std::string digiLabel = aDigiProducer.getParameter<std::string>("DigiLabel");
70  std::string digiType = aDigiProducer.getParameter<std::string>("DigiType");
71 
72  // check if raw/processed digis in this collection
73  if (digiType == "Raw") {
74  produces<edm::DetSetVector<SiStripRawDigi>>(digiLabel).setBranchAlias(alias + "siStripRawDigis");
75  } else if (digiType == "Processed") { // "ZeroSuppressed" digis (non-raw)
76  produces<edm::DetSetVector<SiStripDigi>>(digiLabel).setBranchAlias(alias + "siStripDigis");
77  } else {
78  throw cms::Exception("LaserAlignmentT0Producer")
79  << "ERROR ** Unknown DigiType: " << digiType << " specified in cfg file" << std::endl;
80  }
81  }
82 }
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
std::vector< edm::ParameterSet > digiProducerList

◆ ~LaserAlignmentT0Producer()

LaserAlignmentT0Producer::~LaserAlignmentT0Producer ( )
overridedefault

Member Function Documentation

◆ beginJob()

void LaserAlignmentT0Producer::beginJob ( )
overrideprivatevirtual

Reimplemented from edm::global::EDProducerBase.

Definition at line 179 of file LaserAlignmentT0Producer.cc.

References FillDetIds().

179  {
180  // fill the vector with LAS det ids
181  FillDetIds();
182 }

◆ 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 191 of file LaserAlignmentT0Producer.cc.

References theLasDetIds.

Referenced by beginJob().

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

◆ produce()

void LaserAlignmentT0Producer::produce ( edm::StreamID  id,
edm::Event iEvent,
const edm::EventSetup iSetup 
) const
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::global::EDProducerBase.

Definition at line 96 of file LaserAlignmentT0Producer.cc.

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

96  {
97  //void LaserAlignmentT0Producer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
98  using namespace edm;
99 
100  // loop all input products
101  for (const auto& aDigiProducer : digiProducerList) {
102  std::string digiProducer = aDigiProducer.getParameter<std::string>("DigiProducer");
103  std::string digiLabel = aDigiProducer.getParameter<std::string>("DigiLabel");
104  std::string digiType = aDigiProducer.getParameter<std::string>("DigiType");
105 
106  // now a distinction of cases: raw or processed digis?
107 
108  // first we go for raw digis => SiStripRawDigi
109  if (digiType == "Raw") {
110  // retrieve the SiStripRawDigis collection
112  iEvent.getByLabel(digiProducer, digiLabel, theStripDigis);
113 
114  // empty container
115  std::vector<edm::DetSet<SiStripRawDigi>> theDigiVector;
116 
117  // loop the incoming DetSetVector
118  for (edm::DetSetVector<SiStripRawDigi>::const_iterator aDetSet = theStripDigis->begin();
119  aDetSet != theStripDigis->end();
120  ++aDetSet) {
121  // is the current DetSet that of a LAS module?
122  if (find(theLasDetIds.begin(), theLasDetIds.end(), aDetSet->detId()) != theLasDetIds.end()) {
123  // yes it's a LAS module, so copy the Digis to the output
124 
125  // a DetSet for output
126  edm::DetSet<SiStripRawDigi> outputDetSet(aDetSet->detId());
127 
128  // copy all the digis to the output DetSet. Unfortunately, there's no copy constructor..
129  for (edm::DetSet<SiStripRawDigi>::const_iterator aDigi = aDetSet->begin(); aDigi != aDetSet->end(); ++aDigi) {
130  outputDetSet.push_back(*aDigi);
131  }
132 
133  // onto the later DetSetVector
134  theDigiVector.push_back(outputDetSet);
135  }
136  }
137 
138  // create the output collection for the DetSetVector
139  // write output to file
140  iEvent.put(std::make_unique<edm::DetSetVector<SiStripRawDigi>>(theDigiVector), digiLabel);
141 
142  }
143 
144  // then we assume "ZeroSuppressed" (non-raw) => SiStripDigi
145  // and do exactly the same as above
146  else if (digiType == "Processed") {
148  iEvent.getByLabel(digiProducer, digiLabel, theStripDigis);
149 
150  std::vector<edm::DetSet<SiStripDigi>> theDigiVector;
151 
152  for (edm::DetSetVector<SiStripDigi>::const_iterator aDetSet = theStripDigis->begin();
153  aDetSet != theStripDigis->end();
154  ++aDetSet) {
155  if (find(theLasDetIds.begin(), theLasDetIds.end(), aDetSet->detId()) != theLasDetIds.end()) {
156  edm::DetSet<SiStripDigi> outputDetSet(aDetSet->detId());
157  for (edm::DetSet<SiStripDigi>::const_iterator aDigi = aDetSet->begin(); aDigi != aDetSet->end(); ++aDigi) {
158  outputDetSet.push_back(*aDigi);
159  }
160  theDigiVector.push_back(outputDetSet);
161  }
162  }
163 
164  iEvent.put(std::make_unique<edm::DetSetVector<SiStripDigi>>(theDigiVector), digiLabel);
165 
166  }
167 
168  else {
169  throw cms::Exception("LaserAlignmentT0Producer")
170  << "ERROR ** Unknown DigiType: " << digiType << " specified in cfg file" << std::endl;
171  }
172 
173  } // loop all input products
174 }
void push_back(const T &t)
Definition: DetSet.h:66
std::vector< edm::ParameterSet > digiProducerList
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
int iEvent
Definition: GenABIO.cc:224
std::vector< unsigned int > theLasDetIds
HLT enums.
collection_type::const_iterator const_iterator
Definition: DetSet.h:31
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:102

Member Data Documentation

◆ digiLabel

std::string LaserAlignmentT0Producer::digiLabel
private

Definition at line 48 of file LaserAlignmentT0Producer.cc.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ digiProducer

std::string LaserAlignmentT0Producer::digiProducer
private

Definition at line 47 of file LaserAlignmentT0Producer.cc.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ digiProducerList

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

Definition at line 46 of file LaserAlignmentT0Producer.cc.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ digiType

std::string LaserAlignmentT0Producer::digiType
private

Definition at line 49 of file LaserAlignmentT0Producer.cc.

Referenced by LaserAlignmentT0Producer(), and produce().

◆ theLasDetIds

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

Definition at line 52 of file LaserAlignmentT0Producer.cc.

Referenced by FillDetIds(), and produce().