ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <coresoftware/blob/master/offline/packages/micromegas/CylinderGeomMicromegas.h>
Public Member Functions | |
CylinderGeomMicromegas () | |
CylinderGeomMicromegas (int layer) | |
void | identify (std::ostream &) const override |
print information about this layer | |
modifiers | |
void | set_layer (const int i) override |
void | set_radius (const double value) override |
void | set_thickness (const double value) override |
void | set_zmin (const double value) override |
void | set_zmax (const double value) override |
void | set_pitch (double value) |
void | set_tiles (const MicromegasTile::List &tiles) |
tiles | |
void | set_segmentation_type (MicromegasDefs::SegmentationType value) |
segmentation | |
void | set_drift_direction (MicromegasDefs::DriftDirection value) |
drift direction | |
Public Member Functions inherited from PHG4CylinderGeom | |
~PHG4CylinderGeom () override | |
void | identify (std::ostream &os=std::cout) const override |
virtual int | get_nscint () const |
virtual double | get_tiltangle () const |
virtual double | get_phi_slat_zero () const |
virtual void | set_nscint (const int) |
virtual void | set_tiltangle (const double) |
virtual void | set_phi_slat_zero (const double) |
virtual void | find_segment_center (const int, const int, double[]) |
virtual void | find_strip_center (const int, const int, const int, const int, double[]) |
virtual void | find_strip_index_values (const int, const double, const double, int &, int &) |
virtual void | find_strip_center_local_coords (const int, const int, const int, double[]) |
virtual double | get_strip_y_spacing () const |
virtual double | get_strip_z_spacing () const |
virtual double | get_strip_tilt () const |
virtual int | get_N_strip_columns () const |
virtual int | get_N_strips_per_column () const |
virtual int | get_N_sensors_in_layer () const |
virtual double | get_pixel_z () const |
virtual double | get_pixel_x () const |
virtual double | get_pixel_thickness () const |
virtual void | ImportParameters (const PHParameters &) |
load parameters from PHParameters, which interface to Database/XML/ROOT files | |
Public Member Functions inherited from PHObject | |
PHObject () | |
ctor | |
~PHObject () override | |
dtor | |
virtual PHObject * | CloneMe () const |
Virtual copy constructor. | |
virtual PHObject * | clone () const final |
PHObject * | Clone (const char *newname="") const final |
void | Copy (TObject &object) const final |
virtual void | Reset () |
Clear Event. | |
virtual int | isValid () const |
isValid returns non zero if object contains vailid data | |
virtual int | isValid (const float) const |
virtual int | isValid (const double) const |
virtual int | isValid (const int) const |
virtual int | isValid (const unsigned int) const |
virtual int | isImplemented (const float f) const |
virtual int | isImplemented (const double f) const |
virtual int | isImplemented (const int i) const |
virtual int | isImplemented (const unsigned int i) const |
virtual int | Integrate () const |
virtual int | Integrate (PHObject *) |
virtual void | CopyFrom (const PHObject *obj) |
Private Member Functions | |
TGeoHMatrix | transformation_matrix (uint tileid) const |
Private Attributes | |
int | m_layer = 0 |
layer id | |
MicromegasDefs::SegmentationType | m_segmentation_type = MicromegasDefs::SegmentationType::SEGMENTATION_PHI |
segmentation type | |
MicromegasDefs::DriftDirection | m_drift_direction = MicromegasDefs::DriftDirection::OUTWARD |
drift direction | |
double | m_radius = 0 |
layer radius | |
double | m_thickness = 0 |
layer thickness | |
double | m_zmin = 0 |
layer z extend | |
double | m_zmax = 0 |
layer z extend | |
double | m_pitch = 0.1 |
1mm pitch by default | |
MicromegasTile::List | m_tiles |
tiles | |
accessors | |
static constexpr double | reference_radius = 82 |
reference radius used in macro to convert tile size in azimuth into a angle range (cm) | |
int | get_layer () const override |
double | get_radius () const override |
double | get_thickness () const override |
double | get_zmin () const override |
double | get_zmax () const override |
double | get_pitch () const |
MicromegasDefs::SegmentationType | get_segmentation_type () const |
segmentation type | |
MicromegasDefs::DriftDirection | get_drift_direction () const |
drift direction | |
bool | check_radius (const TVector3 &) const |
TVector3 | get_local_from_world_coords (uint tileid, const TVector3 &) const |
convert world to local position coordinates in (planar) tile reference frame | |
TVector3 | get_local_from_world_vect (uint tileid, const TVector3 &) const |
convert world to local direction coordinates in (planar) tile reference frame | |
TVector3 | get_world_from_local_coords (uint tileid, const TVector3 &) const |
convert local to world position coordinates in (planar) tile reference frame | |
TVector3 | get_world_from_local_vect (uint tileid, const TVector3 &) const |
convert local to world direction coordinates in (planar) tile reference frame | |
int | find_tile_cylindrical (const TVector3 &) const |
get tile for a given world location assuming tiles are portion of cylinder centered around tile center | |
int | find_tile_planar (const TVector3 &) const |
get tile for a given world location assuming tiles are planes centered on tile center and tengent to local cylinder | |
size_t | get_tiles_count () const |
get number of tiles | |
const MicromegasTile & | get_tile (uint tileid) const |
get tile for given tileid | |
void | convert_to_planar (uint tileid, PHG4Hit *) const |
convert g4hit coordinates from cylinder Micromegas to planar | |
int | find_strip_from_world_coords (uint tileid, const TVector3 &) const |
get strip for a give world location and tile | |
int | find_strip_from_local_coords (uint tileid, const TVector3 &) const |
get strip for a give world location and tile | |
double | get_strip_length (uint tileid) const |
get strip length for a given tile | |
uint | get_strip_count (uint tileid) const |
get number of strips | |
TVector3 | get_local_coordinates (uint tileid, uint stripnum) const |
get local coordinates for a given tile and strip | |
TVector3 | get_world_coordinates (uint tileid, uint stripnum) const |
get world coordinates for a given tile and strip | |
double | get_center_phi (uint tileid) const |
get phi angle at center of tile | |
Additional Inherited Members | |
Protected Member Functions inherited from PHG4CylinderGeom | |
PHG4CylinderGeom () | |
Definition at line 25 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 25 of file CylinderGeomMicromegas.h
|
inlineexplicit |
Definition at line 30 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 30 of file CylinderGeomMicromegas.h
|
inline |
Definition at line 34 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 34 of file CylinderGeomMicromegas.h
bool CylinderGeomMicromegas::check_radius | ( | const TVector3 & | world_coordinates | ) | const |
Definition at line 306 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 306 of file CylinderGeomMicromegas.cc
References kdfinder::abs(), QAG4Util::get_r(), m_radius, m_thickness, and radius.
Referenced by find_tile_cylindrical().
convert g4hit coordinates from cylinder Micromegas to planar
this assumes that Micromegas Geant4 implementation are cylinders, while actual tiles are planes one must then 'drift' the g4hit along its momentum from its radius to the releval "y" in local coordinates
Definition at line 155 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 155 of file CylinderGeomMicromegas.cc
References get_local_from_world_coords(), get_local_from_world_vect(), QAG4Util::get_r(), get_world_from_local_coords(), PHG4Hit::get_x(), PHG4Hit::get_y(), PHG4Hit::get_z(), m_radius, PHG4Hit::set_x(), PHG4Hit::set_y(), and PHG4Hit::set_z().
int CylinderGeomMicromegas::find_strip_from_local_coords | ( | uint | tileid, |
const TVector3 & | local_coordinates | ||
) | const |
get strip for a give world location and tile
Definition at line 198 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 198 of file CylinderGeomMicromegas.cc
References kdfinder::abs(), m_pitch, m_segmentation_type, m_thickness, m_tiles, reference_radius, PHG4InttDefs::SEGMENTATION_PHI, and PHG4InttDefs::SEGMENTATION_Z.
Referenced by PHG4MicromegasHitReco::distribute_charge(), and find_strip_from_world_coords().
int CylinderGeomMicromegas::find_strip_from_world_coords | ( | uint | tileid, |
const TVector3 & | world_coordinates | ||
) | const |
get strip for a give world location and tile
Definition at line 190 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 190 of file CylinderGeomMicromegas.cc
References find_strip_from_local_coords(), and get_local_from_world_coords().
int CylinderGeomMicromegas::find_tile_cylindrical | ( | const TVector3 & | world_coordinates | ) | const |
get tile for a given world location assuming tiles are portion of cylinder centered around tile center
Definition at line 104 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 104 of file CylinderGeomMicromegas.cc
References kdfinder::abs(), check_radius(), m_tiles, phi, and z.
int CylinderGeomMicromegas::find_tile_planar | ( | const TVector3 & | world_coordinates | ) | const |
get tile for a given world location assuming tiles are planes centered on tile center and tengent to local cylinder
Definition at line 127 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 127 of file CylinderGeomMicromegas.cc
References kdfinder::abs(), get_local_from_world_coords(), m_thickness, m_tiles, and reference_radius.
Referenced by MakeActsGeometry::makeMmMapPairs().
|
inline |
get phi angle at center of tile
Definition at line 127 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 127 of file CylinderGeomMicromegas.h
References m_tiles.
|
inline |
drift direction
Definition at line 54 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 54 of file CylinderGeomMicromegas.h
References m_drift_direction.
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 43 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 43 of file CylinderGeomMicromegas.h
References m_layer.
TVector3 CylinderGeomMicromegas::get_local_coordinates | ( | uint | tileid, |
uint | stripnum | ||
) | const |
get local coordinates for a given tile and strip
Definition at line 263 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 263 of file CylinderGeomMicromegas.cc
References m_pitch, m_segmentation_type, m_tiles, reference_radius, PHG4InttDefs::SEGMENTATION_PHI, and PHG4InttDefs::SEGMENTATION_Z.
Referenced by PHG4MicromegasHitReco::distribute_charge(), and get_world_coordinates().
TVector3 CylinderGeomMicromegas::get_local_from_world_coords | ( | uint | tileid, |
const TVector3 & | world_coordinates | ||
) | const |
convert world to local position coordinates in (planar) tile reference frame
each (planar) tile has a local ref system defined as:
Definition at line 36 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 36 of file CylinderGeomMicromegas.cc
References local, m_tiles, and transformation_matrix().
Referenced by convert_to_planar(), find_strip_from_world_coords(), and find_tile_planar().
TVector3 CylinderGeomMicromegas::get_local_from_world_vect | ( | uint | tileid, |
const TVector3 & | world_vect | ||
) | const |
convert world to local direction coordinates in (planar) tile reference frame
Definition at line 87 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 87 of file CylinderGeomMicromegas.cc
References local, m_tiles, and transformation_matrix().
Referenced by convert_to_planar().
|
inline |
Definition at line 48 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 48 of file CylinderGeomMicromegas.h
References m_pitch.
Referenced by PHG4MicromegasHitReco::distribute_charge().
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 44 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 44 of file CylinderGeomMicromegas.h
References m_radius.
Referenced by PHMicromegasTpcTrackMatching::process_event().
|
inline |
segmentation type
Definition at line 51 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 51 of file CylinderGeomMicromegas.h
References m_segmentation_type.
Referenced by PHG4MicromegasHitReco::distribute_charge(), and MakeActsGeometry::makeMmMapPairs().
uint CylinderGeomMicromegas::get_strip_count | ( | uint | tileid | ) | const |
get number of strips
Definition at line 246 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 246 of file CylinderGeomMicromegas.cc
References m_pitch, m_segmentation_type, m_tiles, reference_radius, PHG4InttDefs::SEGMENTATION_PHI, and PHG4InttDefs::SEGMENTATION_Z.
Referenced by PHG4MicromegasHitReco::distribute_charge().
double CylinderGeomMicromegas::get_strip_length | ( | uint | tileid | ) | const |
get strip length for a given tile
Definition at line 229 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 229 of file CylinderGeomMicromegas.cc
References m_segmentation_type, m_tiles, reference_radius, PHG4InttDefs::SEGMENTATION_PHI, and PHG4InttDefs::SEGMENTATION_Z.
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 45 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 45 of file CylinderGeomMicromegas.h
References m_thickness.
|
inline |
get tile for given tileid
Definition at line 95 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 95 of file CylinderGeomMicromegas.h
References m_tiles.
Referenced by MakeActsGeometry::addActsMicromegasSurfaces().
|
inline |
get number of tiles
Definition at line 92 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 92 of file CylinderGeomMicromegas.h
References m_tiles.
TVector3 CylinderGeomMicromegas::get_world_coordinates | ( | uint | tileid, |
uint | stripnum | ||
) | const |
get world coordinates for a given tile and strip
Definition at line 284 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 284 of file CylinderGeomMicromegas.cc
References get_local_coordinates(), get_world_from_local_coords(), and m_tiles.
TVector3 CylinderGeomMicromegas::get_world_from_local_coords | ( | uint | tileid, |
const TVector3 & | local_coordinates | ||
) | const |
convert local to world position coordinates in (planar) tile reference frame
each (planar) tile has a local ref system defined as:
Definition at line 53 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 53 of file CylinderGeomMicromegas.cc
References local, m_tiles, and transformation_matrix().
Referenced by convert_to_planar(), and get_world_coordinates().
TVector3 CylinderGeomMicromegas::get_world_from_local_vect | ( | uint | tileid, |
const TVector3 & | local_vect | ||
) | const |
convert local to world direction coordinates in (planar) tile reference frame
Definition at line 70 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 70 of file CylinderGeomMicromegas.cc
References local, m_tiles, and transformation_matrix().
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 47 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 47 of file CylinderGeomMicromegas.h
References m_zmax.
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 46 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 46 of file CylinderGeomMicromegas.h
References m_zmin.
|
overridevirtual |
print information about this layer
Reimplemented from PHObject.
Definition at line 291 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 291 of file CylinderGeomMicromegas.cc
References m_drift_direction, m_layer, m_pitch, m_radius, m_segmentation_type, m_thickness, m_zmax, m_zmin, and PHG4InttDefs::SEGMENTATION_PHI.
|
inline |
drift direction
Definition at line 154 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 154 of file CylinderGeomMicromegas.h
References m_drift_direction.
Reimplemented from PHG4CylinderGeom.
Definition at line 140 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 140 of file CylinderGeomMicromegas.h
References m_layer.
|
inline |
Definition at line 145 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 145 of file CylinderGeomMicromegas.h
References m_pitch.
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 141 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 141 of file CylinderGeomMicromegas.h
References m_radius.
|
inline |
segmentation
Definition at line 151 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 151 of file CylinderGeomMicromegas.h
References m_segmentation_type.
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 142 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 142 of file CylinderGeomMicromegas.h
References m_thickness.
|
inline |
tiles
Definition at line 148 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 148 of file CylinderGeomMicromegas.h
References m_tiles.
Referenced by PHG4MicromegasHitReco::setup_tiles().
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 144 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 144 of file CylinderGeomMicromegas.h
References m_zmax.
|
inlineoverridevirtual |
Reimplemented from PHG4CylinderGeom.
Definition at line 143 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 143 of file CylinderGeomMicromegas.h
References m_zmin.
|
private |
Definition at line 313 of file CylinderGeomMicromegas.cc.
View newest version in sPHENIX GitHub at line 313 of file CylinderGeomMicromegas.cc
References M_PI, m_radius, and m_tiles.
Referenced by get_local_from_world_coords(), get_local_from_world_vect(), get_world_from_local_coords(), and get_world_from_local_vect().
|
private |
drift direction
Definition at line 169 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 169 of file CylinderGeomMicromegas.h
Referenced by get_drift_direction(), identify(), and set_drift_direction().
|
private |
layer id
Definition at line 163 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 163 of file CylinderGeomMicromegas.h
Referenced by get_layer(), identify(), and set_layer().
|
private |
1mm pitch by default
Definition at line 184 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 184 of file CylinderGeomMicromegas.h
Referenced by find_strip_from_local_coords(), get_local_coordinates(), get_pitch(), get_strip_count(), identify(), and set_pitch().
|
private |
layer radius
Definition at line 172 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 172 of file CylinderGeomMicromegas.h
Referenced by check_radius(), convert_to_planar(), get_radius(), identify(), set_radius(), and transformation_matrix().
|
private |
segmentation type
Definition at line 166 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 166 of file CylinderGeomMicromegas.h
Referenced by find_strip_from_local_coords(), get_local_coordinates(), get_segmentation_type(), get_strip_count(), get_strip_length(), identify(), and set_segmentation_type().
|
private |
layer thickness
Definition at line 175 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 175 of file CylinderGeomMicromegas.h
Referenced by check_radius(), find_strip_from_local_coords(), find_tile_planar(), get_thickness(), identify(), and set_thickness().
|
private |
tiles
Definition at line 187 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 187 of file CylinderGeomMicromegas.h
Referenced by find_strip_from_local_coords(), find_tile_cylindrical(), find_tile_planar(), get_center_phi(), get_local_coordinates(), get_local_from_world_coords(), get_local_from_world_vect(), get_strip_count(), get_strip_length(), get_tile(), get_tiles_count(), get_world_coordinates(), get_world_from_local_coords(), get_world_from_local_vect(), set_tiles(), and transformation_matrix().
|
private |
layer z extend
Definition at line 181 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 181 of file CylinderGeomMicromegas.h
Referenced by get_zmax(), identify(), and set_zmax().
|
private |
layer z extend
Definition at line 178 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 178 of file CylinderGeomMicromegas.h
Referenced by get_zmin(), identify(), and set_zmin().
|
static |
reference radius used in macro to convert tile size in azimuth into a angle range (cm)
Definition at line 134 of file CylinderGeomMicromegas.h.
View newest version in sPHENIX GitHub at line 134 of file CylinderGeomMicromegas.h
Referenced by MakeActsGeometry::addActsMicromegasSurfaces(), find_strip_from_local_coords(), find_tile_planar(), get_local_coordinates(), get_strip_count(), and get_strip_length().