fcharge = new Float_t[fNRF];
if (step>0) fDSTEPM1=1./step;
else fDSTEPM1 = 1./fgRFDSTEP;
- for(Int_t i=0;i<5;i++) funParam[i]=0.;
+ for(Int_t i=0;i<5;i++) {
+ funParam[i]=0.;
+ fType[i]=0;
+ }
+
}
AliTPCRF1D::AliTPCRF1D(const AliTPCRF1D &prf)
:TObject(prf),
- fNRF(0),
- fDSTEPM1(0.),
+ fNRF(prf.fNRF),
+ fDSTEPM1(prf.fDSTEPM1),
fcharge(0),
- forigsigma(0.),
- fpadWidth(3.5),
- fkNorm(0.5),
- fInteg(0.),
- fGRF(0),
- fSigma(0.),
- fOffset(0.),
- fDirect(kFALSE),
- fPadDistance(0.)
+ forigsigma(prf.forigsigma),
+ fpadWidth(prf.fpadWidth),
+ fkNorm(prf.fkNorm),
+ fInteg(prf.fInteg),
+ fGRF(new TF1(*(prf.fGRF))),
+ fSigma(prf.fSigma),
+ fOffset(prf.fOffset),
+ fDirect(prf.fDirect),
+ fPadDistance(prf.fPadDistance)
{
-
//
- memcpy(this, &prf, sizeof(prf));
+ //
+ for(Int_t i=0;i<5;i++) {
+ funParam[i]=0.;
+ fType[i]=0;
+ }
fcharge = new Float_t[fNRF];
- memcpy(fcharge,prf.fcharge, fNRF);
- fGRF = new TF1(*(prf.fGRF));
+ memcpy(fcharge,prf.fcharge, fNRF*sizeof(Float_t));
+
//PH Change the name (add 0 to the end)
TString s(fGRF->GetName());
s+="0";
fGRF->SetName(s.Data());
- for(Int_t i=0;i<5;i++) funParam[i]=0.;
}
AliTPCRF1D & AliTPCRF1D::operator = (const AliTPCRF1D &prf)
{
- //
- if (fcharge) delete fcharge;
- if (fGRF) delete fGRF;
- memcpy(this, &prf, sizeof(prf));
- fcharge = new Float_t[fNRF];
- memcpy(fcharge,prf.fcharge, fNRF);
- fGRF = new TF1(*(prf.fGRF));
+ if(this!=&prf) {
+ TObject::operator=(prf);
+ fNRF=prf.fNRF;
+ fDSTEPM1=prf.fDSTEPM1;
+ delete [] fcharge;
+ fcharge = new Float_t[fNRF];
+ memcpy(fcharge,prf.fcharge, fNRF*sizeof(Float_t));
+ forigsigma=prf.forigsigma;
+ fpadWidth=prf.fpadWidth;
+ fkNorm=prf.fkNorm;
+ fInteg=prf.fInteg;
+ delete fGRF;
+ fGRF=new TF1(*(prf.fGRF));
//PH Change the name (add 0 to the end)
- TString s(fGRF->GetName());
- s+="0";
- fGRF->SetName(s.Data());
- return (*this);
+ TString s(fGRF->GetName());
+ s+="0";
+ fGRF->SetName(s.Data());
+ fSigma=prf.fSigma;
+ fOffset=prf.fOffset;
+ fDirect=prf.fDirect;
+ fPadDistance=prf.fPadDistance;
+ }
+ return *this;
}
AliTPCRF1D::~AliTPCRF1D()
{
//
- if (fcharge!=0) delete [] fcharge;
- if (fGRF !=0 ) fGRF->Delete();
+ delete [] fcharge;
+ delete fGRF;
}
Float_t AliTPCRF1D::GetRF(Float_t xin)
if (sigma==0) sigma= fpadWidth/TMath::Sqrt(12.);
forigsigma=sigma;
fDSTEPM1 = 10/TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12);
- sprintf(fType,"User");
+ //sprintf(fType,"User");
+ snprintf(fType,5,"User");
// Update();
}
fGRF->SetParameters(funParam);
fDSTEPM1 = 10./TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12);
//by default I set the step as one tenth of sigma
- sprintf(fType,"Gauss");
+ //sprintf(fType,"Gauss");
+ snprintf(fType,5,"Gauss");
}
void AliTPCRF1D::SetCosh(Float_t sigma, Float_t padWidth,
forigsigma=sigma;
fDSTEPM1 = 10./TMath::Sqrt(sigma*sigma+fpadWidth*fpadWidth/12);
//by default I set the step as one tenth of sigma
- sprintf(fType,"Cosh");
+ //sprintf(fType,"Cosh");
+ snprintf(fType,5,"Cosh");
}
void AliTPCRF1D::SetGati(Float_t K3, Float_t padDistance, Float_t padWidth,
forigsigma=padDistance;
fDSTEPM1 = 10./TMath::Sqrt(padDistance*padDistance+fpadWidth*fpadWidth/12);
//by default I set the step as one tenth of sigma
- sprintf(fType,"Gati");
+ //sprintf(fType,"Gati");
+ snprintf(fType,5,"Gati");
}
TPad * pad2 = new TPad("pad2RF","",0.05,0.05,0.95,0.45,21);
pad2->Draw();
- sprintf(s,"RF response function for %1.2f cm pad width",
- fpadWidth);
+ //sprintf(s,"RF response function for %1.2f cm pad width",
+ // fpadWidth);
+ snprintf(s,60,"RF response function for %1.2f cm pad width",fpadWidth);
pad1->cd();
TH1F * hRFo = new TH1F("hRFo","Original charge distribution",N+1,x1,x2);
pad2->cd();