#include <mMuiTriggerEmulator.h>
Public Methods | |
| mMuiTriggerEmulator () | |
| ~mMuiTriggerEmulator () | |
| virtual PHBoolean | event (PHCompositeNode *) |
| bool | is_deep_deep () |
| bool | is_deep_shallow () |
Private Types | |
| typedef std::list< TMuiHitMapO::value_type > | hit_list |
Private Methods | |
| void | set_interface_ptrs (PHCompositeNode *top_node) |
| void | clear_state_variables () |
| void | fill_quadrant_list () |
| void | set_plane_bitset () |
| void | set_trigger_status () |
Private Attributes | |
| const mMuiTriggerEmulatorPar * | _mod_par |
| TMuiHitMapO * | _hit_map |
| boost::array< hit_list, 4 > | _quad_hit_list |
| boost::array< std::bitset< 10 >, 4 > | _quad_bitset |
| std::bitset< 10 > | _deep_mask |
| std::bitset< 10 > | _shallow_mask |
| bool | _deep_deep |
| bool | _deep_shallow |
| PHTimer | _timer |
| Object | Description | Privilege |
| const mMuiTriggerEmulatorPar* | Parameter Table | immutable |
| TMuiHitMapO* | Parameter Table | immutable |
Definition at line 42 of file mMuiTriggerEmulator.h.
|
|
Definition at line 76 of file mMuiTriggerEmulator.h. |
|
|
Definition at line 43 of file mMuiTriggerEmulator.cxx.
00043 { }
|
|
|
Definition at line 95 of file mMuiTriggerEmulator.cxx. References _deep_deep, _deep_shallow, _quad_bitset, and _quad_hit_list. Referenced by event.
00096 {
00097 _deep_deep = false;
00098 _deep_shallow = false;
00099 for(size_t i=0;i<_quad_hit_list.size();++i){
00100 _quad_hit_list[i].clear();
00101 _quad_bitset[i].reset();
00102 }
00103 }
|
|
|
Definition at line 47 of file mMuiTriggerEmulator.cxx. References _timer, clear_state_variables, fill_quadrant_list, set_interface_ptrs, set_plane_bitset, and set_trigger_status.
00048 {
00049
00050 _timer.restart();
00051
00052 try {
00053
00054 // Reset IOC pointers
00055 //
00056 set_interface_ptrs(top_node);
00057
00058 // Clear all lists, bitmasks and trigger booleans
00059 //
00060 clear_state_variables();
00061
00062 // Populate quadrant lists
00063 //
00064 fill_quadrant_list();
00065
00066 // Set plane bitset
00067 //
00068 set_plane_bitset();
00069
00070 // Set trigger status
00071 //
00072 set_trigger_status();
00073
00074 } catch(std::exception& e) {
00075 MUTOO::TRACE(e.what());
00076 return False;
00077 }
00078
00079 // Timer
00080 //
00081 _timer.print();
00082 return True;
00083 }
|
|
|
Definition at line 106 of file mMuiTriggerEmulator.cxx. References _hit_map, and _quad_hit_list. Referenced by event.
00107 {
00108 // Loop over all hits in the MUID. Store hit point in
00109 // lists by quadrant. Note small panel hits contribute
00110 // a hit to 2 quadrants.
00111 //
00112 TMuiHitMapO::const_iterator hit_iter = _hit_map->range();
00113 while(TMuiHitMapO::const_pointer hit_ptr = hit_iter.next()){
00114 UShort_t panel = hit_ptr->get()->get_panel();
00115 // plane 1 (small panel) contributes to quadrant 0 and 1
00116 // plane 4 (small panel) contributes to quadrant 2 and 3
00117 if(panel == 0 || panel == 1) {
00118 _quad_hit_list[0].push_back(*hit_ptr);
00119 }
00120 if(panel == 1 || panel == 2) {
00121 _quad_hit_list[1].push_back(*hit_ptr);
00122 }
00123 if(panel == 3 || panel == 4) {
00124 _quad_hit_list[2].push_back(*hit_ptr);
00125 }
00126 if(panel == 4 || panel == 5) {
00127 _quad_hit_list[3].push_back(*hit_ptr);
00128 }
00129 }
00130 }
|
|
|
Definition at line 52 of file mMuiTriggerEmulator.h. References _deep_deep.
00052 { return _deep_deep; }
|
|
|
Definition at line 53 of file mMuiTriggerEmulator.h. References _deep_shallow.
00053 { return _deep_shallow; }
|
|
|
Reset IOC and external interface pointers Definition at line 87 of file mMuiTriggerEmulator.cxx. References _hit_map, and _mod_par. Referenced by event.
|
|
|
Definition at line 134 of file mMuiTriggerEmulator.cxx. References _quad_bitset, and _quad_hit_list. Referenced by event.
00135 {
00136 for(size_t quad=0;quad<_quad_hit_list.size();++quad) {
00137 // Loop over all hits in quadrant hit list
00138 //
00139 hit_list::iterator hit_iter = _quad_hit_list[quad].begin();
00140 for(;hit_iter!= _quad_hit_list[quad].begin();++hit_iter){
00141 // Set the plane bit
00142 //
00143 UShort_t plane = hit_iter->get()->get_plane();
00144 _quad_bitset[quad].set(plane);
00145 }
00146 }
00147 }
|
|
|
Definition at line 150 of file mMuiTriggerEmulator.cxx. References _deep_deep, _deep_mask, _deep_shallow, _quad_bitset, and _shallow_mask. Referenced by event.
00151 {
00152 // The BLT deep deep trigger is 7/8 in the first 8 planes,
00153 // the BLT deep shallow trigger is 5/6 in the first 6 planes.
00154 //
00155 UShort_t ndeep=0, nshallow=0;
00156 for(size_t quad=0;quad<_quad_bitset.size();++quad) {
00157 // Deep is 7 of 8
00158 //
00159 if ((_quad_bitset[quad] & _deep_mask).count() >= 7) ++ndeep;
00160 // Shallow is 5 of 6
00161 //
00162 if ((_quad_bitset[quad] & _shallow_mask).count() >= 5) ++nshallow;
00163 }
00164 if(ndeep>=2) _deep_deep = true;
00165 if(ndeep>=1 && nshallow>=1) _deep_shallow = true;
00166 }
|
|
|
Definition at line 90 of file mMuiTriggerEmulator.h. Referenced by clear_state_variables, is_deep_deep, and set_trigger_status. |
|
|
Definition at line 85 of file mMuiTriggerEmulator.h. Referenced by mMuiTriggerEmulator, and set_trigger_status. |
|
|
Definition at line 91 of file mMuiTriggerEmulator.h. Referenced by clear_state_variables, is_deep_shallow, and set_trigger_status. |
|
|
Definition at line 72 of file mMuiTriggerEmulator.h. Referenced by fill_quadrant_list, and set_interface_ptrs. |
|
|
Definition at line 71 of file mMuiTriggerEmulator.h. Referenced by set_interface_ptrs. |
|
|
Definition at line 81 of file mMuiTriggerEmulator.h. Referenced by clear_state_variables, set_plane_bitset, and set_trigger_status. |
|
|
Definition at line 77 of file mMuiTriggerEmulator.h. Referenced by clear_state_variables, fill_quadrant_list, and set_plane_bitset. |
|
|
Definition at line 86 of file mMuiTriggerEmulator.h. Referenced by mMuiTriggerEmulator, and set_trigger_status. |
|
|
Definition at line 95 of file mMuiTriggerEmulator.h. Referenced by event. |