/// This class provides storage container ITS SSD module callibration data
/// used by DA.
///
-/// Date: 18/07/2008
+/// Date: 09/07/2009
///////////////////////////////////////////////////////////////////////////////
#include "AliITSNoiseSSD.h"
fNumberOfStrips = 0;
fStrips = NULL;
}
- fCmFerom = new (nothrow) TArrayS [fgkChipsPerModule];
- if (!fCmFerom) {
- AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayS objects!", fgkChipsPerModule));
- fCmFerom = NULL;
- }
}
fNumberOfStrips = 0;
fStrips = NULL;
}
- fCmFerom = new (nothrow) TArrayS [fgkChipsPerModule];
- if (fCmFerom) {
- for (Int_t i = 0; i < fgkChipsPerModule; i++) {
- fCmFerom[i].Set(eventsnumber);
- fCmFerom[i].Reset(0);
- }
- }
- else {
- AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayS objects!", fgkChipsPerModule));
- fCmFerom = NULL;
- }
}
fCm = NULL;
}
}
- if (fCmFerom) delete [] fCmFerom;
+ if (fCmFerom) { delete [] fCmFerom; fCmFerom = NULL; }
if (module.fCmFerom) {
fCmFerom = new (nothrow) TArrayS [module.fNumberOfChips];
if (fCmFerom) {
return kFALSE;
}
}
- }
- if (fCmFerom) {
- for (Int_t ie = 0; ie < fgkChipsPerModule; ie++) {
- fCmFerom[ie].Set(eventsnumber);
- fCmFerom[ie].Reset(0);
- }
}
- else AliError("AliITSModuleDaSSD: No memory was allocated for fCmFerom!");
fEventsNumber = eventsnumber;
return kTRUE;
}
}
+//______________________________________________________________________________
+Bool_t AliITSModuleDaSSD::AllocateCMFeromArray(void)
+{
+// Allocates memory for the channels which contains CM calculated in Ferom
+ if (!fCmFerom) {
+ fCmFerom = new (nothrow) TArrayS [fgkChipsPerModule];
+ if (!fCmFerom) {
+ AliError(Form("AliITSModuleDaSSD: Error allocating memory for %i TArrayS objects!", fgkChipsPerModule));
+ fCmFerom = NULL;
+ return kFALSE;
+ }
+ }
+ return kTRUE;
+}
+
//______________________________________________________________________________
Bool_t AliITSModuleDaSSD::SetCMFeromEventsNumber(const Long_t eventsnumber)
}
+void AliITSModuleDaSSD::SetCMFerom (Short_t* cm, const Int_t chipn)
+// Set value of FeromCM for a given chip
+{
+ if (!fCmFerom)
+ if (!AllocateCMFeromArray()) return;
+ if (chipn < fgkChipsPerModule) fCmFerom[chipn].Set(fCmFerom[chipn].GetSize(), cm);
+}
+
//______________________________________________________________________________
Short_t AliITSModuleDaSSD::GetCMFerom(const Int_t chipn, const Long_t evn) const
}
return bcflags;
}
+