File indexing completed on 2024-04-06 12:28:16
0001 #ifndef RecoTracker_MkFitCore_interface_PropagationConfig_h
0002 #define RecoTracker_MkFitCore_interface_PropagationConfig_h
0003
0004 namespace mkfit {
0005
0006 class TrackerInfo;
0007
0008 enum PropagationFlagsEnum {
0009 PF_none = 0,
0010 PF_use_param_b_field = 0x1,
0011 PF_apply_material = 0x2,
0012 PF_copy_input_state_on_fail = 0x4
0013 };
0014
0015 class PropagationFlags {
0016 public:
0017 const TrackerInfo *tracker_info = nullptr;
0018 bool use_param_b_field : 1;
0019 bool apply_material : 1;
0020 bool copy_input_state_on_fail : 1;
0021
0022
0023
0024 PropagationFlags() : use_param_b_field(false), apply_material(false), copy_input_state_on_fail(false) {}
0025
0026 PropagationFlags(int pfe)
0027 : use_param_b_field(pfe & PF_use_param_b_field),
0028 apply_material(pfe & PF_apply_material),
0029 copy_input_state_on_fail(pfe & PF_copy_input_state_on_fail) {}
0030 };
0031
0032 class PropagationConfig {
0033 public:
0034 bool backward_fit_to_pca = false;
0035 bool finding_requires_propagation_to_hit_pos = false;
0036 PropagationFlags finding_inter_layer_pflags;
0037 PropagationFlags finding_intra_layer_pflags;
0038 PropagationFlags backward_fit_pflags;
0039 PropagationFlags forward_fit_pflags;
0040 PropagationFlags seed_fit_pflags;
0041 PropagationFlags pca_prop_pflags;
0042
0043 void apply_tracker_info(const TrackerInfo *ti);
0044 };
0045 }
0046
0047 #endif