Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:22:17

0001 #ifndef L1GtConfigProducers_L1GtStableParametersTrivialProducer_h
0002 #define L1GtConfigProducers_L1GtStableParametersTrivialProducer_h
0003 
0004 /**
0005  * \class L1GtStableParametersTrivialProducer
0006  * 
0007  * 
0008  * Description: ESProducer for L1 GT parameters.  
0009  *
0010  * Implementation:
0011  *    <TODO: enter implementation details>
0012  *   
0013  * \author: Vasile Mihai Ghete - HEPHY Vienna
0014  * 
0015  *
0016  */
0017 
0018 // system include files
0019 #include <memory>
0020 
0021 #include <vector>
0022 
0023 // user include files
0024 //   base class
0025 #include "FWCore/Framework/interface/ESProducer.h"
0026 
0027 #include "FWCore/Framework/interface/ModuleFactory.h"
0028 #include "FWCore/Framework/interface/ESHandle.h"
0029 
0030 #include "CondFormats/L1TObjects/interface/L1GtStableParameters.h"
0031 #include "CondFormats/DataRecord/interface/L1GtStableParametersRcd.h"
0032 
0033 // forward declarations
0034 
0035 // class declaration
0036 class L1GtStableParametersTrivialProducer : public edm::ESProducer {
0037 public:
0038   /// constructor
0039   L1GtStableParametersTrivialProducer(const edm::ParameterSet&);
0040 
0041   /// destructor
0042   ~L1GtStableParametersTrivialProducer() override;
0043 
0044   /// public methods
0045 
0046   /// L1 GT parameters
0047   std::unique_ptr<L1GtStableParameters> produceGtStableParameters(const L1GtStableParametersRcd&);
0048 
0049 private:
0050   /// trigger decision
0051 
0052   /// number of physics trigger algorithms
0053   unsigned int m_numberPhysTriggers;
0054 
0055   /// additional number of physics trigger algorithms
0056   unsigned int m_numberPhysTriggersExtended;
0057 
0058   /// number of technical triggers
0059   unsigned int m_numberTechnicalTriggers;
0060 
0061   /// trigger objects
0062 
0063   /// muons
0064   unsigned int m_numberL1Mu;
0065 
0066   /// e/gamma and isolated e/gamma objects
0067   unsigned int m_numberL1NoIsoEG;
0068   unsigned int m_numberL1IsoEG;
0069 
0070   /// central, forward and tau jets
0071   unsigned int m_numberL1CenJet;
0072   unsigned int m_numberL1ForJet;
0073   unsigned int m_numberL1TauJet;
0074 
0075   /// jet counts
0076   unsigned int m_numberL1JetCounts;
0077 
0078 private:
0079   /// hardware
0080 
0081   /// number of maximum chips defined in the xml file
0082   unsigned int m_numberConditionChips;
0083 
0084   /// number of pins on the GTL condition chips
0085   unsigned int m_pinsOnConditionChip;
0086 
0087   /// correspondence "condition chip - GTL algorithm word" in the hardware
0088   /// e.g.: chip 2: 0 - 95;  chip 1: 96 - 128 (191)
0089   std::vector<int> m_orderConditionChip;
0090 
0091   /// number of PSB boards in GT
0092   int m_numberPsbBoards;
0093 
0094   /// number of bits for eta of calorimeter objects
0095   unsigned int m_ifCaloEtaNumberBits;
0096 
0097   /// number of bits for eta of muon objects
0098   unsigned int m_ifMuEtaNumberBits;
0099 
0100 private:
0101   /// GT DAQ record organized in words of WordLength bits
0102   int m_wordLength;
0103 
0104   /// one unit in the word is UnitLength bits
0105   int m_unitLength;
0106 };
0107 
0108 #endif