9bae0f743e8b7f187fae966483c21fa79aa512f2
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTPCData.h
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveTPCData_H
11 #define AliEveTPCData_H
12
13 #include <TEveUtil.h>
14
15 #include <TObject.h>
16
17 #include <vector>
18
19 class TTree;
20 class AliTPCRawStream;
21 class AliTPCRawStreamOld;
22
23 class AliEveTPCSectorData;
24
25 //------------------------------------------------------------------------------
26 // AliEveTPCData
27 //
28 // Container for TPC data for all sectors.
29
30 class AliEveTPCData : public TObject, public TEveRefCnt
31 {
32 public:
33   AliEveTPCData();
34   virtual ~AliEveTPCData();
35
36   void CreateSector(Int_t sector);
37   void CreateAllSectors();
38   void DropAllSectors();
39   void DeleteAllSectors();
40
41   AliEveTPCSectorData* GetSectorData(Int_t sector, Bool_t spawnSectors=kFALSE);
42
43   Int_t GetSectorBlockSize()   const { return fSectorBlockSize; }
44   void  SetSectorBlockSize(Int_t bs) { fSectorBlockSize = bs; }
45
46   Short_t GetLoadThreshold()     const { return fLoadThreshold; }
47   void    SetLoadThreshold(Short_t lt) { fLoadThreshold = lt; }
48
49   Short_t GetLoadPedestal()     const { return fLoadPedestal; }
50   void    SetLoadPedestal(Short_t lp) { fLoadPedestal = lp; }
51
52   Bool_t GetAutoPedestal()     const { return fAutoPedestal; }
53   void   SetAutoPedestal(Bool_t ap)  { fAutoPedestal = ap; }
54
55   void LoadDigits(TTree* tree, Bool_t spawnSectors=kTRUE);
56   void LoadRaw(AliTPCRawStream& input, Bool_t spawnSectors=kTRUE, Bool_t warn=kFALSE);
57
58 protected:
59   std::vector<AliEveTPCSectorData*>  fSectors; // Vector of sector-data.
60   Int_t                      fSectorBlockSize; // Block-size of sector-data.
61   Short_t                    fLoadThreshold;   // Threshold at load-time.
62   Short_t                    fLoadPedestal;    // Pedestal at load-time.
63   Bool_t                     fAutoPedestal;    // If true determine pedestals automatically for each pad.
64
65 private:
66   AliEveTPCData(const AliEveTPCData&);            // Not implemented
67   AliEveTPCData& operator=(const AliEveTPCData&); // Not implemented
68
69   ClassDef(AliEveTPCData, 0); // Manages TPC data for an event.
70 };
71
72 #endif