CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
L1GTQuadObjectCond Class Reference
Inheritance diagram for L1GTQuadObjectCond:
edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 L1GTQuadObjectCond (const edm::ParameterSet &)
 
 ~L1GTQuadObjectCond () override=default
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
 EDFilter (const EDFilter &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDFilteroperator= (const EDFilter &)=delete
 
bool wantsGlobalLuminosityBlocks () const noexcept final
 
bool wantsGlobalRuns () const noexcept final
 
bool wantsInputProcessBlocks () const noexcept final
 
bool wantsProcessBlocks () const noexcept final
 
bool wantsStreamLuminosityBlocks () const noexcept final
 
bool wantsStreamRuns () const noexcept final
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDFilterBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESResolverIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESResolverIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const *> *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const *> const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProductResolverIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &)
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

bool filter (edm::StreamID, edm::Event &, edm::EventSetup const &) const override
 

Private Attributes

const L1GTSingleCollectionCut collection1Cuts_
 
const L1GTSingleCollectionCut collection2Cuts_
 
const L1GTSingleCollectionCut collection3Cuts_
 
const L1GTSingleCollectionCut collection4Cuts_
 
const L1GT3BodyCut correl123Cuts_
 
const L1GT3BodyCut correl124Cuts_
 
const L1GTCorrelationalCut correl12Cuts_
 
const L1GT3BodyCut correl134Cuts_
 
const L1GTCorrelationalCut correl13Cuts_
 
const L1GTCorrelationalCut correl14Cuts_
 
const L1GT3BodyCut correl234Cuts_
 
const L1GTCorrelationalCut correl23Cuts_
 
const L1GTCorrelationalCut correl24Cuts_
 
const L1GTCorrelationalCut correl34Cuts_
 
const bool enable_sanity_checks_
 
const bool inv_mass_checks_
 
const edm::EDGetTokenT< P2GTCandidateCollectionprimVertToken_
 
const L1GTScales scales_
 
const edm::EDGetTokenT< P2GTCandidateCollectiontoken1_
 
const edm::EDGetTokenT< P2GTCandidateCollectiontoken2_
 
const edm::EDGetTokenT< P2GTCandidateCollectiontoken3_
 
const edm::EDGetTokenT< P2GTCandidateCollectiontoken4_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
template<typename T >
using BranchAliasSetterT = ProductRegistryHelper::BranchAliasSetterT< T >
 
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::ProducerBase
template<Transition Tr = Transition::Event>
auto produces (std::string instanceName) noexcept
 declare what type of product will make and with which optional label More...
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
template<Transition Tr = Transition::Event>
auto produces () noexcept
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< Bconsumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 28 of file L1GTQuadObjectCond.cc.

Constructor & Destructor Documentation

◆ L1GTQuadObjectCond()

L1GTQuadObjectCond::L1GTQuadObjectCond ( const edm::ParameterSet config)
explicit

Definition at line 67 of file L1GTQuadObjectCond.cc.

References collection1Cuts_, collection2Cuts_, collection3Cuts_, collection4Cuts_, edm::InputTag::instance(), inv_mass_checks_, and l1t::L1GTSingleCollectionCut::tag().

