Analysis Software
Documentation for sPHENIX simulation software
|
#include <coresoftware/blob/master/simulation/g4simulation/g4micromegas/PHG4MicromegasHitReco.h>
Classes | |
class | Deleter |
rng de-allocator More... | |
Public Member Functions | |
PHG4MicromegasHitReco (const std::string &name="PHG4MicromegasHitReco") | |
int | InitRun (PHCompositeNode *) override |
run initialization | |
int | process_event (PHCompositeNode *) override |
event processing | |
void | SetDefaultParameters () override |
parameters | |
Public Member Functions inherited from SubsysReco | |
~SubsysReco () override | |
virtual int | End (PHCompositeNode *) |
Called at the end of all processing. | |
virtual int | EndRun (const int) |
Called at the end of each run. | |
virtual int | Init (PHCompositeNode *) |
virtual int | Reset (PHCompositeNode *) |
Reset. | |
virtual int | ResetEvent (PHCompositeNode *) |
Clean up after each event. | |
void | Print (const std::string &="ALL") const override |
Public Member Functions inherited from Fun4AllBase | |
virtual | ~Fun4AllBase () |
virtual const std::string | Name () const |
Returns the name of this module. | |
virtual void | Name (const std::string &name) |
Sets the name of this module. | |
virtual void | Verbosity (const int ival) |
Sets the verbosity of this module (0 by default=quiet). | |
virtual void | Verbosity (enu_Verbosity ival) |
Sets the verbosity of this module (0 by default=quiet). | |
virtual int | Verbosity () const |
Gets the verbosity of this module. | |
Public Member Functions inherited from PHParameterInterface | |
PHParameterInterface (const std::string &name) | |
PHParameterInterface (const PHParameterInterface &)=delete | |
PHParameterInterface & | operator= (PHParameterInterface const &)=delete |
virtual | ~PHParameterInterface () |
void | set_paramname (const std::string &name) |
void | set_double_param (const std::string &name, const double dval) |
double | get_double_param (const std::string &name) const |
void | set_int_param (const std::string &name, const int ival) |
int | get_int_param (const std::string &name) const |
void | set_string_param (const std::string &name, const std::string &sval) |
std::string | get_string_param (const std::string &name) const |
void | UpdateParametersWithMacro () |
void | SaveToNodeTree (PHCompositeNode *runNode, const std::string &nodename) |
void | PutOnParNode (PHCompositeNode *parNode, const std::string &nodename) |
void | Print () const |
Private Types | |
using | charge_pair_t = std::pair< int, double > |
stores strip number and corresponding charge fraction | |
using | charge_list_t = std::vector< charge_pair_t > |
map strip number to charge fraction | |
Private Member Functions | |
std::string | full_geonodename () const |
return full geo node name, that also contains tile information | |
uint | get_primary_electrons (PHG4Hit *) const |
get total number of electrons collected for a give g4hit | |
uint | get_single_electron_amplification () const |
get single electron amplification | |
charge_list_t | distribute_charge (CylinderGeomMicromegas *, uint tileid, const TVector2 &local_position, double sigma) const |
distribute a Gaussian charge across adjacent strips | |
Private Attributes | |
ActsGeometry * | m_acts_geometry = nullptr |
acts geometry | |
double | m_tmin = -20 |
timing window (ns) | |
double | m_tmax = 800 |
timing window (ns) | |
double | m_electrons_per_gev = 0 |
number of primary electrons per GeV | |
double | m_gain = 0 |
min gain | |
double | m_cloud_sigma = 0.04 |
electron cloud sigma (cm) after avalanche | |
double | m_diffusion_trans = 0.03 |
electron transverse diffusion (cm/sqrt(cm)) | |
double | m_added_smear_sigma_z = 0 |
additional smearing of primary electrons (cm) | |
double | m_added_smear_sigma_rphi = 0 |
std::unique_ptr< gsl_rng, Deleter > | m_rng |
random generator that conform with sPHENIX standard | |
Additional Inherited Members | |
Public Types inherited from Fun4AllBase | |
enum | enu_Verbosity { VERBOSITY_QUIET = 0, VERBOSITY_SOME = 1, VERBOSITY_MORE = 2, VERBOSITY_EVEN_MORE = 3, VERBOSITY_A_LOT = 4, VERBOSITY_MAX = std::numeric_limits<int>::max() - 10 } |
Protected Member Functions inherited from SubsysReco | |
SubsysReco (const std::string &name="NONAME") | |
Protected Member Functions inherited from PHParameterInterface | |
void | set_default_double_param (const std::string &name, const double dval) |
void | set_default_int_param (const std::string &name, const int ival) |
void | set_default_string_param (const std::string &name, const std::string &sval) |
void | InitializeParameters () |
Definition at line 29 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 29 of file PHG4MicromegasHitReco.h
|
private |
map strip number to charge fraction
Definition at line 61 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 61 of file PHG4MicromegasHitReco.h
|
private |
stores strip number and corresponding charge fraction
Definition at line 58 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 58 of file PHG4MicromegasHitReco.h
|
explicit |
Definition at line 118 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 118 of file PHG4MicromegasHitReco.cc
References gsl_rng_set(), PHParameterInterface::InitializeParameters(), m_rng, and seed.
|
private |
distribute a Gaussian charge across adjacent strips
Definition at line 467 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 467 of file PHG4MicromegasHitReco.cc
References CylinderGeomMicromegas::find_strip_from_local_coords(), CylinderGeomMicromegas::get_local_coordinates(), CylinderGeomMicromegas::get_pitch(), CylinderGeomMicromegas::get_segmentation_type(), CylinderGeomMicromegas::get_strip_count(), m_acts_geometry, PHG4InttDefs::SEGMENTATION_PHI, and PHG4InttDefs::SEGMENTATION_Z.
Referenced by process_event().
|
inlineprivate |
return full geo node name, that also contains tile information
Definition at line 45 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 45 of file PHG4MicromegasHitReco.h
Referenced by process_event().
|
private |
get total number of electrons collected for a give g4hit
this accounts for the number of primary electrons, the detector gain, and fluctuations
Definition at line 450 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 450 of file PHG4MicromegasHitReco.cc
References PHG4Hit::get_eion(), m_electrons_per_gev, and m_rng.
Referenced by process_event().
|
private |
get single electron amplification
Definition at line 456 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 456 of file PHG4MicromegasHitReco.cc
Referenced by process_event().
|
overridevirtual |
run initialization
Reimplemented from SubsysReco.
Definition at line 131 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 131 of file PHG4MicromegasHitReco.cc
References Fun4AllReturnCodes::EVENT_OK, PHNodeIterator::findFirst(), PHParameterInterface::get_double_param(), m_added_smear_sigma_rphi, m_added_smear_sigma_z, m_cloud_sigma, m_diffusion_trans, m_electrons_per_gev, m_gain, m_tmax, m_tmin, and PHParameterInterface::UpdateParametersWithMacro().
|
overridevirtual |
event processing
Reimplemented from SubsysReco.
Definition at line 211 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 211 of file PHG4MicromegasHitReco.cc
References TrkrHitv2::addEnergy(), assert, distribute_charge(), double(), Fun4AllReturnCodes::EVENT_OK, full_geonodename(), gain, MicromegasDefs::genHitKey(), MicromegasDefs::genHitSetKey(), get_primary_electrons(), PHG4Hit::get_property_int(), get_single_electron_amplification(), PHG4Hit::get_t(), PHG4Hit::get_x(), PHG4Hit::get_y(), PHG4Hit::get_z(), it, layer, m_acts_geometry, m_added_smear_sigma_rphi, m_added_smear_sigma_z, m_cloud_sigma, m_diffusion_trans, m_rng, m_tmax, m_tmin, PHG4Hit::prop_index_i, PHG4InttDefs::SEGMENTATION_PHI, sum(), t, value, Fun4AllBase::Verbosity(), and physmon_track_finding_ttbar::z.
|
overridevirtual |
parameters
Implements PHParameterInterface.
Definition at line 407 of file PHG4MicromegasHitReco.cc.
View newest version in sPHENIX GitHub at line 407 of file PHG4MicromegasHitReco.cc
References PHParameterInterface::set_default_double_param().
|
private |
acts geometry
Definition at line 67 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 67 of file PHG4MicromegasHitReco.h
Referenced by distribute_charge(), and process_event().
|
private |
Definition at line 90 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 90 of file PHG4MicromegasHitReco.h
Referenced by InitRun(), and process_event().
|
private |
additional smearing of primary electrons (cm)
it is used to adjust the Micromegas resolution to actual measurements
Definition at line 89 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 89 of file PHG4MicromegasHitReco.h
Referenced by InitRun(), and process_event().
|
private |
electron cloud sigma (cm) after avalanche
Definition at line 82 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 82 of file PHG4MicromegasHitReco.h
Referenced by InitRun(), and process_event().
|
private |
electron transverse diffusion (cm/sqrt(cm))
Definition at line 85 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 85 of file PHG4MicromegasHitReco.h
Referenced by InitRun(), and process_event().
|
private |
number of primary electrons per GeV
Definition at line 76 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 76 of file PHG4MicromegasHitReco.h
Referenced by get_primary_electrons(), and InitRun().
|
private |
min gain
Definition at line 79 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 79 of file PHG4MicromegasHitReco.h
Referenced by get_single_electron_amplification(), and InitRun().
|
private |
random generator that conform with sPHENIX standard
using a unique_ptr with custom Deleter ensures that the structure is properly freed when parent object is destroyed
Definition at line 102 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 102 of file PHG4MicromegasHitReco.h
Referenced by get_primary_electrons(), get_single_electron_amplification(), PHG4MicromegasHitReco(), and process_event().
|
private |
timing window (ns)
Definition at line 73 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 73 of file PHG4MicromegasHitReco.h
Referenced by InitRun(), and process_event().
|
private |
timing window (ns)
Definition at line 70 of file PHG4MicromegasHitReco.h.
View newest version in sPHENIX GitHub at line 70 of file PHG4MicromegasHitReco.h
Referenced by InitRun(), and process_event().