31 #ifndef FALAISE_SNEMO_GEOMETRY_GVETO_LOCATOR_H 32 #define FALAISE_SNEMO_GEOMETRY_GVETO_LOCATOR_H 1 39 #include <boost/cstdint.hpp> 78 gveto_locator(const ::geomtools::manager& mgr_, uint32_t module_number_);
91 bool id_is_valid(uint32_t side_, uint32_t wall_, uint32_t column_)
const;
96 double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE)
const;
99 double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE)
const;
106 double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE);
152 double get_wall_z(uint32_t side_, uint32_t wall_)
const;
162 double get_column_x(uint32_t side_, uint32_t wall_, uint32_t column_)
const;
167 double get_column_y(uint32_t side_, uint32_t wall_, uint32_t column_)
const;
190 uint32_t column_)
const;
208 double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE)
const;
214 double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE)
const;
220 uint32_t column_,
double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE)
const;
226 uint32_t wall_, uint32_t column_,
227 double tolerance_ = GEOMTOOLS_PROPER_TOLERANCE)
const;
243 std::vector<geomtools::geom_id>& ids_,
288 virtual void tree_dump(std::ostream& out_ = std::clog,
const std::string& title_ =
"",
289 const std::string& indent_ =
"",
bool inherit_ =
false)
const;
292 void dump(std::ostream& out_)
const;
301 uint32_t _module_number_;
302 uint32_t _block_part_;
305 uint32_t _module_type_;
306 uint32_t _tracker_submodule_type_;
307 uint32_t _block_type_;
308 uint32_t _wrapper_type_;
309 bool _block_partitioned_;
318 bool _composite_block_shape_;
327 double _block_width_;
328 double _block_height_;
329 double _block_thickness_;
332 int _module_address_index_;
333 int _side_address_index_;
334 int _wall_address_index_;
335 int _column_address_index_;
336 int _part_address_index_;
339 bool _submodules_[2];
346 #endif // FALAISE_SNEMO_GEOMETRY_GVETO_LOCATOR_H void set_module_number(uint32_t module_number_)
uint32_t extract_side(const geomtools::geom_id &gid_) const
int get_side_address_index() const
void dump(std::ostream &out_) const
Dump.
void get_neighbours_ids(uint32_t side_, uint32_t wall_, uint32_t column_, std::vector< geomtools::geom_id > &ids_, uint8_t mask_=utils::NEIGHBOUR_FIRST) const
Bottom wall.
Definition: gveto_locator.h:68
double get_column_y(uint32_t side_, uint32_t wall_, uint32_t column_) const
Invalid/undefined wall.
Definition: gveto_locator.h:67
gveto_locator()
Constructor.
double get_column_x(uint32_t side_, uint32_t wall_, uint32_t column_) const
wall_type
Wall identifier constants (SuperNEMO module Z axis)
Definition: gveto_locator.h:66
geomtools::vector_3d get_block_window_position(uint32_t side_, uint32_t wall_, uint32_t column_) const
int get_module_address_index() const
uint32_t extract_part(const geomtools::geom_id &gid_) const
uint32_t extract_wall(const geomtools::geom_id &gid_) const
double get_block_width() const
int get_part_address_index() const
bool is_world_position_in_block(const geomtools::vector_3d &world_position_, uint32_t side_, uint32_t wall_, uint32_t column_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
size_t get_number_of_columns(uint32_t side_, uint32_t wall_) const
static const unsigned int NWALLS_PER_SIDE
Definition: gveto_locator.h:63
bool has_submodule(uint32_t side_) const
size_t get_number_of_sides() const
void transform_module_to_world(const geomtools::vector_3d &module_position_, geomtools::vector_3d &world_position_) const
virtual void tree_dump(std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
Smart print.
virtual ~gveto_locator()
Destructor.
bool is_in_block(const geomtools::vector_3d &module_position_, uint32_t side_, uint32_t wall_, uint32_t column_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
void transform_world_to_module(const geomtools::vector_3d &world_position_, geomtools::vector_3d &module_position_) const
bool is_calo_block_in_current_module(const geomtools::geom_id &gid_) const
D : nearest diagonal.
Definition: utils.h:91
bool is_calo_block(const geomtools::geom_id &gid_) const
uint32_t extract_column(const geomtools::geom_id &gid_) const
bool is_world_position_in_module(const geomtools::vector_3d &world_position_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
Definition: calo_tapered_scin_box_model.h:54
bool find_block_geom_id_(const geomtools::vector_3d &in_module_position_, geomtools::geom_id &gid_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE)
double get_wall_window_z(uint32_t side_, uint32_t wall_) const
int get_wall_address_index() const
double get_wall_z(uint32_t side_, uint32_t wall_) const
geomtools::vector_3d get_block_position(uint32_t side_, uint32_t wall_, uint32_t column_) const
uint32_t extract_module(const geomtools::geom_id &gid_) const
size_t get_number_of_neighbours(uint32_t side_, uint32_t wall_, uint32_t column_, uint8_t mask_=utils::NEIGHBOUR_FIRST) const
void compute_block_position(uint32_t side_, uint32_t wall_, uint32_t column_, geomtools::vector_3d &module_position_) const
virtual bool is_initialized() const
size_t get_number_of_walls() const
uint32_t get_module_number() const
void _hack_trace()
Hack trace.
Fast locator class for SuperNEMO gamma-veto scintillator block volumes.
Definition: gveto_locator.h:61
int get_column_address_index() const
double get_block_thickness() const
bool is_block_partitioned() const
bool find_block_geom_id(const geomtools::vector_3d &world_position_, geomtools::geom_id &gid_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
virtual bool find_geom_id(const geomtools::vector_3d &world_position_, int type_, geomtools::geom_id &gid_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
bool id_is_valid(uint32_t side_, uint32_t wall_, uint32_t column_) const
bool is_in_module(const geomtools::vector_3d &module_position_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
void compute_block_window_position(uint32_t side_, uint32_t wall_, uint32_t column_, geomtools::vector_3d &module_position_) const
Top wall.
Definition: gveto_locator.h:69
double get_block_height() const