CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
CandidateSelector.cc
Go to the documentation of this file.
2 
4  isTrack = iConfig.getParameter<bool> ("onlyConsiderTrack");
5  isMuon = iConfig.getParameter<bool> ("onlyConsiderMuon");
6  isMuonSTA = iConfig.getParameter<bool> ("onlyConsiderMuonSTA");
7  isMuonGB = iConfig.getParameter<bool> ("onlyConsiderMuonGB");
8  isMuonTK = iConfig.getParameter<bool> ("onlyConsiderMuonTK");
9  isRpc = iConfig.getParameter<bool> ("onlyConsiderRpc");
10  isEcal = iConfig.getParameter<bool> ("onlyConsiderEcal");
11 
12  minTrackHits = iConfig.getParameter<int> ("minTrackHits");
13  minTrackP = iConfig.getParameter<double> ("minTrackP");
14  minTrackPt = iConfig.getParameter<double> ("minTrackPt");
15 
16  minDedx = iConfig.getParameter<double> ("minDedx");
17 
18  minMuonP = iConfig.getParameter<double> ("minMuonP");
19  minMuonPt = iConfig.getParameter<double> ("minMuonPt");
20 
21  maxMuTimeDtBeta = iConfig.getParameter<double> ("maxMuTimeDtBeta");
22  minMuTimeDtNdof = iConfig.getParameter<double> ("minMuTimeDtNdof");
23  maxMuTimeCscBeta = iConfig.getParameter<double> ("maxMuTimeCscBeta");
24  minMuTimeCscNdof = iConfig.getParameter<double> ("minMuTimeCscNdof");
25  maxMuTimeCombinedBeta = iConfig.getParameter<double> ("maxMuTimeCombinedBeta");
26  minMuTimeCombinedNdof = iConfig.getParameter<double> ("minMuTimeCombinedNdof");
27 
28  maxBetaRpc = iConfig.getParameter<double> ("maxBetaRpc");
29  maxBetaEcal = iConfig.getParameter<double> ("maxBetaEcal");
30 }
31 
32 
34 {
35  if(isTrack && !candidate.hasTrackRef()){return false;}
36  if(isMuon && !candidate.hasMuonRef() ){return false;}
37  if(isMuonSTA && (!candidate.hasMuonRef() || candidate.muonRef()->standAloneMuon().isNull()) ){return false;}
38  if(isMuonGB && (!candidate.hasMuonRef() || candidate.muonRef()->combinedMuon ().isNull()) ){return false;}
39  if(isMuonTK && (!candidate.hasMuonRef() || candidate.muonRef()->innerTrack ().isNull()) ){return false;}
40  if(isRpc && !candidate.hasRpcInfo() ){return false;}
41  if(isEcal && !candidate.hasCaloInfo()){return false;}
42 
43  if(candidate.hasTrackRef()){
44  if(candidate.trackRef()->found() < minTrackHits){return false;}
45  if(candidate.trackRef()->p() < minTrackP ){return false;}
46  if(candidate.trackRef()->pt() < minTrackPt ){return false;}
47 
48 // Need to be implemented using external dE/dx object
49 // if(candidate.hasDedxEstim1() && minDedxEstimator1>=0 && candidate.dedxEstimator1 ().dEdx()<minDedxEstimator1) {return false;}
50 // if(candidate.hasDedxDiscrim1() && minDedxDiscriminator1>=0 && candidate.dedxDiscriminator1().dEdx()<minDedxDiscriminator1){return false;}
51  }
52 
53  if(candidate.hasMuonRef()){
54  if(candidate.muonRef()->p() < minMuonP ){return false;}
55  if(candidate.muonRef()->pt() < minMuonPt ){return false;}
56 
57 // Need to be implemented using external timing object
58 // if(maxMuTimeDtBeta >=0 && 1.0/candidate.muonTimeDt().inverseBeta() > maxMuTimeDtBeta ){return false;}
59 // if(minMuTimeDtNdof >=0 && 1.0/candidate.muonTimeDt().nDof() < minMuTimeDtNdof ){return false;}
60 // if(maxMuTimeCscBeta >=0 && 1.0/candidate.muonTimeCsc().inverseBeta() > maxMuTimeCscBeta ){return false;}
61 // if(minMuTimeCscNdof >=0 && 1.0/candidate.muonTimeCsc().nDof() < minMuTimeCscNdof ){return false;}
62 // if(maxMuTimeCombinedBeta>=0 && 1.0/candidate.muonTimeCombined().inverseBeta() > maxMuTimeCombinedBeta){return false;}
63 // if(minMuTimeCombinedNdof>=0 && 1.0/candidate.muonTimeCombined().nDof() < minMuTimeCombinedNdof){return false;}
64  }
65 
66  if(candidate.hasRpcInfo() && maxBetaRpc>=0 && candidate.rpc ().beta > maxBetaRpc ){return false;}
67 
68 // Need to be implemented using external dE/dx object
69 // if(candidate.hasCaloInfo() && maxBetaEcal>=0 && candidate.calo().ecalBeta > maxBetaEcal){return false;}
70 
71  return true;
72 }
73 
T getParameter(std::string const &) const
const RPCBetaMeasurement & rpc() const
Definition: HSCParticle.h:74
bool isSelected(HSCParticle &candidate)
bool hasTrackRef() const
Definition: HSCParticle.h:56
bool isNull() const
Checks for null.
Definition: Ref.h:246
reco::MuonRef muonRef() const
Definition: HSCParticle.h:72
CandidateSelector(const edm::ParameterSet &iConfig)
reco::TrackRef trackRef() const
Definition: HSCParticle.h:70
bool hasRpcInfo() const
Definition: HSCParticle.h:58
bool hasMuonRef() const
Definition: HSCParticle.h:55
bool hasCaloInfo() const
Definition: HSCParticle.h:59