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
1 file
+ 20
20
Compare changes
  • Side-by-side
  • Inline
@@ -42,7 +42,7 @@ StatusCode TrackEventFitter::initialize() {
@@ -42,7 +42,7 @@ StatusCode TrackEventFitter::initialize() {
m_tracksFitter.retrieve().ignore() ;
m_tracksFitter.retrieve().ignore() ;
// = tool<ITrackFitter>( m_fitterName, "Fitter", this );
// = tool<ITrackFitter>( m_fitterName, "Fitter", this );
// Print out the user-defined settings
// Print out the user-defined settings
// -----------------------------------
// -----------------------------------
info() << inputLocation<0>() << " -> "<< outputLocation<0>() << " using "<< m_tracksFitter->name() << endmsg;
info() << inputLocation<0>() << " -> "<< outputLocation<0>() << " using "<< m_tracksFitter->name() << endmsg;
@@ -55,7 +55,7 @@ StatusCode TrackEventFitter::initialize() {
@@ -55,7 +55,7 @@ StatusCode TrackEventFitter::initialize() {
//=============================================================================
//=============================================================================
LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracksCont) const {
LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracksCont) const {
if ( msgLevel( MSG::DEBUG ) ) debug() << "==> Execute" << endmsg;
if ( msgLevel( MSG::DEBUG ) ) debug() << "==> Execute" << endmsg;
LHCb::Tracks tracks;
LHCb::Tracks tracks;
// Loop over the tracks and fit them
// Loop over the tracks and fit them
@@ -75,9 +75,9 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
@@ -75,9 +75,9 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
std::for_each(trackReferences.begin(), trackReferences.end(), [&] (LHCb::Track& track) {
std::for_each(trackReferences.begin(), trackReferences.end(), [&] (LHCb::Track& track) {
if ( msgLevel( MSG::DEBUG ) ) {
if ( msgLevel( MSG::DEBUG ) ) {
debug() << "#### Fitting Track # " << track.key() << " ####" << endmsg
debug() << "#### Fitting Track # " << track->key() << " ####" << endmsg
<< " # of states before fit:" << track.nStates() << endmsg ;
<< " # of states before fit:" << track->nStates() << endmsg ;
if( track.nStates()>0 ) {
if( track->nStates()>0 ) {
if( msgLevel( MSG::VERBOSE ) ) {
if( msgLevel( MSG::VERBOSE ) ) {
verbose() << " States are: " << endmsg;
verbose() << " States are: " << endmsg;
const std::vector<LHCb::State*>& allstates = track.states();
const std::vector<LHCb::State*>& allstates = track.states();
@@ -89,9 +89,9 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
@@ -89,9 +89,9 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
<< allstates[it]->covariance() << endmsg;
<< allstates[it]->covariance() << endmsg;
}
}
} else {
} else {
if ( msgLevel( MSG::DEBUG ) )
if ( msgLevel( MSG::DEBUG ) )
debug() << " First state vector = " << track.firstState().stateVector()
debug() << " First state vector = " << track->firstState().stateVector()
<< " at z = " << track.firstState().z() << endmsg ;
<< " at z = " << track->firstState().z() << endmsg ;
}
}
}
}
}
}
@@ -117,29 +117,29 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
@@ -117,29 +117,29 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
for (auto zipped : ranges::view::zip(fittingTracks, qopBeforeVector)) {
for (auto zipped : ranges::view::zip(fittingTracks, qopBeforeVector)) {
LHCb::Track& track = zipped.first;
LHCb::Track& track = zipped.first;
double& qopBefore = zipped.second;
double& qopBefore = zipped.second;
if (track.fitStatus() == LHCb::Track::FitStatus::Fitted) {
if (track.fitStatus() == LHCb::Track::FitStatus::Fitted) {
std::string prefix = Gaudi::Utils::toString(track.type()) ;
std::string prefix = Gaudi::Utils::toString(track->type()) ;
if( msgLevel( MSG::INFO ) ) {
if( msgLevel( MSG::INFO ) ) {
if ( msgLevel( MSG::DEBUG ) ) {
if ( msgLevel( MSG::DEBUG ) ) {
debug() << "Fitted successfully track # " << track.key() << endmsg;
debug() << "Fitted successfully track # " << track->key() << endmsg;
}
}
// Update counters
// Update counters
if( track.checkFlag( LHCb::Track::Flags::Backward ) ) prefix += "Backward" ;
if( track.checkFlag( LHCb::Track::Flags::Backward ) ) prefix += "Backward" ;
prefix += '.' ;
prefix += '.' ;
if( track.nDoF()>0) {
if( track->nDoF()>0) {
double chisqprob = track.probChi2() ;
double chisqprob = track->probChi2() ;
counter(prefix + "chisqprobSum") += chisqprob ;
counter(prefix + "chisqprobSum") += chisqprob ;
counter(prefix + "badChisq") += bool(chisqprob<0.01) ;
counter(prefix + "badChisq") += bool(chisqprob<0.01) ;
}
}
counter(prefix + "flipCharge") += bool( qopBefore * track.firstState().qOverP() <0) ;
counter(prefix + "flipCharge") += bool( qopBefore * track->firstState().qOverP() <0) ;
counter(prefix + "numOutliers") += track.nMeasurementsRemoved() ;
counter(prefix + "numOutliers") += track->nMeasurementsRemoved() ;
}
}
// Add the track to the new Tracks container if it passes the chi2-cut
// Add the track to the new Tracks container if it passes the chi2-cut
// -----------------------------------------
// -----------------------------------------
if ( m_maxChi2DoF > track.chi2PerDoF() ) tracks.add( &track );
if ( m_maxChi2DoF > track.chi2PerDoF() ) tracks.add( &track );
else{
else{
delete &track;
delete track;
counter(prefix + "RejectedChisqCut") += 1 ;
counter(prefix + "RejectedChisqCut") += 1 ;
}
}
}
}
@@ -147,7 +147,7 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
@@ -147,7 +147,7 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
track.setFlag( LHCb::Track::Flags::Invalid, true );
track.setFlag( LHCb::Track::Flags::Invalid, true );
++nFitFail;
++nFitFail;
if ( msgLevel( MSG::DEBUG ) )
if ( msgLevel( MSG::DEBUG ) )
debug() << "Unable to fit the track # " << track.key() << endmsg;
debug() << "Unable to fit the track # " << track->key() << endmsg;
}
}
}
}
@@ -158,7 +158,7 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
@@ -158,7 +158,7 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
counter("nTracks") += nTracks;
counter("nTracks") += nTracks;
counter("nFitted") += ( nTracks - nFitFail - nBadInput);
counter("nFitted") += ( nTracks - nFitFail - nBadInput);
counter("nBadInput") += nBadInput ;
counter("nBadInput") += nBadInput ;
if ( msgLevel( MSG::DEBUG ) ) {
if ( msgLevel( MSG::DEBUG ) ) {
if ( nFitFail == 0 )
if ( nFitFail == 0 )
debug() << "All " << nTracks << " tracks fitted succesfully." << endmsg;
debug() << "All " << nTracks << " tracks fitted succesfully." << endmsg;
@@ -167,7 +167,7 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
@@ -167,7 +167,7 @@ LHCb::Tracks TrackEventFitter::operator()(const std::vector<LHCb::Track>& tracks
<< " out of " << nTracks-nBadInput << endmsg;
<< " out of " << nTracks-nBadInput << endmsg;
}
}
}
}
return tracks;
return tracks;
}
}
@@ -183,7 +183,7 @@ StatusCode TrackEventFitter::finalize() {
@@ -183,7 +183,7 @@ StatusCode TrackEventFitter::finalize() {
double nTracks = counter("nTracks").flag();
double nTracks = counter("nTracks").flag();
if ( nTracks > 1e-3 )
if ( nTracks > 1e-3 )
perf = float(100.0*counter("nFitted").flag() / nTracks);
perf = float(100.0*counter("nFitted").flag() / nTracks);
info() << " Fitting performance : "
info() << " Fitting performance : "
<< format( " %7.2f %%", perf ) << endmsg;
<< format( " %7.2f %%", perf ) << endmsg;
}
}
Loading