diff --git a/InnerDetector/InDetConfig/python/InDetVKalVxInJetToolConfig.py b/InnerDetector/InDetConfig/python/InDetVKalVxInJetToolConfig.py index 1018e623e3d166a4ca7c049ac76a29fd1a10a759..0951ff76d46fe2c20a26dc279eb3b4a2f39a903b 100644 --- a/InnerDetector/InDetConfig/python/InDetVKalVxInJetToolConfig.py +++ b/InnerDetector/InDetConfig/python/InDetVKalVxInJetToolConfig.py @@ -12,8 +12,8 @@ def TCTDecorCheckInToolCfg(flags, name="TCTDecorCheckInTool", **kwargs): kwargs.setdefault("JetCollection","AntiKt4EMPFlowJets") from TrkConfig.TrkVKalVrtFitterConfig import TrkVKalVrtFitterCfg - VertexFitterTool = acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags,"VertexFitterTool")) - kwargs.setdefault("TrackClassificationTool",acc.popToolsAndMerge(InDetTrkInJetTypeCfg(flags,name="TrkInJetType",JetCollection=kwargs["JetCollection"],VertexFitterTool=VertexFitterTool))) + VertexFitter = acc.popToolsAndMerge(TrkVKalVrtFitterCfg(flags,"VKalVrtFitter")) + kwargs.setdefault("TrackClassificationTool",acc.popToolsAndMerge(InDetTrkInJetTypeCfg(flags,name="TrkInJetType",JetCollection=kwargs["JetCollection"],VertexFitterTool=VertexFitter))) acc.addEventAlgo(CompFactory.TCTDecorCheckInTool(name, **kwargs)) return acc @@ -28,12 +28,17 @@ def InDetTrkInJetTypeCfg(flags, name="TrkInJetType", **kwargs): def InDetVKalVxInJetToolCfg(flags, name="InDetVKalVxInJetTool", **kwargs): acc = ComponentAccumulator() + from TrkConfig.TrkVKalVrtFitterConfig import BTAG_TrkVKalVrtFitterCfg + VertexFitter = acc.popToolsAndMerge(BTAG_TrkVKalVrtFitterCfg(flags,"VKalVrtFitter")) + if "TrackClassTool" not in kwargs: kwargs.setdefault("TrackClassTool", acc.popToolsAndMerge( - InDetTrkInJetTypeCfg(flags))) + InDetTrkInJetTypeCfg(flags,VertexFitterTool=VertexFitter))) kwargs.setdefault("ExistIBL", flags.GeoModel.Run in [LHCPeriod.Run2, LHCPeriod.Run3]) kwargs.setdefault("getNegativeTag", "Flip" in name) + kwargs.setdefault("UseFrozenVersion", True) + kwargs.setdefault("VertexFitterTool", VertexFitter) if flags.GeoModel.Run >= LHCPeriod.Run4: from InDetConfig.InDetEtaDependentCutsConfig import IDEtaDependentCuts_SV1_SvcCfg diff --git a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx index 7087a95117dba6ffb48a1c33d59dfebf1fed3b29..ed7d47d30970d14e9bf578597f5bb711f018f3d1 100755 --- a/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx +++ b/InnerDetector/InDetRecTools/InDetVKalVxInJetTool/src/InDetVKalVxInJetTool.cxx @@ -49,7 +49,7 @@ InDetVKalVxInJetTool::InDetVKalVxInJetTool(const std::string& type, m_zTrkErrorCut(5.0), m_cutBVrtScore(0.015), m_vrt2TrMassLimit(4000.), - m_useFrozenVersion(true), + m_useFrozenVersion(false), m_fillHist(false), m_existIBL(true), m_RobustFit(1), diff --git a/Tools/WorkflowTestRunner/python/References.py b/Tools/WorkflowTestRunner/python/References.py index 3c21cdfcd4194cd8527d9248dda6dc0bc36401c6..37dd10352177423f9eaa75ccff4a5be6848a6c59 100644 --- a/Tools/WorkflowTestRunner/python/References.py +++ b/Tools/WorkflowTestRunner/python/References.py @@ -22,8 +22,8 @@ references_map = { "d1726": "v1", "d1759": "v1", # Reco - "q442": "v1", - "q443": "v1", - "q445": "v1", - "q449": "v1", + "q442": "v2", + "q443": "v2", + "q445": "v2", + "q449": "v2", } diff --git a/Tracking/TrkConfig/python/TrkVKalVrtFitterConfig.py b/Tracking/TrkConfig/python/TrkVKalVrtFitterConfig.py index c00acab1e2fc6bf465cfe4d71f9b01a507436c63..dcd0a161a61b7d8d86401f18d334668f1de7b005 100644 --- a/Tracking/TrkConfig/python/TrkVKalVrtFitterConfig.py +++ b/Tracking/TrkConfig/python/TrkVKalVrtFitterConfig.py @@ -63,3 +63,15 @@ def V0VKalVrtFitterCfg(flags, name="V0VKalVrtFitter", **kwargs): def JpsiV0VertexFitCfg(flags, name="JpsiV0VertexFit", **kwargs): kwargs.setdefault("CascadeCnstPrecision", 1e-6) return BPHY_TrkVKalVrtFitterCfg(flags, name, **kwargs) + +def BTAG_TrkVKalVrtFitterCfg(flags, name="BTAG_TrkVKalVrtFitter",**kwargs): + from MagFieldServices.MagFieldServicesConfig import AtlasFieldCacheCondAlgCfg + acc = AtlasFieldCacheCondAlgCfg(flags) # To produce AtlasFieldCacheCondObj + myargs = kwargs.copy() + myargs.setdefault("FirstMeasuredPoint", False) + myargs.setdefault("FrozenVersionForBTagging", True) + if "Extrapolator" in myargs: + del myargs["Extrapolator"] + acc.setPrivateTools(CompFactory.Trk.TrkVKalVrtFitter(name, **myargs)) + return acc + diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h index 4175700b91b86b6ffb31befed202deba2ec20094..d17cada623334fcedff0919da919911af664052e 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/TrkVKalVrtCore/TrkVKalVrtCore.h @@ -89,6 +89,7 @@ namespace Trk { CascadeEvent * m_cascadeEvent=nullptr; public: ForCFT vk_forcft; + bool m_frozenVersionForBTagging = false; }; } // end of namespace bracket diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFit.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFit.cxx index 3e986e0d7e02eb6dbb3384e88981f27767b45e57..900a36593db64ab02f4d53599015c4fb8b8ce690 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFit.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFit.cxx @@ -169,7 +169,7 @@ int fitVertex(VKVertex * vk) extern int cfInv5(double *cov, double *wgt ); extern void cfTrkCovarCorr(double *cov); extern void applyConstraints(VKVertex * vk); - extern void robtest(VKVertex * , long int ); + extern void robtest(VKVertex * , int ifl, int nIteration=10); // // New datastructure @@ -312,8 +312,8 @@ int fitVertex(VKVertex * vk) trk = vk->TrackList[tk].get(); protectCurvatureSign( trk->refPerig[4], trk->fitP[2] , trk->WgtM); } /*-------------------------------- Now the fit itself -----------------*/ - if (vrtForCFT.irob != 0) {robtest(vk, 0);} // ROBUSTIFICATION new data structure - if (vrtForCFT.irob != 0) {robtest(vk, 1);} // ROBUSTIFICATION new data structure + if (vrtForCFT.irob != 0) {robtest(vk, 0, it);} // ROBUSTIFICATION new data structure + if (vrtForCFT.irob != 0) {robtest(vk, 1, it);} // ROBUSTIFICATION new data structure for( tk=0; tk<NTRK; tk++){ trk = vk->TrackList[tk].get(); trk->iniP[0]=trk->cnstP[0]=trk->fitP[0]; //use fitted track parameters as initial guess @@ -339,7 +339,7 @@ int fitVertex(VKVertex * vk) chi22s = chi21s * 1.01 + 10.; //for safety if ( vShift < 10.*vkalShiftToTrigExtrapolation) { // REASONABLE DISPLACEMENT - RECALCULATE /* ROBUSTIFICATION */ - if (vrtForCFT.irob != 0) {robtest(vk, 1);} // ROBUSTIFICATION new data structure + if (vrtForCFT.irob != 0) {robtest(vk, 1, it+1);} // ROBUSTIFICATION new data structure //Reset mag.field for( i=0; i<3; i++) dparst[i]=vk->refIterV[i]+vk->fitV[i]; // fitted vertex at global frame vrtForCFT.localbmag=myMagFld.getMagFld(dparst,(vk->vk_fitterControl).get()); @@ -382,14 +382,17 @@ int fitVertex(VKVertex * vk) /*---------------------Normal convergence--------------------*/ double PrecLimit = std::min(chi22s*1.e-4, vrtForCFT.IterationPrecision); //std::cout<<"Convergence="<< chi2df <<"<"<<PrecLimit<<" cnst="<<cnstRemnants<<"<"<<ConstraintAccuracy<<'\n'; - if ((chi2df < PrecLimit) && (vShift < 0.001) && it>1 && (cnstRemnants<ConstraintAccuracy)){ - double dstFromExtrapPnt=sqrt(vk->fitV[0]*vk->fitV[0] + vk->fitV[1]*vk->fitV[1]+ vk->fitV[2]*vk->fitV[2]); - if( dstFromExtrapPnt>vkalShiftToTrigExtrapolation/2. && it < vrtForCFT.IterationNumber-15){ - forcedExtrapolation=true; - continue; // Make another extrapolation exactly to found vertex position - } - break; - } + if( ( vk->vk_fitterControl->m_frozenVersionForBTagging && it>1 ) + || (!vk->vk_fitterControl->m_frozenVersionForBTagging && (it>3||vrtForCFT.irob==0) ) ){ + if((chi2df < PrecLimit) && (vShift < 0.001) && (cnstRemnants<ConstraintAccuracy)){ + double dstFromExtrapPnt=sqrt(vk->fitV[0]*vk->fitV[0] + vk->fitV[1]*vk->fitV[1]+ vk->fitV[2]*vk->fitV[2]); + if( dstFromExtrapPnt>vkalShiftToTrigExtrapolation/2. && it < vrtForCFT.IterationNumber-15){ + forcedExtrapolation=true; + continue; // Make another extrapolation exactly to found vertex position + } + break; + } + } chi2min = std::min(chi2min,chi22s); if ((chi2min*100. < chi22s) && (chi22s>std::max( (2*NTRK-3)*10., 100.)) && (it>5)){ //std::cout<<" DIVERGENCE="<<chi22s<<" Ratio="<<chi22s/chi2min<<'\n'; diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx index b80ecd1b39f8dcc0a7d96543e6aeba1026d0b557..151bc5540b08ec23e7dc9bea8d599f078ad65b2a 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/CFitCascade.cxx @@ -41,7 +41,7 @@ extern std::array<double, 4> getFitParticleMom( const VKTrack *, double); extern void setFittedMatrices(const double * , long int , std::vector<int> &, std::vector< std::vector<double> > &, CascadeEvent& ); extern std::vector<double> transformCovar(int , double **, const std::vector<double>& ); extern double cfVrtDstSig( VKVertex * , bool ); -extern void robtest(VKVertex * , long int ); +extern void robtest(VKVertex * , int ifl, int nIteration=10); extern int fixPseudoTrackPt(long int NPar, double * fullMtx, double * LSide, CascadeEvent&); extern void getNewCov(const double *OldCov, const double* Der, double* Cov, long int DIM) noexcept; @@ -368,8 +368,8 @@ int processCascade(CascadeEvent & cascadeEvent_ ) vpderiv(vk->passWithTrkCov, vk->FVC.Charge, dparst, vk->fitCovXYZMom, vk->FVC.vrt, vk->FVC.covvrt, vk->FVC.cvder, vk->FVC.ywgt, vk->FVC.rv0, (vk->vk_fitterControl).get()); } - if (vk->vk_fitterControl->vk_forcft.irob != 0) {robtest(vk, 0);} // ROBUSTIFICATION new data structure - if (vk->vk_fitterControl->vk_forcft.irob != 0) {robtest(vk, 1);} // ROBUSTIFICATION new data structure + if (vk->vk_fitterControl->vk_forcft.irob != 0) {robtest(vk, 0, Iter);} // ROBUSTIFICATION new data structure + if (vk->vk_fitterControl->vk_forcft.irob != 0) {robtest(vk, 1, Iter);} // ROBUSTIFICATION new data structure IERR = fitVertexCascade( vk, 1 ); if(IERR) break; //with passNear for last vertex in cascade if needed IERR = setVTrackMass(vk); if(IERR) break; //mass of combined particle // diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/RobTest.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/RobTest.cxx index e7bb953310246a992a685fe97a83f740ba44b19e..44ee7e8fd821a7ea2fb3f13941842f64af554b51 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/RobTest.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/RobTest.cxx @@ -9,12 +9,10 @@ namespace Trk { - -//extern void digx(double*, double*, double*, long int , long int ); extern void vkGetEigVect(const double ci[], double d[], double vect[], int n); -void robtest(VKVertex * vk, long int ifl) +void robtest(VKVertex * vk, int ifl, int nIteration=10) { long int i, j, k, kk, it; double rob, res, c[5], darg, absX, roba[5]; @@ -40,26 +38,15 @@ void robtest(VKVertex * vk, long int ifl) double Scl = vk->vk_fitterControl->vk_forcft.RobustScale; //Tuning constant double C; // Breakdown constant + if(!vk->vk_fitterControl->m_frozenVersionForBTagging)Scl *= (1.+exp(3.-nIteration)); //Annealing + if ( ifl == 0) { /* FILLING OF EIGENVALUES AND VECTORS */ - for (it = 0; it < NTRK ; ++it) { /* RESTORE MATRIX */ + for (it = 0; it < NTRK ; ++it) { /* RESTORE MATRIX */ VKTrack *trk=vk->TrackList[it].get(); if(trk->Id < 0) continue; // Not a real track - //k = 0; double dest[5][5]; - //for (i = 0; i < 5; ++i) { - //for (j = 0; j <= i; ++j) { - // dest[i][j] = trk->WgtM[k]; - // dest[j][i] = trk->WgtM[k]; - // ++k; - // } - //} - //digx(&dest[0][0], &(vk->TrackList[it]->e[0]), &(vk->TrackList[it]->v[0][0]), 5, 1); vkGetEigVect(trk->WgtM, trk->e ,&(trk->v[0][0]), 5); - } -//std::cout.precision(9); std::cout<<"Rob="<<irob<<'\n'; -//std::cout<<" Ini="<<vk->TrackList[0]->WgtM[0]<<", "<<vk->TrackList[0]->WgtM[1]<<", "<<vk->TrackList[0]->WgtM[2] -// <<", "<<vk->TrackList[0]->WgtM[3]<<", "<<vk->TrackList[0]->WgtM[4]<<", "<<vk->TrackList[0]->WgtM[5] -// <<", "<<vk->TrackList[0]->WgtM[6]<<", "<<vk->TrackList[0]->WgtM[7]<<", "<<vk->TrackList[0]->WgtM[8]<<'\n'; - return; + } + return; } /* -- */ double halfPi=M_PI/2.; @@ -74,9 +61,6 @@ void robtest(VKVertex * vk, long int ifl) c[3] += trk->rmnd[k] * trk->v[3][k]; c[4] += trk->rmnd[k] * trk->v[4][k]; } -//std::cout<<"rm="<<trk->rmnd[0]<<", "<<trk->rmnd[1]<<", "<<trk->rmnd[2]<< -// ", "<<trk->rmnd[3]<<", "<<trk->rmnd[4]<<", "<<'\n'; -//std::cout<<" c="<<c[0]<<", "<<c[1]<<", "<<c[2]<<", "<<c[3]<<", "<<c[4]<<", "<<'\n'; for (k = 0; k < 5; ++k) { darg = c[k]*c[k]*trk->e[k]; if(darg < 1.e-10) darg = 1.e-10; @@ -102,7 +86,6 @@ void robtest(VKVertex * vk, long int ifl) roba[k] = rob; if(rob>0.99)roba[k] = 1.; //To improve precision } -//std::cout<<"robn="<<roba[0]<<", "<<roba[1]<<", "<<roba[2]<<", "<<roba[3]<<", "<<roba[4]<<", "<<irob<<'\n'; for (i = 0; i < 5; ++i) if(roba[i]<1.e-3)roba[i]=1.e-3; kk = 0; for (i = 0; i < 5; ++i) { @@ -118,9 +101,6 @@ void robtest(VKVertex * vk, long int ifl) vk->vk_fitterControl->vk_forcft.robres[it] = roba[0] * roba[1] * roba[2] * roba[3] * roba[4]; if(vk->vk_fitterControl->vk_forcft.robres[it]>1.)vk->vk_fitterControl->vk_forcft.robres[it]=1.; } -//std::cout<<" Fin="<<vk->TrackList[0]->WgtM[0]<<", "<<vk->TrackList[0]->WgtM[1]<<", "<<vk->TrackList[0]->WgtM[2] -// <<", "<<vk->TrackList[0]->WgtM[3]<<", "<<vk->TrackList[0]->WgtM[4]<<", "<<vk->TrackList[0]->WgtM[5] -// <<", "<<vk->TrackList[0]->WgtM[6]<<", "<<vk->TrackList[0]->WgtM[7]<<", "<<vk->TrackList[0]->WgtM[8]<<'\n'; } diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx index d2562b6a246790436d166e54082e614b2b7dc4f7..408bb7f04d6aa08e15c9207b3b6549b95c749f0f 100644 --- a/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtCore/src/TrkVKalVrtCoreBase.cxx @@ -30,7 +30,8 @@ namespace Trk { m_vrtMassTot(-1), m_vrtMassError(-1), m_cascadeEvent(nullptr), - vk_forcft() + vk_forcft(), + m_frozenVersionForBTagging(false) { } VKalVrtControl::VKalVrtControl(const VKalVrtControl & src) @@ -38,7 +39,8 @@ namespace Trk { m_vrtMassTot(src.m_vrtMassTot), m_vrtMassError(src.m_vrtMassError), m_cascadeEvent(src.m_cascadeEvent), - vk_forcft(src.vk_forcft) + vk_forcft(src.vk_forcft), + m_frozenVersionForBTagging(src.m_frozenVersionForBTagging) { } diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h index 6f39d20a34f5ac785822f8384be2bf7745eea839..bc42604898d8c2f1ae4c96e6965a907116fe920a 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/TrkVKalVrtFitter/TrkVKalVrtFitter.h @@ -351,6 +351,7 @@ namespace Trk{ bool m_useZPointingCnst; bool m_usePassNear; bool m_usePassWithTrkErr; + bool m_frozenVersionForBTagging; void initCnstList(); // Track material effects control @@ -426,6 +427,7 @@ namespace Trk{ bool m_useZPointingCnst = false; bool m_usePassNear = false; bool m_usePassWithTrkErr = false; + bool m_frozenVersionForBTagging = false; std::vector<double> m_VertexForConstraint; std::vector<double> m_CovVrtForConstraint; diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/SetFitOptions.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/SetFitOptions.cxx index 35a4dbd4a50904918da472d8aa0251b4346fc3f3..d1c4c391ee760a195135ecdd5766420f8dd0d597 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/SetFitOptions.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/SetFitOptions.cxx @@ -57,6 +57,8 @@ namespace Trk{ if(state.m_usePassNear) state.m_vkalFitControl.setUsePassNear(1); if(state.m_usePassWithTrkErr)state.m_vkalFitControl.setUsePassNear(2); + if(state.m_frozenVersionForBTagging)state.m_vkalFitControl.m_frozenVersionForBTagging=true; + if(m_IterationPrecision>0.) state.m_vkalFitControl.setIterationPrec(m_IterationPrecision); if(m_IterationNumber) state.m_vkalFitControl.setIterationNum(m_IterationNumber); } diff --git a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx index 3f9a92c60f4946ec6928648f0fd7db559ae7416e..3d3fa1f91438c570019863aee13426b530cd0b8a 100755 --- a/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx +++ b/Tracking/TrkVertexFitter/TrkVKalVrtFitter/src/TrkVKalVrtFitter.cxx @@ -54,7 +54,8 @@ TrkVKalVrtFitter:: TrkVKalVrtFitter(const std::string& type, m_usePointingCnst(false), m_useZPointingCnst(false), m_usePassNear(false), - m_usePassWithTrkErr(false) + m_usePassWithTrkErr(false), + m_frozenVersionForBTagging(false) { declareInterface<IVertexFitter>(this); declareInterface<ITrkVKalVrtFitter>(this); @@ -93,6 +94,7 @@ TrkVKalVrtFitter:: TrkVKalVrtFitter(const std::string& type, declareProperty("useZPointingCnst", m_useZPointingCnst); declareProperty("usePassNearCnst", m_usePassNear); declareProperty("usePassWithTrkErrCnst", m_usePassWithTrkErr); + declareProperty("FrozenVersionForBTagging", m_frozenVersionForBTagging); // /*--------------------------------------------------------------------------*/ @@ -177,6 +179,7 @@ StatusCode TrkVKalVrtFitter::initialize() if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG)<< "TrkVKalVrtFitter initialize() successful" << endmsg; if(msgLvl(MSG::DEBUG)){ msg(MSG::DEBUG)<< "TrkVKalVrtFitter configuration:" << endmsg; + msg(MSG::DEBUG)<< " Frozen version for BTagging: "<< m_frozenVersionForBTagging <<endmsg; msg(MSG::DEBUG)<< " A priori vertex constraint: "<< m_useAprioriVertex <<endmsg; msg(MSG::DEBUG)<< " Angle dTheta=0 constraint: "<< m_useThetaCnst <<endmsg; msg(MSG::DEBUG)<< " Angle dPhi=0 constraint: "<< m_usePhiCnst <<endmsg; @@ -254,6 +257,7 @@ void TrkVKalVrtFitter::initState (const EventContext& ctx, State& state) const state.m_Robustness = m_Robustness; state.m_RobustScale = m_RobustScale; state.m_MassInputParticles = m_c_MassInputParticles; + state.m_frozenVersionForBTagging = m_frozenVersionForBTagging; } /** Interface for MeasuredPerigee with starting point */