diff --git a/Phys/DaVinciFilters/CMakeLists.txt b/Phys/DaVinciFilters/CMakeLists.txt index 43d95a44a52f8ecaf4acc4e2a3617c3c9f690d50..a2d5c76269bbbd18e98918e3925c020ceaea93db 100644 --- a/Phys/DaVinciFilters/CMakeLists.txt +++ b/Phys/DaVinciFilters/CMakeLists.txt @@ -43,7 +43,7 @@ gaudi_add_module(DaVinciFilters Phys::DaVinciInterfacesLib Phys::DaVinciKernelLib Phys::DaVinciTypesLib - Phys::DecayTreeFitter + Phys::DecayTreeFitterLib Phys::LoKiArrayFunctorsLib Phys::LoKiPhysLib Rec::TrackInterfacesLib diff --git a/Phys/DecayTreeFitter/CMakeLists.txt b/Phys/DecayTreeFitter/CMakeLists.txt index 07f062c4503c2275e2fa19d72619ac61c4d2d3ed..a6dc6aff1550f69022b0e7caa1498821381065b0 100644 --- a/Phys/DecayTreeFitter/CMakeLists.txt +++ b/Phys/DecayTreeFitter/CMakeLists.txt @@ -13,35 +13,36 @@ Phys/DecayTreeFitter -------------------- #]=======================================================================] -gaudi_add_library(DecayTreeFitter +gaudi_add_library(DecayTreeFitterLib SOURCES - src/Constraint.cpp - src/ConvertedPhoton.cpp - src/DecayChain.cpp - src/FitParams.cpp - src/Fitter.cpp - src/HelixUtils.cpp - src/InteractionPoint.cpp - src/InternalParticle.cpp - src/InternalRecoTrack.cpp - src/JetMomentum.cpp - src/KalmanCalculator.cpp - src/MergedConstraint.cpp - src/MissingParticle.cpp - src/ParticleBase.cpp - src/RecoComposite.cpp - src/RecoMergedPi0.cpp - src/RecoParticle.cpp - src/RecoPhoton.cpp - src/RecoResonance.cpp - src/RecoTrack.cpp - src/Resonance.cpp - src/VtxErrCode.cpp + src/lib/Constraint.cpp + src/lib/ConvertedPhoton.cpp + src/lib/DecayChain.cpp + src/lib/FitParams.cpp + src/lib/Fitter.cpp + src/lib/HelixUtils.cpp + src/lib/InteractionPoint.cpp + src/lib/InternalParticle.cpp + src/lib/InternalRecoTrack.cpp + src/lib/JetMomentum.cpp + src/lib/KalmanCalculator.cpp + src/lib/MergedConstraint.cpp + src/lib/MissingParticle.cpp + src/lib/ParticleBase.cpp + src/lib/RecoComposite.cpp + src/lib/RecoMergedPi0.cpp + src/lib/RecoParticle.cpp + src/lib/RecoPhoton.cpp + src/lib/RecoResonance.cpp + src/lib/RecoTrack.cpp + src/lib/Resonance.cpp + src/lib/VtxErrCode.cpp LINK PUBLIC Gaudi::GaudiKernel LHCb::LHCbMathLib Phys::DaVinciTypesLib + Phys::DaVinciInterfacesLib Rec::TrackInterfacesLib PRIVATE Boost::headers @@ -55,8 +56,19 @@ gaudi_add_library(DecayTreeFitter Rec::TrackKernel ) +gaudi_add_module(DecayTreeFitter + SOURCES + src/component/DecayTreeFitterAlg.cpp + LINK + Gaudi::GaudiAlgLib + LHCb::LHCbKernel + LHCb::PhysEvent + DecayTreeFitterLib + LHCb::LinkerEvent +) + gaudi_add_dictionary(DecayTreeFitterDict HEADERFILES dict/DecayTreeFitterDict.h SELECTION dict/DecayTreeFitterDict.xml - LINK DecayTreeFitter + LINK DecayTreeFitterLib ) diff --git a/Phys/DecayTreeFitter/src/component/DecayTreeFitterAlg.cpp b/Phys/DecayTreeFitter/src/component/DecayTreeFitterAlg.cpp new file mode 100644 index 0000000000000000000000000000000000000000..c64665ac0c32bdf04d53d57cd9babbabad04c3e8 --- /dev/null +++ b/Phys/DecayTreeFitter/src/component/DecayTreeFitterAlg.cpp @@ -0,0 +1,159 @@ +/*****************************************************************************\ +* (c) Copyright 2021 CERN for the benefit of the LHCb Collaboration * +* * +* This software is distributed under the terms of the GNU General Public * +* Licence version 3 (GPL Version 3), copied verbatim in the file "COPYING". * +* * +* In applying this licence, CERN does not waive the privileges and immunities * +* granted to it by virtue of its status as an Intergovernmental Organization * +* or submit itself to any jurisdiction. * +\*****************************************************************************/ +// ============================================================================ +// Include files + +#include "DecayTreeFitter/Fitter.h" +#include "DetDesc/IDetectorElement.h" +#include "Event/Particle.h" +#include "GaudiAlg/Transformer.h" +#include "Kernel/DecayTree.h" +#include "Kernel/IParticleDescendants.h" +#include "Kernel/IPrintDecay.h" +#include "Kernel/ParticleID.h" +#include "Relations/Relation1D.h" + +#include "TrackInterfaces/ITrackStateProvider.h" +#include + +namespace { + using Table = LHCb::Relation1D; + using out_t = std::tuple; +} // namespace +// ============================================================================ +/** @class DecayTreeFitterAlg + * Algorithm that runs DecayTreeFitter on an input and stores the output. + * Can be used stand-alone as part of a selection, or in conjuction with MAP_INPUT functor + * + * @param Input Location of particles + * @returns Output Location of DecayTreeFit-ed particles + * @returns OutputRelations location of relation table between in and out particles + * + * Properties: + * - "PrintTree" = false: print decay tree (useful for debugging) + * + * Use: + * @code + * from PyConf.Algorithms import DecayTreeFitterAlg + * import Functors as F + * DTF = DecayTreeFitterAlg(Input=dimuons, MassConstraints=["J/psi(1S)"]) + * DTFRelations = DTF.OutputRelations # Relations + * functor = F.MAP_INPUT(Functor=F.MASS, Relations=DTFRelations) + * @endcode + * + * @see DecayTreeFitter::Fitter + * @see FunTuple + * @see ParticleMapper_Rel + * @author Patrick Koppenburg + * @date 2021-07-19 + */ +class DecayTreeFitterAlg : public Gaudi::Functional::MultiTransformer { +public: + // ========================================================================== + /** the standard constructor + * @param name algorithm instance name + * @param pSvc service locator + */ + DecayTreeFitterAlg( const std::string& name, ISvcLocator* pSvc ) + : MultiTransformer( name, pSvc, {KeyValue{"Input", ""}}, + {KeyValue{"Output", ""}, KeyValue{"OutputRelations", ""}} ) {} + // ========================================================================== + /// the standard execution of the algorithm + // ========================================================================== + out_t operator()( const LHCb::Particles& parts ) const override { + auto lhcb = getDet( m_standardGeometry_address ); + if ( !lhcb ) { throw GaudiException( "Could not load geometry", name(), StatusCode::FAILURE ); } + auto& geometry = *lhcb->geometry(); + + // output + LHCb::Particles parts_out; + Table p2p_out; + + for ( auto* p : parts ) { + DecayTreeFitter::Fitter fitter( *p, m_stateprovider ); // @todo also foresee the case with a PV given + if ( !m_massConstraints.empty() ) { + for ( const auto& C : m_massConstraints ) { fitter.setMassConstraint( LHCb::ParticleID( C ) ); } + } + fitter.fit( geometry ); + LHCb::DecayTree fittedTree = fitter.getFittedTree(); + if ( fittedTree.valid() ) { + m_fittedCount++; + if ( m_print ) m_printDecay->printTree( fittedTree.head(), -1 ); + + // fill relations. First get decay tree of input + LHCb::Particle::ConstVector parts_in; // input tree, flattened + parts_in.push_back( p ); // input mother + LHCb::Particle::ConstVector dauts_in = m_descendants->descendants( p ); + parts_in.insert( parts_in.end(), dauts_in.begin(), dauts_in.end() ); // insert descendants + + // search for fitted particles in flattened tree + for ( const auto inP : parts_in ) { + // 1. Find refitted partner in tree + auto* clone = fittedTree.findClone( *inP ); + if ( !clone ) { + err() << "No refitted particle found for a " << inP->particleID().pid() << endmsg; + throw GaudiException( "No refitted particle found for", name(), StatusCode::FAILURE ); + } + LHCb::Particle* refittedP = clone->clone(); // get fitted particle + + // 2. save partner in output + LHCb::Particles::key_type key = + parts_out.insert( refittedP ); // insert, but not yet release as this would delete the clone map + const LHCb::Particle* savedP = static_cast( + parts_out.containedObject( key ) ); // get pointer to newly instered particle + + // 3. relate + p2p_out.relate( inP, savedP ).ignore(); + } + fittedTree.release(); // release now + + } else { + m_failedCount++; + Warning( "Failed fit", StatusCode::SUCCESS, 0 ).ignore(); + } + } + if ( !parts.empty() ) { + m_eventCount++; + m_candidateCount += parts.size(); + m_fittedCount += parts_out.size(); + } + + return std::make_tuple( std::move( parts_out ), p2p_out ); + } + +private: + // ========================================================================== + // tools + ToolHandle m_stateprovider{this, "StateProvider", "TrackStateProvider"}; + ToolHandle m_descendants{this, "Descendants", "ParticleDescendants"}; + ToolHandle m_printDecay{this, "PrintDecayTreeTool", "PrintDecayTreeTool"}; + // properties + Gaudi::Property> m_massConstraints{this, "MassConstraints"}; + Gaudi::Property m_standardGeometry_address{this, "StandardGeometryTop", "/dd/Structure/LHCb"}; + // Gaudi::Property m_originVertex{this, "ConstrainToOriginVertex", false}; + Gaudi::Property m_print{this, "PrintTree", false}; + + // counters + mutable Gaudi::Accumulators::Counter<> m_eventCount{this, "Events"}; + mutable Gaudi::Accumulators::StatCounter m_candidateCount{this, "Input Particles"}; + mutable Gaudi::Accumulators::StatCounter m_fittedCount{this, "Fitted Particles"}; + mutable Gaudi::Accumulators::StatCounter m_failedCount{this, "Failed fits"}; + mutable Gaudi::Accumulators::StatCounter m_savedCount{this, "saved Particles"}; + + // ========================================================================== +}; + +// ============================================================================ +/// declare the factory (needed for instantiation) +DECLARE_COMPONENT( DecayTreeFitterAlg ) +// ============================================================================ +// The END +// ============================================================================ diff --git a/Phys/DecayTreeFitter/src/Configuration.h b/Phys/DecayTreeFitter/src/lib/Configuration.h similarity index 100% rename from Phys/DecayTreeFitter/src/Configuration.h rename to Phys/DecayTreeFitter/src/lib/Configuration.h diff --git a/Phys/DecayTreeFitter/src/Constraint.cpp b/Phys/DecayTreeFitter/src/lib/Constraint.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/Constraint.cpp rename to Phys/DecayTreeFitter/src/lib/Constraint.cpp diff --git a/Phys/DecayTreeFitter/src/Constraint.h b/Phys/DecayTreeFitter/src/lib/Constraint.h similarity index 100% rename from Phys/DecayTreeFitter/src/Constraint.h rename to Phys/DecayTreeFitter/src/lib/Constraint.h diff --git a/Phys/DecayTreeFitter/src/ConvertedPhoton.cpp b/Phys/DecayTreeFitter/src/lib/ConvertedPhoton.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/ConvertedPhoton.cpp rename to Phys/DecayTreeFitter/src/lib/ConvertedPhoton.cpp diff --git a/Phys/DecayTreeFitter/src/ConvertedPhoton.h b/Phys/DecayTreeFitter/src/lib/ConvertedPhoton.h similarity index 100% rename from Phys/DecayTreeFitter/src/ConvertedPhoton.h rename to Phys/DecayTreeFitter/src/lib/ConvertedPhoton.h diff --git a/Phys/DecayTreeFitter/src/DecayChain.cpp b/Phys/DecayTreeFitter/src/lib/DecayChain.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/DecayChain.cpp rename to Phys/DecayTreeFitter/src/lib/DecayChain.cpp diff --git a/Phys/DecayTreeFitter/src/DecayChain.h b/Phys/DecayTreeFitter/src/lib/DecayChain.h similarity index 100% rename from Phys/DecayTreeFitter/src/DecayChain.h rename to Phys/DecayTreeFitter/src/lib/DecayChain.h diff --git a/Phys/DecayTreeFitter/src/FitParams.cpp b/Phys/DecayTreeFitter/src/lib/FitParams.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/FitParams.cpp rename to Phys/DecayTreeFitter/src/lib/FitParams.cpp diff --git a/Phys/DecayTreeFitter/src/FitParams.h b/Phys/DecayTreeFitter/src/lib/FitParams.h similarity index 100% rename from Phys/DecayTreeFitter/src/FitParams.h rename to Phys/DecayTreeFitter/src/lib/FitParams.h diff --git a/Phys/DecayTreeFitter/src/Fitter.cpp b/Phys/DecayTreeFitter/src/lib/Fitter.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/Fitter.cpp rename to Phys/DecayTreeFitter/src/lib/Fitter.cpp diff --git a/Phys/DecayTreeFitter/src/HelixUtils.cpp b/Phys/DecayTreeFitter/src/lib/HelixUtils.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/HelixUtils.cpp rename to Phys/DecayTreeFitter/src/lib/HelixUtils.cpp diff --git a/Phys/DecayTreeFitter/src/HelixUtils.h b/Phys/DecayTreeFitter/src/lib/HelixUtils.h similarity index 100% rename from Phys/DecayTreeFitter/src/HelixUtils.h rename to Phys/DecayTreeFitter/src/lib/HelixUtils.h diff --git a/Phys/DecayTreeFitter/src/InteractionPoint.cpp b/Phys/DecayTreeFitter/src/lib/InteractionPoint.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/InteractionPoint.cpp rename to Phys/DecayTreeFitter/src/lib/InteractionPoint.cpp diff --git a/Phys/DecayTreeFitter/src/InteractionPoint.h b/Phys/DecayTreeFitter/src/lib/InteractionPoint.h similarity index 100% rename from Phys/DecayTreeFitter/src/InteractionPoint.h rename to Phys/DecayTreeFitter/src/lib/InteractionPoint.h diff --git a/Phys/DecayTreeFitter/src/InternalParticle.cpp b/Phys/DecayTreeFitter/src/lib/InternalParticle.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/InternalParticle.cpp rename to Phys/DecayTreeFitter/src/lib/InternalParticle.cpp diff --git a/Phys/DecayTreeFitter/src/InternalParticle.h b/Phys/DecayTreeFitter/src/lib/InternalParticle.h similarity index 100% rename from Phys/DecayTreeFitter/src/InternalParticle.h rename to Phys/DecayTreeFitter/src/lib/InternalParticle.h diff --git a/Phys/DecayTreeFitter/src/InternalRecoTrack.cpp b/Phys/DecayTreeFitter/src/lib/InternalRecoTrack.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/InternalRecoTrack.cpp rename to Phys/DecayTreeFitter/src/lib/InternalRecoTrack.cpp diff --git a/Phys/DecayTreeFitter/src/InternalRecoTrack.h b/Phys/DecayTreeFitter/src/lib/InternalRecoTrack.h similarity index 100% rename from Phys/DecayTreeFitter/src/InternalRecoTrack.h rename to Phys/DecayTreeFitter/src/lib/InternalRecoTrack.h diff --git a/Phys/DecayTreeFitter/src/JetMomentum.cpp b/Phys/DecayTreeFitter/src/lib/JetMomentum.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/JetMomentum.cpp rename to Phys/DecayTreeFitter/src/lib/JetMomentum.cpp diff --git a/Phys/DecayTreeFitter/src/JetMomentum.h b/Phys/DecayTreeFitter/src/lib/JetMomentum.h similarity index 100% rename from Phys/DecayTreeFitter/src/JetMomentum.h rename to Phys/DecayTreeFitter/src/lib/JetMomentum.h diff --git a/Phys/DecayTreeFitter/src/KalmanCalculator.cpp b/Phys/DecayTreeFitter/src/lib/KalmanCalculator.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/KalmanCalculator.cpp rename to Phys/DecayTreeFitter/src/lib/KalmanCalculator.cpp diff --git a/Phys/DecayTreeFitter/src/KalmanCalculator.h b/Phys/DecayTreeFitter/src/lib/KalmanCalculator.h similarity index 100% rename from Phys/DecayTreeFitter/src/KalmanCalculator.h rename to Phys/DecayTreeFitter/src/lib/KalmanCalculator.h diff --git a/Phys/DecayTreeFitter/src/MergedConstraint.cpp b/Phys/DecayTreeFitter/src/lib/MergedConstraint.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/MergedConstraint.cpp rename to Phys/DecayTreeFitter/src/lib/MergedConstraint.cpp diff --git a/Phys/DecayTreeFitter/src/MergedConstraint.h b/Phys/DecayTreeFitter/src/lib/MergedConstraint.h similarity index 100% rename from Phys/DecayTreeFitter/src/MergedConstraint.h rename to Phys/DecayTreeFitter/src/lib/MergedConstraint.h diff --git a/Phys/DecayTreeFitter/src/MissingParticle.cpp b/Phys/DecayTreeFitter/src/lib/MissingParticle.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/MissingParticle.cpp rename to Phys/DecayTreeFitter/src/lib/MissingParticle.cpp diff --git a/Phys/DecayTreeFitter/src/MissingParticle.h b/Phys/DecayTreeFitter/src/lib/MissingParticle.h similarity index 100% rename from Phys/DecayTreeFitter/src/MissingParticle.h rename to Phys/DecayTreeFitter/src/lib/MissingParticle.h diff --git a/Phys/DecayTreeFitter/src/ParticleBase.cpp b/Phys/DecayTreeFitter/src/lib/ParticleBase.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/ParticleBase.cpp rename to Phys/DecayTreeFitter/src/lib/ParticleBase.cpp diff --git a/Phys/DecayTreeFitter/src/ParticleBase.h b/Phys/DecayTreeFitter/src/lib/ParticleBase.h similarity index 100% rename from Phys/DecayTreeFitter/src/ParticleBase.h rename to Phys/DecayTreeFitter/src/lib/ParticleBase.h diff --git a/Phys/DecayTreeFitter/src/Projection.h b/Phys/DecayTreeFitter/src/lib/Projection.h similarity index 100% rename from Phys/DecayTreeFitter/src/Projection.h rename to Phys/DecayTreeFitter/src/lib/Projection.h diff --git a/Phys/DecayTreeFitter/src/RecoComposite.cpp b/Phys/DecayTreeFitter/src/lib/RecoComposite.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/RecoComposite.cpp rename to Phys/DecayTreeFitter/src/lib/RecoComposite.cpp diff --git a/Phys/DecayTreeFitter/src/RecoComposite.h b/Phys/DecayTreeFitter/src/lib/RecoComposite.h similarity index 100% rename from Phys/DecayTreeFitter/src/RecoComposite.h rename to Phys/DecayTreeFitter/src/lib/RecoComposite.h diff --git a/Phys/DecayTreeFitter/src/RecoMergedPi0.cpp b/Phys/DecayTreeFitter/src/lib/RecoMergedPi0.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/RecoMergedPi0.cpp rename to Phys/DecayTreeFitter/src/lib/RecoMergedPi0.cpp diff --git a/Phys/DecayTreeFitter/src/RecoMergedPi0.h b/Phys/DecayTreeFitter/src/lib/RecoMergedPi0.h similarity index 100% rename from Phys/DecayTreeFitter/src/RecoMergedPi0.h rename to Phys/DecayTreeFitter/src/lib/RecoMergedPi0.h diff --git a/Phys/DecayTreeFitter/src/RecoParticle.cpp b/Phys/DecayTreeFitter/src/lib/RecoParticle.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/RecoParticle.cpp rename to Phys/DecayTreeFitter/src/lib/RecoParticle.cpp diff --git a/Phys/DecayTreeFitter/src/RecoParticle.h b/Phys/DecayTreeFitter/src/lib/RecoParticle.h similarity index 100% rename from Phys/DecayTreeFitter/src/RecoParticle.h rename to Phys/DecayTreeFitter/src/lib/RecoParticle.h diff --git a/Phys/DecayTreeFitter/src/RecoPhoton.cpp b/Phys/DecayTreeFitter/src/lib/RecoPhoton.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/RecoPhoton.cpp rename to Phys/DecayTreeFitter/src/lib/RecoPhoton.cpp diff --git a/Phys/DecayTreeFitter/src/RecoPhoton.h b/Phys/DecayTreeFitter/src/lib/RecoPhoton.h similarity index 100% rename from Phys/DecayTreeFitter/src/RecoPhoton.h rename to Phys/DecayTreeFitter/src/lib/RecoPhoton.h diff --git a/Phys/DecayTreeFitter/src/RecoResonance.cpp b/Phys/DecayTreeFitter/src/lib/RecoResonance.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/RecoResonance.cpp rename to Phys/DecayTreeFitter/src/lib/RecoResonance.cpp diff --git a/Phys/DecayTreeFitter/src/RecoResonance.h b/Phys/DecayTreeFitter/src/lib/RecoResonance.h similarity index 100% rename from Phys/DecayTreeFitter/src/RecoResonance.h rename to Phys/DecayTreeFitter/src/lib/RecoResonance.h diff --git a/Phys/DecayTreeFitter/src/RecoTrack.cpp b/Phys/DecayTreeFitter/src/lib/RecoTrack.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/RecoTrack.cpp rename to Phys/DecayTreeFitter/src/lib/RecoTrack.cpp diff --git a/Phys/DecayTreeFitter/src/RecoTrack.h b/Phys/DecayTreeFitter/src/lib/RecoTrack.h similarity index 100% rename from Phys/DecayTreeFitter/src/RecoTrack.h rename to Phys/DecayTreeFitter/src/lib/RecoTrack.h diff --git a/Phys/DecayTreeFitter/src/Resonance.cpp b/Phys/DecayTreeFitter/src/lib/Resonance.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/Resonance.cpp rename to Phys/DecayTreeFitter/src/lib/Resonance.cpp diff --git a/Phys/DecayTreeFitter/src/Resonance.h b/Phys/DecayTreeFitter/src/lib/Resonance.h similarity index 100% rename from Phys/DecayTreeFitter/src/Resonance.h rename to Phys/DecayTreeFitter/src/lib/Resonance.h diff --git a/Phys/DecayTreeFitter/src/VtxErrCode.cpp b/Phys/DecayTreeFitter/src/lib/VtxErrCode.cpp similarity index 100% rename from Phys/DecayTreeFitter/src/VtxErrCode.cpp rename to Phys/DecayTreeFitter/src/lib/VtxErrCode.cpp diff --git a/Phys/DecayTreeFitter/src/VtxErrCode.h b/Phys/DecayTreeFitter/src/lib/VtxErrCode.h similarity index 100% rename from Phys/DecayTreeFitter/src/VtxErrCode.h rename to Phys/DecayTreeFitter/src/lib/VtxErrCode.h diff --git a/Phys/LoKiFitters/CMakeLists.txt b/Phys/LoKiFitters/CMakeLists.txt index 79ce9597ad48705f059a054ed5e3a1f74e6e6b85..a798af6626f12fe1df6d61fd0c4cdb4c455f5052 100644 --- a/Phys/LoKiFitters/CMakeLists.txt +++ b/Phys/LoKiFitters/CMakeLists.txt @@ -44,7 +44,7 @@ gaudi_add_module(LoKiFitters LHCb::RecEvent LHCb::TrackEvent Phys::DaVinciInterfacesLib - Phys::DecayTreeFitter + Phys::DecayTreeFitterLib Phys::KalmanFilter Phys::LoKiPhysLib Rec::TrackInterfacesLib