24 : fCalAmpConstants{config.CalAmpConstants()}
25 , fCalAreaConstants{config.CalAreaConstants()}
26 , fUseModBox{config.CaloUseModBox()}
27 , fLifeTimeForm{config.CaloLifeTimeForm()}
28 , fDoLifeTimeCorrection{config.CaloDoLifeTimeCorrection()}
30 if (fLifeTimeForm != 0
and fLifeTimeForm != 1) {
31 throw cet::exception(
"CalorimetryAlg")
32 <<
"Unknow CaloLifeTimeForm " << fLifeTimeForm <<
'\n'
33 <<
"Must select either '0' for exponential or '1' for exponential + "
46 double const T0)
const
60 unsigned int const plane,
61 double const T0)
const
63 double const dQdx = dQ / pitch;
64 return dEdx_AMP(clock_data, det_prop, dQdx, time, plane, T0, det_prop.
Efield());
73 unsigned int const plane,
74 double const T0)
const
76 double const fADCtoEl = fCalAmpConstants[plane];
77 double const dQdx_e = dQdx / fADCtoEl;
78 return dEdx_from_dQdx_e(clock_data, det_prop, dQdx_e, time, T0, det_prop.
Efield());
90 double const EField)
const
104 unsigned int const plane,
106 double const EField)
const
108 double const dQdx = dQ / pitch;
109 return dEdx_AMP(clock_data, det_prop, dQdx, time, plane, T0, EField);
118 unsigned int const plane,
120 double const EField)
const
122 double const fADCtoEl = fCalAmpConstants[plane];
123 double const dQdx_e = dQdx / fADCtoEl;
124 return dEdx_from_dQdx_e(clock_data, det_prop, dQdx_e, time, T0, EField);
135 double const T0)
const
148 unsigned int const plane,
149 double const T0)
const
151 double const dQdx = dQ / pitch;
152 return dEdx_AREA(clock_data, det_prop, dQdx, time, plane, T0, det_prop.
Efield());
161 unsigned int const plane,
162 double const T0)
const
164 double const fADCtoEl = fCalAreaConstants[plane];
165 double const dQdx_e = dQdx / fADCtoEl;
166 return dEdx_from_dQdx_e(clock_data, det_prop, dQdx_e, time, T0, det_prop.
Efield());
178 double const EField)
const
191 unsigned int const plane,
193 double const EField)
const
195 double const dQdx = dQ / pitch;
196 return dEdx_AREA(clock_data, det_prop, dQdx, time, plane, T0, EField);
205 unsigned int const plane,
207 double const EField)
const
209 double const fADCtoEl = fCalAreaConstants[plane];
210 double const dQdx_e = dQdx / fADCtoEl;
211 return dEdx_from_dQdx_e(clock_data, det_prop, dQdx_e, time, T0, EField);
220 double const T0)
const
222 return dEdx_from_dQdx_e(clock_data, det_prop, dQdx_e, time, T0, det_prop.
Efield());
230 double const EField)
const
232 if (fDoLifeTimeCorrection) {
233 dQdx_e *= LifetimeCorrection(clock_data, det_prop, time, T0);
249 double const T0)
const
253 double const adjusted_time = t * timetick - T0 * 1
e-3;
259 return exp(adjusted_time / tau);
263 auto const& elifetime_provider =
264 art::ServiceHandle<lariov::ElectronLifetimeService const>()->GetProvider();
265 return elifetime_provider.Lifetime(adjusted_time);
geo::WireID WireID() const
Declaration of signal hit object.
double ElectronLifetime() const
float Integral() const
Integral under the calibrated signal waveform of the hit, in tick x ADC units.
double ModBoxCorrection(double dQdX) const
float PeakAmplitude() const
The estimated amplitude of the hit at its peak, in ADC units.
double Efield(unsigned int planegap=0) const
kV/cm
process_name can override from command line with o or output calo
return match has_match and(match.match_pdg==11 or match.match_pdg==-11)
PlaneID_t Plane
Index of the plane within its TPC.
Definition of data types for geometry description.
CalorimetryAlg(const fhicl::ParameterSet &pset)
float PeakTime() const
Time of the signal peak, in tick units.
Contains all timing reference information for the detector.
double BirksCorrection(double dQdX) const
dQ/dX in electrons/cm, returns dE/dX in MeV/cm.
int trigger_offset(DetectorClocksData const &data)
2D representation of charge deposited in the TDC/wire plane
double LifetimeCorrection(detinfo::DetectorClocksData const &clock_data, detinfo::DetectorPropertiesData const &det_prop, double time, double T0=0) const
double sampling_rate(DetectorClocksData const &data)
Returns the period of the TPC readout electronics clock.
process_name opdaq physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator physics producers generator T0