68  : scales_(config.getParameter<edm::ParameterSet>("scales")),
69  collection1Cuts_(config.getParameter<edm::ParameterSet>("collection1"), config, scales_),
70  collection2Cuts_(config.getParameter<edm::ParameterSet>("collection2"), config, scales_),
71  collection3Cuts_(config.getParameter<edm::ParameterSet>("collection3"), config, scales_),
72  collection4Cuts_(config.getParameter<edm::ParameterSet>("collection4"), config, scales_),
73  enable_sanity_checks_(config.getUntrackedParameter<bool>("sanity_checks")),
74  inv_mass_checks_(config.getUntrackedParameter<bool>("inv_mass_checks")),
91  token1_(consumes<P2GTCandidateCollection>(collection1Cuts_.tag())),
93  ? token1_
94  : consumes<P2GTCandidateCollection>(collection2Cuts_.tag())),
96  ? token1_
98  ? token2_
99  : consumes<P2GTCandidateCollection>(collection3Cuts_.tag()))),
101  ? token1_
103  ? token2_
105  ? token3_
106  : consumes<P2GTCandidateCollection>(collection4Cuts_.tag())))),
107  primVertToken_(consumes<P2GTCandidateCollection>(config.getParameter<edm::InputTag>("primVertTag"))) {
108  produces<P2GTCandidateVectorRef>(collection1Cuts_.tag().instance());
109 
110  if (!(collection1Cuts_.tag() == collection2Cuts_.tag())) {
111  produces<P2GTCandidateVectorRef>(collection2Cuts_.tag().instance());
112  }
113 
115  produces<P2GTCandidateVectorRef>(collection3Cuts_.tag().instance());
116  }
117 
120  produces<P2GTCandidateVectorRef>(collection4Cuts_.tag().instance());
121  }
122 
123  if (inv_mass_checks_) {
124  produces<InvariantMassErrorCollection>();
125  }
126 }
const L1GTSingleCollectionCut collection2Cuts_
const bool enable_sanity_checks_
const edm::EDGetTokenT< P2GTCandidateCollection > token4_
std::string const & instance() const
Definition: InputTag.h:37
const edm::InputTag & tag() const
const L1GTCorrelationalCut correl23Cuts_
const L1GTScales scales_
const L1GTCorrelationalCut correl24Cuts_
Definition: config.py:1
const edm::EDGetTokenT< P2GTCandidateCollection > token1_
const L1GT3BodyCut correl123Cuts_
const edm::EDGetTokenT< P2GTCandidateCollection > primVertToken_
const edm::EDGetTokenT< P2GTCandidateCollection > token3_
const L1GTSingleCollectionCut collection3Cuts_
const L1GTSingleCollectionCut collection1Cuts_
const L1GTCorrelationalCut correl12Cuts_
const L1GT3BodyCut correl134Cuts_
const L1GT3BodyCut correl234Cuts_
const L1GTCorrelationalCut correl13Cuts_
const L1GTCorrelationalCut correl14Cuts_
const edm::EDGetTokenT< P2GTCandidateCollection > token2_
const L1GT3BodyCut correl124Cuts_
const L1GTSingleCollectionCut collection4Cuts_
const L1GTCorrelationalCut correl34Cuts_

◆ ~L1GTQuadObjectCond()

L1GTQuadObjectCond::~L1GTQuadObjectCond ( )
overridedefault

Member Function Documentation

◆ fillDescriptions()

void L1GTQuadObjectCond::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 128 of file L1GTQuadObjectCond.cc.

References edm::ConfigurationDescriptions::addWithDefaultLabel(), submitPVResolutionJobs::desc, and reco::modules::fillPSetDescription().

