New TPC monitoring package from Stefan Kniege. The monitoring package can be started...
[u/mrichter/AliRoot.git] / TPC / AliTPCMonitorConfig.cxx
CommitLineData
48265b32 1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16/*
17$Log$
18*/
19
20#include "AliTPCMonitorConfig.h"
21ClassImp(AliTPCMonitorConfig)
22
23//_______________________________________________________________________________________________________________
24AliTPCMonitorConfig::AliTPCMonitorConfig(Char_t* name, Char_t* title) : TNamed(name,title)
25{
26
27 // Constructor
28 // Set default values for Size of Window
29
30 fRangeMaxAdcMin = 50 ;
31 fRangeMaxAdcMax = 100 ;
32
33 fRangeBaseMin = 300 ;
34 fRangeBaseMax = 600 ;
35
36 fRangeSumMin = 50 ;
37 fRangeSumMax = 100 ;
38
39
40 fFormat = -1;
41 fSector = 0;
42 fEventNext = 1;
43 fEventNextID = 1;
44
45 SetMainSize(130,720,10,26 );
46
47 fFileLast = new Char_t[256] ;
48 fFileLastSet = 0;
49 fFileCurrent = new Char_t[256];
50
51 fSectorLast =-1;
52 fSectorLastDisplayed =-1;
53
54 fWrite10Bit = 0;
55
56 fSectorArr = new Int_t[36]; for(Int_t i =0; i<36; i++) { fSectorArr[i] = 0;}
57 fComponents = new Float_t[10]; for(Int_t i =0; i<10;i++) { fComponents[i] =0.0;}
58
59 fSamplingFreq = 1000000;
60 fTimeBins = 1024;
61 fPedestals = 1;
62 fNumOfChannels = 16000;
63 fMaxHwAddr = 24000;
64
65 fFitPulse = 1;
66 fEventProcessed = 0;
67
68}
69
70
71//_______________________________________________________________________________________________________________
72AliTPCMonitorConfig::~AliTPCMonitorConfig()
73{
74 // Destructor
75}
76
77
78//_______________________________________________________________________________________________________________
79void AliTPCMonitorConfig::SetMainSize(Int_t mainx, Int_t mainy, Int_t borderx=10, Int_t bordery=26)
80{
81 // Set Size of Main window, buttons and canvases
82
83
84 // size of main frame ///////////////////////
85 fMainXSize = mainx;
86 fMainYSize = mainy;
87
88 // border size depending on window manager///
89 fBorderXSize = borderx;
90 fBorderYSize = bordery;
91
92 // y-pos of first sector button /////////////
93 fButtonFirstY = (int) (0.50*fMainYSize);
94
95 // canvas size for Minitor Canvases ///////////////////////
96 fCanvasMainSize = (Int_t)(fMainYSize/3);
97
98 fCanvasXSize = (int)fCanvasMainSize;
99 fCanvasYSize = (int)fCanvasMainSize;
100 fCanvasXSpace = (int)(-1*(fCanvasMainSize+ fBorderXSize ));
101 fCanvasYSpace = (int)( fCanvasMainSize+ fBorderYSize );
102 fCanvasXOffset = (int)(-1*(fMainXSize + fBorderXSize ));
103
104 // adjust main size in y ////////////////////
105 fMainYSize = fMainYSize+fBorderYSize;
106
107 // y-size of the main window also defines ///
108 fButtonXSize = (Int_t)(fMainXSize/2-10);
109 fButtonYSize = (Int_t)fMainYSize/47;
110 fButtonFirstX1 = 5;
111 fButtonFirstX2 = fMainXSize/2+5;
112
113}
114
115//_______________________________________________________________________________________________________________
116void AliTPCMonitorConfig::SetBaseConfig(Float_t* conf_arr)
117{
118 // Set base configuration stored in array conf_arr
119
120 fRangeBaseMin = (int)conf_arr[0];
121 fRangeBaseMax = (int)conf_arr[1];
122
123 fRangeMaxAdcMin = (int)conf_arr[2];
124 fRangeMaxAdcMax = (int)conf_arr[3];
125
126 fRangeSumMin = (int)conf_arr[4];
127 fRangeSumMax = (int)conf_arr[5];
128
129 cout << " Set Ranges to : " << endl;
130 cout << " range base :: " << fRangeBaseMin << "\t : " << fRangeBaseMax << endl;
131 cout << " range adc max :: " << fRangeMaxAdcMin << "\t : " << fRangeMaxAdcMax << endl;
132 cout << " range sum :: " << fRangeSumMin << "\t : " << fRangeSumMax << endl;
133
134}
135
136//_______________________________________________________________________________________________________________
137void AliTPCMonitorConfig::ReadConfig(Char_t* nameconf)
138{
139 // Read base configuration from file
140 // Update main window size
141
142 string line;
143 ifstream datin;
144 datin.open(nameconf);
145
146 if(!datin) { AliWarning("Could not read configfile");}
147
148 cout << "//// Read Configuration ///////// " << endl;
149 while(!datin.eof())
150 {
151 string line;
152 getline(datin,line);
153 if(line.find("max adc")!=string::npos)
154 {
155 datin >> fRangeMaxAdcMin ;
156 datin >> fRangeMaxAdcMax ;
157 cout << " range max :: " << fRangeMaxAdcMin << " : " << fRangeMaxAdcMax << endl;
158 }
159
160 if(line.find("baseline")!=string::npos)
161 {
162 datin >> fRangeBaseMin ;
163 datin >> fRangeBaseMax ;
164 cout << " range base :: " << fRangeBaseMin << " : " << fRangeBaseMax << endl;
165 }
166 if(line.find("adc sum")!=string::npos)
167 {
168 datin >> fRangeSumMin ;
169 datin >> fRangeSumMax ;
170 cout << " range sum :: " << fRangeSumMin << " : " << fRangeSumMax << endl;
171 }
172 if(line.find("frequency")!=string::npos)
173 {
174 datin >> fSamplingFreq ;
175 cout << " sampling frequency :: " << fSamplingFreq << endl;
176 }
177 if(line.find("timebins")!=string::npos)
178 {
179 datin >> fTimeBins ;
180 cout << " timebins :: " << fTimeBins << endl;
181 }
182 if(line.find("pedestal")!=string::npos)
183 {
184 datin >> fPedestals ;
185 cout << " pedestal scheme :: " << fPedestals << endl;
186 }
187 if(line.find("main window size")!=string::npos)
188 {
189 datin >> fMainXSize ;
190 datin >> fMainYSize ;
191 cout << " main window size :: " << fMainXSize << " , " << fMainYSize << endl;
192 }
193 if(line.find("border size")!=string::npos)
194 {
195 datin >> fBorderXSize ;
196 datin >> fBorderYSize ;
197 cout << " border size :: " << fBorderXSize << " , " << fBorderYSize << endl;
198 }
199 }
200 cout << "//// Read Configuration done //// " << endl;
201 SetMainSize(fMainXSize,fMainYSize,fBorderXSize,fBorderYSize) ;
202}
203
204//_______________________________________________________________________________________________________________
205void AliTPCMonitorConfig::PrintConfig()
206{
207 // Print base configuration
208
209 cout << " /////// Configuration /////////////////////////////// " << endl;
210 cout << " Timebins :: " << fTimeBins << endl;
211 cout << " Range to det ADC max :: " << fRangeMaxAdcMin << " : " << fRangeMaxAdcMax << endl;
212 cout << " Range to det Baseline :: " << fRangeBaseMin << " : " << fRangeBaseMax << endl;
213 cout << " Range to det ADC sum :: " << fRangeSumMin << " : " << fRangeSumMax << endl;
214 cout << " Pedestal setting :: " << fPedestals << endl;
215 cout << " Sampling Frequency :: " << fSamplingFreq << endl;
216 cout << " Sector (Last) :: " << fSector <<" ("<< fSectorLast <<")" << endl;
217 cout << " Data Format :: " << fFormat << endl;
218 cout << " File current :: " << fFileCurrent << endl;
219
220 if(fFileLastSet) { cout << " File last :: " << fFileLast << endl; }
221 return;
222
223}
224
225//______________________________________________________________________________________________________________
226Char_t* AliTPCMonitorConfig::GetLastProcFile()
227{
228 // Return name of last processed file
229 // Get from file if written
230 if(!fFileLastSet)
231 {
232 Char_t fnlast[256];
233 sprintf(fnlast,"AliTPCMonitorLastFile.txt");
234 ifstream datin(fnlast);
235 if(!datin) { AliWarning("Could not read file containing name of last processed file: Check permissions and path");}
236 datin >> fFileLast;
237 datin.close();
238 fFileLastSet=1;
239 }
240 return fFileLast;
241}
242
243//_______________________________________________________________________________________________________________
244void AliTPCMonitorConfig::SetLastProcFile(Char_t* file)
245{
246 // Set name of last processed file
247 // Write name to a file
248
249 sprintf(fFileLast,file);
250 Char_t fnlast[256];
251 sprintf(fnlast,"AliTPCMonitorLastFile.txt");
252 ofstream datout(fnlast);
253 if(!datout) { AliWarning("Could not write file containing name of last processed file: Check permissions and path");}
254 datout << fFileLast << endl;
255 datout.close();
256 fFileLastSet =1;
257}