CMS 3D CMS Logo

L1ExtraParticleMapProd.h
Go to the documentation of this file.
1 #ifndef L1ExtraFromDigis_L1ExtraParticleMapProd_h
2 #define L1ExtraFromDigis_L1ExtraParticleMapProd_h
3 // -*- C++ -*-
4 //
5 // Package: L1ExtraFromDigis
6 // Class : L1ExtraParticleMapProd
7 //
14 //
15 // Original Author:
16 // Created: Tue Oct 17 00:14:00 EDT 2006
17 //
18 
19 // system include files
20 
21 // user include files
28 
37 
38 // forward declarations
39 
41 public:
42  explicit L1ExtraParticleMapProd(const edm::ParameterSet &);
43  ~L1ExtraParticleMapProd() override;
44 
45  void produce(edm::Event &, const edm::EventSetup &) override;
46 
47 private:
48  // Adds Refs to the objects in handle to the outputRefs vector.
49  template <class TCollection>
50  void addToVectorRefs(const edm::Handle<TCollection> &handle, // input
51  std::vector<edm::Ref<TCollection>> &vectorRefs); // output
52 
53  template <class TCollection>
54  void evaluateSingleObjectTrigger(const std::vector<edm::Ref<TCollection>> &inputRefs, // input
55  const double &etThreshold, // input
56  bool &decision, // output
57  std::vector<edm::Ref<TCollection>> &outputRefs); // output
58 
59  template <class TCollection>
60  void evaluateDoubleSameObjectTrigger(const std::vector<edm::Ref<TCollection>> &inputRefs, // input
61  const double &etThreshold, // input
62  bool &decision, // output
63  std::vector<edm::Ref<TCollection>> &outputRefs, // output
65  bool combinedWithGlobalObject = false); // if true, add entry for
66  // HT or MET to particle combos
67 
68  template <class TCollection>
69  void evaluateTripleSameObjectTrigger(const std::vector<edm::Ref<TCollection>> &inputRefs, // input
70  const double &etThreshold, // input
71  bool &decision, // output
72  std::vector<edm::Ref<TCollection>> &outputRefs, // output
74 
75  template <class TCollection1, class TCollection2>
76  void evaluateDoublePlusSingleObjectTrigger(const std::vector<edm::Ref<TCollection1>> &inputRefs1, // input
77  const std::vector<edm::Ref<TCollection2>> &inputRefs2, // input
78  const double &etThreshold1, // input
79  const double &etThreshold2, // input
80  bool &decision, // output
81  std::vector<edm::Ref<TCollection1>> &outputRefs1, // output
82  std::vector<edm::Ref<TCollection2>> &outputRefs2, // output
84 
85  template <class TCollection>
86  void evaluateQuadSameObjectTrigger(const std::vector<edm::Ref<TCollection>> &inputRefs, // input
87  const double &etThreshold, // input
88  bool &decision, // output
89  std::vector<edm::Ref<TCollection>> &outputRefs, // output
91 
92  template <class TCollection1, class TCollection2>
93  void evaluateDoubleDifferentObjectTrigger(const std::vector<edm::Ref<TCollection1>> &inputRefs1, // input
94  const std::vector<edm::Ref<TCollection2>> &inputRefs2, // input
95  const double &etThreshold1, // input
96  const double &etThreshold2, // input
97  bool &decision, // output
98  std::vector<edm::Ref<TCollection1>> &outputRefs1, // output
99  std::vector<edm::Ref<TCollection2>> &outputRefs2, // output
101 
102  template <class TCollection>
103  void evaluateDoubleDifferentObjectSameTypeTrigger(const std::vector<edm::Ref<TCollection>> &inputRefs1, // input
104  const std::vector<edm::Ref<TCollection>> &inputRefs2, // input
105  const double &etThreshold1, // input
106  const double &etThreshold2, // input
107  bool &decision, // output
108  std::vector<edm::Ref<TCollection>> &outputRefs, // output
110 
112  const l1extra::L1JetParticleVectorRef &inputRefs2, // input
113  const double &etThreshold1, // input
114  const double &etThreshold2, // input
115  bool &decision, // output
116  l1extra::L1EmParticleVectorRef &outputRefs1, // output
117  l1extra::L1JetParticleVectorRef &outputRefs2, // output
119 
120  void evaluateJetGapJetTrigger(const l1extra::L1JetParticleVectorRef &inputRefs, // input
121  const double &etThreshold, // input
122  bool &decision, // output
123  l1extra::L1JetParticleVectorRef &outputRefs, // output
125 
126  void evaluateForwardRapidityGap(const l1extra::L1JetParticleVectorRef &inputRefs, // input
127  const double &etThreshold, // input
128  bool &decision); // output
129 
130  void evaluateDoubleExclusiveIsoEG(const l1extra::L1EmParticleVectorRef &inputRefs1, // input
131  const l1extra::L1JetParticleVectorRef &inputRefs2, // input
132  const double &etThreshold1, // input
133  const double &etThreshold2, // input
134  bool &decision, // output
135  l1extra::L1EmParticleVectorRef &outputRefs1, // output
137 
138  // ----------member data ---------------------------
147 
152 };
153 
154 #endif
void evaluateDoublePlusSingleObjectTrigger(const std::vector< edm::Ref< TCollection1 >> &inputRefs1, const std::vector< edm::Ref< TCollection2 >> &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, std::vector< edm::Ref< TCollection1 >> &outputRefs1, std::vector< edm::Ref< TCollection2 >> &outputRefs2, l1extra::L1ParticleMap::L1IndexComboVector &combos)
std::pair< double, double > doubleThresholds_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes]
void evaluateSingleObjectTrigger(const std::vector< edm::Ref< TCollection >> &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection >> &outputRefs)
void evaluateDoubleSameObjectTrigger(const std::vector< edm::Ref< TCollection >> &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection >> &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos, bool combinedWithGlobalObject=false)
void evaluateTripleSameObjectTrigger(const std::vector< edm::Ref< TCollection >> &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection >> &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos)
void evaluateDoubleDifferentObjectSameTypeTrigger(const std::vector< edm::Ref< TCollection >> &inputRefs1, const std::vector< edm::Ref< TCollection >> &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, std::vector< edm::Ref< TCollection >> &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos)
void evaluateForwardRapidityGap(const l1extra::L1JetParticleVectorRef &inputRefs, const double &etThreshold, bool &decision)
void addToVectorRefs(const edm::Handle< TCollection > &handle, std::vector< edm::Ref< TCollection >> &vectorRefs)
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< L1JetParticleRef > L1JetParticleVectorRef
int prescaleCounters_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes]
double singleThresholds_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes]
void evaluateDoubleDifferentObjectTrigger(const std::vector< edm::Ref< TCollection1 >> &inputRefs1, const std::vector< edm::Ref< TCollection2 >> &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, std::vector< edm::Ref< TCollection1 >> &outputRefs1, std::vector< edm::Ref< TCollection2 >> &outputRefs2, l1extra::L1ParticleMap::L1IndexComboVector &combos)
void evaluateDoubleExclusiveIsoEG(const l1extra::L1EmParticleVectorRef &inputRefs1, const l1extra::L1JetParticleVectorRef &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, l1extra::L1EmParticleVectorRef &outputRefs1, l1extra::L1ParticleMap::L1IndexComboVector &combos)
void evaluateDoubleDifferentCaloObjectTrigger(const l1extra::L1EmParticleVectorRef &inputRefs1, const l1extra::L1JetParticleVectorRef &inputRefs2, const double &etThreshold1, const double &etThreshold2, bool &decision, l1extra::L1EmParticleVectorRef &outputRefs1, l1extra::L1JetParticleVectorRef &outputRefs2, l1extra::L1ParticleMap::L1IndexComboVector &combos)
std::vector< L1IndexCombo > L1IndexComboVector
void evaluateQuadSameObjectTrigger(const std::vector< edm::Ref< TCollection >> &inputRefs, const double &etThreshold, bool &decision, std::vector< edm::Ref< TCollection >> &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos)
int prescales_[l1extra::L1ParticleMap::kNumOfL1TriggerTypes]
std::vector< L1EmParticleRef > L1EmParticleVectorRef
L1ExtraParticleMapProd(const edm::ParameterSet &)
void evaluateJetGapJetTrigger(const l1extra::L1JetParticleVectorRef &inputRefs, const double &etThreshold, bool &decision, l1extra::L1JetParticleVectorRef &outputRefs, l1extra::L1ParticleMap::L1IndexComboVector &combos)