19 |
|
const mithep::Array<mithep::PFCandidate> * pfCandidates, |
20 |
|
const Double_t dRMax); |
21 |
|
|
22 |
+ |
bool trackToPFMuonSelection( const mithep::Track *track, const mithep::MuonCol * muoncol ) |
23 |
+ |
{ |
24 |
+ |
bool pass = false; |
25 |
+ |
for(UInt_t i=0; i<muoncol->GetEntries(); ++i) { |
26 |
+ |
const mithep::Muon *mu = muoncol->At(i); |
27 |
+ |
if(mu->TrackerTrk() == track && (mu->IsGlobalMuon() || mu->IsTrackerMuon()) && mu->IsPFMuon()) |
28 |
+ |
pass = true; |
29 |
+ |
} |
30 |
+ |
|
31 |
+ |
return pass; |
32 |
+ |
|
33 |
+ |
} |
34 |
+ |
|
35 |
|
//-------------------------------------------------------------------------------------------------- |
36 |
|
SelectionStatus muonDummyVeto(ControlFlags &ctrl, |
37 |
|
const mithep::Muon *muon, |
118 |
|
if(ctrl.debug) cout << "and < 2.4 eta (" << mu->Eta() << ")? ... " << ret << endl; |
119 |
|
ret &= ( mu->IsTrackerMuon() || mu->IsGlobalMuon() ); |
120 |
|
if(ctrl.debug) cout << "is Tracker or Global? ... " << ret << endl; |
121 |
< |
ret &= (mu->HasTrackerTrk() && mu->TrackerTrk()->D0Corrected(*vtx) < 0.5 && mu->TrackerTrk()->DzCorrected(*vtx) < 1.0); |
121 |
> |
ret &= (mu->HasTrackerTrk() && |
122 |
> |
fabs(mu->TrackerTrk()->D0Corrected(*vtx)) < 0.5 && |
123 |
> |
fabs(mu->TrackerTrk()->DzCorrected(*vtx)) < 1.0); |
124 |
|
if(ctrl.debug) cout << "d0 and dz? ... " << ret << endl; |
125 |
|
|
126 |
|
// if( mu->IsTrackerMuon() && mu->HasTrackerTrk() && !mu->IsGlobalMuon() ) |
136 |
|
return status; |
137 |
|
} |
138 |
|
|
139 |
+ |
//-------------------------------------------------------------------------------------------------- |
140 |
+ |
SelectionStatus muonPreSelectionNoD0DzIP( ControlFlags &ctrl, |
141 |
+ |
const mithep::Muon * mu, |
142 |
+ |
const mithep::Vertex * vtx, |
143 |
+ |
const mithep::Array<mithep::PFCandidate> * pfCandidates ) |
144 |
+ |
//-------------------------------------------------------------------------------------------------- |
145 |
+ |
{ |
146 |
+ |
bool ret = true; |
147 |
+ |
|
148 |
+ |
if(ctrl.debug) cout << "inside muonpresel ... " << endl; |
149 |
+ |
ret &= ( mu->Pt() >= 5 ); |
150 |
+ |
if(ctrl.debug) cout << "and >5 GeV (" << mu->Pt() << ") ? ... " << ret << endl; |
151 |
+ |
ret &= ( fabs(mu->Eta()) <= 2.4 ); |
152 |
+ |
if(ctrl.debug) cout << "and < 2.4 eta (" << mu->Eta() << ")? ... " << ret << endl; |
153 |
+ |
ret &= ( mu->IsTrackerMuon() || mu->IsGlobalMuon() ); |
154 |
+ |
if(ctrl.debug) cout << "is Tracker or Global? ... " << ret << endl; |
155 |
+ |
|
156 |
+ |
// if( mu->IsTrackerMuon() && mu->HasTrackerTrk() && !mu->IsGlobalMuon() ) |
157 |
+ |
// ret &= ( mu->Quality().QualityMask().Mask() & mithep::MuonQuality::AllArbitrated); |
158 |
+ |
// if(ctrl.debug) cout << "if isTrackerMuon, arbitrated ? ... " << ret << endl; |
159 |
+ |
// ret &= ( mu->BestTrk()->DzCorrected(vtx) < 0.1); |
160 |
+ |
// if( ctrl.debug ) cout << "elepresel : ret after dZcorr : " << ret << endl; |
161 |
+ |
|
162 |
+ |
|
163 |
+ |
SelectionStatus status; |
164 |
+ |
if( ret ) status.setStatus(SelectionStatus::PRESELECTION); |
165 |
+ |
if(ctrl.debug) cout << "muon presel returning status : " << status.getStatus() << endl; |
166 |
+ |
return status; |
167 |
+ |
} |
168 |
+ |
|
169 |
|
|
170 |
|
|
171 |
|
|
264 |
|
break; |
265 |
|
} |
266 |
|
} |
267 |
+ |
// |
268 |
+ |
// if(mu->IsPFMuon()) pass = true; |
269 |
+ |
// else pass = false; |
270 |
|
|
271 |
|
// |
272 |
|
// NB : ipsig here for reference synch ... |