#include <PhysicsTools/RecoAlgos/interface/TrackingParticleSelector.h>
Public Member Functions | |
bool | operator() (const TrackingParticle &tp) const |
Operator() performs the selection: e.g. if (tPSelector(tp)) {...}. | |
TrackingParticleSelector (double ptMin, double minRapidity, double maxRapidity, double tip, double lip, int minHit, bool signalOnly, bool chargedOnly, std::vector< int > pdgId=std::vector< int >()) | |
TrackingParticleSelector () | |
Private Attributes | |
bool | chargedOnly_ |
double | lip_ |
double | maxRapidity_ |
int | minHit_ |
double | minRapidity_ |
std::vector< int > | pdgId_ |
double | ptMin_ |
bool | signalOnly_ |
double | tip_ |
Definition at line 13 of file TrackingParticleSelector.h.
TrackingParticleSelector::TrackingParticleSelector | ( | ) | [inline] |
TrackingParticleSelector::TrackingParticleSelector | ( | double | ptMin, | |
double | minRapidity, | |||
double | maxRapidity, | |||
double | tip, | |||
double | lip, | |||
int | minHit, | |||
bool | signalOnly, | |||
bool | chargedOnly, | |||
std::vector< int > | pdgId = std::vector<int>() | |||
) | [inline] |
Definition at line 17 of file TrackingParticleSelector.h.
00019 : 00020 ptMin_( ptMin ), minRapidity_( minRapidity ), maxRapidity_( maxRapidity ), 00021 tip_( tip ), lip_( lip ), minHit_( minHit ), signalOnly_(signalOnly), chargedOnly_(chargedOnly), pdgId_( pdgId ) { }
bool TrackingParticleSelector::operator() | ( | const TrackingParticle & | tp | ) | const [inline] |
Operator() performs the selection: e.g. if (tPSelector(tp)) {...}.
Definition at line 24 of file TrackingParticleSelector.h.
References EncodedEventId::bunchCrossing(), reco::Particle::charge(), chargedOnly_, EncodedEventId::event(), TrackingParticle::eventId(), it, lip_, TrackingParticle::matchedHit(), maxRapidity_, minHit_, minRapidity_, reco::Particle::momentum(), TrackingParticle::pdgId(), pdgId_, ptMin_, signal, signalOnly_, funct::sqrt(), tip_, and reco::Particle::vertex().
00024 { 00025 if (chargedOnly_ && tp.charge()==0) return false;//select only if charge!=0 00026 bool testId = false; 00027 unsigned int idSize = pdgId_.size(); 00028 if (idSize==0) testId = true; 00029 else for (unsigned int it=0;it!=idSize;++it){ 00030 if (tp.pdgId()==pdgId_[it]) testId = true; 00031 } 00032 bool signal = true; 00033 if (signalOnly_) signal = (tp.eventId().bunchCrossing()== 0 && tp.eventId().event() == 0); 00034 return ( 00035 tp.matchedHit() >= minHit_ && 00036 sqrt(tp.momentum().perp2()) >= ptMin_ && 00037 tp.momentum().eta() >= minRapidity_ && tp.momentum().eta() <= maxRapidity_ && 00038 sqrt(tp.vertex().perp2()) <= tip_ && 00039 fabs(tp.vertex().z()) <= lip_ && 00040 testId && 00041 signal 00042 ); 00043 }
bool TrackingParticleSelector::chargedOnly_ [private] |
double TrackingParticleSelector::lip_ [private] |
double TrackingParticleSelector::maxRapidity_ [private] |
int TrackingParticleSelector::minHit_ [private] |
double TrackingParticleSelector::minRapidity_ [private] |
std::vector<int> TrackingParticleSelector::pdgId_ [private] |
double TrackingParticleSelector::ptMin_ [private] |
bool TrackingParticleSelector::signalOnly_ [private] |
double TrackingParticleSelector::tip_ [private] |