128  {
130 
131  edm::ParameterSetDescription collection1Desc;
133  desc.add<edm::ParameterSetDescription>("collection1", collection1Desc);
134 
135  edm::ParameterSetDescription collection2Desc;
137  desc.add<edm::ParameterSetDescription>("collection2", collection2Desc);
138 
139  edm::ParameterSetDescription collection3Desc;
141  desc.add<edm::ParameterSetDescription>("collection3", collection3Desc);
142 
143  edm::ParameterSetDescription collection4Desc;
145  desc.add<edm::ParameterSetDescription>("collection4", collection4Desc);
146 
147  edm::ParameterSetDescription scalesDesc;
149  desc.add<edm::ParameterSetDescription>("scales", scalesDesc);
150 
151  desc.add<edm::InputTag>("primVertTag");
152 
153  desc.addUntracked<bool>("sanity_checks", false);
154  desc.addUntracked<bool>("inv_mass_checks", false);
155 
156  edm::ParameterSetDescription correl12Desc;
158  desc.add<edm::ParameterSetDescription>("correl12", correl12Desc);
159 
160  edm::ParameterSetDescription correl13Desc;
162  desc.add<edm::ParameterSetDescription>("correl13", correl13Desc);
163 
164  edm::ParameterSetDescription correl23Desc;
166  desc.add<edm::ParameterSetDescription>("correl23", correl23Desc);
167 
168  edm::ParameterSetDescription correl14Desc;
170  desc.add<edm::ParameterSetDescription>("correl14", correl14Desc);
171 
172  edm::ParameterSetDescription correl24Desc;
174  desc.add<edm::ParameterSetDescription>("correl24", correl24Desc);
175 
176  edm::ParameterSetDescription correl34Desc;
178  desc.add<edm::ParameterSetDescription>("correl34", correl34Desc);
179 
180  edm::ParameterSetDescription correl123Desc;
181  L1GT3BodyCut::fillPSetDescription(correl123Desc);
182  desc.add<edm::ParameterSetDescription>("correl123", correl123Desc);
183 
184  edm::ParameterSetDescription correl124Desc;
185  L1GT3BodyCut::fillPSetDescription(correl124Desc);
186  desc.add<edm::ParameterSetDescription>("correl124", correl124Desc);
187 
188  edm::ParameterSetDescription correl134Desc;
189  L1GT3BodyCut::fillPSetDescription(correl134Desc);
190  desc.add<edm::ParameterSetDescription>("correl134", correl134Desc);
191 
192  edm::ParameterSetDescription correl234Desc;
193  L1GT3BodyCut::fillPSetDescription(correl234Desc);
194  desc.add<edm::ParameterSetDescription>("correl234", correl234Desc);
195 
196  L1GTCorrelationalCut::fillLUTDescriptions(desc);
197 
198  descriptions.addWithDefaultLabel(desc);
199 }
void addWithDefaultLabel(ParameterSetDescription const &psetDescription)
void fillPSetDescription(edm::ParameterSetDescription &desc)

◆ filter()

bool L1GTQuadObjectCond::filter ( edm::StreamID  ,
edm::Event event,
edm::EventSetup const &  setup 
) const
overrideprivatevirtual

Implements edm::global::EDFilterBase.

Definition at line 201 of file L1GTQuadObjectCond.cc.

References l1t::L1GTSingleCollectionCut::checkCollection(), l1t::L1GTSingleCollectionCut::checkObject(), l1t::L1GT3BodyCut::checkObjects(), l1t::L1GTCorrelationalCut::checkObjects(), l1t::L1GTSingleCollectionCut::checkPrimaryVertices(), collection1Cuts_, collection2Cuts_, collection3Cuts_, collection4Cuts_, correl123Cuts_, correl124Cuts_, correl12Cuts_, correl134Cuts_, correl13Cuts_, correl14Cuts_, correl234Cuts_, correl23Cuts_, correl24Cuts_, correl34Cuts_, heavyIonCSV_trainingSettings::idx, edm::InputTag::instance(), inv_mass_checks_, eostools::move(), primVertToken_, edm::Handle< T >::product(), l1t::L1GTSingleCollectionCut::tag(), token1_, token2_, token3_, and token4_.

