CMS 3D CMS Logo

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

#include <TrackClassFilter.h>

Classes

class  Input
 

Public Types

typedef Input first_argument_type
 
typedef bool result_type
 
typedef
TrackProbabilityCalibration::Entry 
second_argument_type
 

Public Member Functions

bool operator() (const first_argument_type &, const second_argument_type &) const
 
 TrackClassFilter ()
 

Detailed Description

filter to define the belonging of a track to a TrackClass

Definition at line 12 of file TrackClassFilter.h.

Member Typedef Documentation

Definition at line 29 of file TrackClassFilter.h.

Definition at line 31 of file TrackClassFilter.h.

Definition at line 30 of file TrackClassFilter.h.

Constructor & Destructor Documentation

TrackClassFilter::TrackClassFilter ( )
inline

Definition at line 16 of file TrackClassFilter.h.

16 {}

Member Function Documentation

bool TrackClassFilter::operator() ( const first_argument_type input,
const second_argument_type category 
) const

Definition at line 7 of file TrackClassFilter.cc.

References TrackProbabilityCalibration::Entry::category, TrackProbabilityCategoryData::chiMax, TrackProbabilityCategoryData::chiMin, ztail::d, eta, reco::TrackBase::eta(), TrackProbabilityCategoryData::etaMax, TrackProbabilityCategoryData::etaMin, reco::HitPattern::hasValidHitInFirstPixelBarrel(), reco::TrackBase::hitPattern(), TrackProbabilityCategoryData::nHitsMax, TrackProbabilityCategoryData::nHitsMin, reco::TrackBase::normalizedChi2(), TrackProbabilityCategoryData::nPixelHitsMax, TrackProbabilityCategoryData::nPixelHitsMin, reco::TrackBase::numberOfValidHits(), reco::HitPattern::numberOfValidPixelHits(), AlCaHLTBitMon_ParallelJobs::p, reco::TrackBase::p(), TrackProbabilityCategoryData::pMax, TrackProbabilityCategoryData::pMin, reco::TrackBase::quality(), reco::TrackBase::qualityByName(), query::result, TrackClassFilter::Input::track, TrackProbabilityCategoryData::trackQuality, TrackClassFilter::Input::useQuality, and TrackProbabilityCategoryData::withFirstPixel.

8 {
9 const reco::Track & track = input.track;
10 //const reco::Jet & jet = input.jet;
11 //const reco::Vertex & pv = input.vertex;
12 const bool usequality = input.useQuality;
13 
14 const TrackProbabilityCategoryData & d = category.category;
15  //Track Data
16  double p=track.p();
17  double eta=track.eta();
18  double nhit=track.numberOfValidHits();
19  double npix=track.hitPattern().numberOfValidPixelHits();
20  bool firstPixel=track.hitPattern().hasValidHitInFirstPixelBarrel();
21  double chi=track.normalizedChi2();
22 
23 
24  //Chi^2 cut if used
25  bool chicut=(chi >= d.chiMin && chi < d.chiMax );
26  if(d.chiMin<=0.01 && d.chiMax<=0.01) chicut=true;
27 
28  //First Pixel Hit cut 1=there should be an hit in first layer, -1=there should not be an hit, 0 = I do not care
29  bool fisrtPixelCut = ( (firstPixel && d.withFirstPixel == 1) || (!firstPixel && d.withFirstPixel == -1) || d.withFirstPixel == 0 );
30 
31 
32 
33  //Track Quality:
34  reco::TrackBase::TrackQuality trackQualityUndef = reco::TrackBase::qualityByName("undefQuality");
37  reco::TrackBase::TrackQuality trackQualityhighPur = reco::TrackBase::qualityByName("highPurity");
38  reco::TrackBase::TrackQuality trackQualityConfirmed = reco::TrackBase::qualityByName("confirmed");
39  reco::TrackBase::TrackQuality trackQualityGoodIterative = reco::TrackBase::qualityByName("goodIterative");
40 
41  signed short trakQuality = -1;
42  if(track.quality(trackQualityUndef)) trakQuality = 5;
43  if(track.quality(trackQualityLoose)) trakQuality = 0;
44  if(track.quality(trackQualityTight)) trakQuality = 1;
45  if(track.quality(trackQualityhighPur)) trakQuality = 2;
46  if(track.quality(trackQualityConfirmed)) trakQuality = 3;
47  if(track.quality(trackQualityGoodIterative)) trakQuality = 4;
48 
49 
50  bool result=( p > d.pMin && p < d.pMax &&
51  fabs(eta) > d.etaMin && fabs(eta) < d.etaMax &&
52  nhit >= d.nHitsMin && nhit <= d.nHitsMax &&
53  npix >= d.nPixelHitsMin && npix <= d.nPixelHitsMax &&
54  chicut && fisrtPixelCut &&
55  ( (trakQuality==d.trackQuality && usequality==1) || usequality==0 ) );
56 
57 
58  //std::cout << "result = " << result << std::endl;
59  //std::cout << "usequality = " << usequality << std::endl;
60 // dump();
61 // cout << "TRACK: p " << " eta " << eta << " #hit " << nhit << " #pix " << npix << " chi " << chi << " matched ?";
62 // cout << result << endl;
63  return result;
64 }
double p() const
momentum vector magnitude
Definition: TrackBase.h:602
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:548
TrackQuality
track quality
Definition: TrackBase.h:149
static std::string const input
Definition: EdmProvDump.cc:43
tuple d
Definition: ztail.py:151
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:638
tuple result
Definition: query.py:137
unsigned short numberOfValidHits() const
number of valid hits found
Definition: TrackBase.h:807
static TrackQuality qualityByName(const std::string &name)
Definition: TrackBase.cc:123
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
Definition: TrackBase.h:437
bool quality(const TrackQuality) const
Track quality.
Definition: TrackBase.h:497
int numberOfValidPixelHits() const
Definition: HitPattern.h:816
bool hasValidHitInFirstPixelBarrel() const
Definition: HitPattern.cc:315