63 string TileMuIdFile =
"TileMuId_thresholds.dat";
64 fstream *fl =
new fstream(TileMuIdFile.c_str(), fstream::app| fstream::out);
68 ATH_MSG_INFO (
" TileMuId file didn't open succesfully" );
71 float noise[4][64][24]; memset(noise,0,
sizeof(noise));
73 int DSP[4][64][40]; memset(DSP,0,
sizeof(DSP));
75 int Thr[4][64][40]; memset(Thr,0,
sizeof(Thr));
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
83 int Thr_extbarrel[12] = {
84 1050, 2100, 210, 1380, 1140, 1440, 2370, 1230, 1500, 1380, 1680, 1680
89 m_calo_id->calo_cell_hash_range(3, caloCellMin, caloCellMax);
93 ATH_MSG_INFO (
"Start loop over TileCal cells " << caloCellMax-caloCellMin );
97 for (
unsigned int i=caloCellMin;i<caloCellMax;i++) {
107 return StatusCode::FAILURE;
112 float cell_noise = totalNoise->getNoise(
id,gain);
114 if(
m_calo_id->is_tile_barrel(
id) &&
m_calo_id->is_tile_negative(
id) ) noise[1][module][idSubHash-22*module] = 3*cell_noise;
116 if(
m_calo_id->is_tile_barrel(
id) &&
m_calo_id->is_tile_positive(
id) ) noise[0][module][idSubHash-(23*module+22*64)] = 3*cell_noise;
118 if(
m_calo_id->is_tile_extbarrel(
id) &&
m_calo_id->is_tile_negative(
id) ) noise[3][module][idSubHash-(12*module+23*64+22*64)] = 3*cell_noise;
120 if(
m_calo_id->is_tile_extbarrel(
id) &&
m_calo_id->is_tile_positive(
id) ) noise[2][module][idSubHash-(12*module+12*64+23*64+22*64)] = 3*cell_noise;
127 for(
int j=0;j<64;j++) {
128 for(
int k=0;k<20;k++) {
129 DSP[i][j][k] = (int)round(2*noise[i][j][k]);
136 for(
int j=0;j<64;j++) {
137 for(
int k=0;k<2;k++) {
138 DSP[i][j][k] = (int)round(2*noise[i][j][k]);
141 DSP[i][j][k] = (int)round(2*noise[0][j][k]);
142 for(
int k=2;k<19;k++) {
143 DSP[i][j][k+1] = (int)round(2*noise[i][j][k]);
148 for(
int i=2;i<4;i++) {
149 for(
int j=0;j<64;j++) {
150 for(
int k=0;k<11;k++) {
151 DSP[i][j][k] = (int)round(2*noise[i][j][k]);
156 for(
int i=0;i<2;i++) {
158 for(
int j=0;j<64;j++) {
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++;
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++;
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++;
185 for(
int i=2;i<4;i++) {
187 for(
int j=0;j<64;j++) {
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++;
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++;
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++;
210 for(
int i=0;i<4;i++) {
212 for(
int j=0;j<64;j++) {
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";
218 for(
int k=0;k<40;k++) {
221 <<
" " << Thr[i][j][k];
222 *fl <<
" " << Thr[i][j][k];
236 return StatusCode::SUCCESS;