Coding conventions
[u/mrichter/AliRoot.git] / ITS / AliITSModuleDaSSD.h
1 #ifndef ALIITSMODULEDASSD_H
2 #define ALIITSMODULEDASSD_H
3
4
5 /* Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
6  * See cxx source for full Copyright notice                               */
7 /*                                                                        */
8 /* $Id$ */
9 ///////////////////////////////////////////////////////////////////////////////
10 ///
11 /// This class provides storage container ITS SSD module callibration data
12 /// used by DA. 
13 ///
14 ///////////////////////////////////////////////////////////////////////////////
15
16 #include "TObject.h"
17 #include "AliITSChannelDaSSD.h"
18
19 class AliITSNoiseSSD;
20
21 class AliITSModuleDaSSD : public TObject {
22   public :
23     AliITSModuleDaSSD();
24     AliITSModuleDaSSD(const Int_t numberofstrips);
25     AliITSModuleDaSSD(const Int_t numberofstrips, const Long_t eventsnumber);
26     AliITSModuleDaSSD(const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t moduleID);
27     AliITSModuleDaSSD(const AliITSModuleDaSSD& module);
28     AliITSModuleDaSSD& operator = (const AliITSModuleDaSSD& module);
29     virtual ~AliITSModuleDaSSD();
30     
31     UChar_t      GetDdlId()    const { return fDdlId; }
32     UChar_t      GetAD()       const { return fAd; }
33     UChar_t      GetADC()      const { return fAdc; }
34     UShort_t     GetModuleId() const { return fModuleId; }
35     Int_t        GetModuleRorcEquipId()   const { return fEquipId; }
36     Int_t        GetModuleRorcEquipType() const { return fEquipType; }
37     Int_t        GetNumberOfStrips() const { return fNumberOfStrips; }
38     Long_t       GetEventsNumber()   const { return fEventsNumber; }
39     AliITSChannelDaSSD*  GetStrip(const Int_t stripnumber)  const 
40                                 { return (fStrips) ? fStrips[stripnumber] : NULL; }
41
42     AliITSNoiseSSD* GetCalibrationSSDModule() const;
43     
44     Bool_t  SetEventsNumber(const Long_t eventsnumber);
45     Bool_t  SetModuleIdData (const UChar_t ddlID, const UChar_t ad, const UChar_t adc, const UShort_t moduleID);
46     void    SetModuleFEEId (const UChar_t ddlID, const UChar_t ad, const UChar_t adc);
47     void    SetModuleRorcId (const Int_t equipid, const Int_t equiptype);
48     void    SetModuleId (const UShort_t moduleID) { fModuleId = moduleID; }
49     void    SetStrip(AliITSChannelDaSSD* strip, const Int_t strID) { if ((fStrips) && (strID <= fNumberOfStrips)) fStrips[strID] = strip; }
50     void    DeleteSignal() {if (fStrips) for (Int_t i = 0; i < fNumberOfStrips; i++) 
51                                             if (fStrips[i]) fStrips[i]->DeleteSignal(); fEventsNumber = 0; }
52     static Int_t GetStripsPerModuleConst() { return  fgkStripsPerModule;  }
53     static Int_t GetPNStripsPerModule()    { return  fgkPNStripsPerModule;}
54     static Int_t GetStripsPerChip()        { return  fgkStripsPerChip;    }
55
56   protected :
57     static const Int_t   fgkStripsPerModule   = 1536;   // Number of strips per SSD module
58     static const Int_t   fgkPNStripsPerModule = 768;    // Number of N/P strips per SSD module
59     static const Int_t   fgkStripsPerChip     = 128;    // Number of strips per chip HAL25
60     static const UChar_t fgkMaxAdNumber       = 9;      // MAx SSD FEROM AD number
61     static const UChar_t fgkMaxAdcNumber      = 13;     // MAx SSD FEROM ADC number
62
63     Int_t          fEquipId;        // required to access to rorc
64     Int_t          fEquipType;      // fEquipType, required to access to rorc
65     UChar_t        fDdlId;          // index of DDL, ITS SSD: 33-48
66     UChar_t        fAd;             // index of AD module     0-9
67     UChar_t        fAdc;            // index of ADC module    0-5, 8-13
68     UShort_t       fModuleId;       // Module number          0-1697
69     
70     Int_t                 fNumberOfStrips; // Number of AliITSChannelDaSSD* allocated
71     AliITSChannelDaSSD  **fStrips;         //[fNumberOfStrips]  Array of *AliITSChannelDaSSD
72
73     Long_t            fEventsNumber;       // number of events for fsignal memory allocation
74
75   private:
76     Bool_t ForbiddenAdcNumber (const UChar_t adcn) const { return ((adcn == 6) || (adcn == 7)); }
77  
78     ClassDef(AliITSModuleDaSSD, 1) 
79  
80 };
81
82 #endif