CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
L1GtTriggerMenuLiteProducer Class Reference

#include <L1GtTriggerMenuLiteProducer.h>

Inheritance diagram for L1GtTriggerMenuLiteProducer:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 L1GtTriggerMenuLiteProducer (const edm::ParameterSet &)
 constructor(s) More...
 
virtual ~L1GtTriggerMenuLiteProducer ()
 destructor More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

virtual void beginJob ()
 
void beginRun (edm::Run &, const edm::EventSetup &)
 
virtual void endJob ()
 
void endRun (edm::Run &, const edm::EventSetup &)
 
virtual void produce (edm::Event &, const edm::EventSetup &)
 
void retrieveL1EventSetup (const edm::EventSetup &)
 

Private Attributes

const AlgorithmMapm_algorithmAliasMap
 
const AlgorithmMapm_algorithmMap
 
const L1GtTriggerMenum_l1GtMenu
 
unsigned long long m_l1GtMenuCacheID
 
const L1GtPrescaleFactorsm_l1GtPfAlgo
 prescale factors More...
 
unsigned long long m_l1GtPfAlgoCacheID
 
const L1GtPrescaleFactorsm_l1GtPfTech
 
unsigned long long m_l1GtPfTechCacheID
 
const L1GtStableParametersm_l1GtStablePar
 cached stuff More...
 
unsigned long long m_l1GtStableParCacheID
 
const L1GtTriggerMaskm_l1GtTmAlgo
 trigger masks More...
 
unsigned long long m_l1GtTmAlgoCacheID
 
const L1GtTriggerMaskm_l1GtTmTech
 
unsigned long long m_l1GtTmTechCacheID
 
unsigned int m_numberPhysTriggers
 number of physics triggers More...
 
unsigned int m_numberTechnicalTriggers
 number of technical triggers More...
 
unsigned int m_physicsDaqPartition
 index of physics DAQ partition More...
 
const std::vector< std::vector
< int > > * 
m_prescaleFactorsAlgoTrig
 
const std::vector< std::vector
< int > > * 
m_prescaleFactorsTechTrig
 
const AlgorithmMapm_technicalTriggerMap
 
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
 
const std::vector< unsigned int > * m_triggerMaskTechTrig
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Description: L1GtTriggerMenuLite producer.

Implementation: Read the L1 trigger menu, the trigger masks and the prescale factor sets from event setup and save a lite version (top level menu, trigger masks for physics partition and prescale factor set) in Run Data.

Author
: Vasile Mihai Ghete - HEPHY Vienna

$Date$ $Revision$

Definition at line 44 of file L1GtTriggerMenuLiteProducer.h.

Constructor & Destructor Documentation

L1GtTriggerMenuLiteProducer::L1GtTriggerMenuLiteProducer ( const edm::ParameterSet parSet)
explicit

constructor(s)

Definition at line 55 of file L1GtTriggerMenuLiteProducer.cc.

56  :
58 
60 
61  m_l1GtMenuCacheID(0ULL),
62 
64 
66 
68 
69  // EDM product in Run Data
70  produces<L1GtTriggerMenuLite, edm::InRun>();
71 
72 }
unsigned int m_physicsDaqPartition
index of physics DAQ partition
unsigned int m_numberPhysTriggers
number of physics triggers
unsigned int m_numberTechnicalTriggers
number of technical triggers
L1GtTriggerMenuLiteProducer::~L1GtTriggerMenuLiteProducer ( )
virtual

destructor

Definition at line 75 of file L1GtTriggerMenuLiteProducer.cc.

75  {
76 
77  // empty
78 
79 }

Member Function Documentation

void L1GtTriggerMenuLiteProducer::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 199 of file L1GtTriggerMenuLiteProducer.cc.

199  {
200  // empty
201 }
void L1GtTriggerMenuLiteProducer::beginRun ( edm::Run iRun,
const edm::EventSetup evSetup 
)
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 203 of file L1GtTriggerMenuLiteProducer.cc.

