ClassImp(AliTPCFitPad)
-AliTPCFitPad::~AliTPCFitPad() {
- //
- // Destructor.
- //
- Delete();
-}
+
AliTPCFitPad::AliTPCFitPad(Int_t ndim, const char* formula, Option_t* opt) :
AliTPCCalPadRegion("", ""),
//
}
-AliTPCFitPad& AliTPCFitPad::operator=(const AliTPCFitPad& rhs) {
+AliTPCFitPad& AliTPCFitPad::operator=(const AliTPCFitPad& rhs)
+{
+ //
+ // Assignment operator.
+ //
+
+ if (this != &rhs) {
+ AliTPCCalPadRegion::operator=(rhs);
+ fNdim = rhs.fNdim;
+ fFormula = rhs.fFormula;
+ fOpt = rhs.fOpt;
+ }
+ return *this;
+}
+
+AliTPCFitPad::AliTPCFitPad(const AliTPCFitPad& rhs):
+ AliTPCCalPadRegion(rhs),
+ fNdim(rhs.fNdim),
+ fFormula(rhs.fFormula),
+ fOpt(rhs.fOpt)
+
+{
+ //
+ // Copy constructor
+ //
+}
+
+AliTPCFitPad::~AliTPCFitPad() {
//
- // Assignment operator.
+ // Destructor.
//
- if (this != &rhs) {
- AliTPCCalPadRegion::operator=(rhs);
- fNdim = rhs.fNdim;
- fFormula = rhs.fFormula;
- fOpt = rhs.fOpt;
- }
- return *this;
+ Delete();
}
+
+
void AliTPCFitPad::Add(AliTPCFitPad* fit) {
//
// Adds another AliTPCFitPad object to this object. The formula should be the
//
TLinearFitter* fitter = GetFitterSimple(segment, padType);
- if (fitter == 0) {
- SetObject(new TLinearFitter(fNdim, fFormula, fOpt), segment, padType);
- fitter = (TLinearFitter*)(GetObject(segment, padType));
- if (workaround) {
- Double_t x[1000];
- for (Int_t i = 0; i < fNdim; i++) x[i] = 3.141592;
- fitter->AddPoint(x, 31.41592);
- fitter->ClearPoints();
- //cout << "workaround called for " << segment << ", " << padType << endl;
- }
+ if (fitter == 0 || fitter->GetNumberTotalParameters() !=fNdim) {
+ fitter = new TLinearFitter(fNdim, fFormula, fOpt);
+ fitter->StoreData(kFALSE);
+ SetObject(fitter, segment, padType);
+ fitter = (TLinearFitter*)(GetObject(segment, padType));
+ if (workaround) {
+ Double_t x[1000];
+ for (Int_t i = 0; i < fNdim; i++) x[i] = 3.141592;
+ fitter->AddPoint(x, 31.41592);
+ fitter->ClearPoints();
+ //cout << "workaround called for " << segment << ", " << padType << endl;
+ }
}
return fitter;
}