///////////////////////////////////////////////////////////////////////////////
// //
// Calibration base class for a single ROC //
+// Contains one float value per pad //
// //
///////////////////////////////////////////////////////////////////////////////
fNrows = 0;
fNcols = 0;
+ fNchannels = 0;
+ fData = 0;
}
//_____________________________________________________________________________
break;
};
+ fNchannels = fNrows * fNcols;
+ if (fNchannels != 0)
+ fData = new Float_t[fNchannels];
}
//_____________________________________________________________________________
// AliTRDCalROC destructor
//
+ if (fData) {
+ delete [] fData;
+ fData = 0;
+ }
}
//_____________________________________________________________________________
((AliTRDCalROC &) c).fNrows = fNrows;
((AliTRDCalROC &) c).fNcols = fNcols;
+ Int_t iBin = 0;
+
+ ((AliTRDCalROC &) c).fNchannels = fNchannels;
+
+ if (((AliTRDCalROC &) c).fData) delete [] ((AliTRDCalROC &) c).fData;
+ ((AliTRDCalROC &) c).fData = new Float_t[fNchannels];
+ for (iBin = 0; iBin < fNchannels; iBin++) {
+ ((AliTRDCalROC &) c).fData[iBin] = fData[iBin];
+ }
+
TObject::Copy(c);
}
+//_____________________________________________________________________________
+void AliTRDCalROC::Scale(Float_t value)
+{
+ //
+ // Scales all values of this ROC with the provided parameter. Is used if ROC defines
+ // local variations of a global (or per detector defined) parameter
+ //
+
+ for (Int_t iBin = 0; iBin < fNchannels; iBin++) {
+ fData[iBin] *= value;
+ }
+}