ROOT logo
#ifndef ALIITSBADCHANNELSSPD_H
#define ALIITSBADCHANNELSSPD_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

/* $Id$ */

///////////////////////////////////////////////////////////////////////////
// AliITSBadChannelsSPD declaration by P. Nilsson 2005
// AUTHOR/CONTACT: Paul.Nilsson@cern.ch
//
// The class is used by the AliITSPreprocessorSPD class to store the
// final noisy and dead channel objects in the calibration database for
// the SPD.
//
// (See the source file for more information)
///////////////////////////////////////////////////////////////////////////


#include "TObjArray.h"
#include "AliITSChannelSPD.h"

class AliITSBadChannelsSPD: public TObject {

 public:

  AliITSBadChannelsSPD(void);		                // Default constructor
  AliITSBadChannelsSPD(const AliITSBadChannelsSPD &bc); // Default copy constructor
  virtual ~AliITSBadChannelsSPD(void);                  // Default destructor
  AliITSBadChannelsSPD& operator=(const AliITSBadChannelsSPD& bc); // Assignment operator

  void Put(Int_t* &array, const Int_t &arraySize,       // Add new arrays to the collection
	   Int_t* &index, const Int_t &indexSize);
  Bool_t Get(Int_t* &array, Int_t* &index) const;       // Retrieve the stored arrays (true if non empty arrays)

  Int_t GetIndexArraySize(void) const                   // Return the size of the index array
    { return fIndexArraySize; };
  Int_t GetBadChannelsArraySize(void) const             // Return the size of the bad channels array
    { return fBadChannelsArraySize; };

  Int_t* CreateModuleArray(Int_t module) const;   // Create an array with sequential data for a given module
  Int_t GetModuleArraySize(Int_t module) const    // Return array size for a given module
    { return (2*fBadChannelsArray[fIndexArray[module]] + 1); };

  TObjArray* CreateModuleObjArray(Int_t module) const; // Create a TObjArray with data for a given module
  Int_t GetModuleObjArraySize(Int_t module) const      // Return TObjArray size for a given module
    { return (fBadChannelsArray[fIndexArray[module]]); };

 protected:

  Int_t fIndexArraySize;                                // Size of the index array
  Int_t fBadChannelsArraySize;                          // Size of the bad channels array
  Int_t *fIndexArray;                                   //[fIndexArraySize]
  Int_t *fBadChannelsArray;                             //[fBadChannelsArraySize]

  ClassDef(AliITSBadChannelsSPD,1)
};

#endif
 AliITSBadChannelsSPD.h:1
 AliITSBadChannelsSPD.h:2
 AliITSBadChannelsSPD.h:3
 AliITSBadChannelsSPD.h:4
 AliITSBadChannelsSPD.h:5
 AliITSBadChannelsSPD.h:6
 AliITSBadChannelsSPD.h:7
 AliITSBadChannelsSPD.h:8
 AliITSBadChannelsSPD.h:9
 AliITSBadChannelsSPD.h:10
 AliITSBadChannelsSPD.h:11
 AliITSBadChannelsSPD.h:12
 AliITSBadChannelsSPD.h:13
 AliITSBadChannelsSPD.h:14
 AliITSBadChannelsSPD.h:15
 AliITSBadChannelsSPD.h:16
 AliITSBadChannelsSPD.h:17
 AliITSBadChannelsSPD.h:18
 AliITSBadChannelsSPD.h:19
 AliITSBadChannelsSPD.h:20
 AliITSBadChannelsSPD.h:21
 AliITSBadChannelsSPD.h:22
 AliITSBadChannelsSPD.h:23
 AliITSBadChannelsSPD.h:24
 AliITSBadChannelsSPD.h:25
 AliITSBadChannelsSPD.h:26
 AliITSBadChannelsSPD.h:27
 AliITSBadChannelsSPD.h:28
 AliITSBadChannelsSPD.h:29
 AliITSBadChannelsSPD.h:30
 AliITSBadChannelsSPD.h:31
 AliITSBadChannelsSPD.h:32
 AliITSBadChannelsSPD.h:33
 AliITSBadChannelsSPD.h:34
 AliITSBadChannelsSPD.h:35
 AliITSBadChannelsSPD.h:36
 AliITSBadChannelsSPD.h:37
 AliITSBadChannelsSPD.h:38
 AliITSBadChannelsSPD.h:39
 AliITSBadChannelsSPD.h:40
 AliITSBadChannelsSPD.h:41
 AliITSBadChannelsSPD.h:42
 AliITSBadChannelsSPD.h:43
 AliITSBadChannelsSPD.h:44
 AliITSBadChannelsSPD.h:45
 AliITSBadChannelsSPD.h:46
 AliITSBadChannelsSPD.h:47
 AliITSBadChannelsSPD.h:48
 AliITSBadChannelsSPD.h:49
 AliITSBadChannelsSPD.h:50
 AliITSBadChannelsSPD.h:51
 AliITSBadChannelsSPD.h:52
 AliITSBadChannelsSPD.h:53
 AliITSBadChannelsSPD.h:54
 AliITSBadChannelsSPD.h:55
 AliITSBadChannelsSPD.h:56
 AliITSBadChannelsSPD.h:57
 AliITSBadChannelsSPD.h:58
 AliITSBadChannelsSPD.h:59
 AliITSBadChannelsSPD.h:60