References L1GtTriggerMenu::gtScaleDbKey(), L1GtTriggerMenu::gtTriggerMenuImplementation(), L1GtTriggerMenu::gtTriggerMenuInterface(), L1GtTriggerMenu::gtTriggerMenuName(), edm::isDebugEnabled(), LogDebug, m_algorithmAliasMap, m_algorithmMap, m_l1GtMenu, m_numberPhysTriggers, m_numberTechnicalTriggers, m_physicsDaqPartition, m_prescaleFactorsAlgoTrig, m_prescaleFactorsTechTrig, m_technicalTriggerMap, m_triggerMaskAlgoTrig, m_triggerMaskTechTrig, edm::Run::put(), and retrieveL1EventSetup().

204  {
205 
206  //
207 
208  retrieveL1EventSetup(evSetup);
209 
210  // produce the L1GtTriggerMenuLite
211  std::auto_ptr<L1GtTriggerMenuLite> gtTriggerMenuLite(new L1GtTriggerMenuLite());
212 
213  // lite L1 trigger menu
214 
215  gtTriggerMenuLite->setGtTriggerMenuInterface(m_l1GtMenu->gtTriggerMenuInterface());
216  gtTriggerMenuLite->setGtTriggerMenuName(m_l1GtMenu->gtTriggerMenuName());
217  gtTriggerMenuLite->setGtTriggerMenuImplementation(m_l1GtMenu->gtTriggerMenuImplementation());
218 
219  gtTriggerMenuLite->setGtScaleDbKey(m_l1GtMenu->gtScaleDbKey());
220 
221  //
223  for (CItAlgo itAlgo = m_algorithmMap->begin(); itAlgo
224  != m_algorithmMap->end(); itAlgo++) {
225 
226  unsigned int bitNumber = (itAlgo->second).algoBitNumber();
227  algMap[bitNumber] = itAlgo->first;
228 
229  }
230 
231  gtTriggerMenuLite->setGtAlgorithmMap(algMap);
232 
233  //
235  for (CItAlgo itAlgo = m_algorithmAliasMap->begin(); itAlgo
236  != m_algorithmAliasMap->end(); itAlgo++) {
237 
238  unsigned int bitNumber = (itAlgo->second).algoBitNumber();
239  algAliasMap[bitNumber] = itAlgo->first;
240 
241  }
242 
243  gtTriggerMenuLite->setGtAlgorithmAliasMap(algAliasMap);
244 
245  //
247  for (CItAlgo itAlgo = m_technicalTriggerMap->begin(); itAlgo
248  != m_technicalTriggerMap->end(); itAlgo++) {
249 
250  unsigned int bitNumber = (itAlgo->second).algoBitNumber();
251  techMap[bitNumber] = itAlgo->first;
252 
253  }
254 
255  gtTriggerMenuLite->setGtTechnicalTriggerMap(techMap);
256 
257  // trigger masks
258  std::vector<unsigned int> triggerMaskAlgoTrig(m_numberPhysTriggers, 0);
259  int iBit = -1;
260 
261  for (std::vector<unsigned int>::const_iterator
262  itBit = m_triggerMaskAlgoTrig->begin();
263  itBit != m_triggerMaskAlgoTrig->end();
264  itBit++) {
265 
266  iBit++;
267  triggerMaskAlgoTrig[iBit] = (*itBit) & (1 << m_physicsDaqPartition);
268  }
269  gtTriggerMenuLite->setGtTriggerMaskAlgoTrig(triggerMaskAlgoTrig);
270 
271  //
272  std::vector<unsigned int> triggerMaskTechTrig(m_numberTechnicalTriggers, 0);
273  iBit = -1;
274 
275  for (std::vector<unsigned int>::const_iterator
276  itBit = m_triggerMaskTechTrig->begin();
277  itBit != m_triggerMaskTechTrig->end();
278  itBit++) {
279 
280  iBit++;
281  triggerMaskTechTrig[iBit] = (*itBit) & (1 << m_physicsDaqPartition);
282  }
283  gtTriggerMenuLite->setGtTriggerMaskTechTrig(triggerMaskTechTrig);
284 
285 
286  //
287  gtTriggerMenuLite->setGtPrescaleFactorsAlgoTrig(*m_prescaleFactorsAlgoTrig);
288  gtTriggerMenuLite->setGtPrescaleFactorsTechTrig(*m_prescaleFactorsTechTrig);
289 
290 
291  // print menu, trigger masks and prescale factors
292  if (edm::isDebugEnabled()) {
293 
294  LogDebug("L1GtTriggerMenuLiteProducer") << *gtTriggerMenuLite;
295 
296  }
297 
298  // put records into event
299  iRun.put(gtTriggerMenuLite);
300 
301 }
#define LogDebug(id)
const std::string & gtTriggerMenuName() const
bool isDebugEnabled()
unsigned int m_physicsDaqPartition
index of physics DAQ partition
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
const std::string & gtTriggerMenuImplementation() const
unsigned int m_numberPhysTriggers
number of physics triggers
AlgorithmMap::const_iterator CItAlgo
iterators through map containing the algorithms
std::map< unsigned int, std::string > L1TriggerMap
map containing the physics algorithms or the technical triggers
void retrieveL1EventSetup(const edm::EventSetup &)
unsigned int m_numberTechnicalTriggers
number of technical triggers
const std::vector< unsigned int > * m_triggerMaskTechTrig
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
const std::string & gtScaleDbKey() const
menu associated scale key
const std::string & gtTriggerMenuInterface() const
get / set the trigger menu names
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
void put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Run.h:79
void L1GtTriggerMenuLiteProducer::endJob ( void  )
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 317 of file L1GtTriggerMenuLiteProducer.cc.

