File indexing completed on 2024-04-06 12:28:18
0001 #ifndef RecoTracker_MkFitCore_src_FindingFoos_h
0002 #define RecoTracker_MkFitCore_src_FindingFoos_h
0003
0004 #include "Matrix.h"
0005
0006 namespace mkfit {
0007
0008 class MkBase;
0009 class PropagationFlags;
0010
0011 #define COMPUTE_CHI2_ARGS \
0012 const MPlexLS &, const MPlexLV &, const MPlexQI &, const MPlexHS &, const MPlexHV &, MPlexQF &, MPlexLV &, \
0013 MPlexQI &, const int, const PropagationFlags &, const bool
0014
0015 #define UPDATE_PARAM_ARGS \
0016 const MPlexLS &, const MPlexLV &, MPlexQI &, const MPlexHS &, const MPlexHV &, MPlexLS &, MPlexLV &, MPlexQI &, \
0017 const int, const PropagationFlags &, const bool
0018
0019 #define COMPUTE_CHI2_AND_UPDATE_ARGS \
0020 const MPlexLS &, const MPlexLV &, MPlexQI &, const MPlexHS &, const MPlexHV &, MPlexQF &, MPlexLS &, MPlexLV &, \
0021 MPlexQI &, const int, const PropagationFlags, const bool
0022
0023 class FindingFoos {
0024 public:
0025 void (*m_compute_chi2_foo)(COMPUTE_CHI2_ARGS);
0026 void (*m_update_param_foo)(UPDATE_PARAM_ARGS);
0027 void (MkBase::*m_propagate_foo)(float, const int, const PropagationFlags &);
0028
0029 FindingFoos() {}
0030
0031 FindingFoos(void (*cch2_f)(COMPUTE_CHI2_ARGS),
0032 void (*updp_f)(UPDATE_PARAM_ARGS),
0033 void (MkBase::*p_f)(float, const int, const PropagationFlags &))
0034 : m_compute_chi2_foo(cch2_f), m_update_param_foo(updp_f), m_propagate_foo(p_f) {}
0035
0036 static const FindingFoos &get_barrel_finding_foos();
0037 static const FindingFoos &get_endcap_finding_foos();
0038 static const FindingFoos &get_finding_foos(bool is_barrel);
0039 };
0040
0041 }
0042
0043 #endif