From bd7772df71ad6f4bfb61407a3eba301c39f55c9f Mon Sep 17 00:00:00 2001 From: Nicola Amapane Date: Thu, 28 May 2015 15:21:17 +0200 Subject: [PATCH] Do not apply DT vdrift correction (that accounts for field in phi SLs of wheels+-2 of MB1) when B=0 --- .../DTRecHit/plugins/DTLinearDriftFromDBAlgo.cc | 12 +++++++++++- .../DTRecHit/plugins/DTLinearDriftFromDBAlgo.h | 5 +++++ 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.cc b/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.cc index a726524e028ed..6eef48c24871b 100644 --- a/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.cc +++ b/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.cc @@ -17,12 +17,17 @@ #include "CondFormats/DTObjects/interface/DTRecoUncertainties.h" #include "CondFormats/DataRecord/interface/DTRecoUncertaintiesRcd.h" #include "FWCore/MessageLogger/interface/MessageLogger.h" +#include "MagneticField/Engine/interface/MagneticField.h" +#include "MagneticField/Records/interface/IdealMagneticFieldRecord.h" using namespace std; using namespace edm; DTLinearDriftFromDBAlgo::DTLinearDriftFromDBAlgo(const ParameterSet& config) : DTRecHitBaseAlgo(config), + mTimeMap(0), + field(0), + nominalB(-1), minTime(config.getParameter("minTime")), maxTime(config.getParameter("maxTime")), doVdriftCorr(config.getParameter("doVdriftCorr")), @@ -57,6 +62,11 @@ void DTLinearDriftFromDBAlgo::setES(const EventSetup& setup) { setup.get().get(mTimeHandle); mTimeMap = &*mTimeHandle; + ESHandle magfield; + setup.get().get(magfield); + field = &*magfield; + nominalB = field->nominalValue(); + if (useUncertDB) { ESHandle uncerts; setup.get().get(uncerts); @@ -172,7 +182,7 @@ bool DTLinearDriftFromDBAlgo::compute(const DTLayer* layer, } //only in step 3 - if(doVdriftCorr && step == 3){ + if(doVdriftCorr && step == 3 && nominalB !=0){ if (abs(wireId.wheel()) == 2 && wireId.station() == 1 && wireId.superLayer() != 2) { diff --git a/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.h b/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.h index 53b9d6e4bdb03..3f3c793eb7d06 100644 --- a/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.h +++ b/RecoLocalMuon/DTRecHit/plugins/DTLinearDriftFromDBAlgo.h @@ -13,6 +13,7 @@ class DTMtime; class DTRecoUncertainties; +class MagneticField; class DTLinearDriftFromDBAlgo : public DTRecHitBaseAlgo { public: @@ -83,6 +84,10 @@ class DTLinearDriftFromDBAlgo : public DTRecHitBaseAlgo { //Map of meantimes const DTMtime *mTimeMap; + // MF field + const MagneticField* field; + int nominalB; + // Map of hit uncertainties const DTRecoUncertainties *uncertMap;