201  {
202  edm::Handle<P2GTCandidateCollection> col1 = event.getHandle(token1_);
203  edm::Handle<P2GTCandidateCollection> col2 = event.getHandle(token2_);
204  edm::Handle<P2GTCandidateCollection> col3 = event.getHandle(token3_);
205  edm::Handle<P2GTCandidateCollection> col4 = event.getHandle(token4_);
206  edm::Handle<P2GTCandidateCollection> primVertCol = event.getHandle(primVertToken_);
207 
208  bool condition_result = false;
209 
210  std::set<std::size_t> triggeredIdcs1;
211  std::set<std::size_t> triggeredIdcs2;
212  std::set<std::size_t> triggeredIdcs3;
213  std::set<std::size_t> triggeredIdcs4;
214 
215  InvariantMassErrorCollection massErrors;
216 
217  for (std::size_t idx1 = 0; idx1 < col1->size(); ++idx1) {
218  bool single1Pass = collection1Cuts_.checkObject(col1->at(idx1));
219  single1Pass &= collection1Cuts_.checkPrimaryVertices(col1->at(idx1), *primVertCol);
220 
221  for (std::size_t idx2 = 0; idx2 < col2->size(); ++idx2) {
222  bool single2Pass = collection2Cuts_.checkObject(col2->at(idx2));
223  single2Pass &= collection2Cuts_.checkPrimaryVertices(col2->at(idx2), *primVertCol);
224 
225  for (std::size_t idx3 = 0; idx3 < col3->size(); ++idx3) {
226  bool single3Pass = collection3Cuts_.checkObject(col3->at(idx3));
227  single3Pass &= collection3Cuts_.checkPrimaryVertices(col3->at(idx3), *primVertCol);
228 
229  for (std::size_t idx4 = 0; idx4 < col4->size(); ++idx4) {
230  // If we're looking at the same collection then we shouldn't use the same object in one comparison.
231  if (col1.product() == col2.product() && idx1 == idx2) {
232  continue;
233  }
234 
235  if (col2.product() == col3.product() && idx2 == idx3) {
236  continue;
237  }
238 
239  if (col1.product() == col3.product() && idx1 == idx3) {
240  continue;
241  }
242 
243  if (col1.product() == col4.product() && idx1 == idx4) {
244  continue;
245  }
246 
247  if (col2.product() == col4.product() && idx2 == idx4) {
248  continue;
249  }
250 
251  if (col3.product() == col4.product() && idx3 == idx4) {
252  continue;
253  }
254 
255  bool pass = single1Pass & single2Pass & single3Pass;
256 
257  pass &= collection4Cuts_.checkObject(col4->at(idx4));
258  pass &= collection4Cuts_.checkPrimaryVertices(col4->at(idx4), *primVertCol);
259  pass &= correl12Cuts_.checkObjects(col1->at(idx1), col2->at(idx2), massErrors);
260  pass &= correl13Cuts_.checkObjects(col1->at(idx1), col3->at(idx3), massErrors);
261  pass &= correl23Cuts_.checkObjects(col2->at(idx2), col3->at(idx3), massErrors);
262  pass &= correl14Cuts_.checkObjects(col1->at(idx1), col4->at(idx4), massErrors);
263  pass &= correl24Cuts_.checkObjects(col2->at(idx2), col4->at(idx4), massErrors);
264  pass &= correl34Cuts_.checkObjects(col3->at(idx3), col4->at(idx4), massErrors);
265  pass &= correl123Cuts_.checkObjects(col1->at(idx1), col2->at(idx2), col3->at(idx3), massErrors);
266  pass &= correl124Cuts_.checkObjects(col1->at(idx1), col2->at(idx2), col4->at(idx4), massErrors);
267  pass &= correl134Cuts_.checkObjects(col1->at(idx1), col3->at(idx3), col4->at(idx4), massErrors);
268  pass &= correl234Cuts_.checkObjects(col2->at(idx2), col3->at(idx3), col4->at(idx4), massErrors);
269 
270  condition_result |= pass;
271 
272  if (pass) {
273  triggeredIdcs1.emplace(idx1);
274 
275  if (col1.product() != col2.product()) {
276  triggeredIdcs2.emplace(idx2);
277  } else {
278  triggeredIdcs1.emplace(idx2);
279  }
280 
281  if (col1.product() != col3.product() && col2.product() != col3.product()) {
282  triggeredIdcs3.emplace(idx3);
283  } else if (col1.product() == col3.product()) {
284  triggeredIdcs1.emplace(idx3);
285  } else {
286  triggeredIdcs2.emplace(idx3);
287  }
288 
289  if (col1.product() != col4.product() && col2.product() != col4.product() &&
290  col3.product() != col4.product()) {
291  triggeredIdcs4.emplace(idx4);
292  } else if (col1.product() == col4.product()) {
293  triggeredIdcs1.emplace(idx4);
294  } else if (col2.product() == col4.product()) {
295  triggeredIdcs2.emplace(idx4);
296  } else {
297  triggeredIdcs3.emplace(idx4);
298  }
299  }
300  }
301  }
302  }
303  }
304 
305  condition_result &= collection1Cuts_.checkCollection(*col1);
306  condition_result &= collection2Cuts_.checkCollection(*col2);
307  condition_result &= collection3Cuts_.checkCollection(*col3);
308  condition_result &= collection4Cuts_.checkCollection(*col4);
309 
310  if (condition_result) {
311  std::unique_ptr<P2GTCandidateVectorRef> triggerCol1 = std::make_unique<P2GTCandidateVectorRef>();
312 
313  for (std::size_t idx : triggeredIdcs1) {
314  triggerCol1->push_back(P2GTCandidateRef(col1, idx));
315  }
316  event.put(std::move(triggerCol1), collection1Cuts_.tag().instance());
317 
318  if (col1.product() != col2.product()) {
319  std::unique_ptr<P2GTCandidateVectorRef> triggerCol2 = std::make_unique<P2GTCandidateVectorRef>();
320 
321  for (std::size_t idx : triggeredIdcs2) {
322  triggerCol2->push_back(P2GTCandidateRef(col2, idx));
323  }
324  event.put(std::move(triggerCol2), collection2Cuts_.tag().instance());
325  }
326 
327  if (col1.product() != col3.product() && col2.product() != col3.product()) {
328  std::unique_ptr<P2GTCandidateVectorRef> triggerCol3 = std::make_unique<P2GTCandidateVectorRef>();
329 
330  for (std::size_t idx : triggeredIdcs3) {
331  triggerCol3->push_back(P2GTCandidateRef(col3, idx));
332  }
333  event.put(std::move(triggerCol3), collection3Cuts_.tag().instance());
334  }
335 
336  if (col1.product() != col4.product() && col2.product() != col4.product() && col3.product() != col4.product()) {
337  std::unique_ptr<P2GTCandidateVectorRef> triggerCol4 = std::make_unique<P2GTCandidateVectorRef>();
338 
339  for (std::size_t idx : triggeredIdcs4) {
340  triggerCol4->push_back(P2GTCandidateRef(col4, idx));
341  }
342  event.put(std::move(triggerCol4), collection4Cuts_.tag().instance());
343  }
344  }
345 
346  if (inv_mass_checks_) {
347  event.put(std::make_unique<InvariantMassErrorCollection>(std::move(massErrors)), "");
348  }
349 
350  return condition_result;
351 }
const L1GTSingleCollectionCut collection2Cuts_
bool checkObject(const P2GTCandidate &obj) const
const edm::EDGetTokenT< P2GTCandidateCollection > token4_
std::string const & instance() const
Definition: InputTag.h:37
T const * product() const
Definition: Handle.h:70
const edm::InputTag & tag() const
edm::Ref< P2GTCandidateCollection > P2GTCandidateRef
Definition: P2GTCandidate.h:18
const L1GTCorrelationalCut correl23Cuts_
bool checkPrimaryVertices(const P2GTCandidate &obj, const P2GTCandidateCollection &primVertCol) const
const L1GTCorrelationalCut correl24Cuts_
const edm::EDGetTokenT< P2GTCandidateCollection > token1_
std::vector< InvariantMassError > InvariantMassErrorCollection
bool checkObjects(const P2GTCandidate &obj1, const P2GTCandidate &obj2, InvariantMassErrorCollection &massErrors) const
const L1GT3BodyCut correl123Cuts_
bool checkCollection(const P2GTCandidateCollection &col) const
const edm::EDGetTokenT< P2GTCandidateCollection > primVertToken_
const edm::EDGetTokenT< P2GTCandidateCollection > token3_
const L1GTSingleCollectionCut collection3Cuts_
const L1GTSingleCollectionCut collection1Cuts_
const L1GTCorrelationalCut correl12Cuts_
const L1GT3BodyCut correl134Cuts_
const L1GT3BodyCut correl234Cuts_
const L1GTCorrelationalCut correl13Cuts_
const L1GTCorrelationalCut correl14Cuts_
const edm::EDGetTokenT< P2GTCandidateCollection > token2_
bool checkObjects(const P2GTCandidate &obj1, const P2GTCandidate &obj2, const P2GTCandidate &obj3, InvariantMassErrorCollection &massErrors) const
Definition: L1GT3BodyCut.h:79
const L1GT3BodyCut correl124Cuts_
const L1GTSingleCollectionCut collection4Cuts_
const L1GTCorrelationalCut correl34Cuts_
def move(src, dest)
Definition: eostools.py:511

