/* $Id$ */
///////////////////////////////////////////////////////////////////////////////
///
-/// This class provides storage container ITS SSD module callibration data
+/// This class provides storage container ITS SSD module calibration data
/// used by DA.
-///
+/// Date: 18/07/2008
///////////////////////////////////////////////////////////////////////////////
#include "TObject.h"
#include "TArrayF.h"
+#include "TArrayS.h"
#include "AliITSChannelDaSSD.h"
class AliITSNoiseSSD;
+class AliITSPedestalSSD;
+class AliITSBadChannelsSSD;
class AliITSModuleDaSSD : public TObject {
public :
Long_t GetEventsNumber() const { return fEventsNumber; }
Float_t* GetCM(const Int_t chipn) const { return chipn < fNumberOfChips ? fCm[chipn].GetArray() : NULL; }
Float_t GetCM(const Int_t chipn, const Long_t evn) const;
- TArrayF* GetCm() const { return fCm; }
+ TArrayF* GetCM() const { return fCm; }
+ Short_t* GetCMFerom(const Int_t chipn) const { return (fCmFerom && (chipn < fgkChipsPerModule)) ? fCmFerom[chipn].GetArray() : NULL; }
+ Short_t GetCMFerom(const Int_t chipn, const Long_t evn) const;
+ TArrayS* GetCMFerom() const { return fCmFerom; }
Int_t GetNumberOfChips() const { return fNumberOfChips; }
AliITSChannelDaSSD* GetStrip(const Int_t stripnumber) const
{ return (fStrips) ? fStrips[stripnumber] : NULL; }
- AliITSNoiseSSD* GetCalibrationSSDModule() const;
Bool_t SetEventsNumber(const Long_t eventsnumber);
Bool_t SetNumberOfStrips(const Int_t numberofstrips);
Bool_t SetNumberOfChips(const Int_t nchips);
void SetStrip(AliITSChannelDaSSD* strip, const Int_t strID) { if ((fStrips) && (strID <= fNumberOfStrips)) fStrips[strID] = strip; }
void SetCM (Float_t* cm, const Int_t chipn) { if (chipn < fNumberOfChips) fCm[chipn].Set(fCm[chipn].GetSize(), cm); }
Bool_t SetCM (const Float_t cm, const Int_t chipn, const Int_t evn);
- void DeleteCM () {if (fCm) delete [] fCm; fCm = NULL; }
+ void DeleteCM () {if (fCm) { delete [] fCm; fNumberOfChips = 0; fCm = NULL; } }
void DeleteSignal() {if (fStrips) for (Int_t i = 0; i < fNumberOfStrips; i++)
if (fStrips[i]) fStrips[i]->DeleteSignal(); fEventsNumber = 0; }
+ Bool_t AllocateCMFeromArray(void);
+ void SetCMFerom (Short_t* cm, const Int_t chipn);
+ Bool_t SetCMFerom (const Short_t cm, const Int_t chipn, const Int_t evn);
+ Bool_t SetCMFeromEventsNumber(const Long_t eventsnumber);
+ void DeleteCMFerom () {if (fCmFerom) { delete [] fCmFerom; fCmFerom = NULL; } }
+
static Int_t GetStripsPerModuleConst() { return fgkStripsPerModule; }
static Int_t GetPNStripsPerModule() { return fgkPNStripsPerModule;}
static Int_t GetStripsPerChip() { return fgkStripsPerChip; }
UChar_t fDdlId; // index of DDL, ITS SSD: 33-48
UChar_t fAd; // index of AD module 0-9
UChar_t fAdc; // index of ADC module 0-5, 8-13
- Short_t fModuleId; // Module number 0-1697
+ Short_t fModuleId; // Module number 500-2197
Int_t fNumberOfStrips; // Number of AliITSChannelDaSSD* allocated
AliITSChannelDaSSD **fStrips; //[fNumberOfStrips] Array of *AliITSChannelDaSSD
Int_t fNumberOfChips; // Number of TArrayF objects allocated for CM
TArrayF *fCm; //[fNumberOfChips] CM
+ TArrayS *fCmFerom; // CM calculated in FEROM
Long_t fEventsNumber; // number of events for fsignal memory allocation
private:
Bool_t ForbiddenAdcNumber (const UChar_t adcn) const { return ((adcn == 6) || (adcn == 7)); }
- ClassDef(AliITSModuleDaSSD, 2)
+ ClassDef(AliITSModuleDaSSD, 6)
};
#endif
+