00001 #ifndef __MMUIROADFINDER1PAR_HH__
00002 #define __MMUIROADFINDER1PAR_HH__
00003
00004 #include<PHObject.h>
00005 #include<MUIOO.h>
00006 #include<TMuiParBase.h>
00007
00009
00011 class mMuiRoadFinder1Par : public TMuiParBase
00012 {
00013 public:
00014
00016 mMuiRoadFinder1Par() :
00017 _num_seed_loops(2),
00018 _min_last_gap_1d(2),
00019 _min_fired_gaps(2),
00020 _max_skipped_gaps(2),
00021 _min_shared_hits_1d(5),
00022 _max_xref_1d(180.0),
00023 _max_yref_1d(180.0),
00024 _max_clusters_per_gap_search(1),
00025 _min_last_gap_2d(2),
00026 _max_del_last_gap(1),
00027 _max_del_hits_per_gap(1),
00028 _max_del_total_hits(1),
00029 _max_xref_2d(180.0),
00030 _max_yref_2d(180.0),
00031 _max_xchisq(1000.0),
00032 _max_ychisq(1000.0),
00033 _min_shared_hits_2d(10),
00034 _mut_window(20),
00035 _mui_window(30),
00036 _mut_z_north(620),
00037 _mut_z_south(-470),
00038 _max_occupancy_per_arm(300),
00039 _write_golden_only(false),
00040 _xvert(0.0),
00041 _yvert(0.0),
00042 _zvert(0.0)
00043 {
00044 std::fill(_search_length,_search_length+MAXSEEDLOOPS,6);
00045 std::fill(_weight_par_1d,_weight_par_1d+NUMFITPOINTS,1.0);
00046 std::fill(_weight_par_2d,_weight_par_2d+NUMFITPOINTS,1.0);
00047 int t_SearchOrder[MAXSEEDLOOPS][NUMFITPOINTS] =
00048 { {-1,2,1,0,3,4}, {-1,1,2,0,3,4} };
00049 for(int iLoop = 0; iLoop < MAXSEEDLOOPS; iLoop++ )
00050 {
00051 for(int iPoint = 0; iPoint < NUMFITPOINTS; iPoint++ )
00052 {
00053 _search_order[iLoop][iPoint]=t_SearchOrder[iLoop][iPoint];
00054 }
00055 }
00056 }
00057
00059 ~mMuiRoadFinder1Par(){;}
00060
00061 enum{NUMFITPOINTS=6, MAXSEEDLOOPS = 2};
00062
00064 UShort_t get_num_seed_loops() const { return _num_seed_loops;}
00065 UShort_t get_search_length(int loop) const { return _search_length[loop];}
00066 UShort_t get_search_order(int loop, int point) const
00067 { return _search_order[loop][point];}
00069 UShort_t get_min_last_gap_1d() const { return _min_last_gap_1d;}
00070 UShort_t get_min_fired_gaps() const { return _min_fired_gaps;}
00071 UShort_t get_max_skipped_gaps() const { return _max_skipped_gaps;}
00072 UShort_t get_min_shared_hits_1d() const { return _min_shared_hits_1d;}
00073 Float_t get_weight_par_1d(int point) const
00074 { return _weight_par_1d[point];}
00075 Float_t get_max_xref_1d() const { return _max_xref_1d;}
00076 Float_t get_max_yref_1d() const { return _max_yref_1d;}
00077 UShort_t get_max_clusters_per_gap_search() const
00078 { return _max_clusters_per_gap_search;}
00079 UShort_t get_min_last_gap_2d() const { return _min_last_gap_2d;}
00080 UShort_t get_max_del_last_gap() const { return _max_del_last_gap;}
00081 UShort_t get_max_del_hits_per_gap() const { return _max_del_hits_per_gap;}
00082 UShort_t get_max_del_total_hits() const { return _max_del_total_hits;}
00083 Float_t get_max_xref_2d() const { return _max_xref_2d;}
00084 Float_t get_max_yref_2d() const { return _max_yref_2d;}
00085
00087 Float_t get_weight_par_2d(int point) const { return _weight_par_2d[point];}
00088 Float_t get_max_xchisq() const { return _max_xchisq;}
00089 Float_t get_max_ychisq() const { return _max_ychisq;}
00090 UShort_t get_min_shared_hits_2d() const { return _min_shared_hits_2d;}
00091 Float_t get_mut_window() const { return _mut_window;}
00092 Float_t get_mui_window() const { return _mui_window;}
00093 Float_t get_mut_z_north() const { return _mut_z_north;}
00094 Float_t get_mut_z_south() const { return _mut_z_south;}
00095 UShort_t get_max_occupancy_per_arm() const { return _max_occupancy_per_arm;}
00096
00098 Float_t get_xvert() const { return _xvert;}
00099 Float_t get_yvert() const { return _yvert;}
00100 Float_t get_zvert() const { return _zvert;}
00101
00103 void set_num_seed_loops(UShort_t sval) { _num_seed_loops = sval;}
00104 void set_search_length(int point, UShort_t sval)
00105 { _search_length[point] = sval;}
00106 void set_search_order(int loop, int point, UShort_t sval)
00107 { _search_order[loop][point] = sval;}
00108
00110 void set_weight_par_1d(int point, Float_t fval)
00111 { _weight_par_1d[point] = fval;}
00112 void set_max_xref_1d(Float_t fval) { _max_xref_1d = fval;}
00113 void set_max_yref_1d(Float_t fval) { _max_yref_1d = fval;}
00114 void set_min_last_gap_1d(UShort_t sval) { _min_last_gap_1d = sval;}
00115 void set_min_fired_gaps(UShort_t sval) { _min_fired_gaps = sval;}
00116 void set_max_skipped_gaps(UShort_t sval) { _max_skipped_gaps = sval;}
00117 void set_min_shared_hits_1d(UShort_t sval) { _min_shared_hits_1d = sval;}
00118 void set_max_clusters_per_gap_search(UShort_t sval)
00119 { _max_clusters_per_gap_search = sval;}
00120
00122 void set_max_xref_2d(Float_t fval) { _max_xref_2d = fval;}
00123 void set_max_yref_2d(Float_t fval) { _max_yref_2d = fval;}
00124 void set_weight_par_2d(int point, Float_t fval)
00125 { _weight_par_2d[point] = fval;}
00126 void set_max_xchisq(Float_t fval) { _max_xchisq = fval;}
00127 void set_max_ychisq(Float_t fval) { _max_ychisq = fval;}
00128 void set_mut_window(Float_t fval) { _mut_window = fval;}
00129 void set_mui_window(Float_t fval) { _mui_window = fval;}
00130 void set_mut_z_north(Float_t fval) { _mut_z_north = fval;}
00131 void set_mut_z_south(Float_t fval) { _mut_z_south = fval;}
00132 void set_min_last_gap_2d(UShort_t sval) { _min_last_gap_2d = sval;}
00133 void set_max_del_last_gap(UShort_t sval) { _max_del_last_gap = sval;}
00134 void set_max_del_hits_per_gap(UShort_t sval) { _max_del_hits_per_gap = sval;}
00135 void set_max_del_total_hits(UShort_t sval) { _max_del_total_hits = sval;}
00136 void set_min_shared_hits_2d(UShort_t sval) { _min_shared_hits_2d = sval;}
00137 void set_max_occupancy_per_arm(UShort_t sval)
00138 { _max_occupancy_per_arm = sval;}
00139
00141 void set_xvert(Float_t fval) { _xvert = fval;}
00142 void set_yvert(Float_t fval) { _yvert = fval;}
00143 void set_zvert(Float_t fval) { _zvert = fval;}
00144
00145 private:
00146
00147
00148
00149 UShort_t _num_seed_loops;
00150 UShort_t _search_length[MAXSEEDLOOPS];
00151 UShort_t _search_order[MAXSEEDLOOPS][NUMFITPOINTS];
00152
00153
00154 UShort_t _min_last_gap_1d;
00155 UShort_t _min_fired_gaps;
00156 UShort_t _max_skipped_gaps;
00157 UShort_t _min_shared_hits_1d;
00158 Float_t _weight_par_1d[NUMFITPOINTS];
00159 Float_t _max_xref_1d;
00160 Float_t _max_yref_1d;
00161 UShort_t _max_clusters_per_gap_search;
00162
00163
00164 UShort_t _min_last_gap_2d;
00165 UShort_t _max_del_last_gap;
00166 UShort_t _max_del_hits_per_gap;
00167 UShort_t _max_del_total_hits;
00168 Float_t _max_xref_2d;
00169 Float_t _max_yref_2d;
00170 Float_t _weight_par_2d[NUMFITPOINTS];
00171 Float_t _max_xchisq;
00172 Float_t _max_ychisq;
00173 UShort_t _min_shared_hits_2d;
00174 Float_t _mut_window;
00175 Float_t _mui_window;
00176 Float_t _mut_z_north;
00177 Float_t _mut_z_south;
00178
00179
00180
00181 UShort_t _max_occupancy_per_arm;
00182 bool _write_golden_only;
00183
00184 Float_t _xvert;
00185 Float_t _yvert;
00186 Float_t _zvert;
00187
00188 };
00189
00190 #endif