61{
62
63 string TileMuIdFile = "TileMuId_thresholds.dat";
64 fstream *fl = new fstream(TileMuIdFile.c_str(), fstream::app| fstream::out);
65 if (fl->is_open())
67 else
68 ATH_MSG_INFO (
" TileMuId file didn't open succesfully" );
69
70
71 float noise[4][64][24]; memset(noise,0,
sizeof(noise));
72
73 int DSP[4][64][40]; memset(DSP,0,sizeof(DSP));
74
75 int Thr[4][64][40]; memset(Thr,0,sizeof(Thr));
76
77
78 int Thr_barrel[23] = {
79 1350, 2550, 1590, 960, 1980, 870, 1770, 1110, 750, 1890, 840, 1860, 1050, 840, 1800, 930, 1890, 1050, 840, 1860, 960, 1110, 900
80 };
81
82
83 int Thr_extbarrel[12] = {
84 1050, 2100, 210, 1380, 1140, 1440, 2370, 1230, 1500, 1380, 1680, 1680
85 };
86
87 IdentifierHash caloCellMin=0;
88 IdentifierHash caloCellMax=0;
89 m_calo_id->calo_cell_hash_range(3, caloCellMin, caloCellMax);
90
93 ATH_MSG_INFO (
"Start loop over TileCal cells " << caloCellMax-caloCellMin );
94
96
97 for (
unsigned int i=caloCellMin;
i<caloCellMax;
i++) {
98
99 IdentifierHash idHash =
i;
100 Identifier
id =
m_calo_id->cell_id(idHash);
101 int subCalo{};
102 IdentifierHash idSubHash =
m_calo_id->subcalo_cell_hash (idHash, subCalo);
103
107 return StatusCode::FAILURE;
108 }
109
111
112 float cell_noise = totalNoise->getNoise(id,gain);
113
115
117
119
121
122 }
123
124
125
127 for(int j=0;j<64;j++) {
128 for(
int k=0;
k<20;
k++) {
130 }
131 }
132
133
134
136 for(int j=0;j<64;j++) {
137 for(
int k=0;
k<2;
k++) {
139 }
142 for(
int k=2;
k<19;
k++) {
143 DSP[
i][j][
k+1] = (
int)
round(2*noise[i][j][k]);
144 }
145 }
146
147
148 for(
int i=2;
i<4;
i++) {
149 for(int j=0;j<64;j++) {
150 for(
int k=0;
k<11;
k++) {
152 }
153 }
154 }
155
156 for(
int i=0;
i<2;
i++) {
157
158 for(int j=0;j<64;j++) {
159
161
162
163
164 Thr[
i][j][
k]=DSP[
i][j][2];
k++; Thr[
i][j][
k]=DSP[
i][j][7];
k++; Thr[
i][j][
k]=DSP[
i][j][12];
k++; Thr[
i][j][
k]=DSP[
i][j][17];
k++;
165 Thr[
i][j][
k]=2*Thr_barrel[2];
k++; Thr[
i][j][
k]=2*Thr_barrel[7];
k++; Thr[
i][j][
k]=2*Thr_barrel[12];
k++; Thr[
i][j][
k]=2*Thr_barrel[17];
k++;
166
167
168
169 Thr[
i][j][
k]=DSP[
i][j][1];
k++; Thr[
i][j][
k]=DSP[
i][j][4];
k++; Thr[
i][j][
k]=DSP[
i][j][6];
k++; Thr[
i][j][
k]=DSP[
i][j][9];
k++;
170 Thr[
i][j][
k]=DSP[
i][j][11];
k++; Thr[
i][j][
k]=DSP[
i][j][14];
k++; Thr[
i][j][
k]=DSP[
i][j][16];
k++; Thr[
i][j][
k]=DSP[
i][j][19];
k++;
171 Thr[
i][j][
k]=2*Thr_barrel[1];
k++; Thr[
i][j][
k]=2*Thr_barrel[4];
k++; Thr[
i][j][
k]=2*Thr_barrel[6];
k++; Thr[
i][j][
k]=2*Thr_barrel[9];
k++;
172 Thr[
i][j][
k]=2*Thr_barrel[11];
k++; Thr[
i][j][
k]=2*Thr_barrel[14];
k++; Thr[
i][j][
k]=2*Thr_barrel[16];
k++; Thr[
i][j][
k]=2*Thr_barrel[19];
k++;
173
174
175
176 Thr[
i][j][
k]=DSP[
i][j][0];
k++; Thr[
i][j][
k]=DSP[
i][j][3];
k++; Thr[
i][j][
k]=DSP[
i][j][5];
k++; Thr[
i][j][
k]=DSP[
i][j][8];
k++;
177 Thr[
i][j][
k]=DSP[
i][j][10];
k++; Thr[
i][j][
k]=DSP[
i][j][13];
k++; Thr[
i][j][
k]=DSP[
i][j][15];
k++; Thr[
i][j][
k]=DSP[
i][j][18];
k++;
178 Thr[
i][j][
k]=2*Thr_barrel[0];
k++; Thr[
i][j][
k]=2*Thr_barrel[3];
k++; Thr[
i][j][
k]=2*Thr_barrel[5];
k++; Thr[
i][j][
k]=2*Thr_barrel[8];
k++;
179 Thr[
i][j][
k]=2*Thr_barrel[10];
k++; Thr[
i][j][
k]=2*Thr_barrel[13];
k++; Thr[
i][j][
k]=2*Thr_barrel[15];
k++; Thr[
i][j][
k]=2*Thr_barrel[18];
k++;
180
181 }
182
183 }
184
185 for(
int i=2;
i<4;
i++) {
186
187 for(int j=0;j<64;j++) {
188
190
191
192
193 Thr[
i][j][
k]=DSP[
i][j][1];
k++; Thr[
i][j][
k]=DSP[
i][j][6];
k++;
194 Thr[
i][j][
k]=2*Thr_extbarrel[1];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[6];
k++;
195
196
197
198 Thr[
i][j][
k]=DSP[
i][j][0];
k++; Thr[
i][j][
k]=DSP[
i][j][3];
k++; Thr[
i][j][
k]=DSP[
i][j][5];
k++; Thr[
i][j][
k]=DSP[
i][j][8];
k++; Thr[
i][j][
k]=DSP[
i][j][10];
k++;
199 Thr[
i][j][
k]=2*Thr_extbarrel[0];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[3];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[5];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[8];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[10];
k++;
200
201
202
203 Thr[
i][j][
k]=DSP[
i][j][2];
k++; Thr[
i][j][
k]=DSP[
i][j][4];
k++; Thr[
i][j][
k]=DSP[
i][j][7];
k++; Thr[
i][j][
k]=DSP[
i][j][9];
k++;
204 Thr[
i][j][
k]=2*Thr_extbarrel[2];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[4];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[7];
k++; Thr[
i][j][
k]=2*Thr_extbarrel[9];
k++;
205
206 }
207
208 }
209
210 for(
int i=0;
i<4;
i++) {
211
212 for(int j=0;j<64;j++) {
213
215 <<
"TileMuId 0x" << std::hex << (
i+1)*0x100+j << std::dec <<
" 0";
216 *fl <<
"TileMuId 0x" << std::hex << (
i+1)*0x100+j << std::dec <<
" 0";
217
218 for(
int k=0;
k<40;
k++) {
219
221 <<
" " << Thr[
i][j][
k];
222 *fl <<
" " << Thr[
i][j][
k];
223
224 }
225
227 *fl << endl;
228
229 }
230
231 }
232
233
234 fl->close();
235
236 return StatusCode::SUCCESS;
237}
SG::ReadCondHandleKey< CaloNoise > m_totalNoiseKey
float round(const float toRound, const unsigned int decimals)