317  {
318 
319  // empty now
320 }
void L1GtTriggerMenuLiteProducer::endRun ( edm::Run iRun,
const edm::EventSetup evSetup 
)
privatevirtual

Reimplemented from edm::EDProducer.

Definition at line 309 of file L1GtTriggerMenuLiteProducer.cc.

310  {
311 
312  // empty
313 
314 }
void L1GtTriggerMenuLiteProducer::produce ( edm::Event iEvent,
const edm::EventSetup evSetup 
)
privatevirtual

Implements edm::EDProducer.

Definition at line 303 of file L1GtTriggerMenuLiteProducer.cc.

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

304  {
305 
306 
307 }
void L1GtTriggerMenuLiteProducer::retrieveL1EventSetup ( const edm::EventSetup evSetup)
private

retrieve all the relevant L1 trigger event setup records and cache them to improve the speed

Definition at line 81 of file L1GtTriggerMenuLiteProducer.cc.

References edm::EventSetup::get(), L1GtTriggerMenu::gtAlgorithmAliasMap(), L1GtTriggerMenu::gtAlgorithmMap(), L1GtStableParameters::gtNumberPhysTriggers(), L1GtStableParameters::gtNumberTechnicalTriggers(), L1GtPrescaleFactors::gtPrescaleFactors(), L1GtTriggerMenu::gtTechnicalTriggerMap(), L1GtTriggerMask::gtTriggerMask(), m_algorithmAliasMap, m_algorithmMap, m_l1GtMenu, m_l1GtMenuCacheID, m_l1GtPfAlgo, m_l1GtPfAlgoCacheID, m_l1GtPfTech, m_l1GtPfTechCacheID, m_l1GtStablePar, m_l1GtStableParCacheID, m_l1GtTmAlgo, m_l1GtTmAlgoCacheID, m_l1GtTmTech, m_l1GtTmTechCacheID, m_numberPhysTriggers, m_numberTechnicalTriggers, m_prescaleFactorsAlgoTrig, m_prescaleFactorsTechTrig, m_technicalTriggerMap, m_triggerMaskAlgoTrig, m_triggerMaskTechTrig, and edm::ESHandle< class >::product().

Referenced by beginRun().

