CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
TrackClassFilter.cc
Go to the documentation of this file.
3 #include <iostream>
4 
5 using namespace std;
6 
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 }
65 
66 /*
67 void TrackClassFilter::dump() const {
68 
69  LogTrace ("TrackFilterDump") << "TrackClassFilter: "<<endl
70  << pMin <<" < P(GeV) < " <<pMax <<endl
71  << etaMin <<" < |eta| < " <<etaMax <<endl
72  << nPixelHitsMin<<" =< number of Pixel Hits =< " << nPixelHitsMax <<endl
73  << nHitsMin <<" =< total number of hits =< "<< nHitsMax <<endl
74  << chiMin <<" =< chiSquare /dof < "<< chiMax <<endl
75  << " First pixel hit < "<< withFirstPixel <<endl;
76 }
77 */
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
bool operator()(const first_argument_type &, const second_argument_type &) const
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
const reco::Track & track
int numberOfValidPixelHits() const
Definition: HitPattern.h:816
bool hasValidHitInFirstPixelBarrel() const
Definition: HitPattern.cc:315