add getter to cut on n cells
[u/mrichter/AliRoot.git] / ITS / AliITSModuleDaSSD.h
index a86e9dd..76e0be7 100644 (file)
@@ -8,16 +8,19 @@
 /* $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 :
@@ -39,11 +42,13 @@ class AliITSModuleDaSSD : public TObject {
     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);
@@ -54,9 +59,15 @@ class AliITSModuleDaSSD : public TObject {
     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;    }
@@ -75,21 +86,23 @@ class AliITSModuleDaSSD : public TObject {
     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
+