CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Static Public Member Functions | Private Attributes
HLTEgammaAllCombMassFilter Class Reference

#include <HLTEgammaAllCombMassFilter.h>

Inheritance diagram for HLTEgammaAllCombMassFilter:
HLTFilter edm::global::EDFilter<> edm::global::EDFilterBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

 HLTEgammaAllCombMassFilter (const edm::ParameterSet &)
 
virtual bool hltFilter (edm::Event &, const edm::EventSetup &, trigger::TriggerFilterObjectWithRefs &filterproduct) const override
 
 ~HLTEgammaAllCombMassFilter ()
 
- Public Member Functions inherited from HLTFilter
 HLTFilter (const edm::ParameterSet &config)
 
int module (edm::Event const &) const
 
const std::string * moduleLabel () const
 
int path (edm::Event const &) const
 
const std::string * pathName (edm::Event const &) const
 
std::pair< int, int > pmid (edm::Event const &) const
 
bool saveTags () const
 
virtual ~HLTFilter ()
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
- Public Member Functions inherited from edm::global::EDFilterBase
 EDFilterBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDFilterBase ()
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription
const &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
static void getP4OfLegCands (const edm::Event &iEvent, const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > &filterToken, std::vector< math::XYZTLorentzVector > &p4s)
 
- Static Public Member Functions inherited from HLTFilter
static void makeHLTFilterDescription (edm::ParameterSetDescription &desc)
 
- 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 Attributes

edm::InputTag firstLegLastFilterTag_
 
edm::EDGetTokenT
< trigger::TriggerFilterObjectWithRefs
firstLegLastFilterToken_
 
double minMass_
 
edm::InputTag secondLegLastFilterTag_
 
edm::EDGetTokenT
< trigger::TriggerFilterObjectWithRefs
secondLegLastFilterToken_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
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 ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
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)
 

Detailed Description

$Id: HLTEgammaAllCombMassFilter.cc,

Author
Chris Tully (Princeton)

Definition at line 18 of file HLTEgammaAllCombMassFilter.h.

Constructor & Destructor Documentation

HLTEgammaAllCombMassFilter::HLTEgammaAllCombMassFilter ( const edm::ParameterSet iConfig)
explicit

Definition at line 23 of file HLTEgammaAllCombMassFilter.cc.

References firstLegLastFilterTag_, firstLegLastFilterToken_, edm::ParameterSet::getParameter(), minMass_, secondLegLastFilterTag_, and secondLegLastFilterToken_.

23  : HLTFilter(iConfig)
24 {
25  firstLegLastFilterTag_ = iConfig.getParameter<edm::InputTag>("firstLegLastFilter");
26  secondLegLastFilterTag_= iConfig.getParameter<edm::InputTag>("secondLegLastFilter");
27  minMass_ = iConfig.getParameter<double> ("minMass");
28  firstLegLastFilterToken_ = consumes<trigger::TriggerFilterObjectWithRefs>(firstLegLastFilterTag_);
29  secondLegLastFilterToken_ = consumes<trigger::TriggerFilterObjectWithRefs>(secondLegLastFilterTag_);
30 }
T getParameter(std::string const &) const
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > firstLegLastFilterToken_
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > secondLegLastFilterToken_
HLTFilter(const edm::ParameterSet &config)
Definition: HLTFilter.cc:20
HLTEgammaAllCombMassFilter::~HLTEgammaAllCombMassFilter ( )

Definition at line 32 of file HLTEgammaAllCombMassFilter.cc.

32 {}

Member Function Documentation

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

Definition at line 35 of file HLTEgammaAllCombMassFilter.cc.

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), HLT_25ns14e33_v1_cff::InputTag, and HLTFilter::makeHLTFilterDescription().

35  {
38  desc.add<edm::InputTag>("firstLegLastFilter",edm::InputTag("firstFilter"));
39  desc.add<edm::InputTag>("secondLegLastFilter",edm::InputTag("secondFilter"));
40  desc.add<double>("minMass",-1.0);
41  descriptions.add("hltEgammaAllCombMassFilter",desc);
42 }
ParameterDescriptionBase * add(U const &iLabel, T const &value)
static void makeHLTFilterDescription(edm::ParameterSetDescription &desc)
Definition: HLTFilter.cc:29
void add(std::string const &label, ParameterSetDescription const &psetDescription)
void HLTEgammaAllCombMassFilter::getP4OfLegCands ( const edm::Event iEvent,
const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > &  filterToken,
std::vector< math::XYZTLorentzVector > &  p4s 
)
static

Definition at line 88 of file HLTEgammaAllCombMassFilter.cc.

References edm::Event::getByToken(), p4, trigger::TriggerCluster, trigger::TriggerElectron, and trigger::TriggerPhoton.

Referenced by hltFilter().

