CMS 3D CMS Logo

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

Public Member Functions

 ModelpMSSMFilter (const edm::ParameterSet &)
 
 ~ModelpMSSMFilter () override
 
- Public Member Functions inherited from edm::global::EDFilter<>
 EDFilter ()=default
 
bool hasAbilityToProduceInLumis () const final
 
bool hasAbilityToProduceInRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const 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
 
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)
 
 ~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
 
ESProxyIndex const * esGetTokenIndices (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::vector< ModuleDescription const * > &modules, 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
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

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

Private Attributes

double elEtaCut_
 
double elPtCut_
 
double gammaEtaCut_
 
double gammaPtCut_
 
double genHTcut_
 
double jetEtaCut_
 
double jetPtCut_
 
double looseelPtCut_
 
double loosegammaPtCut_
 
double loosemuPtCut_
 
double muEtaCut_
 
double muPtCut_
 
double tauEtaCut_
 
double tauPtCut_
 
edm::EDGetTokenT< reco::GenJetCollectiontoken2_
 
edm::EDGetTokenT< reco::GenParticleCollectiontoken_
 
double veryloosegammaPtCut_
 

Additional Inherited Members

- Public Types inherited from edm::global::EDFilterBase
typedef EDFilterBase ModuleType
 
- Public Types inherited from edm::ProducerBase
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
 
- Static Public Member Functions inherited from edm::global::EDFilterBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
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

Definition at line 49 of file ModelpMSSMFilter.cc.

Constructor & Destructor Documentation

ModelpMSSMFilter::ModelpMSSMFilter ( const edm::ParameterSet params)
explicit

Definition at line 65 of file ModelpMSSMFilter.cc.

66  : token_(consumes<reco::GenParticleCollection>(params.getParameter<edm::InputTag>("gpssrc"))),
67  token2_(consumes<reco::GenJetCollection>(params.getParameter<edm::InputTag>("jetsrc"))),
68  muPtCut_(params.getParameter<double>("muPtCut")),
69  muEtaCut_(params.getParameter<double>("muEtaCut")),
70  tauPtCut_(params.getParameter<double>("tauPtCut")),
71  tauEtaCut_(params.getParameter<double>("tauEtaCut")),
72  elPtCut_(params.getParameter<double>("elPtCut")),
73  elEtaCut_(params.getParameter<double>("elEtaCut")),
74  gammaPtCut_(params.getParameter<double>("gammaPtCut")),
75  gammaEtaCut_(params.getParameter<double>("gammaEtaCut")),
76  loosemuPtCut_(params.getParameter<double>("loosemuPtCut")),
77  looseelPtCut_(params.getParameter<double>("looseelPtCut")),
78  loosegammaPtCut_(params.getParameter<double>("loosegammaPtCut")),
79  veryloosegammaPtCut_(params.getParameter<double>("veryloosegammaPtCut")),
80  jetPtCut_(params.getParameter<double>("jetPtCut")),
81  jetEtaCut_(params.getParameter<double>("jetEtaCut")),
82  genHTcut_(params.getParameter<double>("genHTcut")) {}
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::GenJetCollection > token2_
edm::EDGetTokenT< reco::GenParticleCollection > token_
ModelpMSSMFilter::~ModelpMSSMFilter ( )
override

Definition at line 85 of file ModelpMSSMFilter.cc.

85 {}

Member Function Documentation

bool ModelpMSSMFilter::filter ( edm::StreamID  ,
edm::Event evt,
const edm::EventSetup params 
) const
overrideprivate

Definition at line 87 of file ModelpMSSMFilter.cc.

References reco::CompositeRefCandidateT< D >::daughter(), DEFINE_FWK_MODULE, elEtaCut_, elPtCut_, reco::LeafCandidate::eta(), gammaEtaCut_, gammaPtCut_, genHTcut_, edm::Event::getByToken(), runTauDisplay::gp, reco::GenParticle::isLastCopy(), jetEtaCut_, jetPtCut_, looseelPtCut_, loosegammaPtCut_, loosemuPtCut_, muEtaCut_, muPtCut_, reco::CompositeRefCandidateT< D >::numberOfDaughters(), reco::LeafCandidate::pdgId(), funct::pow(), reco::LeafCandidate::pt(), mathSSE::sqrt(), tauEtaCut_, tauPtCut_, token2_, token_, veryloosegammaPtCut_, reco::Candidate::vx(), reco::LeafCandidate::vx(), reco::Candidate::vy(), and reco::LeafCandidate::vy().

87  {
88  using namespace std;
89  using namespace edm;
90  using namespace reco;
92  evt.getByToken(token_, gps);
94  evt.getByToken(token2_, generatedJets);
95  int looseel = 0;
96  int loosemu = 0;
97  int loosegamma = 0;
98  int veryloosegamma = 0;
99  float decaylength;
100  for (std::vector<reco::GenParticle>::const_iterator it = gps->begin(); it != gps->end(); ++it) {
101  const reco::GenParticle& gp = *it;
102  if (gp.isLastCopy()) {
103  if (fabs(gp.pdgId()) == 15) {
104  if (gp.pt() > tauPtCut_ && fabs(gp.eta()) < tauEtaCut_) {
105  return true;
106  }
107  }
108  if (fabs(gp.pdgId()) == 13) {
109  if (gp.pt() > muPtCut_ && fabs(gp.eta()) < muEtaCut_) {
110  return true;
111  }
112  if (gp.pt() > loosemuPtCut_ && fabs(gp.eta()) < muEtaCut_) {
113  loosemu += 1;
114  }
115  }
116  if (fabs(gp.pdgId()) == 11) {
117  if (gp.pt() > elPtCut_ && fabs(gp.eta()) < elEtaCut_) {
118  return true;
119  }
120  if (gp.pt() > looseelPtCut_ && fabs(gp.eta()) < elEtaCut_) {
121  looseel += 1;
122  }
123  }
124  if (fabs(gp.pdgId()) == 22) {
125  if (gp.pt() > gammaPtCut_ && fabs(gp.eta()) < gammaEtaCut_) {
126  return true;
127  }
128  if (gp.pt() > loosegammaPtCut_ && fabs(gp.eta()) < gammaEtaCut_) {
129  loosegamma += 1;
130  } else {
131  if (gp.pt() > veryloosegammaPtCut_ && fabs(gp.eta()) < gammaEtaCut_) {
132  veryloosegamma += 1;
133  }
134  }
135  }
136  if (fabs(gp.pdgId()) == 1000024) {
137  if (gp.numberOfDaughters() > 0) {
138  decaylength = sqrt(pow(gp.vx() - gp.daughter(0)->vx(), 2) + pow(gp.vy() - gp.daughter(0)->vy(), 2));
139  if (decaylength > 300) {
140  return true;
141  }
142  } else {
143  return true;
144  }
145  }
146  }
147  }
148  if (looseel + loosemu + loosegamma > 1) {
149  return true;
150  }
151  if (loosegamma > 0 && veryloosegamma > 0) {
152  return true;
153  }
154  double genHT = 0.0;
155  for (std::vector<reco::GenJet>::const_iterator it = generatedJets->begin(); it != generatedJets->end(); ++it) {
156  const reco::GenJet& gjet = *it;
157  //Add GenJet pt to genHT if GenJet complies with given HT definition
158  if (gjet.pt() > jetPtCut_ && fabs(gjet.eta()) < jetEtaCut_) {
159  genHT += gjet.pt();
160  }
161  }
162  return (genHT > genHTcut_);
163 }
int pdgId() const final
PDG identifier.
const Candidate * daughter(size_type) const override
return daughter at a given position, i = 0, ... numberOfDaughters() - 1 (read only mode) ...
double eta() const final
momentum pseudorapidity
virtual double vx() const =0
x coordinate of vertex position
double vy() const override
y coordinate of vertex position
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
bool isLastCopy() const
Definition: GenParticle.h:98
double pt() const final
transverse momentum
virtual double vy() const =0
y coordinate of vertex position
edm::EDGetTokenT< reco::GenJetCollection > token2_
edm::EDGetTokenT< reco::GenParticleCollection > token_
T sqrt(T t)
Definition: SSEVec.h:18
Jets made from MC generator particles.
Definition: GenJet.h:25
size_t numberOfDaughters() const override
number of daughters
fixed size matrix
HLT enums.
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
double vx() const override
x coordinate of vertex position

Member Data Documentation

double ModelpMSSMFilter::elEtaCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::elPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::gammaEtaCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::gammaPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::genHTcut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::jetEtaCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::jetPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::looseelPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::loosegammaPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::loosemuPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::muEtaCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::muPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::tauEtaCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::tauPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().

edm::EDGetTokenT<reco::GenJetCollection> ModelpMSSMFilter::token2_
private

Definition at line 59 of file ModelpMSSMFilter.cc.

Referenced by filter().

edm::EDGetTokenT<reco::GenParticleCollection> ModelpMSSMFilter::token_
private

Definition at line 58 of file ModelpMSSMFilter.cc.

Referenced by filter().

double ModelpMSSMFilter::veryloosegammaPtCut_
private

Definition at line 60 of file ModelpMSSMFilter.cc.

Referenced by filter().