Coverity
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTPCLoader.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 AliEveTPCLoader_H
11 #define AliEveTPCLoader_H
12
13 #include <TEveElement.h>
14 #include <vector>
15
16 class AliRawReaderRoot;
17
18 class AliEveTPCData;
19 class AliEveTPCSector2D;
20 class AliEveTPCSector3D;
21
22 //------------------------------------------------------------------------------
23 // AliEveTPCLoader
24 //
25 // GUI front-end for loading and displaying of TPC data in a stand-alone mode.
26 //
27
28 class AliEveTPCLoader : public TEveElementList
29 {
30   friend class AliEveTPCLoaderEditor;
31
32 public:
33   AliEveTPCLoader(const Text_t* n="AliEveTPCLoader", const Text_t* t=0);
34   virtual ~AliEveTPCLoader();
35
36   virtual void RemoveElementLocal(TEveElement* el);
37   virtual void RemoveElementsLocal();
38
39   void SetFile(const Text_t* f) { fFile = f; }
40   void SetDoubleSR(Bool_t d)    { fDoubleSR = d; }
41
42   const Text_t* GetTPCEquipementMap() const  { return fTPCEquipementMap; }
43   void SetTPCEquipementMap(const Text_t* em) { fTPCEquipementMap = em; }
44   AliRawReaderRoot* GetReader()        const { return fReader; }
45   void SetReader(AliRawReaderRoot* reader)   { fReader = reader; }
46   AliEveTPCData* GetData() const { return fData; }
47   void     SetData(AliEveTPCData* d);
48
49   void OpenFile();
50   void LoadEvent();
51   void NextEvent(Bool_t rewindOnEnd=kTRUE);
52   void GotoEvent(Int_t event);
53   static void* LoopEvent(AliEveTPCLoader* loader);
54
55   void UpdateSectors(Bool_t dropNonPresent=kFALSE);
56   void ReloadSectors();
57   void CreateSectors3D();
58   void DeleteSectors3D();
59
60   void SetInitParams(Int_t mint, Int_t maxt, Int_t thr, Int_t maxval=128);
61
62   void SetCutOnEta(Bool_t cut) { fCutOnEta = cut; }
63   void SetEtaMax(Float_t max) { fEtaMax = max; }
64   void SetEtaMin(Float_t min) { fEtaMin = min; }
65
66   Float_t GetCutOnEta() { return fCutOnEta; }
67   Float_t GetEtaMax() { return fEtaMax; }
68   Float_t GetEtaMin() { return fEtaMin; }
69
70 protected:
71   TString           fFile;      // File holding raw-data.
72   Int_t             fEvent;     // Current event.
73   Bool_t            fDoubleSR;  // Set to true for double sampling-rate.
74
75   TString           fTPCEquipementMap; // Equipement-map file-name, if set passed to raw-reader.
76   AliRawReaderRoot *fReader;           // Raw-data reader.
77   AliEveTPCData    *fData;             // TPC data container.
78
79   std::vector<AliEveTPCSector2D*> fSec2Ds; // 2D sector representations.
80   std::vector<AliEveTPCSector3D*> fSec3Ds; // 3D sector representations.
81
82   Bool_t   fSetInitSectorParams; // If true, initial parameters of 2D and 3D sectors are set from values below.
83   Int_t    fInitMinTime;         // Min time for display.
84   Int_t    fInitMaxTime;         // Max time for display.
85   Int_t    fInitThreshold;       // Threshold.
86   Int_t    fInitMaxVal;          // Maximum-signal value (all signals above mapped to saturation color).
87
88   Bool_t fCutOnEta;              // Bool for apply eta cut
89   Float_t fEtaMax;               // Maximum eta value for cut
90   Float_t fEtaMin;               // Minimum eta value for cut
91
92 private:
93   AliEveTPCLoader(const AliEveTPCLoader&);            // Not implemented
94   AliEveTPCLoader& operator=(const AliEveTPCLoader&); // Not implemented
95
96   ClassDef(AliEveTPCLoader, 0); // Front-end for stand-alone inspection of TPC raw-data.
97 };
98
99 #endif