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
reco::V0Filter Class Reference

#include <V0Filter.h>

Public Member Functions

bool operator() (const reco::TrackRef *tracks, unsigned int n) const
 
bool operator() (const reco::Track *tracks, unsigned int n) const
 
bool operator() (const std::vector< reco::TrackRef > &tracks) const
 
bool operator() (const std::vector< reco::Track > &tracks) const
 
 V0Filter (const edm::ParameterSet &params)
 
 ~V0Filter ()
 

Private Member Functions

bool operator() (const reco::Track **tracks, unsigned int n) const
 

Private Attributes

double k0sMassWindow
 

Detailed Description

Definition at line 12 of file V0Filter.h.

Constructor & Destructor Documentation

V0Filter::V0Filter ( const edm::ParameterSet params)

Definition at line 16 of file V0Filter.cc.

16  :
17  k0sMassWindow(params.getParameter<double>("k0sMassWindow"))
18 {
19 }
T getParameter(std::string const &) const
double k0sMassWindow
Definition: V0Filter.h:32
reco::V0Filter::~V0Filter ( )
inline

Definition at line 15 of file V0Filter.h.

15 {}

Member Function Documentation

bool V0Filter::operator() ( const reco::TrackRef tracks,
unsigned int  n 
) const

Definition at line 53 of file V0Filter.cc.

References i, and n.

54 {
55  std::vector<const reco::Track*> trackPtrs(n);
56  for(unsigned int i = 0; i < n; i++)
57  trackPtrs[i] = &*tracks[i];
58 
59  return (*this)(&trackPtrs[0], n);
60 }
int i
Definition: DBlmapReader.cc:9
bool V0Filter::operator() ( const reco::Track tracks,
unsigned int  n 
) const

Definition at line 63 of file V0Filter.cc.

References i, and n.

64 {
65  std::vector<const reco::Track*> trackPtrs(n);
66  for(unsigned int i = 0; i < n; i++)
67  trackPtrs[i] = &tracks[i];
68 
69  return (*this)(&trackPtrs[0], n);
70 }
int i
Definition: DBlmapReader.cc:9
bool reco::V0Filter::operator() ( const std::vector< reco::TrackRef > &  tracks) const
inline

Definition at line 21 of file V0Filter.h.

22  { return (*this)(&tracks[0], tracks.size()); }
tuple tracks
Definition: testEve_cfg.py:39
bool reco::V0Filter::operator() ( const std::vector< reco::Track > &  tracks) const
inline

Definition at line 25 of file V0Filter.h.

26  { return (*this)(&tracks[0], tracks.size()); }
tuple tracks
Definition: testEve_cfg.py:39
bool V0Filter::operator() ( const reco::Track **  tracks,
unsigned int  n 
) const
inlineprivate

Definition at line 22 of file V0Filter.cc.

References abs, DeDxDiscriminatorTools::charge(), reco::ParticleMasses::k0, k0sMassWindow, and reco::ParticleMasses::piPlus.

23 {
24  // only check for K0s for now
25 
26  if (n != 2)
27  return true;
28 
29  if (tracks[0]->charge() * tracks[1]->charge() > 0)
30  return true;
31 
32  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzM4D<double> > vec1;
33  ROOT::Math::LorentzVector<ROOT::Math::PxPyPzM4D<double> > vec2;
34 
35  vec1.SetPx(tracks[0]->px());
36  vec1.SetPy(tracks[0]->py());
37  vec1.SetPz(tracks[0]->pz());
38  vec1.SetM(ParticleMasses::piPlus);
39 
40  vec2.SetPx(tracks[1]->px());
41  vec2.SetPy(tracks[1]->py());
42  vec2.SetPz(tracks[1]->pz());
43  vec2.SetM(ParticleMasses::piPlus);
44 
45  double invariantMass = (vec1 + vec2).M();
46  if (std::abs(invariantMass - ParticleMasses::k0) < k0sMassWindow)
47  return false;
48 
49  return true;
50 }
double k0sMassWindow
Definition: V0Filter.h:32
#define abs(x)
Definition: mlp_lapack.h:159
double charge(const std::vector< uint8_t > &Ampls)

Member Data Documentation

double reco::V0Filter::k0sMassWindow
private

Definition at line 32 of file V0Filter.h.

Referenced by operator()().