12 #ifndef FALAISE_SNEMO_DATAMODELS_PARTICLE_TRACK_H 13 #define FALAISE_SNEMO_DATAMODELS_PARTICLE_TRACK_H 1 20 #include <boost/cstdint.hpp> 190 const bool clear_ =
false)
const;
211 virtual void tree_dump(std::ostream &out = std::clog,
const std::string &title_ =
"",
212 const std::string &indent_ =
"",
bool inherit_ =
false)
const;
219 _associated_calorimeter_hits_;
228 #endif // FALAISE_SNEMO_DATAMODELS_PARTICLE_TRACK_H vertex_type
Vertex flags.
Definition: particle_track.h:66
static bool vertex_is_on_gamma_veto(const geomtools::blur_spot &)
Check a vertex on gamma veto.
std::vector< handle_spot > vertex_collection_type
Collection of vertex spots.
Definition: particle_track.h:124
particle_track()
Default constructor.
Definition: particle_track.h:70
datatools::handle< particle_track > handle_type
Handle on particle track.
Definition: particle_track.h:127
static bool vertex_is(const geomtools::blur_spot &, vertex_type)
Check a vertex type.
calibrated_calorimeter_hit::collection_type & grab_associated_calorimeter_hits()
Return a mutable reference on the collection of associated calorimeter hits (handles)
Positively charged particle.
Definition: particle_track.h:45
static const std::string & vertex_on_source_foil_label()
Associated 'VERTEX_ON_SOURCE_FOIL' flag for auxiliary property.
static bool particle_has_neutral_charge(const particle_track &)
Check a particle is gamma.
static const std::string & vertex_on_x_calorimeter_label()
Associated 'VERTEX_ON_X_CALORIMETER' flag for auxiliary property.
bool has_trajectory() const
Check if the trajectory is present.
bool has_vertices() const
Check if there are some vertices along the fitted trajectory.
charge_type get_charge() const
Get particle charge.
static bool particle_has_positive_charge(const particle_track &)
Check a particle is positron.
Definition: particle_track.h:68
charge_type
Electric charge enumeration.
Definition: particle_track.h:37
void set_charge(charge_type charge_)
static const std::string & vertex_on_wire_label()
Associated 'VERTEX_ON_WIRE' flag for auxiliary property.
void reset()
Reset the particle track (see clear)
Negatively charged particle.
Definition: particle_track.h:47
#define DATATOOLS_SERIALIZATION_DECLARATION()
Definition: particle_track.h:38
static vertex_type label_to_vertex_type(const std::string &)
Return the vertex type from the label.
int get_track_id() const
Get the track ID.
void invalidate_track_id()
Invalidate the track ID.
void detach_trajectory()
Detach the trajectory.
static bool vertex_is_on_x_calorimeter(const geomtools::blur_spot &)
Check a vertex on X calorimeter.
A trajectory of Geiger calibrated hits referenced by handles.
Definition: tracker_trajectory.h:29
Definition: particle_track.h:44
Definition: particle_track.h:39
Particle with undefined charge.
Definition: particle_track.h:41
static bool particle_has_negative_charge(const particle_track &)
Check a particle is electron.
bool has_track_id() const
Check if there is a valid track ID.
static bool particle_has_undefined_charge(const particle_track &)
Check a particle is alpha.
static const std::string & vertex_type_key()
Key for the vertex type property.
Definition: particle_track.h:71
tracker_trajectory::handle_type & grab_trajectory_handle()
Return a mutable reference on the trajectory handle.
Definition: particle_track.h:46
Definition: calo_tapered_scin_box_model.h:54
virtual ~particle_track()
Destructor.
vertex_collection_type & grab_vertices()
Return a mutable reference on the collection of vertices (handles)
Definition: particle_track.h:42
Definition: particle_track.h:69
static bool vertex_is_on_source_foil(const geomtools::blur_spot &)
Check a vertex on source foil.
Definition: particle_track.h:72
Definition: particle_track.h:40
size_t fetch_vertices(vertex_collection_type &vertices_, const uint32_t flags_, const bool clear_=false) const
const vertex_collection_type & get_vertices() const
Return a non mutable reference on the collection of vertices (handles)
datatools::handle< geomtools::blur_spot > handle_spot
Handle on vertex spot.
Definition: particle_track.h:121
void clear()
Empty the contents of the particle track.
Definition: particle_track.h:67
void reset_associated_calorimeter_hits()
Reset the collection of associated calorimeter hits.
static const std::string & vertex_none_label()
Associated 'VERTEX_NONE' flag for auxiliary property.
static bool vertex_is_on_wire(const geomtools::blur_spot &)
Check a vertex on wire.
static const std::string & vertex_on_gamma_veto_label()
Associated 'VERTEX_ON_GAMMA_CALORIMETER' flag for auxiliary property.
static bool vertex_is_on_main_calorimeter(const geomtools::blur_spot &)
Check a vertex on main calorimeter.
const calibrated_calorimeter_hit::collection_type & get_associated_calorimeter_hits() const
Return a non mutable reference on the collection of associated calorimeter hits (handles)
Neutral particle.
Definition: particle_track.h:43
bool has_associated_calorimeter_hits() const
Check if there are some associated calorimeter hits.
const tracker_trajectory & get_trajectory() const
Return a non mutable reference on the trajectory.
SuperNEMO particle track.
Definition: particle_track.h:34
std::vector< handle_type > collection_type
Collection of handles of calibrated calorimeter hit.
Definition: calibrated_calorimeter_hit.h:51
static const std::string & vertex_type_to_label(vertex_type)
Return the label from the vertex type.
virtual void tree_dump(std::ostream &out=std::clog, const std::string &title_="", const std::string &indent_="", bool inherit_=false) const
Smart print.
void reset_vertices()
Reset the collection of vertices.
static bool particle_has(const particle_track &, charge_type)
Check a particle charge type.
tracker_trajectory & grab_trajectory()
Return a mutable reference on the trajectory.
const tracker_trajectory::handle_type & get_trajectory_handle() const
Return a non mutable reference on the trajectory handle.
static const std::string & vertex_on_main_calorimeter_label()
Associated 'VERTEX_ON_MAIN_CALORIMETER' flag for auxiliary property.
void set_track_id(int32_t track_id_)
Set the track ID.
void set_trajectory_handle(const tracker_trajectory::handle_type &trajectory_handle_)
Attach a trajectory by handle.