81  {
82 
83  // get / update the stable parameters from the EventSetup
84  // local cache & check on cacheIdentifier
85 
86  unsigned long long l1GtStableParCacheID =
87  evSetup.get<L1GtStableParametersRcd>().cacheIdentifier();
88 
89  if (m_l1GtStableParCacheID != l1GtStableParCacheID) {
90 
92  evSetup.get<L1GtStableParametersRcd>().get(l1GtStablePar);
93  m_l1GtStablePar = l1GtStablePar.product();
94 
95  // number of physics triggers
97 
98  // number of technical triggers
101 
102  //
103  m_l1GtStableParCacheID = l1GtStableParCacheID;
104 
105  }
106 
107  // get / update the prescale factors from the EventSetup
108  // local cache & check on cacheIdentifier
109 
110  unsigned long long l1GtPfAlgoCacheID =
111  evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().cacheIdentifier();
112 
113  if (m_l1GtPfAlgoCacheID != l1GtPfAlgoCacheID) {
114 
116  evSetup.get<L1GtPrescaleFactorsAlgoTrigRcd>().get(l1GtPfAlgo);
117  m_l1GtPfAlgo = l1GtPfAlgo.product();
118 
120 
121  m_l1GtPfAlgoCacheID = l1GtPfAlgoCacheID;
122 
123  }
124 
125  unsigned long long l1GtPfTechCacheID = evSetup.get<
126  L1GtPrescaleFactorsTechTrigRcd>().cacheIdentifier();
127 
128  if (m_l1GtPfTechCacheID != l1GtPfTechCacheID) {
129 
131  evSetup.get<L1GtPrescaleFactorsTechTrigRcd>().get(l1GtPfTech);
132  m_l1GtPfTech = l1GtPfTech.product();
133 
135 
136  m_l1GtPfTechCacheID = l1GtPfTechCacheID;
137 
138  }
139 
140  // get / update the trigger mask from the EventSetup
141  // local cache & check on cacheIdentifier
142 
143  unsigned long long l1GtTmAlgoCacheID =
144  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().cacheIdentifier();
145 
146  if (m_l1GtTmAlgoCacheID != l1GtTmAlgoCacheID) {
147 
149  evSetup.get<L1GtTriggerMaskAlgoTrigRcd>().get(l1GtTmAlgo);
150  m_l1GtTmAlgo = l1GtTmAlgo.product();
151 
153 
154  m_l1GtTmAlgoCacheID = l1GtTmAlgoCacheID;
155 
156  }
157 
158  unsigned long long l1GtTmTechCacheID =
159  evSetup.get<L1GtTriggerMaskTechTrigRcd>().cacheIdentifier();
160 
161  if (m_l1GtTmTechCacheID != l1GtTmTechCacheID) {
162 
164  evSetup.get<L1GtTriggerMaskTechTrigRcd>().get(l1GtTmTech);
165  m_l1GtTmTech = l1GtTmTech.product();
166 
168 
169  m_l1GtTmTechCacheID = l1GtTmTechCacheID;
170 
171  }
172 
173 
174  // get / update the trigger menu from the EventSetup
175  // local cache & check on cacheIdentifier
176 
177  unsigned long long l1GtMenuCacheID =
178  evSetup.get<L1GtTriggerMenuRcd>().cacheIdentifier();
179 
180  if (m_l1GtMenuCacheID != l1GtMenuCacheID) {
181 
183  evSetup.get<L1GtTriggerMenuRcd>().get(l1GtMenu);
184  m_l1GtMenu = l1GtMenu.product();
185 
188 
190 
191  m_l1GtMenuCacheID = l1GtMenuCacheID;
192 
193  }
194 
195 }
const L1GtPrescaleFactors * m_l1GtPfTech
const std::vector< std::vector< int > > * m_prescaleFactorsAlgoTrig
unsigned int m_numberPhysTriggers
number of physics triggers
unsigned int gtNumberTechnicalTriggers() const
get / set the number of technical triggers
unsigned int gtNumberPhysTriggers() const
get / set the number of physics trigger algorithms
unsigned int m_numberTechnicalTriggers
number of technical triggers
const std::vector< unsigned int > & gtTriggerMask() const
get the trigger mask
const std::vector< unsigned int > * m_triggerMaskTechTrig
const std::vector< std::vector< int > > * m_prescaleFactorsTechTrig
const L1GtPrescaleFactors * m_l1GtPfAlgo
prescale factors
const std::vector< std::vector< int > > & gtPrescaleFactors() const
get the prescale factors by reference
const T & get() const
Definition: EventSetup.h:55
T const * product() const
Definition: ESHandle.h:62
const std::vector< unsigned int > * m_triggerMaskAlgoTrig
const AlgorithmMap & gtAlgorithmMap() const
get / set the algorithm map (by name)
const L1GtStableParameters * m_l1GtStablePar
cached stuff
const AlgorithmMap & gtTechnicalTriggerMap() const
get / set the technical trigger map
const L1GtTriggerMask * m_l1GtTmAlgo
trigger masks
const AlgorithmMap & gtAlgorithmAliasMap() const
get / set the algorithm map (by alias)

