Garfield++ v1r0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
#include <Sensor.hh>
Public Member Functions | |
Sensor () | |
~Sensor () | |
void | AddComponent (ComponentBase *comp) |
int | GetNumberOfComponents () |
void | AddElectrode (ComponentBase *comp, std::string label) |
int | GetNumberOfElectrodes () |
void | Clear () |
void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, double &v, Medium *&medium, int &status) |
void | ElectricField (const double x, const double y, const double z, double &ex, double &ey, double &ez, Medium *&medium, int &status) |
void | MagneticField (const double x, const double y, const double z, double &bx, double &by, double &bz, int &status) |
void | WeightingField (const double x, const double y, const double z, double &wx, double &wy, double &wz, const std::string label) |
double | WeightingPotential (const double x, const double y, const double z, const std::string label) |
bool | GetMedium (const double x, const double y, const double z, Medium *&medium) |
bool | SetArea () |
bool | SetArea (const double xmin, const double ymin, const double zmin, const double xmax, const double ymax, const double zmax) |
bool | GetArea (double &xmin, double &ymin, double &zmin, double &xmax, double &ymax, double &zmax) |
bool | IsInArea (const double x, const double y, const double z) |
bool | IsWireCrossed (const double x0, const double y0, const double z0, const double x1, const double y1, const double z1, double &xc, double &yc, double &zc) |
bool | IsInTrapRadius (double x0, double y0, double z0, double &xw, double &yw, double &rw) |
bool | GetVoltageRange (double &vmin, double &vmax) |
void | NewSignal () |
void | ClearSignal () |
void | AddSignal (const double &q, const double &t, const double &dt, const double &x, const double &y, const double &z, const double &vx, const double &vy, const double &vz) |
void | AddInducedCharge (const double q, const double x0, const double y0, const double z0, const double x1, const double y1, const double z1) |
void | SetTimeWindow (const double tstart, const double tstep, const int nsteps) |
void | GetTimeWindow (double &tstart, double &tstep, int &nsteps) |
double | GetSignal (const std::string label, const int bin) |
double | GetElectronSignal (const std::string label, const int bin) |
double | GetIonSignal (const std::string label, const int bin) |
double | GetInducedCharge (const std::string label) |
void | SetTransferFunction (double(*f)(double t)) |
void | SetTransferFunction (std::vector< double > times, std::vector< double > values) |
double | GetTransferFunction (const double t) |
bool | ConvoluteSignal () |
bool | IntegrateSignal () |
void | SetNoiseFunction (double(*f)(double t)) |
void | AddNoise () |
bool | ComputeThresholdCrossings (const double thr, const std::string label, int &n) |
int | GetNumberOfThresholdCrossings () |
bool | GetThresholdCrossing (const int i, double &time, double &level, bool &rise) |
void | EnableDebugging () |
void | DisableDebugging () |
Garfield::Sensor::Sensor | ( | ) |
Definition at line 15 of file Sensor.cc.
void Garfield::Sensor::AddComponent | ( | ComponentBase * | comp | ) |
Definition at line 302 of file Sensor.cc.
Referenced by GarfieldPhysics::CreateGeometry().
void Garfield::Sensor::AddElectrode | ( | ComponentBase * | comp, |
std::string | label | ||
) |
Definition at line 317 of file Sensor.cc.
void Garfield::Sensor::AddInducedCharge | ( | const double | q, |
const double | x0, | ||
const double | y0, | ||
const double | z0, | ||
const double | x1, | ||
const double | y1, | ||
const double | z1 | ||
) |
Definition at line 493 of file Sensor.cc.
void Garfield::Sensor::AddNoise | ( | ) |
Definition at line 787 of file Sensor.cc.
void Garfield::Sensor::AddSignal | ( | const double & | q, |
const double & | t, | ||
const double & | dt, | ||
const double & | x, | ||
const double & | y, | ||
const double & | z, | ||
const double & | vx, | ||
const double & | vy, | ||
const double & | vz | ||
) |
Definition at line 409 of file Sensor.cc.
void Garfield::Sensor::Clear | ( | ) |
void Garfield::Sensor::ClearSignal | ( | ) |
Definition at line 396 of file Sensor.cc.
Referenced by AddElectrode().
bool Garfield::Sensor::ComputeThresholdCrossings | ( | const double | thr, |
const std::string | label, | ||
int & | n | ||
) |
Definition at line 809 of file Sensor.cc.
bool Garfield::Sensor::ConvoluteSignal | ( | ) |
Definition at line 691 of file Sensor.cc.
|
inline |
void Garfield::Sensor::ElectricField | ( | const double | x, |
const double | y, | ||
const double | z, | ||
double & | ex, | ||
double & | ey, | ||
double & | ez, | ||
double & | v, | ||
Medium *& | medium, | ||
int & | status | ||
) |
Definition at line 44 of file Sensor.cc.
Referenced by Garfield::ViewField::EvaluatePotential(), Garfield::ViewField::EvaluatePotentialProfile(), Heed::field_map(), and Garfield::DriftLineRKF::GetGain().
void Garfield::Sensor::ElectricField | ( | const double | x, |
const double | y, | ||
const double | z, | ||
double & | ex, | ||
double & | ey, | ||
double & | ez, | ||
Medium *& | medium, | ||
int & | status | ||
) |
Definition at line 70 of file Sensor.cc.
|
inline |
bool Garfield::Sensor::GetArea | ( | double & | xmin, |
double & | ymin, | ||
double & | zmin, | ||
double & | xmax, | ||
double & | ymax, | ||
double & | zmax | ||
) |
Definition at line 227 of file Sensor.cc.
Referenced by Garfield::TrackHeed::NewTrack(), Garfield::ViewField::SetSensor(), Garfield::TrackHeed::TransportDeltaElectron(), and Garfield::TrackHeed::TransportPhoton().
double Garfield::Sensor::GetElectronSignal | ( | const std::string | label, |
const int | bin | ||
) |
Definition at line 556 of file Sensor.cc.
double Garfield::Sensor::GetInducedCharge | ( | const std::string | label | ) |
Definition at line 608 of file Sensor.cc.
double Garfield::Sensor::GetIonSignal | ( | const std::string | label, |
const int | bin | ||
) |
Definition at line 574 of file Sensor.cc.
bool Garfield::Sensor::GetMedium | ( | const double | x, |
const double | y, | ||
const double | z, | ||
Medium *& | medium | ||
) |
Definition at line 141 of file Sensor.cc.
Referenced by Garfield::TrackBichsel::GetCluster(), Garfield::TrackHeed::GetCluster(), Garfield::TrackSimple::GetCluster(), Garfield::TrackElectron::GetCluster(), Garfield::TrackPAI::GetCluster(), Garfield::TrackBichsel::NewTrack(), Garfield::TrackElectron::NewTrack(), Garfield::TrackHeed::NewTrack(), Garfield::TrackPAI::NewTrack(), Garfield::TrackSimple::NewTrack(), Garfield::TrackHeed::TransportDeltaElectron(), and Garfield::TrackHeed::TransportPhoton().
|
inline |
|
inline |
|
inline |
Definition at line 103 of file Sensor.hh.
Referenced by Garfield::ViewSignal::PlotSignal().
double Garfield::Sensor::GetSignal | ( | const std::string | label, |
const int | bin | ||
) |
Definition at line 591 of file Sensor.cc.
Referenced by Garfield::ViewSignal::PlotSignal().
bool Garfield::Sensor::GetThresholdCrossing | ( | const int | i, |
double & | time, | ||
double & | level, | ||
bool & | rise | ||
) |
Definition at line 961 of file Sensor.cc.
Referenced by Garfield::ViewSignal::PlotSignal().
|
inline |
Definition at line 84 of file Sensor.hh.
Referenced by Garfield::ViewSignal::PlotSignal().
double Garfield::Sensor::GetTransferFunction | ( | const double | t | ) |
bool Garfield::Sensor::GetVoltageRange | ( | double & | vmin, |
double & | vmax | ||
) |
Definition at line 363 of file Sensor.cc.
Referenced by Garfield::ViewField::SetSensor().
bool Garfield::Sensor::IntegrateSignal | ( | ) |
Definition at line 752 of file Sensor.cc.
bool Garfield::Sensor::IsInArea | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
Definition at line 254 of file Sensor.cc.
Referenced by Garfield::TrackHeed::GetCluster(), Garfield::TrackElectron::GetCluster(), and Garfield::TrackPAI::GetCluster().
bool Garfield::Sensor::IsInTrapRadius | ( | double | x0, |
double | y0, | ||
double | z0, | ||
double & | xw, | ||
double & | yw, | ||
double & | rw | ||
) |
bool Garfield::Sensor::IsWireCrossed | ( | const double | x0, |
const double | y0, | ||
const double | z0, | ||
const double | x1, | ||
const double | y1, | ||
const double | z1, | ||
double & | xc, | ||
double & | yc, | ||
double & | zc | ||
) |
void Garfield::Sensor::MagneticField | ( | const double | x, |
const double | y, | ||
const double | z, | ||
double & | bx, | ||
double & | by, | ||
double & | bz, | ||
int & | status | ||
) |
Definition at line 95 of file Sensor.cc.
Referenced by Heed::field_map(), and Garfield::DriftLineRKF::GetGain().
|
inline |
bool Garfield::Sensor::SetArea | ( | ) |
Definition at line 165 of file Sensor.cc.
Referenced by GetArea(), and IsInArea().
bool Garfield::Sensor::SetArea | ( | const double | xmin, |
const double | ymin, | ||
const double | zmin, | ||
const double | xmax, | ||
const double | ymax, | ||
const double | zmax | ||
) |
Definition at line 194 of file Sensor.cc.
void Garfield::Sensor::SetNoiseFunction | ( | double(*)(double t) | f | ) |
void Garfield::Sensor::SetTimeWindow | ( | const double | tstart, |
const double | tstep, | ||
const int | nsteps | ||
) |
Definition at line 518 of file Sensor.cc.
void Garfield::Sensor::SetTransferFunction | ( | double(*)(double t) | f | ) |
Definition at line 624 of file Sensor.cc.
void Garfield::Sensor::SetTransferFunction | ( | std::vector< double > | times, |
std::vector< double > | values | ||
) |
Definition at line 637 of file Sensor.cc.
void Garfield::Sensor::WeightingField | ( | const double | x, |
const double | y, | ||
const double | z, | ||
double & | wx, | ||
double & | wy, | ||
double & | wz, | ||
const std::string | label | ||
) |
Definition at line 110 of file Sensor.cc.
Referenced by Garfield::ViewField::EvaluateWeightingField().
double Garfield::Sensor::WeightingPotential | ( | const double | x, |
const double | y, | ||
const double | z, | ||
const std::string | label | ||
) |
Definition at line 128 of file Sensor.cc.
Referenced by Garfield::ViewField::EvaluateWeightingField().