31 #ifndef FALAISE_SNEMO_GEOMETRY_GG_LOCATOR_H 32 #define FALAISE_SNEMO_GEOMETRY_GG_LOCATOR_H 1 39 #include <boost/cstdint.hpp> 71 gg_locator(const ::geomtools::manager& mgr_, uint32_t module_number_);
150 double get_layer_x(uint32_t side_, uint32_t layer_)
const;
154 double get_row_y(uint32_t side_, uint32_t row_)
const;
201 uint32_t layer_, uint32_t row_,
209 bool other_side_ =
false)
const;
219 std::vector<geomtools::geom_id>& ids_,
bool other_side_ =
false)
const;
225 bool other_side_ =
false)
const;
258 virtual void tree_dump(std::ostream& out_ = std::clog,
const std::string& title_ =
"",
259 const std::string& indent_ =
"",
bool inherit_ =
false)
const;
262 void dump(std::ostream& out_ = std::clog)
const;
277 std::string _module_category_;
278 std::string _tracker_volume_category_;
279 std::string _tracker_layer_category_;
280 std::string _drift_cell_volume_category_;
287 uint32_t _module_type_;
288 uint32_t _tracker_volume_type_;
289 uint32_t _tracker_layer_type_;
290 uint32_t _cell_type_;
291 uint32_t _module_number_;
300 std::vector<double> _back_cell_x_;
301 std::vector<double> _front_cell_x_;
302 std::vector<double> _back_cell_y_;
303 std::vector<double> _front_cell_y_;
304 double _anode_wire_length_;
305 double _anode_wire_diameter_;
306 double _field_wire_length_;
307 double _field_wire_diameter_;
309 int _module_address_index_;
310 int _side_address_index_;
311 int _layer_address_index_;
312 int _row_address_index_;
315 bool _submodules_[2];
322 #endif // FALAISE_SNEMO_GEOMETRY_GG_LOCATOR_H void initialize()
Initialize.
void _hack_trace()
Hack trace.
uint32_t extract_layer(const geomtools::geom_id &gid_) const
geomtools::vector_3d get_cell_position(uint32_t side_, uint32_t layer_, uint32_t row_) const
virtual bool is_initialized() const
Check intialization flag.
bool is_in_module(const geomtools::vector_3d &module_position_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
double get_layer_x(uint32_t side_, uint32_t layer_) const
void transform_module_to_world(const geomtools::vector_3d &module_position_, geomtools::vector_3d &world_position_) const
bool is_in_cell(const geomtools::vector_3d &module_position_, uint32_t side_, uint32_t layer_, uint32_t row_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
void set_module_number(uint32_t module_number_)
uint32_t extract_row(const geomtools::geom_id &gid_) const
virtual void reset()
Reset.
double get_cell_diameter() const
void dump(std::ostream &out_=std::clog) const
Dump.
uint32_t extract_side(const geomtools::geom_id &gid) const
double get_anode_wire_diameter() const
void transform_world_to_module(const geomtools::vector_3d &world_position_, geomtools::vector_3d &module_position_) const
void compute_cell_position(uint32_t side_, uint32_t layer_, uint32_t row_, geomtools::vector_3d &module_position_) const
size_t get_number_of_sides() const
bool is_drift_cell_volume_in_current_module(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
void get_neighbours_ids(uint32_t side_, uint32_t layer_, uint32_t row_, std::vector< geomtools::geom_id > &ids_, bool other_side_=false) const
virtual void tree_dump(std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
Smart print.
uint32_t extract_module(const geomtools::geom_id &gid_) const
virtual ~gg_locator()
Destructor.
void _set_defaults()
Set default values.
bool is_drift_cell_volume(const geomtools::geom_id &gid_) const
virtual bool find_geom_id(const geomtools::vector_3d &world_position_, int type_, geomtools::geom_id &gid_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
size_t get_number_of_neighbours(uint32_t side_, uint32_t layer_, uint32_t row_, bool other_side_=false) const
uint32_t get_module_number() const
double get_row_y(uint32_t side_, uint32_t row_) const
size_t get_number_of_rows(uint32_t side_) const
double get_field_wire_length() const
double get_field_wire_diameter() const
double get_anode_wire_length() const
size_t get_number_of_layers(uint32_t side_) const
Fast locator class for SuperNEMO drift chamber volumes.
Definition: gg_locator.h:62
bool find_cell_geom_id(const geomtools::vector_3d &world_position_, geomtools::geom_id &gid_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
bool is_world_position_in_cell(const geomtools::vector_3d &world_position_, uint32_t side_, uint32_t layer_, uint32_t row_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE) const
bool has_submodules(uint32_t side_) const
double get_cell_length() const
bool _find_cell_geom_id(const geomtools::vector_3d &in_module_position_, geomtools::geom_id &gid_, double tolerance_=GEOMTOOLS_PROPER_TOLERANCE)