89 {
91  iEvent.getByToken(filterToken,filterOutput);
92 
93  //its easier on the if statement flow if I try everything at once, shouldnt add to timing
94  std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > phoCands;
95  filterOutput->getObjects(trigger::TriggerPhoton,phoCands);
96  std::vector<edm::Ref<reco::RecoEcalCandidateCollection> > clusCands;
97  filterOutput->getObjects(trigger::TriggerCluster,clusCands);
98  std::vector<edm::Ref<reco::ElectronCollection> > eleCands;
99  filterOutput->getObjects(trigger::TriggerElectron,eleCands);
100 
101  if(!phoCands.empty()){ //its photons
102  for(size_t candNr=0;candNr<phoCands.size();candNr++){
103  p4s.push_back(phoCands[candNr]->p4());
104  }
105  }else if(!clusCands.empty()){ //try trigger cluster (should never be this, at the time of writing (17/1/11) this would indicate an error)
106  for(size_t candNr=0;candNr<clusCands.size();candNr++){
107  p4s.push_back(clusCands[candNr]->p4());
108  }
109  }else if(!eleCands.empty()){
110  for(size_t candNr=0;candNr<eleCands.size();candNr++){
111  p4s.push_back(eleCands[candNr]->p4());
112  }
113  }
114 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:464
double p4[4]
Definition: TauolaWrapper.h:92
bool HLTEgammaAllCombMassFilter::hltFilter ( edm::Event iEvent,
const edm::EventSetup iSetup,
trigger::TriggerFilterObjectWithRefs filterproduct 
) const
overridevirtual

Implements HLTFilter.

Definition at line 47 of file HLTEgammaAllCombMassFilter.cc.

References accept(), firstLegLastFilterToken_, getP4OfLegCands(), minMass_, and secondLegLastFilterToken_.

48 {
49  //right, issue 1, we dont know if this is a TriggerElectron, TriggerPhoton, TriggerCluster (should never be a TriggerCluster btw as that implies the 4-vectors are not stored in AOD)
50 
51  //trigger::TriggerObjectType firstLegTrigType;
52  std::vector<math::XYZTLorentzVector> firstLegP4s;
53 
54  //trigger::TriggerObjectType secondLegTrigType;
55  std::vector<math::XYZTLorentzVector> secondLegP4s;
56 
58 
59  getP4OfLegCands(iEvent,firstLegLastFilterToken_,firstLegP4s);
60  getP4OfLegCands(iEvent,secondLegLastFilterToken_,secondLegP4s);
61 
62  bool accept=false;
63  for(size_t firstLegNr=0;firstLegNr<firstLegP4s.size();firstLegNr++){
64  for(size_t secondLegNr=0;secondLegNr<secondLegP4s.size();secondLegNr++){
65  math::XYZTLorentzVector pairP4 = firstLegP4s[firstLegNr] + secondLegP4s[secondLegNr];
66  double mass = pairP4.M();
67  if(mass>=minMass_) accept=true;
68  }
69  }
70  for(size_t firstLegNr=0;firstLegNr<firstLegP4s.size();firstLegNr++){
71  for(size_t secondLegNr=0;secondLegNr<firstLegP4s.size();secondLegNr++){
72  math::XYZTLorentzVector pairP4 = firstLegP4s[firstLegNr] + firstLegP4s[secondLegNr];
73  double mass = pairP4.M();
74  if(mass>=minMass_) accept=true;
75  }
76  }
77  for(size_t firstLegNr=0;firstLegNr<secondLegP4s.size();firstLegNr++){
78  for(size_t secondLegNr=0;secondLegNr<secondLegP4s.size();secondLegNr++){
79  math::XYZTLorentzVector pairP4 = secondLegP4s[firstLegNr] + secondLegP4s[secondLegNr];
80  double mass = pairP4.M();
81  if(mass>=minMass_) accept=true;
82  }
83  }
84 
85  return accept;
86 }
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > firstLegLastFilterToken_
edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > secondLegLastFilterToken_
bool accept(const edm::Event &event, const edm::TriggerResults &triggerTable, const std::string &triggerPath)
Definition: TopDQMHelpers.h:24
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
static void getP4OfLegCands(const edm::Event &iEvent, const edm::EDGetTokenT< trigger::TriggerFilterObjectWithRefs > &filterToken, std::vector< math::XYZTLorentzVector > &p4s)

Member Data Documentation

edm::InputTag HLTEgammaAllCombMassFilter::firstLegLastFilterTag_
private

Definition at line 28 of file HLTEgammaAllCombMassFilter.h.

Referenced by HLTEgammaAllCombMassFilter().

edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTEgammaAllCombMassFilter::firstLegLastFilterToken_
private

Definition at line 30 of file HLTEgammaAllCombMassFilter.h.

Referenced by HLTEgammaAllCombMassFilter(), and hltFilter().

double HLTEgammaAllCombMassFilter::minMass_
private

Definition at line 32 of file HLTEgammaAllCombMassFilter.h.

Referenced by HLTEgammaAllCombMassFilter(), and hltFilter().

edm::InputTag HLTEgammaAllCombMassFilter::secondLegLastFilterTag_
private

Definition at line 29 of file HLTEgammaAllCombMassFilter.h.

Referenced by HLTEgammaAllCombMassFilter().

edm::EDGetTokenT<trigger::TriggerFilterObjectWithRefs> HLTEgammaAllCombMassFilter::secondLegLastFilterToken_
private

Definition at line 31 of file HLTEgammaAllCombMassFilter.h.

Referenced by HLTEgammaAllCombMassFilter(), and hltFilter().