Member Data Documentation

const AlgorithmMap* L1GtTriggerMenuLiteProducer::m_algorithmAliasMap
private

Definition at line 88 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

const AlgorithmMap* L1GtTriggerMenuLiteProducer::m_algorithmMap
private

Definition at line 87 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

const L1GtTriggerMenu* L1GtTriggerMenuLiteProducer::m_l1GtMenu
private

Definition at line 84 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

unsigned long long L1GtTriggerMenuLiteProducer::m_l1GtMenuCacheID
private

Definition at line 85 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

const L1GtPrescaleFactors* L1GtTriggerMenuLiteProducer::m_l1GtPfAlgo
private

prescale factors

Definition at line 102 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

unsigned long long L1GtTriggerMenuLiteProducer::m_l1GtPfAlgoCacheID
private

Definition at line 103 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

const L1GtPrescaleFactors* L1GtTriggerMenuLiteProducer::m_l1GtPfTech
private

Definition at line 105 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

unsigned long long L1GtTriggerMenuLiteProducer::m_l1GtPfTechCacheID
private

Definition at line 106 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

const L1GtStableParameters* L1GtTriggerMenuLiteProducer::m_l1GtStablePar
private

cached stuff

stable parameters

Definition at line 74 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

unsigned long long L1GtTriggerMenuLiteProducer::m_l1GtStableParCacheID
private

Definition at line 75 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

const L1GtTriggerMask* L1GtTriggerMenuLiteProducer::m_l1GtTmAlgo
private

trigger masks

Definition at line 92 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

unsigned long long L1GtTriggerMenuLiteProducer::m_l1GtTmAlgoCacheID
private

Definition at line 93 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

const L1GtTriggerMask* L1GtTriggerMenuLiteProducer::m_l1GtTmTech
private

Definition at line 95 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

unsigned long long L1GtTriggerMenuLiteProducer::m_l1GtTmTechCacheID
private

Definition at line 96 of file L1GtTriggerMenuLiteProducer.h.

Referenced by retrieveL1EventSetup().

unsigned int L1GtTriggerMenuLiteProducer::m_numberPhysTriggers
private

number of physics triggers

Definition at line 78 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

unsigned int L1GtTriggerMenuLiteProducer::m_numberTechnicalTriggers
private

number of technical triggers

Definition at line 81 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

unsigned int L1GtTriggerMenuLiteProducer::m_physicsDaqPartition
private

index of physics DAQ partition

Definition at line 114 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun().

const std::vector<std::vector<int> >* L1GtTriggerMenuLiteProducer::m_prescaleFactorsAlgoTrig
private

Definition at line 108 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

const std::vector<std::vector<int> >* L1GtTriggerMenuLiteProducer::m_prescaleFactorsTechTrig
private

Definition at line 109 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

const AlgorithmMap* L1GtTriggerMenuLiteProducer::m_technicalTriggerMap
private

Definition at line 89 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

const std::vector<unsigned int>* L1GtTriggerMenuLiteProducer::m_triggerMaskAlgoTrig
private

Definition at line 98 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().

const std::vector<unsigned int>* L1GtTriggerMenuLiteProducer::m_triggerMaskTechTrig
private

Definition at line 99 of file L1GtTriggerMenuLiteProducer.h.

Referenced by beginRun(), and retrieveL1EventSetup().