diff --git a/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx b/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx index 6be07d67a9b05d3dd69f1fb78111f9f97f140ffc..ef1c901989df88497faba8c8004891573be251b1 100644 --- a/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx +++ b/DataQuality/DataQualityUtils/src/MonitoringFile_IDAlignPostProcess.cxx @@ -1091,11 +1091,11 @@ fitMergedFile_IDAlignMonResiduals( TFile* f, std::string run_dir, std::string tr m_pix_ecc_yresvsmodphi->GetYaxis()->SetTitle("Mean Residual Y [mm]"); m_pix_ecc_yresvsmodphi->GetXaxis()->SetTitle("(Modified) Module Phi-ID"); meanRMSProjections2D(m_pix_ecc_yresvsmodphi_2d,m_pix_ecc_yresvsmodphi,2); - TH1F* m_sct_eca_xresvsmodphi = new TH1F("sct_eca_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap A",495,0,495); + TH1F* m_sct_eca_xresvsmodphi = new TH1F("sct_eca_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap A",558,0,558); m_sct_eca_xresvsmodphi->GetYaxis()->SetTitle("Mean Residual X [mm]"); m_sct_eca_xresvsmodphi->GetXaxis()->SetTitle("(Modified) Module Phi-ID"); meanRMSProjections2D(m_sct_eca_xresvsmodphi_2d,m_sct_eca_xresvsmodphi,2); - TH1F* m_sct_ecc_xresvsmodphi = new TH1F("sct_ecc_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap C",495,0,495); + TH1F* m_sct_ecc_xresvsmodphi = new TH1F("sct_ecc_xresvsmodphi","X Residual Mean vs (Modified) Module Phi SCT Endcap C",558,0,558); m_sct_ecc_xresvsmodphi->GetYaxis()->SetTitle("Mean Residual X [mm]"); m_sct_ecc_xresvsmodphi->GetXaxis()->SetTitle("(Modified) Module Phi-ID"); meanRMSProjections2D(m_sct_ecc_xresvsmodphi_2d,m_sct_ecc_xresvsmodphi,2); diff --git a/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/ConstrainedTrackProvider.h b/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/ConstrainedTrackProvider.h index 6198d2b1ccdec581dbc1b28412725674ce8482d9..f6db252cb4ab4ddcb5a798d12bcaf5d1ba3d2907 100644 --- a/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/ConstrainedTrackProvider.h +++ b/Tracking/TrkAlignment/TrkAlignGenTools/TrkAlignGenTools/ConstrainedTrackProvider.h @@ -94,7 +94,8 @@ namespace Trk { std::string m_constraintHistName_z0; TH2F* m_etaphiMap_z0; // Corrections expected to be in mm - + bool m_scalepmaptogev; + }; // end class } // end namespace diff --git a/Tracking/TrkAlignment/TrkAlignGenTools/src/ConstrainedTrackProvider.cxx b/Tracking/TrkAlignment/TrkAlignGenTools/src/ConstrainedTrackProvider.cxx index 3488c76f185a9eceb4f11db57f4c985d8944fd65..c5c7e31a3aad8668391e39ecdfe18c9965595685 100644 --- a/Tracking/TrkAlignment/TrkAlignGenTools/src/ConstrainedTrackProvider.cxx +++ b/Tracking/TrkAlignment/TrkAlignGenTools/src/ConstrainedTrackProvider.cxx @@ -32,13 +32,14 @@ namespace Trk { , m_etaphiMap_d0(0) , m_constraintInputFile_z0(0) , m_etaphiMap_z0(0) + , m_scalepmaptogev(false) { declareInterface<ITrackCollectionProvider>(this); declareProperty("TrackFitter", m_trackFitter ); declareProperty("InputTracksCollection", m_inputTrackCollection ); declareProperty("RunOutlierRemoval", m_runOutlierRemoval = true ); declareProperty("MaxRetrievalErrors", m_maxRetrievalErrors = 10 ); - declareProperty("UseConstrainedTrkOnly", m_useConstrainedTrkOnly = false ); + declareProperty("UseConstrainedTrkOnly", m_useConstrainedTrkOnly = true ); declareProperty("MinPt", m_minPt = 15.0 ); declareProperty("MaxPt", m_maxPt = 100.0 ); declareProperty("MinPIXHits", m_minPIXHits = 0 ); //1 @@ -58,7 +59,7 @@ namespace Trk { declareProperty("UseConstraintError", m_useConstraintError = true ,"Bla bla " ); declareProperty("ReduceConstraintUncertainty",m_reduceConstraintUncertainty = 1., "Reduce the uncertainty on teh track parmater constraint by this amount" ); declareProperty("DeltaScaling", m_deltaScaling = 1.); - + declareProperty("ScalePMapToGeV", m_scalepmaptogev); } //________________________________________________________________________ @@ -182,14 +183,15 @@ namespace Trk { const TrackCollection* originalTracks = 0; if ( StatusCode::SUCCESS != evtStore()->retrieve(originalTracks, m_inputTrackCollection) ){ - ATH_MSG_WARNING(" Can't retrieve " << m_inputTrackCollection << " from the StoreGate "); + ATH_MSG_WARNING(" Can't retrieve " << m_inputTrackCollection << " from the evtStore()->retrieve "); return StatusCode::FAILURE; } + ATH_MSG_DEBUG("#Available tracks in this event: " << originalTracks->size()); + // define the track collection of the selected tracks (check: m_useConstrainedTrkOnly) TrackCollection* trackCollection = new TrackCollection; - ATH_MSG_DEBUG("Have tracks in the event: " << originalTracks->size()); - + // going to loop on the input collection of tracks TrackCollection::const_iterator trackIt = originalTracks->begin(); TrackCollection::const_iterator trackItE = originalTracks->end(); @@ -288,9 +290,34 @@ namespace Trk { if(!constrainedPerigee){ ATH_MSG_DEBUG(" no constrainedmeasuredPerigee"); } else { - ATH_MSG_DEBUG("Constrained fit was momentum : " << 1/constrainedPerigee->parameters()[Trk::qOverP] * 1e-3 ); - ATH_MSG_DEBUG("Initial fit was momentum : " << 1/measuredPerigee->parameters()[Trk::qOverP] * 1e-3 ); - ATH_MSG_DEBUG("corrected was momentum : " << 1/correctedQoverP * 1e-3 ); + ATH_MSG_DEBUG("Initial track had momentum : " << 1/measuredPerigee->parameters()[Trk::qOverP] * 1e-3 ); + if (m_CorrectMomentum) { + ATH_MSG_DEBUG("corrected momentum with map is : " << 1/correctedQoverP * 1e-3 ); + } + else { + ATH_MSG_DEBUG("momentum not constrained : "); + } + ATH_MSG_DEBUG("Constrained momentum fit result: " << 1/constrainedPerigee->parameters()[Trk::qOverP] * 1e-3 ); + + // d0 + ATH_MSG_DEBUG("Initial track had d0 : " << measuredPerigee->parameters()[Trk::d0]); + if(m_CorrectD0){ + ATH_MSG_DEBUG("corrected d0 is : " << correctedD0); + } + else { + ATH_MSG_DEBUG("d0 is not corrected : "); + } + ATH_MSG_DEBUG("Constrained d0 fit result : " << constrainedPerigee->parameters()[Trk::d0]); + + // z0 + ATH_MSG_DEBUG("Initial track had z0 : " << measuredPerigee->parameters()[Trk::z0]); + if(m_CorrectD0){ + ATH_MSG_DEBUG("corrected z0 is : " << correctedZ0); + } + else { + ATH_MSG_DEBUG("z0 is not corrected : "); + } + ATH_MSG_DEBUG("Constrained z0 fit result : " << constrainedPerigee->parameters()[Trk::z0]); } trackCollection->push_back(constrainedFittedTrack); @@ -318,12 +345,12 @@ namespace Trk { if (StatusCode::SUCCESS != evtStore()->record(trackCollection, "AlignmentConstrainedTracks")){ - ATH_MSG_WARNING("Problem with recording AlignmentConstrainedTracks to StoreGate!"); + ATH_MSG_WARNING("Problem with recording AlignmentConstrainedTracks to evtStore()->record() :( !"); delete trackCollection; return StatusCode::SUCCESS; } - ATH_MSG_DEBUG(" The final trackCollection size : " << trackCollection->size() ); + ATH_MSG_DEBUG(" The final trackCollection size: " << trackCollection->size() << " name of track collection: ..." ); //track Collection cannot be null here; it has already been dereferenced finalTracks = trackCollection; @@ -402,6 +429,11 @@ namespace Trk { double delta = m_etaphiMap_P->GetBinContent(binNumber) * m_deltaScaling; + if (m_scalepmaptogev) { + ATH_MSG_DEBUG("Scale sagita bias map to GeV. deltaSagitta raw value " << delta << " ==> used value: " << delta * 0.001 << " GeV-1"); + delta = delta * 0.001; + } + correctedQoverP = measuredPerigee->parameters()[Trk::qOverP] * (1.+ charge *pt *delta ); correctedQoverPError = perr; @@ -410,18 +442,16 @@ namespace Trk { qoverpFracError += pow(constraintErr,2); correctedQoverPError = qoverpFracError*correctedQoverP*correctedQoverP; } - ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ; + correctedQoverPError = correctedQoverPError * pow( m_reduceConstraintUncertainty,-2); return; } - + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ConstrainedTrackProvider::getCorrectedValues_d0(const Trk::Perigee* measuredPerigee, double& correctedD0,double& correctedD0Error) { - // scale d0 - - + // correcting d0 double d0 = measuredPerigee->parameters()[Trk::d0]; double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.)); double phi = measuredPerigee->parameters()[Trk::phi]; @@ -431,6 +461,7 @@ namespace Trk { int binNumber = m_etaphiMap_d0->FindBin(eta, phi); double constraintErr = m_etaphiMap_d0->GetBinError(binNumber); double delta = m_etaphiMap_d0->GetBinContent(binNumber) * m_deltaScaling; + ATH_MSG_DEBUG("d0 correction for (eta,phi) cell: ("<<eta <<", " <<phi <<") delta_d0 = " << delta << " mm "); correctedD0 = d0 + delta; correctedD0Error = d0err; @@ -438,16 +469,16 @@ namespace Trk { if(m_useConstraintError){ correctedD0Error = d0err + pow( constraintErr, 2 ); } - ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ; + correctedD0Error = correctedD0Error * pow( m_reduceConstraintUncertainty,-2); return; } + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ConstrainedTrackProvider::getCorrectedValues_z0(const Trk::Perigee* measuredPerigee, double& correctedZ0,double& correctedZ0Error) { - // scale z0 - + // correcting z0 double z0 = measuredPerigee->parameters()[Trk::z0]; double eta = -log(tan(measuredPerigee->parameters()[Trk::theta]/2.)); double phi = measuredPerigee->parameters()[Trk::phi]; @@ -456,14 +487,15 @@ namespace Trk { int binNumber = m_etaphiMap_z0->FindBin(eta, phi); double constraintErr = m_etaphiMap_z0->GetBinError(binNumber); double delta = m_etaphiMap_z0->GetBinContent(binNumber) * m_deltaScaling; - + correctedZ0 = z0 + delta; correctedZ0Error = z0err; + ATH_MSG_DEBUG("z0 correction for (eta,phi) cell: ("<<eta <<", " <<phi <<") delta_z0 = " << delta << " mm. New z0: " << correctedZ0); if(m_useConstraintError){ correctedZ0Error = z0err + pow( constraintErr, 2 ); } - ATH_MSG_DEBUG("Scaling by 1/m_reduceConstraintUncertainty " << m_reduceConstraintUncertainty << '\t'<< pow( m_reduceConstraintUncertainty,-2)) ; + correctedZ0Error = correctedZ0Error * pow( m_reduceConstraintUncertainty,-2); return; } @@ -471,7 +503,7 @@ namespace Trk { - + ///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// void ConstrainedTrackProvider::printSummary(){ if(m_logStream) {