Back to home page

Project CMSSW displayed by LXR

 
 

    


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;  // back-pointer for easy passing into low-level funcs
0018     bool use_param_b_field : 1;
0019     bool apply_material : 1;
0020     bool copy_input_state_on_fail : 1;
0021     // Could add: bool use_trig_approx       -- now Config::useTrigApprox = true
0022     // Could add: int  n_prop_to_r_iters : 8 -- now Config::Niter = 5
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 }  // namespace mkfit
0046 
0047 #endif