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
 
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
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
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::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ESProduct , Transition Tr = Transition::Event>
auto esConsumes (eventsetup::EventSetupRecordKey const &, ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

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

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

Definition at line 35 of file LaserAlignmentT0Producer.h.

Constructor & Destructor Documentation

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

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

Definition at line 15 of file LaserAlignmentT0Producer.cc.

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

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

Definition at line 49 of file LaserAlignmentT0Producer.cc.

49  {
50 }

Member Function Documentation

void LaserAlignmentT0Producer::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 159 of file LaserAlignmentT0Producer.cc.

References FillDetIds().

159  {
160 
161  // fill the vector with LAS det ids
162  FillDetIds();
163 
164 }
void LaserAlignmentT0Producer::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDProducer.

Definition at line 173 of file LaserAlignmentT0Producer.cc.

Referenced by o2olib.O2ORunMgr::executeJob().

173  {
174 }
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 187 of file LaserAlignmentT0Producer.cc.

References DEFINE_FWK_MODULE, and theLasDetIds.

Referenced by beginJob().

187  {
188 
189  theLasDetIds.resize( 0 );
190 
191  // TEC+ internal alignment modules
192  theLasDetIds.push_back( 470307208 ); theLasDetIds.push_back( 470323592 ); theLasDetIds.push_back( 470339976 );
193  theLasDetIds.push_back( 470356360 ); theLasDetIds.push_back( 470372744 ); theLasDetIds.push_back( 470389128 );
194  theLasDetIds.push_back( 470405512 ); theLasDetIds.push_back( 470421896 ); theLasDetIds.push_back( 470438280 );
195  theLasDetIds.push_back( 470307464 ); theLasDetIds.push_back( 470323848 ); theLasDetIds.push_back( 470340232 );
196  theLasDetIds.push_back( 470356616 ); theLasDetIds.push_back( 470373000 ); theLasDetIds.push_back( 470389384 );
197  theLasDetIds.push_back( 470405768 ); theLasDetIds.push_back( 470422152 ); theLasDetIds.push_back( 470438536 );
198  theLasDetIds.push_back( 470307720 ); theLasDetIds.push_back( 470324104 ); theLasDetIds.push_back( 470340488 );
199  theLasDetIds.push_back( 470356872 ); theLasDetIds.push_back( 470373256 ); theLasDetIds.push_back( 470389640 );
200  theLasDetIds.push_back( 470406024 ); theLasDetIds.push_back( 470422408 ); theLasDetIds.push_back( 470438792 );
201  theLasDetIds.push_back( 470307976 ); theLasDetIds.push_back( 470324360 ); theLasDetIds.push_back( 470340744 );
202  theLasDetIds.push_back( 470357128 ); theLasDetIds.push_back( 470373512 ); theLasDetIds.push_back( 470389896 );
203  theLasDetIds.push_back( 470406280 ); theLasDetIds.push_back( 470422664 ); theLasDetIds.push_back( 470439048 );
204  theLasDetIds.push_back( 470308232 ); theLasDetIds.push_back( 470324616 ); theLasDetIds.push_back( 470341000 );
205  theLasDetIds.push_back( 470357384 ); theLasDetIds.push_back( 470373768 ); theLasDetIds.push_back( 470390152 );
206  theLasDetIds.push_back( 470406536 ); theLasDetIds.push_back( 470422920 ); theLasDetIds.push_back( 470439304 );
207  theLasDetIds.push_back( 470308488 ); theLasDetIds.push_back( 470324872 ); theLasDetIds.push_back( 470341256 );
208  theLasDetIds.push_back( 470357640 ); theLasDetIds.push_back( 470374024 ); theLasDetIds.push_back( 470390408 );
209  theLasDetIds.push_back( 470406792 ); theLasDetIds.push_back( 470423176 ); theLasDetIds.push_back( 470439560 );
210  theLasDetIds.push_back( 470308744 ); theLasDetIds.push_back( 470325128 ); theLasDetIds.push_back( 470341512 );
211  theLasDetIds.push_back( 470357896 ); theLasDetIds.push_back( 470374280 ); theLasDetIds.push_back( 470390664 );
212  theLasDetIds.push_back( 470407048 ); theLasDetIds.push_back( 470423432 ); theLasDetIds.push_back( 470439816 );
213  theLasDetIds.push_back( 470309000 ); theLasDetIds.push_back( 470325384 ); theLasDetIds.push_back( 470341768 );
214  theLasDetIds.push_back( 470358152 ); theLasDetIds.push_back( 470374536 ); theLasDetIds.push_back( 470390920 );
215  theLasDetIds.push_back( 470407304 ); theLasDetIds.push_back( 470423688 ); theLasDetIds.push_back( 470440072 );
216  theLasDetIds.push_back( 470307272 ); theLasDetIds.push_back( 470323656 ); theLasDetIds.push_back( 470340040 );
217  theLasDetIds.push_back( 470356424 ); theLasDetIds.push_back( 470372808 ); theLasDetIds.push_back( 470389192 );
218  theLasDetIds.push_back( 470405576 ); theLasDetIds.push_back( 470421960 ); theLasDetIds.push_back( 470438344 );
219  theLasDetIds.push_back( 470307528 ); theLasDetIds.push_back( 470323912 ); theLasDetIds.push_back( 470340296 );
220  theLasDetIds.push_back( 470356680 ); theLasDetIds.push_back( 470373064 ); theLasDetIds.push_back( 470389448 );
221  theLasDetIds.push_back( 470405832 ); theLasDetIds.push_back( 470422216 ); theLasDetIds.push_back( 470438600 );
222  theLasDetIds.push_back( 470307784 ); theLasDetIds.push_back( 470324168 ); theLasDetIds.push_back( 470340552 );
223  theLasDetIds.push_back( 470356936 ); theLasDetIds.push_back( 470373320 ); theLasDetIds.push_back( 470389704 );
224  theLasDetIds.push_back( 470406088 ); theLasDetIds.push_back( 470422472 ); theLasDetIds.push_back( 470438856 );
225  theLasDetIds.push_back( 470308040 ); theLasDetIds.push_back( 470324424 ); theLasDetIds.push_back( 470340808 );
226  theLasDetIds.push_back( 470357192 ); theLasDetIds.push_back( 470373576 ); theLasDetIds.push_back( 470389960 );
227  theLasDetIds.push_back( 470406344 ); theLasDetIds.push_back( 470422728 ); theLasDetIds.push_back( 470439112 );
228  theLasDetIds.push_back( 470308296 ); theLasDetIds.push_back( 470324680 ); theLasDetIds.push_back( 470341064 );
229  theLasDetIds.push_back( 470357448 ); theLasDetIds.push_back( 470373832 ); theLasDetIds.push_back( 470390216 );
230  theLasDetIds.push_back( 470406600 ); theLasDetIds.push_back( 470422984 ); theLasDetIds.push_back( 470439368 );
231  theLasDetIds.push_back( 470308552 ); theLasDetIds.push_back( 470324936 ); theLasDetIds.push_back( 470341320 );
232  theLasDetIds.push_back( 470357704 ); theLasDetIds.push_back( 470374088 ); theLasDetIds.push_back( 470390472 );
233  theLasDetIds.push_back( 470406856 ); theLasDetIds.push_back( 470423240 ); theLasDetIds.push_back( 470439624 );
234  theLasDetIds.push_back( 470308808 ); theLasDetIds.push_back( 470325192 ); theLasDetIds.push_back( 470341576 );
235  theLasDetIds.push_back( 470357960 ); theLasDetIds.push_back( 470374344 ); theLasDetIds.push_back( 470390728 );
236  theLasDetIds.push_back( 470407112 ); theLasDetIds.push_back( 470423496 ); theLasDetIds.push_back( 470439880 );
237  theLasDetIds.push_back( 470309064 ); theLasDetIds.push_back( 470325448 ); theLasDetIds.push_back( 470341832 );
238  theLasDetIds.push_back( 470358216 ); theLasDetIds.push_back( 470374600 ); theLasDetIds.push_back( 470390984 );
239  theLasDetIds.push_back( 470407368 ); theLasDetIds.push_back( 470423752 ); theLasDetIds.push_back( 470440136 );
240 
241  // TEC- internal alignment modules
242  theLasDetIds.push_back( 470045064 ); theLasDetIds.push_back( 470061448 ); theLasDetIds.push_back( 470077832 );
243  theLasDetIds.push_back( 470094216 ); theLasDetIds.push_back( 470110600 ); theLasDetIds.push_back( 470126984 );
244  theLasDetIds.push_back( 470143368 ); theLasDetIds.push_back( 470159752 ); theLasDetIds.push_back( 470176136 );
245  theLasDetIds.push_back( 470045320 ); theLasDetIds.push_back( 470061704 ); theLasDetIds.push_back( 470078088 );
246  theLasDetIds.push_back( 470094472 ); theLasDetIds.push_back( 470110856 ); theLasDetIds.push_back( 470127240 );
247  theLasDetIds.push_back( 470143624 ); theLasDetIds.push_back( 470160008 ); theLasDetIds.push_back( 470176392 );
248  theLasDetIds.push_back( 470045576 ); theLasDetIds.push_back( 470061960 ); theLasDetIds.push_back( 470078344 );
249  theLasDetIds.push_back( 470094728 ); theLasDetIds.push_back( 470111112 ); theLasDetIds.push_back( 470127496 );
250  theLasDetIds.push_back( 470143880 ); theLasDetIds.push_back( 470160264 ); theLasDetIds.push_back( 470176648 );
251  theLasDetIds.push_back( 470045832 ); theLasDetIds.push_back( 470062216 ); theLasDetIds.push_back( 470078600 );
252  theLasDetIds.push_back( 470094984 ); theLasDetIds.push_back( 470111368 ); theLasDetIds.push_back( 470127752 );
253  theLasDetIds.push_back( 470144136 ); theLasDetIds.push_back( 470160520 ); theLasDetIds.push_back( 470176904 );
254  theLasDetIds.push_back( 470046088 ); theLasDetIds.push_back( 470062472 ); theLasDetIds.push_back( 470078856 );
255  theLasDetIds.push_back( 470095240 ); theLasDetIds.push_back( 470111624 ); theLasDetIds.push_back( 470128008 );
256  theLasDetIds.push_back( 470144392 ); theLasDetIds.push_back( 470160776 ); theLasDetIds.push_back( 470177160 );
257  theLasDetIds.push_back( 470046344 ); theLasDetIds.push_back( 470062728 ); theLasDetIds.push_back( 470079112 );
258  theLasDetIds.push_back( 470095496 ); theLasDetIds.push_back( 470111880 ); theLasDetIds.push_back( 470128264 );
259  theLasDetIds.push_back( 470144648 ); theLasDetIds.push_back( 470161032 ); theLasDetIds.push_back( 470177416 );
260  theLasDetIds.push_back( 470046600 ); theLasDetIds.push_back( 470062984 ); theLasDetIds.push_back( 470079368 );
261  theLasDetIds.push_back( 470095752 ); theLasDetIds.push_back( 470112136 ); theLasDetIds.push_back( 470128520 );
262  theLasDetIds.push_back( 470144904 ); theLasDetIds.push_back( 470161288 ); theLasDetIds.push_back( 470177672 );
263  theLasDetIds.push_back( 470046856 ); theLasDetIds.push_back( 470063240 ); theLasDetIds.push_back( 470079624 );
264  theLasDetIds.push_back( 470096008 ); theLasDetIds.push_back( 470112392 ); theLasDetIds.push_back( 470128776 );
265  theLasDetIds.push_back( 470145160 ); theLasDetIds.push_back( 470161544 ); theLasDetIds.push_back( 470177928 );
266  theLasDetIds.push_back( 470045128 ); theLasDetIds.push_back( 470061512 ); theLasDetIds.push_back( 470077896 );
267  theLasDetIds.push_back( 470094280 ); theLasDetIds.push_back( 470110664 ); theLasDetIds.push_back( 470127048 );
268  theLasDetIds.push_back( 470143432 ); theLasDetIds.push_back( 470159816 ); theLasDetIds.push_back( 470176200 );
269  theLasDetIds.push_back( 470045384 ); theLasDetIds.push_back( 470061768 ); theLasDetIds.push_back( 470078152 );
270  theLasDetIds.push_back( 470094536 ); theLasDetIds.push_back( 470110920 ); theLasDetIds.push_back( 470127304 );
271  theLasDetIds.push_back( 470143688 ); theLasDetIds.push_back( 470160072 ); theLasDetIds.push_back( 470176456 );
272  theLasDetIds.push_back( 470045640 ); theLasDetIds.push_back( 470062024 ); theLasDetIds.push_back( 470078408 );
273  theLasDetIds.push_back( 470094792 ); theLasDetIds.push_back( 470111176 ); theLasDetIds.push_back( 470127560 );
274  theLasDetIds.push_back( 470143944 ); theLasDetIds.push_back( 470160328 ); theLasDetIds.push_back( 470176712 );
275  theLasDetIds.push_back( 470045896 ); theLasDetIds.push_back( 470062280 ); theLasDetIds.push_back( 470078664 );
276  theLasDetIds.push_back( 470095048 ); theLasDetIds.push_back( 470111432 ); theLasDetIds.push_back( 470127816 );
277  theLasDetIds.push_back( 470144200 ); theLasDetIds.push_back( 470160584 ); theLasDetIds.push_back( 470176968 );
278  theLasDetIds.push_back( 470046152 ); theLasDetIds.push_back( 470062536 ); theLasDetIds.push_back( 470078920 );
279  theLasDetIds.push_back( 470095304 ); theLasDetIds.push_back( 470111688 ); theLasDetIds.push_back( 470128072 );
280  theLasDetIds.push_back( 470144456 ); theLasDetIds.push_back( 470160840 ); theLasDetIds.push_back( 470177224 );
281  theLasDetIds.push_back( 470046408 ); theLasDetIds.push_back( 470062792 ); theLasDetIds.push_back( 470079176 );
282  theLasDetIds.push_back( 470095560 ); theLasDetIds.push_back( 470111944 ); theLasDetIds.push_back( 470128328 );
283  theLasDetIds.push_back( 470144712 ); theLasDetIds.push_back( 470161096 ); theLasDetIds.push_back( 470177480 );
284  theLasDetIds.push_back( 470046664 ); theLasDetIds.push_back( 470063048 ); theLasDetIds.push_back( 470079432 );
285  theLasDetIds.push_back( 470095816 ); theLasDetIds.push_back( 470112200 ); theLasDetIds.push_back( 470128584 );
286  theLasDetIds.push_back( 470144968 ); theLasDetIds.push_back( 470161352 ); theLasDetIds.push_back( 470177736 );
287  theLasDetIds.push_back( 470046920 ); theLasDetIds.push_back( 470063304 ); theLasDetIds.push_back( 470079688 );
288  theLasDetIds.push_back( 470096072 ); theLasDetIds.push_back( 470112456 ); theLasDetIds.push_back( 470128840 );
289  theLasDetIds.push_back( 470145224 ); theLasDetIds.push_back( 470161608 ); theLasDetIds.push_back( 470177992 );
290 
291  // TEC+ alignment tube modules
292  theLasDetIds.push_back( 470307468 ); theLasDetIds.push_back( 470323852 ); theLasDetIds.push_back( 470340236 );
293  theLasDetIds.push_back( 470356620 ); theLasDetIds.push_back( 470373004 ); theLasDetIds.push_back( 470307716 );
294  theLasDetIds.push_back( 470324100 ); theLasDetIds.push_back( 470340484 ); theLasDetIds.push_back( 470356868 );
295  theLasDetIds.push_back( 470373252 ); theLasDetIds.push_back( 470308236 ); theLasDetIds.push_back( 470324620 );
296  theLasDetIds.push_back( 470341004 ); theLasDetIds.push_back( 470357388 ); theLasDetIds.push_back( 470373772 );
297  theLasDetIds.push_back( 470308748 ); theLasDetIds.push_back( 470325132 ); theLasDetIds.push_back( 470341516 );
298  theLasDetIds.push_back( 470357900 ); theLasDetIds.push_back( 470374284 ); theLasDetIds.push_back( 470308996 );
299  theLasDetIds.push_back( 470325380 ); theLasDetIds.push_back( 470341764 ); theLasDetIds.push_back( 470358148 );
300  theLasDetIds.push_back( 470374532 );
301 
302  // TEC- alignment tube modules
303  theLasDetIds.push_back( 470045316 ); theLasDetIds.push_back( 470061700 ); theLasDetIds.push_back( 470078084 );
304  theLasDetIds.push_back( 470094468 ); theLasDetIds.push_back( 470110852 ); theLasDetIds.push_back( 470045580 );
305  theLasDetIds.push_back( 470061964 ); theLasDetIds.push_back( 470078348 ); theLasDetIds.push_back( 470094732 );
306  theLasDetIds.push_back( 470111116 ); theLasDetIds.push_back( 470046084 ); theLasDetIds.push_back( 470062468 );
307  theLasDetIds.push_back( 470078852 ); theLasDetIds.push_back( 470095236 ); theLasDetIds.push_back( 470111620 );
308  theLasDetIds.push_back( 470046596 ); theLasDetIds.push_back( 470062980 ); theLasDetIds.push_back( 470079364 );
309  theLasDetIds.push_back( 470095748 ); theLasDetIds.push_back( 470112132 ); theLasDetIds.push_back( 470046860 );
310  theLasDetIds.push_back( 470063244 ); theLasDetIds.push_back( 470079628 ); theLasDetIds.push_back( 470096012 );
311  theLasDetIds.push_back( 470112396 );
312 
313  // TIB alignment tube modules
314  theLasDetIds.push_back( 369174604 ); theLasDetIds.push_back( 369174600 ); theLasDetIds.push_back( 369174596 );
315  theLasDetIds.push_back( 369170500 ); theLasDetIds.push_back( 369170504 ); theLasDetIds.push_back( 369170508 );
316  theLasDetIds.push_back( 369174732 ); theLasDetIds.push_back( 369174728 ); theLasDetIds.push_back( 369174724 );
317  theLasDetIds.push_back( 369170628 ); theLasDetIds.push_back( 369170632 ); theLasDetIds.push_back( 369170636 );
318  theLasDetIds.push_back( 369174812 ); theLasDetIds.push_back( 369174808 ); theLasDetIds.push_back( 369174804 );
319  theLasDetIds.push_back( 369170708 ); theLasDetIds.push_back( 369170712 ); theLasDetIds.push_back( 369170716 );
320  theLasDetIds.push_back( 369174940 ); theLasDetIds.push_back( 369174936 ); theLasDetIds.push_back( 369174932 );
321  theLasDetIds.push_back( 369170836 ); theLasDetIds.push_back( 369170840 ); theLasDetIds.push_back( 369170844 );
322  theLasDetIds.push_back( 369175068 ); theLasDetIds.push_back( 369175064 ); theLasDetIds.push_back( 369175060 );
323  theLasDetIds.push_back( 369170964 ); theLasDetIds.push_back( 369170968 ); theLasDetIds.push_back( 369170972 );
324  theLasDetIds.push_back( 369175164 ); theLasDetIds.push_back( 369175160 ); theLasDetIds.push_back( 369175156 );
325  theLasDetIds.push_back( 369171060 ); theLasDetIds.push_back( 369171064 ); theLasDetIds.push_back( 369171068 );
326  theLasDetIds.push_back( 369175292 ); theLasDetIds.push_back( 369175288 ); theLasDetIds.push_back( 369175284 );
327  theLasDetIds.push_back( 369171188 ); theLasDetIds.push_back( 369171192 ); theLasDetIds.push_back( 369171196 );
328  theLasDetIds.push_back( 369175372 ); theLasDetIds.push_back( 369175368 ); theLasDetIds.push_back( 369175364 );
329  theLasDetIds.push_back( 369171268 ); theLasDetIds.push_back( 369171272 ); theLasDetIds.push_back( 369171276 );
330 
331  // TOB alignment tube modules
332  theLasDetIds.push_back( 436232314 ); theLasDetIds.push_back( 436232306 ); theLasDetIds.push_back( 436232298 );
333  theLasDetIds.push_back( 436228198 ); theLasDetIds.push_back( 436228206 ); theLasDetIds.push_back( 436228214 );
334  theLasDetIds.push_back( 436232506 ); theLasDetIds.push_back( 436232498 ); theLasDetIds.push_back( 436232490 );
335  theLasDetIds.push_back( 436228390 ); theLasDetIds.push_back( 436228398 ); theLasDetIds.push_back( 436228406 );
336  theLasDetIds.push_back( 436232634 ); theLasDetIds.push_back( 436232626 ); theLasDetIds.push_back( 436232618 );
337  theLasDetIds.push_back( 436228518 ); theLasDetIds.push_back( 436228526 ); theLasDetIds.push_back( 436228534 );
338  theLasDetIds.push_back( 436232826 ); theLasDetIds.push_back( 436232818 ); theLasDetIds.push_back( 436232810 );
339  theLasDetIds.push_back( 436228710 ); theLasDetIds.push_back( 436228718 ); theLasDetIds.push_back( 436228726 );
340  theLasDetIds.push_back( 436233018 ); theLasDetIds.push_back( 436233010 ); theLasDetIds.push_back( 436233002 );
341  theLasDetIds.push_back( 436228902 ); theLasDetIds.push_back( 436228910 ); theLasDetIds.push_back( 436228918 );
342  theLasDetIds.push_back( 436233146 ); theLasDetIds.push_back( 436233138 ); theLasDetIds.push_back( 436233130 );
343  theLasDetIds.push_back( 436229030 ); theLasDetIds.push_back( 436229038 ); theLasDetIds.push_back( 436229046 );
344  theLasDetIds.push_back( 436233338 ); theLasDetIds.push_back( 436233330 ); theLasDetIds.push_back( 436233322 );
345  theLasDetIds.push_back( 436229222 ); theLasDetIds.push_back( 436229230 ); theLasDetIds.push_back( 436229238 );
346  theLasDetIds.push_back( 436233466 ); theLasDetIds.push_back( 436233458 ); theLasDetIds.push_back( 436233450 );
347  theLasDetIds.push_back( 436229350 ); theLasDetIds.push_back( 436229358 ); theLasDetIds.push_back( 436229366 );
348 
349 }
std::vector< unsigned int > theLasDetIds
void LaserAlignmentT0Producer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

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

Definition at line 61 of file LaserAlignmentT0Producer.cc.

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

Referenced by JSONExport.JsonExport::export(), HTMLExport.HTMLExport::export(), and HTMLExport.HTMLExportStatic::export().

61  {
62 
63  using namespace edm;
64 
65 
66  // loop all input products
67  for ( std::vector<edm::ParameterSet>::iterator aDigiProducer = digiProducerList.begin(); aDigiProducer != digiProducerList.end(); ++aDigiProducer ) {
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  // now a distinction of cases: raw or processed digis?
73 
74  // first we go for raw digis => SiStripRawDigi
75  if( digiType == "Raw" ) {
76 
77  // retrieve the SiStripRawDigis collection
79  iEvent.getByLabel( digiProducer, digiLabel, theStripDigis );
80 
81  // empty container
82  std::vector<edm::DetSet<SiStripRawDigi> > theDigiVector;
83 
84  // loop the incoming DetSetVector
85  for( edm::DetSetVector<SiStripRawDigi>::const_iterator aDetSet = theStripDigis->begin(); aDetSet != theStripDigis->end(); ++aDetSet ) {
86 
87  // is the current DetSet that of a LAS module?
88  if( find( theLasDetIds.begin(), theLasDetIds.end(), aDetSet->detId() ) != theLasDetIds.end() ) {
89  // yes it's a LAS module, so copy the Digis to the output
90 
91  // a DetSet for output
92  edm::DetSet<SiStripRawDigi> outputDetSet( aDetSet->detId() );
93 
94  // copy all the digis to the output DetSet. Unfortunately, there's no copy constructor..
95  for( edm::DetSet<SiStripRawDigi>::const_iterator aDigi = aDetSet->begin(); aDigi != aDetSet->end(); ++aDigi ) {
96  outputDetSet.push_back( *aDigi );
97  }
98 
99  // onto the later DetSetVector
100  theDigiVector.push_back( outputDetSet );
101 
102  }
103 
104  }
105 
106  // create the output collection for the DetSetVector
107  // write output to file
108  iEvent.put(std::make_unique<edm::DetSetVector<SiStripRawDigi>>(theDigiVector), digiLabel);
109 
110  }
111 
112 
113 
114 
115 
116  // then we assume "ZeroSuppressed" (non-raw) => SiStripDigi
117  // and do exactly the same as above
118  else if( digiType == "Processed" ) {
119 
121  iEvent.getByLabel( digiProducer, digiLabel, theStripDigis );
122 
123  std::vector<edm::DetSet<SiStripDigi> > theDigiVector;
124 
125  for( edm::DetSetVector<SiStripDigi>::const_iterator aDetSet = theStripDigis->begin(); aDetSet != theStripDigis->end(); ++aDetSet ) {
126  if( find( theLasDetIds.begin(), theLasDetIds.end(), aDetSet->detId() ) != theLasDetIds.end() ) {
127 
128  edm::DetSet<SiStripDigi> outputDetSet( aDetSet->detId() );
129  for( edm::DetSet<SiStripDigi>::const_iterator aDigi = aDetSet->begin(); aDigi != aDetSet->end(); ++aDigi ) {
130  outputDetSet.push_back( *aDigi );
131  }
132 
133  theDigiVector.push_back( outputDetSet );
134 
135  }
136  }
137 
138  iEvent.put(std::make_unique<edm::DetSetVector<SiStripDigi>>(theDigiVector), digiLabel);
139 
140  }
141 
142  else {
143  throw cms::Exception("LaserAlignmentT0Producer") << "ERROR ** Unknown DigiType: " << digiType << " specified in cfg file" << std::endl;
144  }
145 
146 
147  } // loop all input products
148 
149 
150 }
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:137
void push_back(const T &t)
Definition: DetSet.h:68
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:20
std::vector< unsigned int > theLasDetIds
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:535
HLT enums.
collection_type::const_iterator const_iterator
Definition: DetSet.h:33
collection_type::const_iterator const_iterator
Definition: DetSetVector.h:104

Member Data Documentation

std::string LaserAlignmentT0Producer::digiLabel
private

Definition at line 49 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

std::string LaserAlignmentT0Producer::digiProducer
private

Definition at line 48 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

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

Definition at line 47 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

std::string LaserAlignmentT0Producer::digiType
private

Definition at line 50 of file LaserAlignmentT0Producer.h.

Referenced by LaserAlignmentT0Producer(), and produce().

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

Definition at line 53 of file LaserAlignmentT0Producer.h.

Referenced by FillDetIds(), and produce().