]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/Cal/AliTRDCalDCS.cxx
Protection against non existing online gain table (Theo)
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCalDCS.cxx
CommitLineData
54c3cb53 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/* $Id: AliTRDCalDCS.cxx 18952 2007-06-08 11:36:12Z cblume $ */
17
18///////////////////////////////////////////////////////////////////////////////
19// //
20// TRD calibration class for TRD DCS parameters //
21// //
22///////////////////////////////////////////////////////////////////////////////
23
24#include "AliTRDCalDCS.h"
1b2ec594 25#include "AliTRDCalDCSFEE.h"
3821ce70 26#include "AliTRDCalDCSGTU.h"
54c3cb53 27
28ClassImp(AliTRDCalDCS)
1b2ec594 29
54c3cb53 30//_____________________________________________________________________________
31AliTRDCalDCS::AliTRDCalDCS()
32 :TNamed()
1b2ec594 33 ,fGNumberOfTimeBins(-1)
34 ,fGConfigTag(-1)
35 ,fGSingleHitThres(-1)
36 ,fGThreePadClustThres(-1)
37 ,fGSelNoZS(-1)
38 ,fGTCFilterWeight(-1)
39 ,fGTCFilterShortDecPar(-1)
40 ,fGTCFilterLongDecPar(-1)
41 ,fGFastStatNoise(-1)
42 ,fGConfigVersion(0)
43 ,fGConfigName(0)
44 ,fGFilterType(0)
45 ,fGReadoutParam(0)
46 ,fGTestPattern(0)
47 ,fGTrackletMode(0)
48 ,fGTrackletDef(0)
49 ,fGTriggerSetup(0)
50 ,fGAddOptions(0)
8f7e6c0b 51 ,fRunType("")
52 ,fStartTime(0)
53 ,fEndTime(0)
7e563f5e 54 ,fFEEArr(new TObjArray(540))
55 ,fPTRArr(new TObjArray(6))
56 ,fGTUObj(new AliTRDCalDCSGTU())
54c3cb53 57{
58 //
59 // AliTRDCalDCS default constructor
60 //
61}
62
63//_____________________________________________________________________________
64AliTRDCalDCS::AliTRDCalDCS(const Text_t *name, const Text_t *title)
65 :TNamed(name,title)
1b2ec594 66 ,fGNumberOfTimeBins(-1)
67 ,fGConfigTag(-1)
68 ,fGSingleHitThres(-1)
69 ,fGThreePadClustThres(-1)
70 ,fGSelNoZS(-1)
71 ,fGTCFilterWeight(-1)
72 ,fGTCFilterShortDecPar(-1)
73 ,fGTCFilterLongDecPar(-1)
74 ,fGFastStatNoise(-1)
75 ,fGConfigVersion(0)
76 ,fGConfigName(0)
77 ,fGFilterType(0)
78 ,fGReadoutParam(0)
79 ,fGTestPattern(0)
80 ,fGTrackletMode(0)
81 ,fGTrackletDef(0)
82 ,fGTriggerSetup(0)
83 ,fGAddOptions(0)
8f7e6c0b 84 ,fRunType("")
85 ,fStartTime(0)
86 ,fEndTime(0)
7e563f5e 87 ,fFEEArr(new TObjArray(540))
88 ,fPTRArr(new TObjArray(6))
89 ,fGTUObj(new AliTRDCalDCSGTU())
54c3cb53 90{
91 //
92 // AliTRDCalDCS constructor
93 //
94}
95
96//_____________________________________________________________________________
97AliTRDCalDCS::AliTRDCalDCS(const AliTRDCalDCS &cd)
98 :TNamed(cd)
1b2ec594 99 ,fGNumberOfTimeBins(-1)
100 ,fGConfigTag(-1)
101 ,fGSingleHitThres(-1)
102 ,fGThreePadClustThres(-1)
103 ,fGSelNoZS(-1)
104 ,fGTCFilterWeight(-1)
105 ,fGTCFilterShortDecPar(-1)
106 ,fGTCFilterLongDecPar(-1)
107 ,fGFastStatNoise(-1)
108 ,fGConfigVersion(0)
109 ,fGConfigName(0)
110 ,fGFilterType(0)
111 ,fGReadoutParam(0)
112 ,fGTestPattern(0)
113 ,fGTrackletMode(0)
114 ,fGTrackletDef(0)
115 ,fGTriggerSetup(0)
116 ,fGAddOptions(0)
8f7e6c0b 117 ,fRunType("")
118 ,fStartTime(0)
119 ,fEndTime(0)
7e563f5e 120 ,fFEEArr(new TObjArray(540))
121 ,fPTRArr(new TObjArray(6))
122 ,fGTUObj(new AliTRDCalDCSGTU())
54c3cb53 123{
124 //
125 // AliTRDCalDCS copy constructor
126 //
127}
128
129//_____________________________________________________________________________
130AliTRDCalDCS &AliTRDCalDCS::operator=(const AliTRDCalDCS &cd)
131{
132 //
133 // Assignment operator
134 //
135 if (&cd == this) return *this;
136
137 new (this) AliTRDCalDCS(cd);
138 return *this;
139}
140
1b2ec594 141//_____________________________________________________________________________
142void AliTRDCalDCS::EvaluateGlobalParameters()
143{
2e32a5ae 144 //
145 // Do an evaluation of all global parameters
146 //
147
1b2ec594 148 for(Int_t i=0; i<540; i++) {
149 AliTRDCalDCSFEE *iDCSFEEObj;
150 iDCSFEEObj = GetCalDCSFEEObj(i);
151 if(iDCSFEEObj != NULL) {
152 if(iDCSFEEObj->GetStatusBit() == 0) {
153 // first, set the parameters of the first good ROC as global
154 fGNumberOfTimeBins = iDCSFEEObj->GetNumberOfTimeBins();
155 fGConfigTag = iDCSFEEObj->GetConfigTag();
156 fGSingleHitThres = iDCSFEEObj->GetSingleHitThres();
157 fGThreePadClustThres = iDCSFEEObj->GetThreePadClustThres();
158 fGSelNoZS = iDCSFEEObj->GetSelectiveNoZS();
159 fGTCFilterWeight = iDCSFEEObj->GetTCFilterWeight();
160 fGTCFilterShortDecPar = iDCSFEEObj->GetTCFilterShortDecPar();
161 fGTCFilterLongDecPar = iDCSFEEObj->GetTCFilterLongDecPar();
162 fGFastStatNoise = iDCSFEEObj->GetFastStatNoise();
163 fGConfigVersion = iDCSFEEObj->GetConfigVersion();
164 fGConfigName = iDCSFEEObj->GetConfigName();
165 fGFilterType = iDCSFEEObj->GetFilterType();
166 fGReadoutParam = iDCSFEEObj->GetReadoutParam();
167 fGTestPattern = iDCSFEEObj->GetTestPattern();
168 fGTrackletMode = iDCSFEEObj->GetTrackletMode();
169 fGTrackletDef = iDCSFEEObj->GetTrackletDef();
170 fGTriggerSetup = iDCSFEEObj->GetTriggerSetup();
171 fGAddOptions = iDCSFEEObj->GetAddOptions();
172 break;
173 }
174 }
175 }
176
177 for(Int_t i=0; i<540; i++) {
178 AliTRDCalDCSFEE *iDCSFEEObj;
179 iDCSFEEObj = GetCalDCSFEEObj(i);
180 if(iDCSFEEObj != NULL) {
181 if(iDCSFEEObj->GetStatusBit() == 0) {
182 // second, if any of the other good chambers differ, set the global value to -1/""
183 if(fGNumberOfTimeBins != iDCSFEEObj->GetNumberOfTimeBins()) fGNumberOfTimeBins = -2;
184 if(fGConfigTag != iDCSFEEObj->GetConfigTag()) fGConfigTag = -2;
185 if(fGSingleHitThres != iDCSFEEObj->GetSingleHitThres()) fGSingleHitThres = -2;
186 if(fGThreePadClustThres != iDCSFEEObj->GetThreePadClustThres()) fGThreePadClustThres = -2;
187 if(fGSelNoZS != iDCSFEEObj->GetSelectiveNoZS()) fGSelNoZS = -2;
188 if(fGTCFilterWeight != iDCSFEEObj->GetTCFilterWeight()) fGTCFilterWeight = -2;
189 if(fGTCFilterShortDecPar != iDCSFEEObj->GetTCFilterShortDecPar()) fGTCFilterShortDecPar = -2;
190 if(fGTCFilterLongDecPar != iDCSFEEObj->GetTCFilterLongDecPar()) fGTCFilterLongDecPar = -2;
191 if(fGFastStatNoise != iDCSFEEObj->GetFastStatNoise()) fGFastStatNoise = -2;
192 if(fGConfigVersion != iDCSFEEObj->GetConfigVersion()) fGConfigVersion = "mixed";
193 if(fGConfigName != iDCSFEEObj->GetConfigName()) fGConfigName = "mixed";
194 if(fGFilterType != iDCSFEEObj->GetFilterType()) fGFilterType = "mixed";
195 if(fGReadoutParam != iDCSFEEObj->GetReadoutParam()) fGReadoutParam = "mixed";
196 if(fGTestPattern != iDCSFEEObj->GetTestPattern()) fGTestPattern = "mixed";
197 if(fGTrackletMode != iDCSFEEObj->GetTrackletMode()) fGTrackletMode = "mixed";
198 if(fGTrackletDef != iDCSFEEObj->GetTrackletDef()) fGTrackletDef = "mixed";
199 if(fGTriggerSetup != iDCSFEEObj->GetTriggerSetup()) fGTriggerSetup = "mixed";
200 if(fGAddOptions != iDCSFEEObj->GetAddOptions()) fGAddOptions = "mixed";
201 }
202 }
203 }
204}
205
8f7e6c0b 206