diff --git a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py index d2ae065a20beb..496c05cd357b4 100644 --- a/HLTrigger/Configuration/python/customizeHLTforCMSSW.py +++ b/HLTrigger/Configuration/python/customizeHLTforCMSSW.py @@ -129,11 +129,26 @@ def customiseFor2018Input(process): return process +def customiseFor33495(process): + """Customize HLT menu to remove deprecated parameters for pixel Generic and Template CPE's """ + for producer in esproducers_by_type(process, "PixelCPEGenericESProducer"): + if hasattr(producer, "DoLorentz"): + del producer.DoLorentz + if hasattr(producer, "useLAAlignmentOffsets"): + del producer.useLAAlignmentOffsets + + for producer in esproducers_by_type(process, "PixelCPETemplateRecoESProducer"): + if hasattr(producer, "DoLorentz"): + del producer.DoLorentz + return process + + # CMSSW version specific customizations def customizeHLTforCMSSW(process, menuType="GRun"): # add call to action function in proper order: newest last! # process = customiseFor12718(process) + process = customiseFor33495(process) return process diff --git a/RecoLocalTracker/SiPixelRecHits/interface/PixelCPEBase.h b/RecoLocalTracker/SiPixelRecHits/interface/PixelCPEBase.h index 05e59585ba6ba..e1283aa69a0b8 100644 --- a/RecoLocalTracker/SiPixelRecHits/interface/PixelCPEBase.h +++ b/RecoLocalTracker/SiPixelRecHits/interface/PixelCPEBase.h @@ -238,7 +238,9 @@ class PixelCPEBase : public PixelClusterParameterEstimator { const SiPixelTemplateDBObject* templateDBobject_; bool alpha2Order; // switch on/off E.B effect. - bool DoLorentz_; + bool useLAFromDB_; //Use LA value from the database (used for generic CPE or in template CPE if an error) + + bool doLorentzFromAlignment_; bool LoadTemplatesFromDB_; //errors for template reco for edge hits, based on observed residuals from diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEClusterRepairESProducer.cc b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEClusterRepairESProducer.cc index 0796fe183e1dc..1c97241056c31 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEClusterRepairESProducer.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEClusterRepairESProducer.cc @@ -34,7 +34,8 @@ class PixelCPEClusterRepairESProducer : public edm::ESProducer { edm::ESGetToken templateDBobject2DToken_; edm::ParameterSet pset_; - bool DoLorentz_; + bool doLorentzFromAlignment_; + bool useLAFromDB_; }; using namespace edm; @@ -42,8 +43,8 @@ using namespace edm; PixelCPEClusterRepairESProducer::PixelCPEClusterRepairESProducer(const edm::ParameterSet& p) { std::string myname = p.getParameter("ComponentName"); - //DoLorentz_ = p.getParameter("DoLorentz"); // True when LA from alignment is used - DoLorentz_ = p.getParameter("DoLorentz"); + useLAFromDB_ = p.getParameter("useLAFromDB"); + doLorentzFromAlignment_ = p.getParameter("doLorentzFromAlignment"); pset_ = p; auto c = setWhatProduced(this, myname); @@ -52,11 +53,10 @@ PixelCPEClusterRepairESProducer::PixelCPEClusterRepairESProducer(const edm::Para hTTToken_ = c.consumes(); templateDBobjectToken_ = c.consumes(); templateDBobject2DToken_ = c.consumes(); - if (DoLorentz_) { - lorentzAngleToken_ = c.consumes(edm::ESInputTag("", "fromAlignment")); + if (useLAFromDB_ || doLorentzFromAlignment_) { + char const* laLabel = doLorentzFromAlignment_ ? "fromAlignment" : ""; + lorentzAngleToken_ = c.consumes(edm::ESInputTag("", laLabel)); } - - //std::cout<<" from ES Producer Templates "<("DoLorentz", true); descriptions.add("_templates2_default", desc); } std::unique_ptr PixelCPEClusterRepairESProducer::produce( const TkPixelCPERecord& iRecord) { - // Normal, default LA actually is NOT needed - // null is ok becuse LA is not use by templates in this mode + // Normal, default LA is used in case of template failure, load it unless + // turned off + // if turned off, null is ok, becomes zero const SiPixelLorentzAngle* lorentzAngleProduct = nullptr; - if (DoLorentz_) { // LA correction from alignment + if (useLAFromDB_ || doLorentzFromAlignment_) { lorentzAngleProduct = &iRecord.get(lorentzAngleToken_); } diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEFastESProducer.cc b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEFastESProducer.cc index 332baabe8842a..8cccb017f6887 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEFastESProducer.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEFastESProducer.cc @@ -89,8 +89,6 @@ void PixelCPEFastESProducer::fillDescriptions(edm::ConfigurationDescriptions& de // specific to PixelCPEFastESProducer desc.add("ComponentName", "PixelCPEFast"); desc.add("MagneticFieldRecord", edm::ESInputTag()); - desc.add("useLAAlignmentOffsets", false); - desc.add("DoLorentz", false); descriptions.add("PixelCPEFastESProducer", desc); } diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEGenericESProducer.cc b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEGenericESProducer.cc index 66aa5884de014..c340730977634 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEGenericESProducer.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPEGenericESProducer.cc @@ -45,9 +45,9 @@ PixelCPEGenericESProducer::PixelCPEGenericESProducer(const edm::ParameterSet& p) // Use LA-width from DB. If both (upper and this) are false LA-width is calcuated from LA-offset useLAWidthFromDB_ = p.getParameter("useLAWidthFromDB"); // Use Alignment LA-offset - const bool useLAAlignmentOffsets = p.getParameter("useLAAlignmentOffsets"); + const bool doLorentzFromAlignment = p.getParameter("doLorentzFromAlignment"); char const* laLabel = ""; // standard LA, from calibration, label="" - if (useLAAlignmentOffsets) { + if (doLorentzFromAlignment) { laLabel = "fromAlignment"; } @@ -66,9 +66,6 @@ PixelCPEGenericESProducer::PixelCPEGenericESProducer(const edm::ParameterSet& p) if (UseErrorsFromTemplates_) { genErrorDBObjectToken_ = c.consumes(); } - - //std::cout<<" ESProducer "< PixelCPEGenericESProducer::produce(const TkPixelCPERecord& iRecord) { @@ -108,8 +105,6 @@ void PixelCPEGenericESProducer::fillDescriptions(edm::ConfigurationDescriptions& // specific to PixelCPEGenericESProducer desc.add("ComponentName", "PixelCPEGeneric"); desc.add("MagneticFieldRecord", edm::ESInputTag("")); - desc.add("useLAAlignmentOffsets", false); - desc.add("DoLorentz", false); descriptions.add("_generic_default", desc); } diff --git a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPETemplateRecoESProducer.cc b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPETemplateRecoESProducer.cc index 7baf430c3af04..696d3700f96f7 100644 --- a/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPETemplateRecoESProducer.cc +++ b/RecoLocalTracker/SiPixelRecHits/plugins/PixelCPETemplateRecoESProducer.cc @@ -30,7 +30,8 @@ class PixelCPETemplateRecoESProducer : public edm::ESProducer { edm::ESGetToken templateDBobjectToken_; edm::ParameterSet pset_; - bool DoLorentz_; + bool doLorentzFromAlignment_; + bool useLAFromDB_; }; using namespace edm; @@ -38,8 +39,8 @@ using namespace edm; PixelCPETemplateRecoESProducer::PixelCPETemplateRecoESProducer(const edm::ParameterSet& p) { std::string myname = p.getParameter("ComponentName"); - //DoLorentz_ = p.getParameter("DoLorentz"); // True when LA from alignment is used - DoLorentz_ = p.getParameter("DoLorentz"); + useLAFromDB_ = p.getParameter("useLAFromDB"); + doLorentzFromAlignment_ = p.getParameter("doLorentzFromAlignment"); pset_ = p; auto c = setWhatProduced(this, myname); @@ -47,18 +48,19 @@ PixelCPETemplateRecoESProducer::PixelCPETemplateRecoESProducer(const edm::Parame pDDToken_ = c.consumes(); hTTToken_ = c.consumes(); templateDBobjectToken_ = c.consumes(); - if (DoLorentz_) { - lorentzAngleToken_ = c.consumes(edm::ESInputTag("", "fromAlignment")); + if (useLAFromDB_ || doLorentzFromAlignment_) { + char const* laLabel = doLorentzFromAlignment_ ? "fromAlignment" : ""; + lorentzAngleToken_ = c.consumes(edm::ESInputTag("", laLabel)); } - //std::cout<<" from ES Producer Templates "< PixelCPETemplateRecoESProducer::produce( const TkPixelCPERecord& iRecord) { - // Normal, deafult LA actually is NOT needed - // null is ok becuse LA is not use by templates in this mode + // Normal, default LA is used in case of template failure, load it unless + // turned off + // if turned off, null is ok, becomes zero const SiPixelLorentzAngle* lorentzAngleProduct = nullptr; - if (DoLorentz_) { // LA correction from alignment + if (useLAFromDB_ || doLorentzFromAlignment_) { lorentzAngleProduct = &iRecord.get(lorentzAngleToken_); } @@ -81,7 +83,6 @@ void PixelCPETemplateRecoESProducer::fillDescriptions(edm::ConfigurationDescript // specific to PixelCPETemplateRecoESProducer desc.add("ComponentName", "PixelCPETemplateReco"); - desc.add("DoLorentz", true); descriptions.add("_templates_default", desc); } diff --git a/RecoLocalTracker/SiPixelRecHits/src/PixelCPEBase.cc b/RecoLocalTracker/SiPixelRecHits/src/PixelCPEBase.cc index 90f29daa31e95..812839a7a4f72 100644 --- a/RecoLocalTracker/SiPixelRecHits/src/PixelCPEBase.cc +++ b/RecoLocalTracker/SiPixelRecHits/src/PixelCPEBase.cc @@ -106,7 +106,8 @@ PixelCPEBase::PixelCPEBase(edm::ParameterSet const& conf, // For Templates only // Compute the Lorentz shifts for this detector element for templates (from Alignment) - DoLorentz_ = conf.getParameter("DoLorentz"); + doLorentzFromAlignment_ = conf.getParameter("doLorentzFromAlignment"); + useLAFromDB_ = conf.getParameter("useLAFromDB"); LogDebug("PixelCPEBase") << " LA constants - " << lAOffset_ << " " << lAWidthBPix_ << " " << lAWidthFPix_ << endl; //dk @@ -194,7 +195,8 @@ void PixelCPEBase::fillDetParams() { p.bx = Bfield.x(); //--- Compute the Lorentz shifts for this detector element - if ((theFlag_ == 0) || DoLorentz_) { // do always for generic and if(DOLorentz) for templates + if ((theFlag_ == 0) || useLAFromDB_ || + doLorentzFromAlignment_) { // do always for generic and if using LA from DB or alignment for templates p.driftDirection = driftDirection(p, Bfield); computeLorentzShifts(p); } @@ -470,4 +472,6 @@ void PixelCPEBase::fillPSetDescription(edm::ParameterSetDescription& desc) { desc.add("lAOffset", 0.0); desc.add("lAWidthBPix", 0.0); desc.add("lAWidthFPix", 0.0); + desc.add("doLorentzFromAlignment", false); + desc.add("useLAFromDB", true); } diff --git a/RecoLocalTracker/SiPixelRecHits/src/PixelCPEClusterRepair.cc b/RecoLocalTracker/SiPixelRecHits/src/PixelCPEClusterRepair.cc index 51b75525c7218..ac84748b74be1 100644 --- a/RecoLocalTracker/SiPixelRecHits/src/PixelCPEClusterRepair.cc +++ b/RecoLocalTracker/SiPixelRecHits/src/PixelCPEClusterRepair.cc @@ -324,6 +324,11 @@ void PixelCPEClusterRepair::callTempReco1D(DetParam const& theDetParam, // We have a boolean denoting whether the reco failed or not theClusterParam.hasFilledProb_ = false; + // In case of template reco failure, these are the lorentz drift corrections + // to be applied + float lorentzshiftX = 0.5f * theDetParam.lorentzShiftInCmX; + float lorentzshiftY = 0.5f * theDetParam.lorentzShiftInCmY; + // ****************************************************************** //--- Call normal TemplateReco // @@ -363,30 +368,22 @@ void PixelCPEClusterRepair::callTempReco1D(DetParam const& theDetParam, theClusterParam.probabilityX_ = theClusterParam.probabilityY_ = theClusterParam.probabilityQ_ = 0.f; theClusterParam.qBin_ = 0; + // + // Template reco has failed, compute position estimates based on cluster center of gravity + Lorentz drift + // Future improvement would be to call generic reco instead - // Gavril: what do we do in this case ? For now, just return the cluster center of gravity in microns - // In the x case, apply a rough Lorentz drift average correction - // To do: call PixelCPEGeneric whenever PixelTempReco1D fails - float lorentz_drift = -999.9; - if (!GeomDetEnumerators::isEndcap(theDetParam.thePart)) - lorentz_drift = 60.0f; // in microns - else - lorentz_drift = 10.0f; // in microns - // GG: trk angles needed to correct for bows/kinks if (theClusterParam.with_track_angle) { theClusterParam.templXrec_ = - theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction + theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) + lorentzshiftX; theClusterParam.templYrec_ = - theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred); + theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred) + lorentzshiftY; } else { edm::LogError("PixelCPEClusterRepair") << "@SUB = PixelCPEClusterRepair::localPosition" << "Should never be here. PixelCPEClusterRepair should always be called " "with track angles. This is a bad error !!! "; - theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction - theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()); + theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) + lorentzshiftX; + theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()) + lorentzshiftY; } } else { //--- Template Reco succeeded. The probabilities are filled. @@ -423,6 +420,11 @@ void PixelCPEClusterRepair::callTempReco2D(DetParam const& theDetParam, // We have a boolean denoting whether the reco failed or not theClusterParam.hasFilledProb_ = false; + // In case of template reco failure, these are the lorentz drift corrections + // to be applied + float lorentzshiftX = 0.5f * theDetParam.lorentzShiftInCmX; + float lorentzshiftY = 0.5f * theDetParam.lorentzShiftInCmY; + // ****************************************************************** //--- Call 2D TemplateReco // @@ -482,29 +484,24 @@ void PixelCPEClusterRepair::callTempReco2D(DetParam const& theDetParam, theClusterParam.probabilityX_ = theClusterParam.probabilityY_ = theClusterParam.probabilityQ_ = 0.f; theClusterParam.qBin_ = 0; - // GG: what do we do in this case? For now, just return the cluster center of gravity in microns - // In the x case, apply a rough Lorentz drift average correction - float lorentz_drift = -999.9; - if (!GeomDetEnumerators::isEndcap(theDetParam.thePart)) - lorentz_drift = 60.0f; // in microns // &&& replace with a constant (globally) - else - lorentz_drift = 10.0f; // in microns - // GG: trk angles needed to correct for bows/kinks + + // 2D Template reco has failed, compute position estimates based on cluster center of gravity + Lorentz drift + // Future improvement would be to call generic reco instead + if (theClusterParam.with_track_angle) { theClusterParam.templXrec_ = - theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction + theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) + lorentzshiftX; theClusterParam.templYrec_ = - theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred); + theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred) + lorentzshiftY; } else { edm::LogError("PixelCPEClusterRepair") << "@SUB = PixelCPEClusterRepair::localPosition" << "Should never be here. PixelCPEClusterRepair should always be called " "with track angles. This is a bad error !!! "; - theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction - theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()); + theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) + lorentzshiftX; + theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()) + lorentzshiftY; } + } else { //--- Template Reco succeeded. theClusterParam.hasFilledProb_ = true; diff --git a/RecoLocalTracker/SiPixelRecHits/src/PixelCPETemplateReco.cc b/RecoLocalTracker/SiPixelRecHits/src/PixelCPETemplateReco.cc index 9d90a41e606ad..48752c6e12757 100644 --- a/RecoLocalTracker/SiPixelRecHits/src/PixelCPETemplateReco.cc +++ b/RecoLocalTracker/SiPixelRecHits/src/PixelCPETemplateReco.cc @@ -151,6 +151,13 @@ LocalPoint PixelCPETemplateReco::localPosition(DetParam const& theDetParam, Clus // Store these offsets (to be added later) in a LocalPoint after tranforming // them from measurement units (pixel units) to local coordinates (cm) + // + // + + // In case of template reco failure, these are the lorentz drift corrections + // to be applied + float lorentzshiftX = 0.5f * theDetParam.lorentzShiftInCmX; + float lorentzshiftY = 0.5f * theDetParam.lorentzShiftInCmY; // ggiurgiu@jhu.edu 12/09/2010 : update call with trk angles needed for bow/kink corrections LocalPoint lp; @@ -255,29 +262,22 @@ LocalPoint PixelCPETemplateReco::localPosition(DetParam const& theDetParam, Clus LogDebug("PixelCPETemplateReco::localPosition") << "reconstruction failed with error " << theClusterParam.ierr << "\n"; - // Gavril: what do we do in this case ? For now, just return the cluster center of gravity in microns - // In the x case, apply a rough Lorentz drift average correction - // To do: call PixelCPEGeneric whenever PixelTempReco1D fails - float lorentz_drift = -999.9; - if (!fpix) - lorentz_drift = 60.0f; // in microns - else - lorentz_drift = 10.0f; // in microns + // Template reco has failed, compute position estimates based on cluster center of gravity + Lorentz drift + // Future improvement would be to call generic reco instead + // ggiurgiu@jhu.edu, 21/09/2010 : trk angles needed to correct for bows/kinks if (theClusterParam.with_track_angle) { theClusterParam.templXrec_ = - theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction + theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) + lorentzshiftX; theClusterParam.templYrec_ = - theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred); + theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred) + lorentzshiftY; } else { edm::LogError("PixelCPETemplateReco") << "@SUB = PixelCPETemplateReco::localPosition" << "Should never be here. PixelCPETemplateReco should always be called " "with track angles. This is a bad error !!! "; - theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction - theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()); + theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) + lorentzshiftX; + theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()) + lorentzshiftY; } } else if UNLIKELY (UseClusterSplitter_ && theClusterParam.templQbin_ == 0) { edm::LogError("PixelCPETemplateReco") << " PixelCPETemplateReco: Qbin = 0 but using cluster splitter, we should " @@ -315,33 +315,21 @@ LocalPoint PixelCPETemplateReco::localPosition(DetParam const& theDetParam, Clus */ if (theClusterParam.ierr != 0) { - LogDebug("PixelCPETemplateReco::localPosition") - << "reconstruction failed with error " << theClusterParam.ierr << "\n"; - - // Gavril: what do we do in this case ? For now, just return the cluster center of gravity in microns - // In the x case, apply a rough Lorentz drift average correction - // To do: call PixelCPEGeneric whenever PixelTempReco1D fails - float lorentz_drift = -999.9f; - if (!fpix) - lorentz_drift = 60.0f; // in microns - else - lorentz_drift = 10.0f; // in microns + // Template reco has failed, compute position estimates based on cluster center of gravity + Lorentz drift + // Future improvement would be to call generic reco instead // ggiurgiu@jhu.edu, 12/09/2010 : trk angles needed to correct for bows/kinks if (theClusterParam.with_track_angle) { theClusterParam.templXrec_ = - theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) - - lorentz_drift * micronsToCm; // rough Lorentz drift correction + theDetParam.theTopol->localX(theClusterParam.theCluster->x(), theClusterParam.loc_trk_pred) + lorentzshiftX; theClusterParam.templYrec_ = - theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred); + theDetParam.theTopol->localY(theClusterParam.theCluster->y(), theClusterParam.loc_trk_pred) + lorentzshiftY; } else { edm::LogError("PixelCPETemplateReco") << "@SUB = PixelCPETemplateReco::localPosition" << "Should never be here. PixelCPETemplateReco should always be called " "with track angles. This is a bad error !!! "; - - theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) - - lorentz_drift * micronsToCm; // very rough Lorentz drift correction - theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()); + theClusterParam.templXrec_ = theDetParam.theTopol->localX(theClusterParam.theCluster->x()) + lorentzshiftX; + theClusterParam.templYrec_ = theDetParam.theTopol->localY(theClusterParam.theCluster->y()) + lorentzshiftY; } } else { // go from micrometer to centimeter @@ -377,7 +365,7 @@ LocalPoint PixelCPETemplateReco::localPosition(DetParam const& theDetParam, Clus theClusterParam.templYrec_ += lp.y(); // Compute the Alignment Group Corrections [template ID should already be selected from call to reco procedure] - if (DoLorentz_) { + if (doLorentzFromAlignment_) { // Do only if the lotentzshift has meaningfull numbers if (theDetParam.lorentzShiftInCmX != 0.0 || theDetParam.lorentzShiftInCmY != 0.0) { // the LA width/shift returned by templates use (+)