Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2023-12-19 04:05:13

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 }  // end namespace mkfit
0042 
0043 #endif