SUSYBSMAnalysis
HSCP
src
CandidateSelector.cc
Go to the documentation of this file.
1
#include "
SUSYBSMAnalysis/HSCP/interface/CandidateSelector.h
"
2
3
using namespace
edm
;
4
using namespace
reco
;
5
using namespace
susybsm
;
6
7
CandidateSelector::CandidateSelector
(
const
edm::ParameterSet
& iConfig) {
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
39
bool
CandidateSelector::isSelected
(
HSCParticle
& candidate) {
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
Generated for CMSSW Reference Manual by
1.8.16