ROOT logo
AliRoot » ITS » AliITSSimuParam

class AliITSSimuParam: public TObject


Implementation of the class to store the parameters used in
the simulation of SPD, SDD and SSD detectors
Origin: F.Prino, Torino, prino@to.infn.it


Function Members (Methods)

public:
AliITSSimuParam()
AliITSSimuParam(const AliITSSimuParam& simpar)
virtual~AliITSSimuParam()
voidTObject::AbstractMethod(const char* method) const
virtual voidTObject::AppendPad(Option_t* option = "")
Double_tApplySPDBaselineAndNoise(Int_t mod = 0) const
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTObject::Clear(Option_t* = "")
virtual TObject*TObject::Clone(const char* newname = "") const
virtual Int_tTObject::Compare(const TObject* obj) const
virtual voidTObject::Copy(TObject& object) const
virtual voidTObject::Delete(Option_t* option = "")MENU
Double_tDepletedRegionThicknessA(Double_t dopCons, Double_t voltage, Double_t elecCharge, Double_t voltBuiltIn = 0.5) const
Double_tDepletedRegionThicknessB(Double_t resist, Double_t voltage, Double_t mobility, Double_t voltBuiltIn = 0.5, Double_t dielConst = 1.E-12) const
Double_tDiffusionCoefficientElectron() const
Double_tDiffusionCoefficientHole() const
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Double_tGetDistanceOverVoltage() const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
Float_tGetGausLookUp(Int_t i)
Int_tGetGausNLookUp() const
Double_tGetGeVToCharge() const
virtual const char*TObject::GetIconName() const
virtual const char*TObject::GetName() const
Float_tGetNSigmaIntegration() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Float_tGetSDDChargeLoss() const
Float_tGetSDDCorrMapPrecision() const
voidGetSDDDiffCoeff(Float_t& diff, Float_t& diff1) const
Float_tGetSDDDynamicRange() const
Int_tGetSDDElectronics() const
Float_tGetSDDJitterError() const
Float_tGetSDDkeVtoADC() const
Float_tGetSDDMaxAdc() const
Char_tGetSDDRawDataFormat() const
Float_tGetSDDTrigDelay() const
Bool_tGetSPDAddNoisyFlag() const
Double_tGetSPDBiasVoltage(Int_t mod = 0) const
voidGetSPDCouplingOption(char* opt) const
voidGetSPDCouplingParam(Double_t& col, Double_t& row) const
Bool_tGetSPDLorentzDrift() const
Float_tGetSPDLorentzHoleWeight() const
Bool_tGetSPDRemoveDeadFlag() const
voidGetSPDSigmaDiffusionAsymmetry(Double_t& ecc) const
Double_tGetSSDCouplingNL() const
Double_tGetSSDCouplingNR() const
Double_tGetSSDCouplingPL() const
Double_tGetSSDCouplingPR() const
Bool_tGetSSDLorentzDrift() const
Int_tGetSSDZSThreshold() const
virtual const char*TObject::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
Double_tGeVToCharge(Double_t gev) const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTObject::Hash() const
Double_tImpurity() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tTObject::IsOnHeap() const
virtual Bool_tTObject::IsSortable() const
Bool_tTObject::IsZombie() const
Double_tLorentzAngleElectron(Double_t bz) const
Double_tLorentzAngleHole(Double_t bz) const
virtual voidTObject::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
Double_tMobilityElectronSiEmp() const
Double_tMobilityHoleSiEmp() const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
AliITSSimuParam&operator=(const AliITSSimuParam& source)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidTObject::Print(Option_t* option = "") const
voidPrintParameters() const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
Double_tReverseBiasCurrent(Double_t temp, Double_t revBiasCurT1, Double_t tempT1, Double_t energy = 1.2) const
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetDistanceOverVoltage(Double_t dv = 0.000375)
voidSetDistanceOverVoltage(Double_t d, Double_t v)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidSetGeVToCharge(Double_t gc = 3.6e-9)
voidSetImpurity(Double_t n = 0.0)
voidSetNLookUp(Int_t p1)
voidSetNSigmaIntegration(Double_t p1)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetSDDChargeLoss(Double_t p1)
voidSetSDDCorrMapPrecision(Double_t p1)
voidSetSDDDiffCoeff(Float_t p1, Float_t p2)
voidSetSDDDynamicRange(Double_t p1)
voidSetSDDElectronics(Int_t p1 = 1)
voidSetSDDJitterError(Float_t jitter)
voidSetSDDkeVtoADC(Double_t p1)
voidSetSDDMaxAdc(Double_t p1)
voidSetSDDRawDataFormatCarlos()
voidSetSDDRawDataFormatFixLen8bitEncoded()
voidSetSDDTrigDelay(Double_t p1)
voidSetSPDAddNoisyFlag(Bool_t value)
voidSetSPDBiasVoltage(Int_t mod, Double_t bias = 18.182)
voidSetSPDBiasVoltageAll(Double_t bias = 18.182)
voidSetSPDCouplingOption(const char* opt)
voidSetSPDCouplingParam(Double_t col, Double_t row)
voidSetSPDLorentzDrift(Bool_t ison)
voidSetSPDLorentzHoleWeight(Float_t weight)
voidSetSPDNoise(Int_t mod, Double_t noise, Double_t baseline)
voidSetSPDNoiseAll(Double_t noise, Double_t baseline)
voidSetSPDRemoveDeadFlag(Bool_t value)
voidSetSPDSigmaDiffusionAsymmetry(Double_t ecc)
voidSetSPDThresholds(Int_t mod, Double_t thresh, Double_t sigma)
voidSetSPDThresholdsAll(Double_t thresh, Double_t sigma)
voidSetSSDCouplings(Double_t pr, Double_t pl, Double_t nr, Double_t nl)
voidSetSSDLorentzDrift(Bool_t ison)
virtual voidSetSSDZSThreshold(Int_t zsth)
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
Double_tSigmaDiffusion1D(Double_t l) const
Double_tSigmaDiffusion2D(Double_t l) const
Double_tSigmaDiffusion3D(Double_t l) const
voidSPDNoise(const Int_t mod, Double_t& noise, Double_t& baseline) const
voidSPDThresholds(const Int_t mod, Double_t& thresh, Double_t& sigma) const
Double_tSpeedElectron() const
Double_tSpeedHole() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()

