store also difference in local Y
[u/mrichter/AliRoot.git] / ITS / AliITSBadChannelsSPD.h
1 #ifndef ALIITSBADCHANNELSSPD_H
2 #define ALIITSBADCHANNELSSPD_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 ///////////////////////////////////////////////////////////////////////////
10 // AliITSBadChannelsSPD declaration by P. Nilsson 2005
11 // AUTHOR/CONTACT: Paul.Nilsson@cern.ch
12 //
13 // The class is used by the AliITSPreprocessorSPD class to store the
14 // final noisy and dead channel objects in the calibration database for
15 // the SPD.
16 //
17 // (See the source file for more information)
18 ///////////////////////////////////////////////////////////////////////////
19
20
21 #include "TObjArray.h"
22 #include "AliITSChannelSPD.h"
23
24 class AliITSBadChannelsSPD: public TObject {
25
26  public:
27
28   AliITSBadChannelsSPD(void);                           // Default constructor
29   AliITSBadChannelsSPD(const AliITSBadChannelsSPD &bc); // Default copy constructor
30   virtual ~AliITSBadChannelsSPD(void);                  // Default destructor
31   AliITSBadChannelsSPD& operator=(const AliITSBadChannelsSPD& bc); // Assignment operator
32
33   void Put(Int_t* &array, const Int_t &arraySize,       // Add new arrays to the collection
34            Int_t* &index, const Int_t &indexSize);
35   Bool_t Get(Int_t* &array, Int_t* &index) const;       // Retrieve the stored arrays (true if non empty arrays)
36
37   Int_t GetIndexArraySize(void) const                   // Return the size of the index array
38     { return fIndexArraySize; };
39   Int_t GetBadChannelsArraySize(void) const             // Return the size of the bad channels array
40     { return fBadChannelsArraySize; };
41
42   Int_t* CreateModuleArray(Int_t module) const;   // Create an array with sequential data for a given module
43   Int_t GetModuleArraySize(Int_t module) const    // Return array size for a given module
44     { return (2*fBadChannelsArray[fIndexArray[module]] + 1); };
45
46   TObjArray* CreateModuleObjArray(Int_t module) const; // Create a TObjArray with data for a given module
47   Int_t GetModuleObjArraySize(Int_t module) const      // Return TObjArray size for a given module
48     { return (fBadChannelsArray[fIndexArray[module]]); };
49
50  protected:
51
52   Int_t fIndexArraySize;                                // Size of the index array
53   Int_t fBadChannelsArraySize;                          // Size of the bad channels array
54   Int_t *fIndexArray;                                   //[fIndexArraySize]
55   Int_t *fBadChannelsArray;                             //[fBadChannelsArraySize]
56
57   ClassDef(AliITSBadChannelsSPD,1)
58 };
59
60 #endif