ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#ifndef AliEveTPCData_H
#define AliEveTPCData_H

#include <TEveUtil.h>

#include <TObject.h>

#include <vector>

class TTree;
class AliTPCRawStreamV3;

class AliEveTPCSectorData;

//------------------------------------------------------------------------------
// AliEveTPCData
//
// Container for TPC data for all sectors.

class AliEveTPCData : public TObject, public TEveRefCnt
{
public:
  AliEveTPCData();
  virtual ~AliEveTPCData();

  void CreateSector(Int_t sector);
  void CreateAllSectors();
  void DropAllSectors();
  void DeleteAllSectors();

  AliEveTPCSectorData* GetSectorData(Int_t sector, Bool_t spawnSectors=kFALSE);

  Int_t GetSectorBlockSize()   const { return fSectorBlockSize; }
  void  SetSectorBlockSize(Int_t bs) { fSectorBlockSize = bs; }

  Short_t GetLoadThreshold()     const { return fLoadThreshold; }
  void    SetLoadThreshold(Short_t lt) { fLoadThreshold = lt; }

  Short_t GetLoadPedestal()     const { return fLoadPedestal; }
  void    SetLoadPedestal(Short_t lp) { fLoadPedestal = lp; }

  Bool_t GetAutoPedestal()     const { return fAutoPedestal; }
  void   SetAutoPedestal(Bool_t ap)  { fAutoPedestal = ap; }

  void LoadDigits(TTree* tree, Bool_t spawnSectors=kTRUE);
  void LoadRaw(AliTPCRawStreamV3& input, Bool_t spawnSectors=kTRUE, Bool_t warn=kFALSE);

protected:
  std::vector<AliEveTPCSectorData*>  fSectors; // Vector of sector-data.
  Int_t                      fSectorBlockSize; // Block-size of sector-data.
  Short_t                    fLoadThreshold;   // Threshold at load-time.
  Short_t                    fLoadPedestal;    // Pedestal at load-time.
  Bool_t                     fAutoPedestal;    // If true determine pedestals automatically for each pad.

private:
  AliEveTPCData(const AliEveTPCData&);            // Not implemented
  AliEveTPCData& operator=(const AliEveTPCData&); // Not implemented

  ClassDef(AliEveTPCData, 0); // Manages TPC data for an event.
};

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