Data Members

protected:
static const Int_tfgkNcompsDefaultdefault for fNcomps
static const Float_tfgkNsigmasDefaultdefault for fNsigmas
static const Float_tfgkSDDChargeLossDefaultdefault for fSDDChargeLoss
static const Float_tfgkSDDDiffCoeff1Defaultdefault for fSDDDiffCoeff1
static const Float_tfgkSDDDiffCoeffDefaultdefault for fSDDDiffCoeff
static const Float_tfgkSDDDynamicRangeDefaultdefault for fSDDDynamicRange
static const Float_tfgkSDDJitterErrorDefaultdefault for fSDDJitterError
static const Float_tfgkSDDMapPrecDefaultdefault for fSDDTrigDelay
static const Int_tfgkSDDMaxAdcDefaultdefault for fSDDMaxAdc
static const Float_tfgkSDDTrigDelayDefaultdefault for fSDDTrigDelay
static const Float_tfgkSDDkeVtoADCDefaultdefault for keV->ADC conv.
static const Float_tfgkSPDBiasVoltageDefaultdefault for fSPDBiasVoltage
static const Double_tfgkSPDCouplColDefaultdefault for fSPDCouplCol
static const Double_tfgkSPDCouplRowDefaultdefault for fSPDCouplRow
static const TStringfgkSPDCouplingOptDefaulttype of pixel Coupling (old or new)
static const Float_tfgkSPDEccDiffDefaultdefault for fSPDEccDiff
static const Float_tfgkSPDLorentzHoleWeightDefaultdefault for fSPDLorentzHoleWeight
static const Double_tfgkSPDSigmaDefaultdefault for fSigma
static const Double_tfgkSPDThreshDefaultdefault for fThresh
static const Double_tfgkSSDCouplingNLDefaultcouplings
static const Double_tfgkSSDCouplingNRDefaultvarious SSD
static const Double_tfgkSSDCouplingPLDefaultfor the
static const Double_tfgkSSDCouplingPRDefaultdefault values
static const Int_tfgkSSDZSThresholdDefaultdefault for fSSDZSThreshold
private:
Double_tfDOverVThe parameter d/v where d is the disance over which the
TArrayF*fGausGaussian lookup table for signal generation
Double_tfGeVchargeEnergy to ionize (free an electron) in GeV
Double_tfNthe impurity concentration of the material in #/cm^3 (NOT USED!)
Int_tfNcompsNumber of samplings along the gaussian
Float_tfNsigmasNumber of sigmas over which charge disintegration
Float_tfSDDChargeLossSet Linear Coefficient for Charge Loss
Float_tfSDDDiffCoeffSDD Diffusion Coefficient (scaling the time)
Float_tfSDDDiffCoeff1SDD Diffusion Coefficient (constant term)
Float_tfSDDDynamicRangeSDD Dynamic Range
Int_tfSDDElectronicsSDD Electronics Pascal (1) or OLA (2)
Float_tfSDDJitterErrorSDD jitter error
Float_tfSDDMapPrecSDD maps precision
Float_tfSDDMaxAdcSDD ADC saturation value
Char_tfSDDRawFormatIndex for SDD RawFormat
Float_tfSDDTrigDelaySDD time-zero
Float_tfSDDkeVtoADCSDD keV->ADC conv. factor
Bool_tfSPDAddNoisyFlagFlag saying whether noisy pixels should be added to digits
Double_tfSPDBaseline[240]SPD electronic noise: baseline
Double_tfSPDBiasVoltage[240]Bias Voltage for the SPD
Double_tfSPDCouplColSPD Coupling parameter along the cols
TStringfSPDCouplOptSPD Coupling Option
Double_tfSPDCouplRowSPD Coupling parameter along the rows
Float_tfSPDEccDiffEccentricity (i.e. asymmetry parameter) in the
Bool_tfSPDLorentzDriftFlag to decide whether to simulate the Lorentz Drift or not in SPD
Float_tfSPDLorentzHoleWeightLorentz Angle is computed for SPD as average of Hole and Electron
Double_tfSPDNoise[240]SPD electronic noise: sigma
Bool_tfSPDRemoveDeadFlagFlag saying whether dead pixels should be removed from digits
Double_tfSPDSigma[240]SPD threshold fluctuations spread
Double_tfSPDThresh[240]SPD Threshold value
Double_tfSSDCouplingNLSSD couplings
Double_tfSSDCouplingNRSSD couplings
Double_tfSSDCouplingPLSSD couplings
Double_tfSSDCouplingPRSSD couplings
Bool_tfSSDLorentzDriftFlag to decide whether to simulate the Lorentz Drift or not in SSD
Int_tfSSDZSThresholdSSD threshold for the zero suppresion
Float_tfTThe temperature of the Si in Degree K.

Class Charts

Inheritance Chart:
TObject
AliITSSimuParam

Function documentation

AliITSSimuParam()
AliITSSimuParam(const AliITSSimuParam& simpar)
fSPDBiasVoltage(simpar.fSPDBiasVoltage),
fSPDThresh(simpar.fSPDThresh),
fSPDSigma(simpar.fSPDSigma),
 copy constructor
AliITSSimuParam& operator=(const AliITSSimuParam& source)
 Assignment operator.
~AliITSSimuParam()
 destructor
void SetNLookUp(Int_t p1)
 Set number of sigmas over which cluster disintegration is performed
void PrintParameters() const
 Dump all parameters
Double_t MobilityElectronSiEmp() const
 Computes the electron mobility in cm^2/volt-sec. Taken from SILVACO
 International ATLAS II, 2D Device Simulation Framework, User Manual
 Chapter 5 Equation 5-6. An empirical function for low-field mobiliity
 in silicon at different tempeatures.
 Inputs:
    none.
 Output:
    none.
 Return:
    The Mobility of electrons in Si at a give temprature and impurity
    concentration. [cm^2/Volt-sec]
Double_t MobilityHoleSiEmp() const
 Computes the Hole mobility in cm^2/volt-sec. Taken from SILVACO
 International ATLAS II, 2D Device Simulation Framework, User Manual
 Chapter 5 Equation 5-7 An empirical function for low-field mobiliity
 in silicon at different tempeatures.
 Inputs:
    none.
 Output:
    none.
 Return:
    The Mobility of Hole in Si at a give temprature and impurity
    concentration. [cm^2/Volt-sec]
Double_t DiffusionCoefficientElectron() const
 Computes the Diffusion coefficient for electrons in cm^2/sec. Taken
 from SILVACO International ATLAS II, 2D Device Simulation Framework,
 User Manual Chapter 5 Equation 5-53. Einstein relations for diffusion
 coefficient. Note: 1 cm^2/sec = 10 microns^2/nanosec.
 Inputs:
    none.
 Output:
    none.
 Return:
    The Diffusion Coefficient of electrons in Si at a give temprature
    and impurity concentration. [cm^2/sec]
 const Double_t kb = 1.3806503E-23; // Joules/degree K
 const Double_t qe = 1.60217646E-19; // Coulumbs.
Double_t DiffusionCoefficientHole() const
 Computes the Diffusion coefficient for Holes in cm^2/sec. Taken
 from SILVACO International ATLAS II, 2D Device Simulation Framework,
 User Manual Chapter 5 Equation 5-53. Einstein relations for diffusion
 coefficient. Note: 1 cm^2/sec = 10 microns^2/nanosec.
 Inputs:
    none.
 Output:
    none.
 Return:
    The Defusion Coefficient of Hole in Si at a give temprature and
    impurity concentration. [cm^2/sec]
    and impurity concentration. [cm^2/sec]
 const Double_t kb = 1.3806503E-23; // Joules/degree K
 const Double_t qe = 1.60217646E-19; // Coulumbs.
Double_t LorentzAngleHole(Double_t bz) const
 Computes the Lorentz angle for electrons in Si
 Input: magnetic Field in KGauss
 Output: Lorentz angle in radians (positive if Bz is positive)
 Main Reference: NIM A 497 (2003) 389–396.
 "An algorithm for calculating the Lorentz angle in silicon detectors", V. Bartsch et al.

Double_t LorentzAngleElectron(Double_t bz) const
 Computes the Lorentz angle for electrons in Si
 Input: magnetic Field in KGauss
 Output: Lorentz angle in radians (positive if Bz is positive)
 Main Reference: NIM A 497 (2003) 389–396.
 "An algorithm for calculating the Lorentz angle in silicon detectors", V. Bartsch et al.

Double_t SpeedElectron() const
 Computes the average speed for electrons in Si under the low-field
 approximation. [cm/sec].
 Inputs:
    none.
 Output:
    none.
 Return:
    The speed the holes are traveling at due to the low field applied.
    [cm/sec]
Double_t SpeedHole() const
 Computes the average speed for Holes in Si under the low-field
 approximation.[cm/sec].
 Inputs:
    none.
 Output:
    none.
 Return:
    The speed the holes are traveling at due to the low field applied.
    [cm/sec]
Double_t SigmaDiffusion3D(Double_t l) const
 Returns the Gaussian sigma^2 == <x^2+y^2+z^2> [cm^2] due to the
 defusion of electrons or holes through a distance l [cm] caused
 by an applied voltage v [volt] through a distance d [cm] in any
  material at a temperature T [degree K]. The sigma diffusion when
  expressed in terms of the distance over which the diffusion
 occures, l=time/speed, is independent of the mobility and therefore
  the properties of the material. The charge distributions is given by
 n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <r^2> = 6Dt where D=mkT/e
 (m==mobility, k==Boltzman's constant, T==temparature, e==electric
 charge. and vel=m*v/d. consiquently sigma^2=6kTdl/ev.
 Inputs:
    Double_t l   Distance the charge has to travel.
 Output:
    none.
 Return:
    The Sigma due to the diffution of electrons. [cm]
Double_t SigmaDiffusion2D(Double_t l) const
 Returns the Gaussian sigma^2 == <x^2+z^2> [cm^2] due to the defusion
 of electrons or holes through a distance l [cm] caused by an applied
 voltage v [volt] through a distance d [cm] in any material at a
 temperature T [degree K]. The sigma diffusion when expressed in terms
 of the distance over which the diffusion occures, l=time/speed, is
 independent of the mobility and therefore the properties of the
 material. The charge distributions is given by
 n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <x^2+z^2> = 4Dt where D=mkT/e
 (m==mobility, k==Boltzman's constant, T==temparature, e==electric
 charge. and vel=m*v/d. consiquently sigma^2=4kTdl/ev.
 Inputs:
    Double_t l   Distance the charge has to travel.
 Output:
    none.
 Return:
    The Sigma due to the diffution of electrons. [cm]
Double_t SigmaDiffusion1D(Double_t l) const
 Returns the Gaussian sigma^2 == <x^2> [cm^2] due to the defusion
 of electrons or holes through a distance l [cm] caused by an applied
 voltage v [volt] through a distance d [cm] in any material at a
 temperature T [degree K]. The sigma diffusion when expressed in terms
 of the distance over which the diffusion occures, l=time/speed, is
 independent of the mobility and therefore the properties of the
 material. The charge distributions is given by
 n = exp(-r^2/4Dt)/(4piDt)^1.5. From this <r^2> = 2Dt where D=mkT/e
 (m==mobility, k==Boltzman's constant, T==temparature, e==electric
 charge. and vel=m*v/d. consiquently sigma^2=2kTdl/ev.
 Inputs:
    Double_t l   Distance the charge has to travel.
 Output:
    none.
 Return:
    The Sigma due to the diffution of electrons. [cm]
Double_t DepletedRegionThicknessA(Double_t dopCons, Double_t voltage, Double_t elecCharge, Double_t voltBuiltIn = 0.5) const
 Computes the thickness of the depleted region in Si due to the
 application of an external bias voltage. From the Particle Data
 Book, 28.8 Silicon semiconductor detectors equation 28.19 (2004)
 Physics Letters B "Review of Particle Physics" Volume 592, Issue 1-4
 July 15 2004, ISSN 0370-2693 page 263. First equation.
 Inputs:
    Double_t dopCons           "N" doping concentration
    Double_t voltage           "V" external bias voltage
    Double_t elecCharge        "e" electronic charge
    Double_t voltBuiltIn=0.5   "V_bi" "built-in" Voltage (~0.5V for
                               resistivities typically used in detectors)
 Output:
    none.
 Return:
    The thickness of the depleted region
Double_t DepletedRegionThicknessB(Double_t resist, Double_t voltage, Double_t mobility, Double_t voltBuiltIn = 0.5, Double_t dielConst = 1.E-12) const
 Computes the thickness of the depleted region in Si due to the
 application of an external bias voltage. From the Particle Data
 Book, 28.8 Silicon semiconductor detectors equation 28.19 (2004)
 Physics Letters B "Review of Particle Physics" Volume 592, Issue 1-4
 July 15 2004, ISSN 0370-2693 page 263. Second Equation.
 Inputs:
    Double_t resist            "rho" resistivity (typically 1-10 kOhm cm)
    Double_t voltage           "V" external bias voltage
    Double_t mobility          "mu" charge carrier mobility
                                  (electons 1350, holes 450 cm^2/V/s)
    Double_t voltBuiltIn=0.5   "V_bi" "built-in" Voltage (~0.5V for
                               resistivities typically used in detectors)
    Double_t dielConst=1.E-12  "epsilon" dielectric constant = 11.9 *
                                (permittivity of free space) or ~ 1 pF/cm
 Output:
    none.
 Return:
    The thickness of the depleted region
Double_t ReverseBiasCurrent(Double_t temp, Double_t revBiasCurT1, Double_t tempT1, Double_t energy = 1.2) const
 Computes the temperature dependance of the reverse bias current
 of Si detectors. From the Particle Data
 Book, 28.8 Silicon semiconductor detectors equation 28.21 (2004)
 Physics Letters B "Review of Particle Physics" Volume 592, Issue 1-4
 July 15 2004, ISSN 0370-2693 page 263.
 Inputs:
    Double_t temp         The temperature at which the current is wanted
    Double_t revBiasCurT1 The reference bias current at temp T1
    Double_t tempT1       The temperature correstponding to revBiasCurT1
    Double_t energy=1.2   Some energy [eV]
 Output:
    none.
 Return:
    The reverse bias current at the tempeature temp.
void SPDThresholds(const Int_t mod, Double_t& thresh, Double_t& sigma) const
 Get SPD threshold values
void SPDNoise(const Int_t mod, Double_t& noise, Double_t& baseline) const
Get SPD noise and baseline values
void SetGeVToCharge(Double_t gc = 3.6e-9)
{fGeVcharge = gc;}
Double_t GetGeVToCharge() const
{return fGeVcharge;}
Double_t GeVToCharge(Double_t gev) const
{return gev/fGeVcharge;}
void SetDistanceOverVoltage(Double_t d, Double_t v)
{fDOverV = d/v;}
void SetDistanceOverVoltage(Double_t dv = 0.000375)
{fDOverV = dv;}
Double_t GetDistanceOverVoltage() const
{return fDOverV;}
void SetSPDBiasVoltageAll(Double_t bias = 18.182)
{for(Int_t i=0;i<240;i++) fSPDBiasVoltage[i]=bias;}
void SetSPDBiasVoltage(Int_t mod, Double_t bias = 18.182)
{if(mod<0 || mod>239) return; fSPDBiasVoltage[mod]=bias;}
Double_t GetSPDBiasVoltage(Int_t mod = 0) const
{if(mod<0 || mod>239) return 0; return fSPDBiasVoltage[mod];}
void SetSPDThresholdsAll(Double_t thresh, Double_t sigma)
void SetSPDThresholds(Int_t mod, Double_t thresh, Double_t sigma)
{if(mod<0 || mod>239) return; fSPDThresh[mod]=thresh; fSPDSigma[mod]=sigma; }
void SetSPDNoiseAll(Double_t noise, Double_t baseline)
void SetSPDNoise(Int_t mod, Double_t noise, Double_t baseline)
{if(mod<0 || mod>239) return; fSPDNoise[mod]=noise; fSPDBaseline[mod]=baseline; }
Double_t ApplySPDBaselineAndNoise(Int_t mod = 0) const
 Applies a random noise and addes the baseline
{if (mod<0 || mod>239) mod=0; return fSPDBaseline[mod]+fSPDNoise[mod]*gRandom->Gaus();}
void SetSPDCouplingOption(const char* opt)
void GetSPDCouplingOption(char* opt) const
{strncpy(opt,fSPDCouplOpt.Data(),fSPDCouplOpt.Sizeof());}
void SetSPDCouplingParam(Double_t col, Double_t row)
{fSPDCouplCol = col; fSPDCouplRow = row;}
void GetSPDCouplingParam(Double_t& col, Double_t& row) const
{col = fSPDCouplCol; row = fSPDCouplRow;}
void SetSPDSigmaDiffusionAsymmetry(Double_t ecc)
void GetSPDSigmaDiffusionAsymmetry(Double_t& ecc) const
void SetSPDLorentzDrift(Bool_t ison)
Bool_t GetSPDLorentzDrift() const
void SetSPDLorentzHoleWeight(Float_t weight)
Float_t GetSPDLorentzHoleWeight() const
void SetSPDAddNoisyFlag(Bool_t value)
{fSPDAddNoisyFlag = value;}
Bool_t GetSPDAddNoisyFlag() const
void SetSPDRemoveDeadFlag(Bool_t value)
Bool_t GetSPDRemoveDeadFlag() const
void SetSDDElectronics(Int_t p1 = 1)
Int_t GetSDDElectronics() const
{return fSDDElectronics;}
void SetSDDDiffCoeff(Float_t p1, Float_t p2)
void GetSDDDiffCoeff(Float_t& diff, Float_t& diff1) const
void SetSDDJitterError(Float_t jitter)
{fSDDJitterError=jitter;}
Float_t GetSDDJitterError() const
{return fSDDJitterError;}
void SetSDDDynamicRange(Double_t p1)
Float_t GetSDDDynamicRange() const
void SetSDDMaxAdc(Double_t p1)
Float_t GetSDDMaxAdc() const
{return fSDDMaxAdc;}
void SetSDDChargeLoss(Double_t p1)
Float_t GetSDDChargeLoss() const
{return fSDDChargeLoss;}
void SetSDDTrigDelay(Double_t p1)
Float_t GetSDDTrigDelay() const
{return fSDDTrigDelay;}
void SetSDDCorrMapPrecision(Double_t p1)
Float_t GetSDDCorrMapPrecision() const
{return fSDDMapPrec;}
void SetSDDkeVtoADC(Double_t p1)
Float_t GetSDDkeVtoADC() const
{return fSDDkeVtoADC;}
void SetSDDRawDataFormatCarlos()
void SetSDDRawDataFormatFixLen8bitEncoded()
Char_t GetSDDRawDataFormat() const
{return fSDDRawFormat;}
void SetSSDLorentzDrift(Bool_t ison)
 Use Lorentz's angle
Bool_t GetSSDLorentzDrift() const
Int_t GetSSDZSThreshold() const
void SetSSDZSThreshold(Int_t zsth)
{ fSSDZSThreshold = zsth; }
void SetSSDCouplings(Double_t pr, Double_t pl, Double_t nr, Double_t nl)
Double_t GetSSDCouplingPR() const
{return fSSDCouplingPR;}
Double_t GetSSDCouplingPL() const
{return fSSDCouplingPL;}
Double_t GetSSDCouplingNR() const
{return fSSDCouplingNR;}
Double_t GetSSDCouplingNL() const
{return fSSDCouplingNL;}
void SetNSigmaIntegration(Double_t p1)
{fNsigmas=p1;}
Float_t GetNSigmaIntegration() const
{return fNsigmas;}
Int_t GetGausNLookUp() const
{return fNcomps;}
Float_t GetGausLookUp(Int_t i)
void SetImpurity(Double_t n = 0.0)
 Set the impurity concentrations in [#/cm^3]
{fN = n;}
Double_t Impurity() const
 Returns the impurity consentration in [#/cm^3]
{return fN;}