]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TPC/AliTPCMonitorConfig.h
In vmctest:
[u/mrichter/AliRoot.git] / TPC / AliTPCMonitorConfig.h
1 #ifndef ALITPCMONITORCONFIG_H
2 #define ALITPCMONITORCONFIG_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 ////
11 //// AliTPCMonitorConfig class
12 ////
13 //// Configuration handler class for AliTPCMonitor.
14 //// The class reads and stores basic configurations
15 //// for the AliTPCMonitor class. The values can be changed
16 //// online or written to the configuration file  AliTPCMonitorConfig.txt 
17 //// 
18 //// Author: Stefan Kniege, IKF, Frankfurt
19 ////       
20 ////
21 /////////////////////////////////////////////////////////////////////////
22
23 #include <TNamed.h>
24 #include <TString.h>
25
26 class AliTPCMonitorConfig: public TNamed
27 {
28  public :
29     
30     AliTPCMonitorConfig(const Char_t* name,const Char_t* title);
31     AliTPCMonitorConfig(const  AliTPCMonitorConfig &config);
32     AliTPCMonitorConfig& operator= (const AliTPCMonitorConfig& config);
33     virtual ~AliTPCMonitorConfig();
34     
35     Float_t  GetButtonXSize()                        const { return fButtonXSize;}
36     Float_t  GetButtonYSize()                        const { return fButtonYSize;}
37     Float_t  GetButtonXFirst1()                      const { return fButtonFirstX1;}
38     Float_t  GetButtonXFirst2()                      const { return fButtonFirstX2;}
39     Float_t  GetButtonYFirst()                       const { return fButtonFirstY;}
40     Int_t    GetMainXSize()                          const { return fMainXSize;}
41     Int_t    GetMainYSize()                          const { return fMainYSize;}
42     Int_t    GetBorderXSize()                        const { return fBorderXSize;}
43     Int_t    GetBorderYSize()                        const { return fBorderYSize;}
44     Int_t    GetCanvasXOffset()                      const { return fCanvasXOffset;}
45     Int_t    GetCanvasXSize()                        const { return fCanvasXSize;}
46     Int_t    GetCanvasYSize()                        const { return fCanvasYSize;}
47     Int_t    GetCanvasXSpace()                       const { return fCanvasXSpace;}
48     Int_t    GetCanvasYSpace()                       const { return fCanvasYSpace;}
49     
50     Float_t* GetComponentSelection()                 const { return fComponents;}
51     
52     Int_t    GetEventProcessed()                     const { return fEventProcessed  ;}
53     
54   
55     Int_t    GetFormat()                             const { return fFormat      ;}
56     const Char_t*  GetFile()                         const { return fFileCurrent.Data();}
57     
58     Int_t    GetFitPulse()                           const { return fFitPulse     ;}
59     const Char_t*  GetLastProcFile();
60     Int_t    GetMaxHwAddr()                          const { return fMaxHwAddr            ; } 
61     
62     Int_t    GetLastSector()                         const { return fSectorLast;}
63     Int_t    GetLastSectorDisplayed()                const { return fSectorLastDisplayed;}
64     
65     Int_t    GetNextEventID()                        const { return fEventNextID      ;}
66     Int_t    GetNumOfChannels()                      const { return fNumOfChannels        ; }
67     
68     Int_t    GetPedestals()                          const { return fPedestals            ; }
69     Int_t    GetProcNextEvent()                      const { return fEventNext;}
70  
71     Int_t    GetProcOneSector()                      const { return fProcOneSector;}
72     
73     Int_t    GetRangeBaseMin()                       const { return fRangeBaseMin;}
74     Int_t    GetRangeBaseMax()                       const { return fRangeBaseMax;}
75     
76     Int_t    GetRangeMaxAdcMin()                     const { return fRangeMaxAdcMin;}
77     Int_t    GetRangeMaxAdcMax()                     const { return fRangeMaxAdcMax;}
78     
79     Int_t    GetRangeSumMin()                        const { return fRangeSumMin;}
80     Int_t    GetRangeSumMax()                        const { return fRangeSumMax;}
81
82
83     Int_t    GetSectorFilled(Int_t sector,Int_t side)const { return fSectorArr[sector+side*18]   ;}
84     Int_t    GetSectorFilled(Int_t sector)           const { return fSectorArr[sector]   ;}
85     
86     Int_t    GetSamplingFrequency()                  const { return  fSamplingFreq;}
87     
88     Int_t    GetTimeBins()                           const { return fTimeBins             ; }
89     
90     Int_t    GetWrite10Bit()                         const { return fWrite10Bit ;}
91
92     
93
94     void     SetBaseConfig(float*  ConfArr);
95         
96     void     SetLastProcFile(const Char_t* val);
97     
98     void     SetEventProcessed(Int_t val)            {        fEventProcessed=val;}
99  
100     void     SetFitPulse( Int_t val)                 {        fFitPulse =val;}
101     
102     void     SetNumOfChannels(Int_t val)             {        fNumOfChannels = val  ; }
103     
104     void     SetPedestals(Int_t val)                 {        fPedestals = val      ; }
105     
106     void     SetTimeBins(Int_t val)                  {        fTimeBins  = val      ; }
107     
108     void     SetFile(const Char_t* val)              { fFileCurrent=val; }
109         
110     void     SetLastSector(Int_t val)                { fSectorLast = val;}
111
112     void     SetLastSectorDisplayed(Int_t val)       { fSectorLastDisplayed = val;}
113     
114     void     SetNextEventID(Int_t val )              {        fEventNextID = val;}
115     
116     void     SetProcNextEvent(Int_t val)             {        fEventNext = val ;}
117   
118     void     SetProcOneSector(Int_t val)             {        fProcOneSector = val ;}
119     
120     void     SetRangeMax( Int_t min, Int_t max)      { fRangeMaxAdcMin=min,  fRangeMaxAdcMax=max;}
121     void     SetRangeBase(Int_t min, Int_t max)      { fRangeBaseMin  =min,  fRangeBaseMax  =max;}
122     void     SetRangeSum( Int_t min, Int_t max)      { fRangeSumMin   =min,  fRangeSumMax  =max;}
123     
124     void     SetSectorFilled(Int_t sector,Int_t side){        fSectorArr[sector+side*18] =1;}
125     void     SetSectorFilled(Int_t sector)           {        fSectorArr[sector] =1;}
126     
127     void     SetComponentSelection(float* val)       { for(Int_t i=0;i<10;i++) fComponents[i] = val[i];}
128     
129     void     SetFormat(Int_t val)                    {         fFormat = val;}
130     
131     void     SetWrite10Bit(Int_t val)                {        fWrite10Bit =val;}
132     void     SetMainSize(Int_t mainx,   Int_t mainy,  
133                          Int_t borderx ,Int_t bordery );
134     
135     void     PrintConfig();
136
137     void     ReadConfig(const Char_t* nameconf);
138     void     ResetSectorArray()                      { for(Int_t i=0;i<36; i++) fSectorArr[i]=0;}
139     
140  private: 
141     
142     // Data Format  0: DATA 1: ROOT
143     Int_t    fFormat;                                                   // Format of the processed file/stream  
144     
145     Int_t    fSector;                                                   // Currently processed sector 
146     Int_t    fSectorLast;                                               // Previously processed sector
147     Int_t    fSectorLastDisplayed;                                      // Last displayed sector
148     Int_t*   fSectorArr;                                                // Array of processed sectors
149     
150     // Current and Last Files and Dirs
151     TString  fFileLast;                                                 // Name of last processed file/stream
152     Int_t    fFileLastSet ;                                             // Flag showing if last file name was set
153     
154     TString  fFileCurrent;                                              // Current file/stream  name
155     
156     Int_t    fEventNext;                                                // Process next event -> do not stay in current event                         
157     Int_t    fEventNextID;                                              // Next event ID to be processed (if event id does not exist search for next existing event)                                             
158     
159     Int_t    fEventProcessed;                                           // Flag to show if event was read in
160
161     // Ranges for determination of ADC max , Baseline and  ADC Sum 
162     Int_t    fRangeMaxAdcMin   ;                                        // Min timebin of range to determine max.  adc value
163     Int_t    fRangeMaxAdcMax   ;                                        // Max timebin of range to determine max.  adc value
164
165     Int_t    fRangeBaseMin   ;                                          // Min timebin of range to determine baseline
166     Int_t    fRangeBaseMax   ;                                          // Max timebin of range to determine basline
167
168     Int_t    fRangeSumMin  ;                                            // Min timebin of range to determine adc sum
169     Int_t    fRangeSumMax ;                                             // Max timebin of range to determine adc sum
170
171     // Canvas Size for Monitor Canvases
172     Int_t    fCanvasXSize;                                              // Canvas size in x  ( set to fCanvasMainSize )
173     Int_t    fCanvasYSize;                                              // Canvas size in y  ( set to fCanvasMainSize )
174     Int_t    fCanvasXSpace;                                             // Canvas size in x + border size
175     Int_t    fCanvasYSpace;                                             // Canvas size in y + border size
176     Int_t    fCanvasXOffset;                                            // Canvas x offset (main window)
177     Int_t    fCanvasMainSize;                                           // Canvas size in x and y
178     
179     // Size of Main frame and Border (depending on Window Manager)     
180     Int_t    fMainXSize;                                                // Main window size x
181     Int_t    fMainYSize;                                                // Main window size y
182
183     Int_t    fBorderXSize ;                                             // Canvas border size x
184     Int_t    fBorderYSize ;                                             // Canvas border size y
185     
186     // Buttonsize;
187     Float_t  fButtonXSize  ;                                            // Button size x
188     Float_t  fButtonYSize  ;                                            // Button size y
189     Float_t  fButtonFirstX1;                                            // Pos of first button row in x  
190     Float_t  fButtonFirstX2;                                            // Pos of second button row in x
191     Float_t  fButtonFirstY ;                                            // Position of first button in y
192     
193     Int_t    fWrite10Bit ;                                              // Flag to write 10 bit data words to file
194     
195     // Arr to Store Selected components to be displayed
196     Float_t* fComponents;                                               // Array of components to be selected for display
197     
198     // Sampling Freq required for FFT 
199     Int_t    fSamplingFreq;                                             // Sampling frequency for data taking
200     
201     
202     Int_t    fPedestals     ;                                           // Version for pedestal calculation  
203     Int_t    fNumOfChannels ;                                           // Maximum number of channels
204     Int_t    fTimeBins      ;                                           // Number of timebins to be displayed
205     Int_t    fMaxHwAddr     ;                                           // Max value of hardware addresses
206
207     Int_t    fFitPulse     ;                                            // Flag for fitting pulse around max adc    
208
209     Int_t    fProcOneSector ;                                           // Flag for processing only the specified sector for the next event
210
211  
212     ClassDef(AliTPCMonitorConfig,1);  
213 };
214 #endif