1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
|
#ifndef HLTfilters_HLTBeamModeFilter_h
#define HLTfilters_HLTBeamModeFilter_h
/**
* \class HLTBeamModeFilter
*
*
* Description: filter according to the beam mode using the BST information received by L1 GT.
*
* Implementation:
* This class is an HLTFilter (-> EDFilter). It implements:
* - filter according to the beam mode using the BST information received by L1 GT
* - the code for a given mode is the code given in the BST message document
* (LHC-BOB-ES-0001-20-00.pdf or newer version)
* - it requires as input the unpacked L1GlobalTriggerEvmReadoutRecord
*
* \author: Vasile Mihai Ghete - HEPHY Vienna
*
*
*/
// system include files
#include <vector>
// user include files
// base class
#include "HLTrigger/HLTcore/interface/HLTFilter.h"
#include "DataFormats/L1GlobalTrigger/interface/L1GlobalTriggerEvmReadoutRecord.h"
#include "FWCore/Utilities/interface/InputTag.h"
// forward declarations
namespace edm {
class ConfigurationDescriptions;
}
// class declaration
class HLTBeamModeFilter : public HLTFilter {
public:
/// constructor
explicit HLTBeamModeFilter(const edm::ParameterSet&);
/// destructor
~HLTBeamModeFilter() override;
/// parameter description
static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
/// filter the event
bool hltFilter(edm::Event&,
const edm::EventSetup&,
trigger::TriggerFilterObjectWithRefs& filterproduct) const override;
private:
/// InputTag for the L1 Global Trigger EVM readout record
edm::InputTag m_l1GtEvmReadoutRecordTag;
edm::EDGetTokenT<L1GlobalTriggerEvmReadoutRecord> m_l1GtEvmReadoutRecordToken;
/// vector of beam modes (coded as integer numbers)
std::vector<unsigned int> m_allowedBeamMode;
/// cache edm::isDebugEnabled()
bool m_isDebugEnabled;
};
#endif // HLTfilters_HLTBeamModeFilter_h
|