Member Data Documentation

◆ collection1Cuts_

const L1GTSingleCollectionCut L1GTQuadObjectCond::collection1Cuts_
private

Definition at line 40 of file L1GTQuadObjectCond.cc.

Referenced by filter(), and L1GTQuadObjectCond().

◆ collection2Cuts_

const L1GTSingleCollectionCut L1GTQuadObjectCond::collection2Cuts_
private

Definition at line 41 of file L1GTQuadObjectCond.cc.

Referenced by filter(), and L1GTQuadObjectCond().

◆ collection3Cuts_

const L1GTSingleCollectionCut L1GTQuadObjectCond::collection3Cuts_
private

Definition at line 42 of file L1GTQuadObjectCond.cc.

Referenced by filter(), and L1GTQuadObjectCond().

◆ collection4Cuts_

const L1GTSingleCollectionCut L1GTQuadObjectCond::collection4Cuts_
private

Definition at line 43 of file L1GTQuadObjectCond.cc.

Referenced by filter(), and L1GTQuadObjectCond().

◆ correl123Cuts_

const L1GT3BodyCut L1GTQuadObjectCond::correl123Cuts_
private

Definition at line 55 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl124Cuts_

const L1GT3BodyCut L1GTQuadObjectCond::correl124Cuts_
private

