#ifndef PNDSDSTOTCHARGECONVERSION_H #define PNDSDSTOTCHARGECONVERSION_H #include "TRandom2.h" #include #include #include "PndSdsChargeConversion.h" //! Class to calculate the deposited charge in one digi <-> time over threshold //! and vice versa /** @author D.-L.Pohl * * This class calculates the time over threshold by using the charge * of a pixel/strip. To calculate the TOT a simple capacitor model (integrator) is used. * The charge time tr [ns] is assumed to be constant. This leads to a rising straight line. * A constant current unloads the capacitor with a ratio of: a [e/ns]. * The distance between the points of intersection between the resulting triangle * and the threshold line is the TOT. * * q * | * | /\ a * | / \ * |---/----------\--------------- threshold * | / \ * ------------------------------- q = 0 (charge) * | tr| t[ns] * <- TOT -> */ class PndSdsTotChargeConversion : public PndSdsChargeConversion { public: ///Default constructor PndSdsTotChargeConversion(Int_t VerboseLevel = 0); ///Main constructor PndSdsTotChargeConversion(Double_t tr, Double_t a, Double_t threshold, Double_t clockfrequency = 0, Int_t VerboseLevel = 0); ///Destructor ~PndSdsTotChargeConversion(){}; void StartExecute(); virtual Double_t ChargeToDigiValue(Double_t charge); virtual Double_t DigiValueToCharge(Double_t digivalue); virtual Double_t GetPileUpTime(Double_t charge); ///