CMS 3D CMS Logo

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

#include <davidlw/HighMultiplicityGenFilter/src/HighMultiplicityGenFilter.cc>

Inheritance diagram for HighMultiplicityGenFilter:
edm::EDFilter edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

 HighMultiplicityGenFilter (const edm::ParameterSet &)
 
 ~HighMultiplicityGenFilter ()
 
- Public Member Functions inherited from edm::EDFilter
 EDFilter ()
 
virtual ~EDFilter ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Member Functions

virtual void beginJob ()
 
virtual void endJob ()
 
virtual bool filter (edm::Event &, const edm::EventSetup &)
 

Private Attributes

double etaMax
 
int nAccepted
 
int nMin
 
edm::ESHandle< ParticleDataTablepdt
 
double ptMin
 

Additional Inherited Members

- Public Types inherited from edm::EDFilter
typedef EDFilter ModuleType
 
typedef WorkerT< EDFilterWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDFilter
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDFilter
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 38 of file HighMultiplicityGenFilter.cc.

Constructor & Destructor Documentation

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

Definition at line 67 of file HighMultiplicityGenFilter.cc.

References nAccepted.

67  :
68 etaMax(iConfig.getUntrackedParameter<double>("etaMax")),
69 ptMin(iConfig.getUntrackedParameter<double>("ptMin")),
70 nMin(iConfig.getUntrackedParameter<int>("nMin"))
71 {
72  //now do what ever initialization is needed
73  nAccepted = 0;
74 }
T getUntrackedParameter(std::string const &, T const &) const
HighMultiplicityGenFilter::~HighMultiplicityGenFilter ( )

Definition at line 77 of file HighMultiplicityGenFilter.cc.

78 {
79 
80  // do anything here that needs to be done at desctruction time
81  // (e.g. close files, deallocate resources etc.)
82 
83 }

Member Function Documentation

void HighMultiplicityGenFilter::beginJob ( void  )
privatevirtual

Reimplemented from edm::EDFilter.

Definition at line 125 of file HighMultiplicityGenFilter.cc.

126 {}
void HighMultiplicityGenFilter::endJob ( void  )
privatevirtual

Reimplemented from edm::EDFilter.

Definition at line 130 of file HighMultiplicityGenFilter.cc.

References gather_cfg::cout, nAccepted, and nMin.

130  {
131  std::cout<<"There are "<<nAccepted<<" events with multiplicity greater than "<<nMin<<std::endl;
132 }
tuple cout
Definition: gather_cfg.py:121
bool HighMultiplicityGenFilter::filter ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDFilter.

Definition at line 92 of file HighMultiplicityGenFilter.cc.

References abs, DeDxDiscriminatorTools::charge(), gather_cfg::cout, etaMax, edm::Event::getByLabel(), edm::EventSetup::getData(), nAccepted, nMin, AlCaHLTBitMon_ParallelJobs::p, pdt, evf::utils::pid, and ptMin.

93 {
94 
95  bool accepted = false;
97  iEvent.getByLabel("generator", evt);
98 
99  iSetup.getData(pdt);
100 
101  const HepMC::GenEvent * myGenEvent = evt->GetEvent();
102 
103  int nMult=0;
104  for ( HepMC::GenEvent::particle_const_iterator p = myGenEvent->particles_begin(); p != myGenEvent->particles_end(); ++p ) {
105 
106  if((*p)->status()!=1) continue;
107 
108  double charge = 0;
109  int pid = (*p)->pdg_id();
110  if(abs(pid) > 100000) { std::cout<<"pid="<<pid<<" status="<<(*p)->status()<<std::endl; continue; }
111  const ParticleData* part = pdt->particle(pid);
112  if(part) charge = part->charge();
113  if(charge == 0) continue;
114 
115  if (
116  (*p)->momentum().perp() > ptMin
117  && fabs((*p)->momentum().eta()) < etaMax ) nMult++;
118  }
119  if(nMult>=nMin) { nAccepted++; accepted = true; }
120  return accepted;
121 }
#define abs(x)
Definition: mlp_lapack.h:159
double charge(const std::vector< uint8_t > &Ampls)
void getData(T &iHolder) const
Definition: EventSetup.h:67
edm::ESHandle< ParticleDataTable > pdt
HepPDT::ParticleData ParticleData
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
part
Definition: HCALResponse.h:21
tuple cout
Definition: gather_cfg.py:121

Member Data Documentation

double HighMultiplicityGenFilter::etaMax
private

Definition at line 50 of file HighMultiplicityGenFilter.cc.

Referenced by filter().

int HighMultiplicityGenFilter::nAccepted
private

Definition at line 53 of file HighMultiplicityGenFilter.cc.

Referenced by endJob(), filter(), and HighMultiplicityGenFilter().

int HighMultiplicityGenFilter::nMin
private

Definition at line 52 of file HighMultiplicityGenFilter.cc.

Referenced by endJob(), and filter().

edm::ESHandle<ParticleDataTable> HighMultiplicityGenFilter::pdt
private

Definition at line 49 of file HighMultiplicityGenFilter.cc.

Referenced by filter().

double HighMultiplicityGenFilter::ptMin
private

Definition at line 51 of file HighMultiplicityGenFilter.cc.

Referenced by filter().