CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
KineParticleFilter Class Reference

#include <KineParticleFilter.h>

Public Member Functions

bool acceptParticle (const RawParticle &p) const
 
bool acceptVertex (const math::XYZTLorentzVector &p) const
 
 KineParticleFilter (const edm::ParameterSet &kine)
 
 ~KineParticleFilter ()
 

Private Attributes

double chargedPtMin2
 
double cos2ThetaMax
 
double EMin
 
double protonEMin
 
double vertexRMax2
 
double vertexZMax
 

Detailed Description

Definition at line 11 of file KineParticleFilter.h.

Constructor & Destructor Documentation

KineParticleFilter::KineParticleFilter ( const edm::ParameterSet kine)

Definition at line 5 of file KineParticleFilter.cc.

References particleFlowSimParticle_cfi::chargedPtMin, chargedPtMin2, cos2ThetaMax, EMin, ALCARECOTkAlBeamHalo_cff::etaMax, JetChargeProducer_cfi::exp, edm::ParameterSet::getParameter(), protonEMin, vertexRMax2, and vertexZMax.

6 {
7  // Charged particles must have pt greater than chargedPtMin [GeV]
8  double chargedPtMin = cfg.getParameter<double>("chargedPtMin");
9  chargedPtMin2 = chargedPtMin*chargedPtMin;
10 
11  // Particles must have energy greater than EMin [GeV]
12  EMin = cfg.getParameter<double>("EMin");
13 
14  // Allow *ALL* protons with energy > protonEMin
15  protonEMin = cfg.getParameter<double>("protonEMin");
16 
17  // Particles must have abs(eta) < etaMax (if close enough to 0,0,0)
18  double etaMax = cfg.getParameter<double>("etaMax");
19  cos2ThetaMax = (std::exp(2.*etaMax)-1.) / (std::exp(2.*etaMax)+1.);
20  cos2ThetaMax *= cos2ThetaMax;
21 
22  // Particles must have vertex inside the volume enclosed by ECAL
23  double vertexRMax = cfg.getParameter<double>("rMax");
24  vertexRMax2 = vertexRMax*vertexRMax;
25  vertexZMax = cfg.getParameter<double>("zMax");
26 
27 }
KineParticleFilter::~KineParticleFilter ( )
inline

Definition at line 16 of file KineParticleFilter.h.

References AlCaHLTBitMon_ParallelJobs::p.

16 {;}

Member Function Documentation

bool KineParticleFilter::acceptParticle ( const RawParticle p) const

Definition at line 29 of file KineParticleFilter.cc.

References funct::abs(), acceptVertex(), RawParticle::charge(), chargedPtMin2, RawParticle::cos2Theta(), cos2ThetaMax, RawParticle::E(), EMin, RawParticle::Perp2(), RawParticle::pid(), protonEMin, and RawParticle::vertex().

Referenced by TrajectoryManager::reconstruct().

30 {
31 
32  int pId = abs(particle.pid());
33 
34  // skipp invisible particles
35  if(pId == 12 || pId == 14 || pId == 16 || pId == 1000022)
36  {
37  return false;
38  }
39 
40  // keep all high-energy protons
41  else if(pId == 2212 && particle.E() >= protonEMin)
42  {
43  return true;
44  }
45 
46  // cut on the energy
47  else if( particle.E() < EMin)
48  {
49  return false;
50  }
51 
52  // cut on pt of charged particles
53  else if( particle.charge()!=0 && particle.Perp2()<chargedPtMin2)
54  {
55  return false;
56  }
57 
58  // cut on eta if the origin vertex is close to the beam
59  else if( particle.vertex().Perp2() < 25. && particle.cos2Theta() > cos2ThetaMax)
60  {
61  return false;
62  }
63 
64 
65 
66  // particles must have vertex in volume enclosed by ECAL
67  return acceptVertex(particle.vertex());
68 }
bool acceptVertex(const math::XYZTLorentzVector &p) const
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
bool KineParticleFilter::acceptVertex ( const math::XYZTLorentzVector p) const

Definition at line 71 of file KineParticleFilter.cc.

References vertexRMax2, and vertexZMax.

Referenced by acceptParticle().

72 {
73  return vertex.Perp2() < vertexRMax2 && fabs(vertex.Z()) < vertexZMax;
74 }

Member Data Documentation

double KineParticleFilter::chargedPtMin2
private

Definition at line 24 of file KineParticleFilter.h.

Referenced by acceptParticle(), and KineParticleFilter().

double KineParticleFilter::cos2ThetaMax
private

Definition at line 25 of file KineParticleFilter.h.

Referenced by acceptParticle(), and KineParticleFilter().

double KineParticleFilter::EMin
private

Definition at line 24 of file KineParticleFilter.h.

Referenced by acceptParticle(), and KineParticleFilter().

double KineParticleFilter::protonEMin
private

Definition at line 24 of file KineParticleFilter.h.

Referenced by acceptParticle(), and KineParticleFilter().

double KineParticleFilter::vertexRMax2
private

Definition at line 26 of file KineParticleFilter.h.

Referenced by acceptVertex(), and KineParticleFilter().

double KineParticleFilter::vertexZMax
private

Definition at line 26 of file KineParticleFilter.h.

Referenced by acceptVertex(), and KineParticleFilter().