Definition at line 56 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl12Cuts_

const L1GTCorrelationalCut L1GTQuadObjectCond::correl12Cuts_
private

Definition at line 48 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl134Cuts_

const L1GT3BodyCut L1GTQuadObjectCond::correl134Cuts_
private

Definition at line 57 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl13Cuts_

const L1GTCorrelationalCut L1GTQuadObjectCond::correl13Cuts_
private

Definition at line 49 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl14Cuts_

const L1GTCorrelationalCut L1GTQuadObjectCond::correl14Cuts_
private

Definition at line 51 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl234Cuts_

const L1GT3BodyCut L1GTQuadObjectCond::correl234Cuts_
private

Definition at line 58 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl23Cuts_

const L1GTCorrelationalCut L1GTQuadObjectCond::correl23Cuts_
private

Definition at line 50 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl24Cuts_

const L1GTCorrelationalCut L1GTQuadObjectCond::correl24Cuts_
private

Definition at line 52 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ correl34Cuts_

const L1GTCorrelationalCut L1GTQuadObjectCond::correl34Cuts_
private

Definition at line 53 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ enable_sanity_checks_

const bool L1GTQuadObjectCond::enable_sanity_checks_
private

Definition at line 45 of file L1GTQuadObjectCond.cc.

◆ inv_mass_checks_

const bool L1GTQuadObjectCond::inv_mass_checks_
private

Definition at line 46 of file L1GTQuadObjectCond.cc.

Referenced by filter(), and L1GTQuadObjectCond().

◆ primVertToken_

const edm::EDGetTokenT<P2GTCandidateCollection> L1GTQuadObjectCond::primVertToken_
private

Definition at line 64 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ scales_

const L1GTScales L1GTQuadObjectCond::scales_
private

Definition at line 38 of file L1GTQuadObjectCond.cc.

◆ token1_

const edm::EDGetTokenT<P2GTCandidateCollection> L1GTQuadObjectCond::token1_
private

Definition at line 60 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ token2_

const edm::EDGetTokenT<P2GTCandidateCollection> L1GTQuadObjectCond::token2_
private

Definition at line 61 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ token3_

const edm::EDGetTokenT<P2GTCandidateCollection> L1GTQuadObjectCond::token3_
private

Definition at line 62 of file L1GTQuadObjectCond.cc.

Referenced by filter().

◆ token4_

const edm::EDGetTokenT<P2GTCandidateCollection> L1GTQuadObjectCond::token4_
private

Definition at line 63 of file L1GTQuadObjectCond.cc.

Referenced by filter().