// //
////////////////////////////////////////////////////////////////////////////
+#include <TMath.h>
+
#include "AliRun.h"
#include "AliTRDSimParam.h"
#include "AliTRDCommonParam.h"
+#include "AliLog.h"
ClassImp(AliTRDSimParam)
,fTimeCoupling(0.0)
,fTimeStructOn(kFALSE)
,fPRFOn(kFALSE)
+ ,fNTimeBins(0)
+ ,fNTBoverwriteOCDB(kFALSE)
{
//
// Default constructor
fNoise = 1250.0;
fADCoutRange = 1023.0; // 10-bit ADC
fADCinRange = 2000.0; // 2V input range
- // Go back to 0 again, just to be consistent with reconstruction
- fADCbaseline = 0;
- //fADCbaseline = 10;
+ fADCbaseline = 10;
// Diffusion on
fDiffusionOn = kTRUE;
// The pad response function
fPRFOn = kTRUE;
+ // The number of time bins
+ fNTimeBins = 27;
+ fNTBoverwriteOCDB = kFALSE;
+
ReInit();
}
,fTimeCoupling(p.fTimeCoupling)
,fTimeStructOn(p.fTimeStructOn)
,fPRFOn(p.fPRFOn)
+ ,fNTimeBins(p.fNTimeBins)
+ ,fNTBoverwriteOCDB(p.fNTBoverwriteOCDB)
{
//
// Copy constructor
Int_t iBin = 0;
- if (((AliTRDSimParam &) p).fTRFsmp) {
- delete [] ((AliTRDSimParam &) p).fTRFsmp;
- }
- ((AliTRDSimParam &) p).fTRFsmp = new Float_t[fTRFbin];
+ fTRFsmp = new Float_t[fTRFbin];
for (iBin = 0; iBin < fTRFbin; iBin++) {
- ((AliTRDSimParam &) p).fTRFsmp[iBin] = fTRFsmp[iBin];
+ fTRFsmp[iBin] = ((AliTRDSimParam &) p).fTRFsmp[iBin];
}
- if (((AliTRDSimParam &) p).fCTsmp) {
- delete [] ((AliTRDSimParam &) p).fCTsmp;
- }
- ((AliTRDSimParam &) p).fCTsmp = new Float_t[fTRFbin];
+ fCTsmp = new Float_t[fTRFbin];
for (iBin = 0; iBin < fTRFbin; iBin++) {
- ((AliTRDSimParam &) p).fCTsmp[iBin] = fCTsmp[iBin];
+ fCTsmp[iBin] = ((AliTRDSimParam &) p).fCTsmp[iBin];
}
}
// Assignment operator
//
- if (this != &p) {
- ((AliTRDSimParam &) p).Copy(*this);
+ if (this == &p) {
+ return *this;
}
+ Init();
+
+ fGasGain = p.fGasGain;
+ fNoise = p.fNoise;
+ fChipGain = p.fChipGain;
+ fADCoutRange = p.fADCoutRange;
+ fADCinRange = p.fADCinRange;
+ fADCbaseline = p.fADCbaseline;
+ fDiffusionOn = p.fDiffusionOn;
+ fElAttachOn = p.fElAttachOn;
+ fElAttachProp = p.fElAttachProp;
+ fTRFOn = p.fTRFOn;
+ fTRFsmp = 0;
+ fTRFbin = p.fTRFbin;
+ fTRFlo = p.fTRFlo;
+ fTRFhi = p.fTRFhi;
+ fTRFwid = p.fTRFwid;
+ fCTOn = p.fCTOn;
+ fCTsmp = 0;
+ fPadCoupling = p.fPadCoupling;
+ fTimeCoupling = p.fTimeCoupling;
+ fTimeStructOn = p.fTimeStructOn;
+ fPRFOn = p.fPRFOn;
+ fNTimeBins = p.fNTimeBins;
+ fNTBoverwriteOCDB = p.fNTBoverwriteOCDB;
+
+ Int_t iBin = 0;
+
+ if (fTRFsmp) {
+ delete[] fTRFsmp;
+ }
+ fTRFsmp = new Float_t[fTRFbin];
+ for (iBin = 0; iBin < fTRFbin; iBin++) {
+ fTRFsmp[iBin] = ((AliTRDSimParam &) p).fTRFsmp[iBin];
+ }
+
+ if (fCTsmp) {
+ delete[] fCTsmp;
+ }
+ fCTsmp = new Float_t[fTRFbin];
+ for (iBin = 0; iBin < fTRFbin; iBin++) {
+ fCTsmp[iBin] = ((AliTRDSimParam &) p).fCTsmp[iBin];
+ }
+
return *this;
}
target->fPadCoupling = fPadCoupling;
target->fTimeCoupling = fTimeCoupling;
target->fPRFOn = fPRFOn;
+ target->fNTimeBins = fNTimeBins;
+ target->fNTBoverwriteOCDB = fNTBoverwriteOCDB;
if (target->fTRFsmp) {
delete[] target->fTRFsmp;