32 std::string message{
"The following decorations should be added by ParameterErrDecoratorAlg:\n"};
33 for (
const auto & thisName: decorationNames){
34 message += thisName+
"\n";
41 return StatusCode::SUCCESS;
46 return StatusCode::SUCCESS;
54 return StatusCode::FAILURE;
56 std::vector< IDPVM::OptionalDecoration<xAOD::TrackParticleContainer,float> >
58 if (not floatDecoration.empty()){
61 ATH_MSG_ERROR(
"Decoration failed in ParameterErrDecoratorAlg::execute.");
62 return StatusCode::FAILURE;
66 return StatusCode::SUCCESS;
74 const AmgSymMatrix(5) errorMat = particle.definingParametersCovMatrix();
75 double mtheta = particle.theta();
76 double mqp = particle.qOverP();
79 covVert = errorMat.similarity(TheJac);
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define AmgSymMatrix(dim)
header file for class of same name
bool msgLvl(const MSG::Level lvl) const
An algorithm that can be simultaneously executed in multiple threads.
virtual bool decorateTrack(const xAOD::TrackParticle &particle, std::vector< IDPVM::OptionalDecoration< xAOD::TrackParticleContainer, float > > &floatDecoration) const
Gaudi::Property< std::string > m_prefix
std::vector< std::pair< SG::WriteDecorHandleKey< xAOD::TrackParticleContainer >, SG::AuxElement::ConstAccessor< float > > > m_decor
virtual StatusCode execute(const EventContext &ctx) const
ParameterErrDecoratorAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode finalize()
virtual ~ParameterErrDecoratorAlg()
virtual StatusCode initialize()
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trkParticleKey
virtual bool isValid() override final
Can the handle be successfully dereferenced?
This is the 5x5 jacobian for the transformation of track parameters and errors having the new standar...
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
void createDecoratorKeysAndAccessor(T_Parent &parent, const SG::ReadHandleKey< T_Cont > &container_key, const std::string &prefix, const std::vector< std::string > &decor_names, std::vector< WriteKeyAccessorPair< T_Cont, T > > &decor_out)
void decorateOrRejectQuietly(const T_Cont_Elm &particle, OptionalDecoration< T_Cont, T > &decorator, const T &value)
std::vector< OptionalDecoration< T_Cont, T > > createDecoratorsIfNeeded(const T_Cont &container, const std::vector< WriteKeyAccessorPair< T_Cont, T > > &keys, const EventContext &ctx, bool verbose=false)
std::pair< SG::WriteDecorHandle< ContainerType, VariableType >, bool > OptionalDecoration
TrackParticle_v1 TrackParticle
Reference the current persistent version: