/*
$Log$
+Revision 1.41 2002/10/21 09:10:32 cblume
+Fix type conversion warnings
+
Revision 1.40 2002/10/14 14:57:43 hristov
Merging the VirtualMC branch to the main development branch (HEAD)
Float_t signalAmp = signals->GetDataUnchecked(iRow,iCol,iTime);
// Pad and time coupling
signalAmp *= coupling;
- // Add the noise
- signalAmp = TMath::Max((Double_t) gRandom->Gaus(signalAmp,fPar->GetNoise()),0.0);
+ // Add the noise, starting from minus ADC baseline in electrons
+ Double_t baselineEl = fPar->GetADCbaseline() * (fPar->GetADCinRange()
+ / fPar->GetADCoutRange())
+ / convert;
+ signalAmp = TMath::Max((Double_t) gRandom->Gaus(signalAmp,fPar->GetNoise())
+ ,-baselineEl);
// Convert to mV
signalAmp *= convert;
- // Convert to ADC counts. Set the overflow-bit fADCoutRange if the
+ // Add ADC baseline in mV
+ signalAmp += fPar->GetADCbaseline() * (fPar->GetADCinRange()
+ / fPar->GetADCoutRange());
+ // Convert to ADC counts. Set the overflow-bit fADCoutRange if the
// signal is larger than fADCinRange
Int_t adc = 0;
if (signalAmp >= fPar->GetADCinRange()) {
Double_t adcInRange = fPar->GetADCinRange();
Double_t adcOutRange = fPar->GetADCoutRange();
Int_t adcThreshold = fPar->GetADCthreshold();
+ Int_t adcBaseline = fPar->GetADCbaseline();
AliTRDdataArrayI *digitsIn;
AliTRDdataArrayI *digitsOut;
signal *= sDigitsScale;
// Pad and time coupling
signal *= coupling;
- // Add the noise
- signal = TMath::Max((Double_t) gRandom->Gaus(signal,noise),0.0);
+ // Add the noise, starting from minus ADC baseline in electrons
+ Double_t baselineEl = adcBaseline * (adcInRange / adcOutRange) / convert;
+ signal = TMath::Max((Double_t) gRandom->Gaus(signal,noise),-baselineEl);
// Convert to mV
signal *= convert;
+ // add ADC baseline in mV
+ signal += adcBaseline * (adcInRange / adcOutRange);
// Convert to ADC counts. Set the overflow-bit adcOutRange if the
// signal is larger than adcInRange
Int_t adc = 0;
/*
$Log$
+Revision 1.11 2002/11/21 14:34:53 cblume
+Bug fix in SetNRowPad() reposted by Bogdan
+
Revision 1.10 2002/10/31 17:46:22 cblume
New padplane (same number of columns in outer plane
fADCoutRange = 0.0;
fADCinRange = 0.0;
fADCthreshold = 0;
+ fADCbaseline = 0;
fDiffusionOn = 0;
fDiffusionT = 0.0;
fDiffusionL = 0.0;
fADCoutRange = 0.0;
fADCinRange = 0.0;
fADCthreshold = 0;
+ fADCbaseline = 0;
fDiffusionOn = 0;
fDiffusionT = 0.0;
fDiffusionL = 0.0;
((AliTRDparameter &) p).fADCoutRange = fADCoutRange;
((AliTRDparameter &) p).fADCinRange = fADCinRange;
((AliTRDparameter &) p).fADCthreshold = fADCthreshold;
+ ((AliTRDparameter &) p).fADCbaseline = fADCbaseline;
((AliTRDparameter &) p).fDiffusionOn = fDiffusionOn;
((AliTRDparameter &) p).fDiffusionT = fDiffusionT;
((AliTRDparameter &) p).fDiffusionL = fDiffusionL;
fChipGain = 12.4;
fNoise = 1000.;
fADCoutRange = 1023.; // 10-bit ADC
- fADCinRange = 1000.; // 1V input range
+ //fADCinRange = 1000.; // 1V input range
+ fADCinRange = 2000.; // 2V input range
fADCthreshold = 1;
+ fADCbaseline = 0;
// The drift velocity (cm / mus)
fDriftVelocity = 1.5;
fDiffusionOn = 1;
// E x B effects
- fExBOn = 0;
+ fExBOn = 1;
// Propability for electron attachment
fElAttachOn = 0;
fTRFOn = 1;
// The cross talk
- fCTOn = 0;
+ fCTOn = 1;
// The tail cancelation
fTCOn = 1;
virtual void SetADCoutRange(Float_t range) { fADCoutRange = range; };
virtual void SetADCinRange(Float_t range) { fADCinRange = range; };
virtual void SetADCthreshold(Int_t thresh) { fADCthreshold = thresh; };
+ virtual void SetADCbaseline(Int_t basel) { fADCbaseline = basel; };
virtual void SetDiffusion(Int_t diffOn = 1) { fDiffusionOn = diffOn; };
virtual void SetElAttach(Int_t elOn = 1) { fElAttachOn = elOn; };
virtual void SetElAttachProp(Float_t prop) { fElAttachProp = prop; };
Float_t GetADCoutRange() const { return fADCoutRange; };
Float_t GetADCinRange() const { return fADCinRange; };
Int_t GetADCthreshold() const { return fADCthreshold; };
+ Int_t GetADCbaseline() const { return fADCbaseline; };
Float_t GetDiffusionT() const { return fDiffusionT; };
Float_t GetDiffusionL() const { return fDiffusionL; };
Float_t GetElAttachProp() const { return fElAttachProp; };
Float_t fADCoutRange; // ADC output range (number of channels)
Float_t fADCinRange; // ADC input range (input charge)
Int_t fADCthreshold; // ADC threshold in ADC channel
+ Int_t fADCbaseline; // ADC baseline in ADC chann
Int_t fDiffusionOn; // Switch for the diffusion
Float_t fDiffusionT; // Diffusion in transverse direction
Float_t fDiffusionL; // Diffusion in longitudinal direction
virtual void SampleTRF();
virtual void FillLUT();
- ClassDef(AliTRDparameter,2) // TRD parameter class
+ ClassDef(AliTRDparameter,3) // TRD parameter class
};