Bayeux  3.4.1
Core Foundation library for SuperNEMO
Public Types | Public Member Functions | Protected Member Functions | List of all members
mctools::biasing::point_of_interest Class Reference

A point of interest (POI) in the geometry. More...

#include <bayeux/mctools/biasing/point_of_interest.h>

Inheritance diagram for mctools::biasing::point_of_interest:
datatools::i_tree_dumpable

Public Types

enum  attractive_shape_type { ATTRACTIVE_SHAPE_INVALID = 0, ATTRACTIVE_SHAPE_SPHERE = 1, ATTRACTIVE_SHAPE_DISC = 2 }
 
- Public Types inherited from datatools::i_tree_dumpable
enum  ostream_type { OSTREAM_COUT = 1, OSTREAM_CERR = 2, OSTREAM_CLOG = 3 }
 Enumeration for standard output streams. More...
 

Public Member Functions

 point_of_interest ()
 Default constructor. More...
 
void set_name (const std::string &)
 Set the name. More...
 
const std::string & get_name () const
 Return the name. More...
 
void set_position (const geomtools::vector_3d &)
 Set the position. More...
 
const geomtools::vector_3dget_position () const
 Return the position. More...
 
geomtools::vector_3dgrab_position ()
 Return the position. More...
 
void set_orientation (const geomtools::vector_3d &)
 Set the orientation. More...
 
const geomtools::vector_3dget_orientation () const
 Return the orientation. More...
 
void set_attractivity (double)
 Set the attractivity. More...
 
double get_attractivity () const
 Return the attractivity. More...
 
bool has_attractivity () const
 Check if the point of interest has a defined attractivity. More...
 
bool is_attractive () const
 Check if the point of interest is attractive. More...
 
bool is_repulsive () const
 Check if the point of interest is repulsive. More...
 
bool is_neutral () const
 Check if the point of interest has zero attractivity. More...
 
void set_radius (double)
 Set the radius. More...
 
double get_radius () const
 Return the radius. More...
 
bool is_valid () const
 Check validity. More...
 
void invalidate ()
 Invalidate. More...
 
void initialize (const datatools::properties &config_, const geomtools::manager *geomgr_=0)
 Initialization. More...
 
virtual void tree_dump (std::ostream &out_=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
 Smart print. More...
 
bool hit (const geomtools::vector_3d &source_, const geomtools::vector_3d &direction_) const
 Check if a linear trajectory coming from a given source with a given direction traverse the sphere. More...
 
- Public Member Functions inherited from datatools::i_tree_dumpable
 i_tree_dumpable ()
 Constructor. More...
 
virtual ~i_tree_dumpable ()
 Destructor. More...
 
virtual void print_tree (std::ostream &out_=std::clog, const boost::property_tree::ptree &options_=empty_options()) const
 Main new interface method for printing. More...
 
void print_tree_json (std::ostream &out_=std::clog, const std::string &json_options_="") const
 Printing with jsonized options. More...
 
void print_tree_json (std::ostream &out_=std::clog, const char *json_options_=nullptr) const
 Printing with jsonized options. More...
 
void tree_dump_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="", const bool inherit_=false) const
 
void tree_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="") const
 
void smart_print_id (const int out_type_=OSTREAM_CLOG, const std::string &title_="", const std::string &indent_="") const
 

Protected Member Functions

void _set_default ()
 Set the default attributes. More...
 

Additional Inherited Members

- Static Public Member Functions inherited from datatools::i_tree_dumpable
static const boost::property_tree::ptree & empty_options ()
 
static boost::property_tree::ptree make_base_print_options (const std::string &title_, const std::string &indent_="", const bool inherit_=false)
 
static std::ostream & last_skip_tag (std::ostream &out_)
 
static std::ostream & skip_tag (std::ostream &out_)
 
static std::ostream & last_tag (std::ostream &out_)
 
static std::ostream & tag (std::ostream &out_)
 

Detailed Description

A point of interest (POI) in the geometry.

A point of interest (POI) is defined by a special position of the geometry setup associated to a radius that defines a fiducial spherical region around that position. More, a POI is given an attractivity value that reflects that the POI is attractive (positive values) or repulsive (negative value) typically with respect to the tracking of simulated particles. A zero attractivity qualifies a neutral POI.

The concept of POI allows to define some favoured tracking direction while propagating particles within the geometry. It can be used to configure biasing algorithms.

incoming
particles
_.-"""""-._ ....+ from a vertex
.' `. ...."""" \
/ \ L"""" \
| POI | towards the POI \
| + | region \
| \ R | \ far from the POI
\ \ / \ region
`._ \ _.' _\/
`-.....-'

TO DO: Use a 2D/3D oriented blur_spot for better flexibility

Member Enumeration Documentation

◆ attractive_shape_type

Enumerator
ATTRACTIVE_SHAPE_INVALID 
ATTRACTIVE_SHAPE_SPHERE 
ATTRACTIVE_SHAPE_DISC 

Constructor & Destructor Documentation

◆ point_of_interest()

mctools::biasing::point_of_interest::point_of_interest ( )

Default constructor.

Member Function Documentation

◆ _set_default()

void mctools::biasing::point_of_interest::_set_default ( )
protected

Set the default attributes.

◆ get_attractivity()

double mctools::biasing::point_of_interest::get_attractivity ( ) const

Return the attractivity.

◆ get_name()

const std::string& mctools::biasing::point_of_interest::get_name ( ) const

Return the name.

◆ get_orientation()

const geomtools::vector_3d& mctools::biasing::point_of_interest::get_orientation ( ) const

Return the orientation.

◆ get_position()

const geomtools::vector_3d& mctools::biasing::point_of_interest::get_position ( ) const

Return the position.

◆ get_radius()

double mctools::biasing::point_of_interest::get_radius ( ) const

Return the radius.

◆ grab_position()

geomtools::vector_3d& mctools::biasing::point_of_interest::grab_position ( )

Return the position.

◆ has_attractivity()

bool mctools::biasing::point_of_interest::has_attractivity ( ) const

Check if the point of interest has a defined attractivity.

◆ hit()

bool mctools::biasing::point_of_interest::hit ( const geomtools::vector_3d source_,
const geomtools::vector_3d direction_ 
) const

Check if a linear trajectory coming from a given source with a given direction traverse the sphere.

◆ initialize()

void mctools::biasing::point_of_interest::initialize ( const datatools::properties config_,
const geomtools::manager geomgr_ = 0 
)

Initialization.

◆ invalidate()

void mctools::biasing::point_of_interest::invalidate ( )

Invalidate.

◆ is_attractive()

bool mctools::biasing::point_of_interest::is_attractive ( ) const

Check if the point of interest is attractive.

◆ is_neutral()

bool mctools::biasing::point_of_interest::is_neutral ( ) const

Check if the point of interest has zero attractivity.

◆ is_repulsive()

bool mctools::biasing::point_of_interest::is_repulsive ( ) const

Check if the point of interest is repulsive.

◆ is_valid()

bool mctools::biasing::point_of_interest::is_valid ( ) const

Check validity.

◆ set_attractivity()

void mctools::biasing::point_of_interest::set_attractivity ( double  )

Set the attractivity.

◆ set_name()

void mctools::biasing::point_of_interest::set_name ( const std::string &  )

Set the name.

◆ set_orientation()

void mctools::biasing::point_of_interest::set_orientation ( const geomtools::vector_3d )

Set the orientation.

◆ set_position()

void mctools::biasing::point_of_interest::set_position ( const geomtools::vector_3d )

Set the position.

◆ set_radius()

void mctools::biasing::point_of_interest::set_radius ( double  )

Set the radius.

◆ tree_dump()

virtual void mctools::biasing::point_of_interest::tree_dump ( std::ostream &  out_ = std::clog,
const std::string &  title_ = "",
const std::string &  indent_ = "",
bool  inherit_ = false 
) const
virtual

Smart print.

Reimplemented from datatools::i_tree_dumpable.


The documentation for this class was generated from the following file: