Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:18:26

0001 #ifndef HLTfilters_HLTBeamModeFilter_h
0002 #define HLTfilters_HLTBeamModeFilter_h
0003 
0004 /**
0005  * \class HLTBeamModeFilter
0006  *
0007  *
0008  * Description: filter according to the beam mode using the BST information received by L1 GT.
0009  *
0010  * Implementation:
0011  *    This class is an HLTFilter (-> EDFilter). It implements:
0012  *      - filter according to the beam mode using the BST information received by L1 GT
0013  *      - the code for a given mode is the code given in the BST message document
0014  *        (LHC-BOB-ES-0001-20-00.pdf or newer version)
0015  *      - it requires as input the unpacked L1GlobalTriggerEvmReadoutRecord
0016  *
0017  * \author: Vasile Mihai Ghete - HEPHY Vienna
0018  *
0019  *
0020  */
0021 
0022 // system include files
0023 #include <vector>
0024 
0025 // user include files
0026 
0027 //   base class
0028 #include "HLTrigger/HLTcore/interface/HLTFilter.h"
0029 #include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerEvmReadoutRecord.h"
0030 
0031 #include "FWCore/Utilities/interface/InputTag.h"
0032 
0033 // forward declarations
0034 
0035 namespace edm {
0036   class ConfigurationDescriptions;
0037 }
0038 
0039 // class declaration
0040 class HLTBeamModeFilter : public HLTFilter {
0041 public:
0042   /// constructor
0043   explicit HLTBeamModeFilter(const edm::ParameterSet&);
0044 
0045   /// destructor
0046   ~HLTBeamModeFilter() override;
0047 
0048   /// parameter description
0049   static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0050   /// filter the event
0051   bool hltFilter(edm::Event&,
0052                  const edm::EventSetup&,
0053                  trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
0054 
0055 private:
0056   /// InputTag for the L1 Global Trigger EVM readout record
0057   edm::InputTag m_l1GtEvmReadoutRecordTag;
0058   edm::EDGetTokenT<L1GlobalTriggerEvmReadoutRecord> m_l1GtEvmReadoutRecordToken;
0059   /// vector of beam modes (coded as integer numbers)
0060   std::vector<unsigned int> m_allowedBeamMode;
0061 
0062   /// cache edm::isDebugEnabled()
0063   bool m_isDebugEnabled;
0064 };
0065 
0066 #endif  // HLTfilters_HLTBeamModeFilter_h