]> git.uio.no Git - u/mrichter/AliRoot.git/blame - TRD/Cal/AliTRDCalDCSFEEv2.cxx
Protection against non existing online gain table (Theo)
[u/mrichter/AliRoot.git] / TRD / Cal / AliTRDCalDCSFEEv2.cxx
CommitLineData
4a2eec96 1/**************************************************************************\r
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
3 * *\r
4 * Author: The ALICE Off-line Project. *\r
5 * Contributors are mentioned in the code where appropriate. *\r
6 * *\r
7 * Permission to use, copy, modify and distribute this software and its *\r
8 * documentation strictly for non-commercial purposes is hereby granted *\r
9 * without fee, provided that the above copyright notice appears in all *\r
10 * copies and that both the copyright notice and this permission notice *\r
11 * appear in the supporting documentation. The authors make no claims *\r
12 * about the suitability of this software for any purpose. It is *\r
13 * provided "as is" without express or implied warranty. *\r
14 **************************************************************************/\r
15\r
16/* $Id: AliTRDCalDCSFEEv2.cxx 18952 2007-06-08 11:36:12Z cblume $ */\r
17\r
18///////////////////////////////////////////////////////////////////////////////\r
19// //\r
20// TRD calibration class for TRD DCS FEE configuration parameters //\r
21// //\r
22///////////////////////////////////////////////////////////////////////////////\r
23\r
24// fStatusBit:\r
25// 0: no errors for that ROC\r
26// 1: ROC sent invalid or corrupted data. \r
27// 2: ROC was not in state CONFIGURED or STANDBY_INIT (most probably it was in STANDBY)\r
28// 3: No new data received from that ROC.\r
29// 4: DCS id from XML attributes <DCS> and <ack> and the one calculated from SM, S, L do not match\r
30// 5: ROC has not responded at all, most probably it was off.\r
31\r
32#include "AliTRDCalDCSFEEv2.h"\r
33\r
34ClassImp(AliTRDCalDCSFEEv2)\r
35 \r
36//_____________________________________________________________________________\r
37AliTRDCalDCSFEEv2::AliTRDCalDCSFEEv2()\r
38 :TObject()\r
39 ,fStatusBit(0)\r
40 ,fSM(-1)\r
41 ,fStack(-1)\r
42 ,fLayer(-1)\r
43 ,fGainTableRocSerial(0)\r
44 ,fDCSID(-1)\r
45 ,fNumberOfTimeBins(-1)\r
46 ,fConfigTag(-1)\r
47 ,fSingleHitThres(-1)\r
48 ,fThrPdClsThres(-1)\r
49 ,fSelNoZS(-1)\r
50 ,fTCFilterWeight(-1)\r
51 ,fTCFilterShortDecPar(-1)\r
52 ,fTCFilterLongDecPar(-1)\r
53 ,fFastStatNoise(-1)\r
54 ,fGainTableRocType("")\r
55 ,fFilterType("")\r
56 ,fReadoutParam("")\r
57 ,fTestPattern("")\r
58 ,fTrackletMode("")\r
59 ,fTrackletDef("")\r
60 ,fTriggerSetup("")\r
61 ,fAddOptions("") \r
62 ,fConfigName("")\r
63 ,fConfigVersion("")\r
64 ,fGainTableName("")\r
65 ,fGainTableDesc("")\r
66{\r
67 //\r
68 // AliTRDCalDCSFEEv2 default constructor\r
69 //\r
70 for(Int_t i=0; i<(Int_t)fgkROB; i++) {\r
71 for(Int_t j=0; j<(Int_t)fgkMCM; j++) {\r
72 fRStateGSM[i][j] = -1;\r
73 fRStateNI[i][j] = -1;\r
74 fRStateEV[i][j] = -1;\r
75 fRStatePTRG[i][j] = -1;\r
76 fGainTableAdcdac[i][j] = -1;\r
77 for(Int_t k=0; k<(Int_t)fgkADC; k++) {\r
78 fGainTableFgfn[i][j][k] = -1;\r
79 fGainTableFgan[i][j][k] = -1;\r
80 }\r
81 }\r
82 }\r
83}\r
84\r
85\r
86//_____________________________________________________________________________\r
87AliTRDCalDCSFEEv2::AliTRDCalDCSFEEv2(const AliTRDCalDCSFEEv2 &c)\r
88 :TObject(c)\r
89 ,fStatusBit(c.fStatusBit)\r
90 ,fSM(c.fSM)\r
91 ,fStack(c.fStack)\r
92 ,fLayer(c.fLayer)\r
93 ,fGainTableRocSerial(c.fGainTableRocSerial)\r
94 ,fDCSID(c.fDCSID)\r
95 ,fNumberOfTimeBins(c.fNumberOfTimeBins)\r
96 ,fConfigTag(c.fConfigTag)\r
97 ,fSingleHitThres(c.fSingleHitThres)\r
98 ,fThrPdClsThres(c.fThrPdClsThres)\r
99 ,fSelNoZS(c.fSelNoZS)\r
100 ,fTCFilterWeight(c.fTCFilterWeight)\r
101 ,fTCFilterShortDecPar(c.fTCFilterShortDecPar)\r
102 ,fTCFilterLongDecPar(c.fTCFilterLongDecPar)\r
103 ,fFastStatNoise(c.fFastStatNoise)\r
104 ,fGainTableRocType(c.fGainTableRocType)\r
105 ,fFilterType(c.fFilterType)\r
106 ,fReadoutParam(c.fReadoutParam)\r
107 ,fTestPattern(c.fTestPattern)\r
108 ,fTrackletMode(c.fTrackletMode)\r
109 ,fTrackletDef(c.fTrackletDef)\r
110 ,fTriggerSetup(c.fTriggerSetup)\r
111 ,fAddOptions(c.fAddOptions) \r
112 ,fConfigName(c.fConfigName)\r
113 ,fConfigVersion(c.fConfigVersion)\r
114 ,fGainTableName(c.fGainTableName)\r
115 ,fGainTableDesc(c.fGainTableDesc)\r
116{\r
117 //\r
118 // AliTRDCalDCSFEEv2 copy constructor\r
119 //\r
120 for(Int_t i=0; i<(Int_t)fgkROB; i++) {\r
121 for(Int_t j=0; j<(Int_t)fgkMCM; j++) {\r
122 fRStateGSM[i][j] = c.fRStateGSM[i][j];\r
123 fRStateNI[i][j] = c.fRStateNI[i][j];\r
124 fRStateEV[i][j] = c.fRStateEV[i][j];\r
125 fRStatePTRG[i][j] = c.fRStatePTRG[i][j];\r
126 fGainTableAdcdac[i][j] = c.fGainTableAdcdac[i][j];\r
127 for(Int_t k=0; k<(Int_t)fgkADC; k++) {\r
128 fGainTableFgfn[i][j][k] = c.fGainTableFgfn[i][j][k];\r
129 fGainTableFgan[i][j][k] = c.fGainTableFgan[i][j][k];\r
130 }\r
131 }\r
132 }\r
133}\r
134\r
135\r
136//_____________________________________________________________________________\r
137AliTRDCalDCSFEEv2 &AliTRDCalDCSFEEv2::operator=(const AliTRDCalDCSFEEv2 &c)\r
138{\r
139 //\r
140 // Assignment operator\r
141 //\r
142 if (&c == this) return *this;\r
143\r
144 new (this) AliTRDCalDCSFEEv2(c);\r
145 return *this;\r
146}\r
147\r