CMS 3D CMS Logo

CandidateSelector.cc
Go to the documentation of this file.
2 
3 using namespace edm;
4 using namespace reco;
5 using namespace susybsm;
6 
8  isTrack = iConfig.getParameter<bool>("onlyConsiderTrack");
9  isMuon = iConfig.getParameter<bool>("onlyConsiderMuon");
10  isMuonSTA = iConfig.getParameter<bool>("onlyConsiderMuonSTA");
11  isMuonGB = iConfig.getParameter<bool>("onlyConsiderMuonGB");
12  isMuonTK = iConfig.getParameter<bool>("onlyConsiderMuonTK");
13  isMTMuon = iConfig.getParameter<bool>("onlyConsiderMTMuon");
14  isRpc = iConfig.getParameter<bool>("onlyConsiderRpc");
15  isEcal = iConfig.getParameter<bool>("onlyConsiderEcal");
16 
17  minTrackHits = iConfig.getParameter<int>("minTrackHits");
18  minTrackP = iConfig.getParameter<double>("minTrackP");
19  minTrackPt = iConfig.getParameter<double>("minTrackPt");
20 
21  minDedx = iConfig.getParameter<double>("minDedx");
22 
23  minMuonP = iConfig.getParameter<double>("minMuonP");
24  minMuonPt = iConfig.getParameter<double>("minMuonPt");
25  minSAMuonPt = iConfig.getParameter<double>("minMTMuonPt");
26  minMTMuonPt = iConfig.getParameter<double>("minMTMuonPt");
27 
28  maxMuTimeDtBeta = iConfig.getParameter<double>("maxMuTimeDtBeta");
29  minMuTimeDtNdof = iConfig.getParameter<double>("minMuTimeDtNdof");
30  maxMuTimeCscBeta = iConfig.getParameter<double>("maxMuTimeCscBeta");
31  minMuTimeCscNdof = iConfig.getParameter<double>("minMuTimeCscNdof");
32  maxMuTimeCombinedBeta = iConfig.getParameter<double>("maxMuTimeCombinedBeta");
33  minMuTimeCombinedNdof = iConfig.getParameter<double>("minMuTimeCombinedNdof");
34 
35  maxBetaRpc = iConfig.getParameter<double>("maxBetaRpc");
36  maxBetaEcal = iConfig.getParameter<double>("maxBetaEcal");
37 }
38 
40  if (isTrack && !candidate.hasTrackRef()) {
41  return false;
42  }
43  if (isMuon && !candidate.hasMuonRef()) {
44  return false;
45  }
46  if (isMuonSTA && (!candidate.hasMuonRef() || candidate.muonRef()->standAloneMuon().isNull())) {
47  return false;
48  }
49  if (isMuonGB && (!candidate.hasMuonRef() || candidate.muonRef()->combinedMuon().isNull())) {
50  return false;
51  }
52  if (isMuonTK && (!candidate.hasMuonRef() || candidate.muonRef()->innerTrack().isNull())) {
53  return false;
54  }
55  if (isMTMuon && !candidate.hasMTMuonRef()) {
56  return false;
57  }
58  if (isRpc && !candidate.hasRpcInfo()) {
59  return false;
60  }
61  if (isEcal && !candidate.hasCaloInfo()) {
62  return false;
63  }
64 
65  if (candidate.hasTrackRef()) {
66  if (candidate.trackRef()->found() < minTrackHits) {
67  return false;
68  }
69  if (candidate.trackRef()->p() < minTrackP) {
70  return false;
71  }
72  if (candidate.trackRef()->pt() < minTrackPt) {
73  return false;
74  }
75 
76  // Need to be implemented using external dE/dx object
77  // if(candidate.hasDedxEstim1() && minDedxEstimator1>=0 && candidate.dedxEstimator1 ().dEdx()<minDedxEstimator1) {return false;}
78  // if(candidate.hasDedxDiscrim1() && minDedxDiscriminator1>=0 && candidate.dedxDiscriminator1().dEdx()<minDedxDiscriminator1){return false;}
79  }
80 
81  if (candidate.hasMuonRef()) {
82  if (candidate.muonRef()->p() < minMuonP) {
83  return false;
84  }
85  if (candidate.muonRef()->pt() < minMuonPt) {
86  return false;
87  }
88 
89  // Need to be implemented using external timing object
90  // if(maxMuTimeDtBeta >=0 && 1.0/candidate.muonTimeDt().inverseBeta() > maxMuTimeDtBeta ){return false;}
91  // if(minMuTimeDtNdof >=0 && 1.0/candidate.muonTimeDt().nDof() < minMuTimeDtNdof ){return false;}
92  // if(maxMuTimeCscBeta >=0 && 1.0/candidate.muonTimeCsc().inverseBeta() > maxMuTimeCscBeta ){return false;}
93  // if(minMuTimeCscNdof >=0 && 1.0/candidate.muonTimeCsc().nDof() < minMuTimeCscNdof ){return false;}
94  // if(maxMuTimeCombinedBeta>=0 && 1.0/candidate.muonTimeCombined().inverseBeta() > maxMuTimeCombinedBeta){return false;}
95  // if(minMuTimeCombinedNdof>=0 && 1.0/candidate.muonTimeCombined().nDof() < minMuTimeCombinedNdof){return false;}
96  }
97 
98  if (candidate.hasRpcInfo() && maxBetaRpc >= 0 && candidate.rpc().beta > maxBetaRpc) {
99  return false;
100  }
101 
102  if (candidate.hasMuonRef() && candidate.muonRef()->isStandAloneMuon()) {
103  if (candidate.muonRef()->standAloneMuon()->pt() < minSAMuonPt) {
104  return false;
105  }
106  }
107 
108  if (candidate.hasMTMuonRef()) {
109  if (!candidate.MTMuonRef()->standAloneMuon().isNull()) {
110  if (candidate.MTMuonRef()->standAloneMuon()->pt() < minMTMuonPt) {
111  return false;
112  }
113  }
114  }
115 
116  // Need to be implemented using external dE/dx object
117  // if(candidate.hasCaloInfo() && maxBetaEcal>=0 && candidate.calo().ecalBeta > maxBetaEcal){return false;}
118 
119  return true;
120 }
susybsm::HSCParticle
Definition: HSCParticle.h:42
HSCPSelections_cff.minMuonP
minMuonP
Definition: HSCPSelections_cff.py:21
CandidateSelector::isSelected
bool isSelected(susybsm::HSCParticle &candidate)
Definition: CandidateSelector.cc:39
susybsm::HSCParticle::hasMuonRef
bool hasMuonRef() const
Definition: HSCParticle.h:48
edm::Ref::isNull
bool isNull() const
Checks for null.
Definition: Ref.h:235
edm
HLT enums.
Definition: AlignableModifier.h:19
susybsm::HSCParticle::rpc
const RPCBetaMeasurement & rpc() const
Definition: HSCParticle.h:69
HSCPSelections_cff.minDedx
minDedx
Definition: HSCPSelections_cff.py:19
susybsm
Definition: HSCParticle.h:16
reco
fixed size matrix
Definition: AlignmentAlgorithmBase.h:45
susybsm::HSCParticle::MTMuonRef
reco::MuonRef MTMuonRef() const
Definition: HSCParticle.h:67
susybsm::HSCParticle::hasRpcInfo
bool hasRpcInfo() const
Definition: HSCParticle.h:52
PFRecoTauChargedHadronQualityPlugins_cfi.isTrack
isTrack
Definition: PFRecoTauChargedHadronQualityPlugins_cfi.py:20
susybsm::RPCBetaMeasurement::beta
float beta
Definition: HSCParticle.h:34
susybsm::HSCParticle::hasCaloInfo
bool hasCaloInfo() const
Definition: HSCParticle.h:53
CandidateSelector.h
HiBadParticleCleaner_cfi.minMuonPt
minMuonPt
Definition: HiBadParticleCleaner_cfi.py:8
HSCPSelections_cff.minMuTimeCscNdof
minMuTimeCscNdof
Definition: HSCPSelections_cff.py:29
edm::ParameterSet
Definition: ParameterSet.h:47
susybsm::HSCParticle::hasTrackRef
bool hasTrackRef() const
Definition: HSCParticle.h:50
align_cfg.minTrackPt
minTrackPt
Definition: align_cfg.py:22
susybsm::HSCParticle::muonRef
reco::MuonRef muonRef() const
Definition: HSCParticle.h:66
HLT_FULL_cff.minTrackHits
minTrackHits
Definition: HLT_FULL_cff.py:32685
susybsm::HSCParticle::hasMTMuonRef
bool hasMTMuonRef() const
Definition: HSCParticle.h:49
HSCPSelections_cff.minMTMuonPt
minMTMuonPt
Definition: HSCPSelections_cff.py:23
HSCPSelections_cff.minMuTimeCombinedNdof
minMuTimeCombinedNdof
Definition: HSCPSelections_cff.py:31
CandidateSelector::CandidateSelector
CandidateSelector(const edm::ParameterSet &iConfig)
Definition: CandidateSelector.cc:7
HSCPSelections_cff.maxBetaEcal
maxBetaEcal
Definition: HSCPSelections_cff.py:34
align_cfg.minTrackP
minTrackP
Definition: align_cfg.py:24
HSCPSelections_cff.minSAMuonPt
minSAMuonPt
Definition: HSCPSelections_cff.py:24
HSCPSelections_cff.maxBetaRpc
maxBetaRpc
Definition: HSCPSelections_cff.py:33
susybsm::HSCParticle::trackRef
reco::TrackRef trackRef() const
Definition: HSCParticle.h:64
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
HSCPSelections_cff.maxMuTimeCombinedBeta
maxMuTimeCombinedBeta
Definition: HSCPSelections_cff.py:30
HSCPSelections_cff.minMuTimeDtNdof
minMuTimeDtNdof
Definition: HSCPSelections_cff.py:27
HSCPSelections_cff.maxMuTimeCscBeta
maxMuTimeCscBeta
Definition: HSCPSelections_cff.py:28
HSCPSelections_cff.maxMuTimeDtBeta
maxMuTimeDtBeta
Definition: HSCPSelections_cff.py:26
reco::isMuon
bool isMuon(const Candidate &part)
Definition: pdgIdUtils.h:9