Skip to content
Snippets Groups Projects

WIP: fix MCLinking in TDR branch for LHCb::Tracks

Closed Renato Quagliani requested to merge TDR-rquaglia_fixhackMCLinking into TDR
9 files
+ 420
12
Compare changes
  • Side-by-side
  • Inline
Files
9
@@ -32,6 +32,7 @@ StatusCode PrVeloUT::initialize() {
m_veloUTTime = m_timerTool->addTimer( "Internal VeloUT Tracking" );
m_timerTool->decreaseIndent();
}
counter("#tracks");
return StatusCode::SUCCESS;
}
@@ -60,17 +61,20 @@ std::vector<LHCb::Track> PrVeloUT::operator()(const std::vector<LHCb::Track>& in
boost::optional<LHCb::Track> outVeloUT;
counter("#seeds") += inputTracks.size();
// list tracks to be ignored as they are not respecting the Impact Parameter cut
std::map<const LHCb::Track*, bool> cutTracks;
for (auto& vertex : vertices) {
for (const LHCb::Track* track : vertex.tracks()) {
cutTracks[track] = acceptTrackForIPCut(*track, vertex, m_minIP);
auto eventState = m_veloUTTool->createState();
bool killtrack = false;
for(const auto& veloTr: inputTracks) {
//you want to process only those velo input track having IP > m_minIP w.r.t. to all PV,
//i.e., if it has for at least 1 PV IP < m_minIP, the track is not propagated further
killtrack = false;
if( m_doIPCut){
for( const auto& vertex : vertices){
if( !acceptTrackForIPCut( veloTr, vertex, m_minIP) ){ killtrack = true; break;}
}
}
}
if( m_doIPCut && killtrack) continue;
auto eventState = m_veloUTTool->createState();
for(const auto* veloTr: inputTracks) {
if (!cutTracks[veloTr]) continue;
m_veloUTTool->tracksFromTrack(veloTr, outVeloUT, eventState).ignore();
if(outVeloUT){
outputTracks.push_back(std::move(outVeloUT.value()));
Loading