7 #include "GaudiKernel/IToolSvc.h"
122 return StatusCode::SUCCESS;
128 const EventContext& ctx = Gaudi::Hive::currentContext();
135 int run = ctx.eventID().run_number();
136 uint64_t event = ctx.eventID().event_number();
143 IToolSvc* p_toolSvc = 0;
148 return(StatusCode::FAILURE);
152 sc = p_toolSvc->retrieveTool(
"TBCaloCoordinate",
m_coord);
157 return(StatusCode::FAILURE);
165 sc = p_toolSvc->retrieveTool(
"TBCondRunParTool",
m_runpar);
170 return(StatusCode::FAILURE);
193 return StatusCode::SUCCESS;
203 float energy = (0.3/41.)*Bdltot * 1000;
212 float Bend3_low[2] = {0.0079347, 0.021813};
213 float Bend3_high[4] = {0.437329, 0.0212849, 0.00000355516, -0.0000000147542};
219 if (
current <= 824.12) Bdl3 = Bend3_low[0] + Bend3_low[1]*
current;
228 float Bend4_low[2] = {0.00786406, 0.021814};
229 float Bend4_high[4] = {0.434258, 0.0212899, 0.00000356113, -0.0000000147379};
235 if (
current <= 824.12) Bdl4 = Bend4_low[0] + Bend4_low[1]*
current;
244 float coll3_opening = (fabs(coll3_down) + fabs(coll3_up))/2.0;
245 float coll9_opening = (fabs(coll9_down) + fabs(coll9_up))/2.0;
247 float errcoll = sqrt(coll3_opening*coll3_opening + coll9_opening*coll9_opening)*(1./27);
255 float err_abs = sqrt(fac*fac + 0.5*0.5);
266 float Bdl_tot = Bdl3 + Bdl4;
268 float errBdl3 = (
GetBdl3(currB3 + 0.1) -
GetBdl3(currB3 - 0.1))/2;
269 float errBdl4 = (
GetBdl4(currB4 + 0.1) -
GetBdl4(currB4 - 0.1))/2;
270 const float fac3 = errBdl3/Bdl3;
271 const float fac4 = errBdl4/Bdl4;
272 float errBdl = sqrt(fac3*fac3 + fac4*fac4)*Bdl_tot;
274 float resField = sqrt(0.0010*0.0010 + 0.0010*0.0010);
276 errBdl = sqrt(errBdl*errBdl + resField*resField + Bdl_tot*0.0003 * Bdl_tot*0.0003)/Bdl_tot*100;
287 float Bdl_B3 =
GetBdl3(currB3);
288 float Bdl_B4 =
GetBdl4(currB4);
290 float B2dl_B3 = (Bdl_B3 * Bdl_B3)*(1./(Lmag*9));
291 float B2dl_B4 = (Bdl_B4 * Bdl_B4)*(1./(Lmag*9));
292 float B2dl_tot = B2dl_B3 + B2dl_B4;
294 float B5suB34 = 0.19;
295 float B6suB34 = 0.22;
296 float B56lB34 = 0.25;
298 float B2dl_B5 = (B2dl_B3 + B2dl_B4)*B5suB34*B5suB34*B56lB34;
299 float B2dl_B6 = (B2dl_B3 + B2dl_B4)*B6suB34*B6suB34*B56lB34;
301 float loss = 0.00000127*
energy*
energy*(3*B2dl_tot/2 + B2dl_B5 + B2dl_B6);
309 float errloss = loss * 0.02;
317 return StatusCode::SUCCESS;
334 return StatusCode::SUCCESS;
345 if (((
run < 2101225) && (
run >= 2101022)) || ((
run < 2102165) && (
run >= 2102003)))
370 float coll_equip[24];
411 float quad_equip[22];
412 float trim_equip[10];
416 for (
int i=0;
i<nc_quad;
i++)
426 folder =
"/TILE/DCS/SYSTEM1/BEAM";
431 folder =
"/TILE/DCS/SYSTEM1/BEAM";
443 (*m_quad_file)[
i] = quad_file[
i];
444 (*m_quad_equip)[
i] = quad_equip[
i];
450 for (
int i=0;
i<nc_bend;
i++)
459 folder =
"/TILE/DCS/SYSTEM1/BEAM";
463 folder =
"/TILE/DCS/TILE_LV_62/BEAM";
475 (*m_bend_file)[
i] = bend_file[
i];
476 (*m_bend_equip)[
i] = bend_equip[
i];
496 for (
int i=0;
i<nc_trim;
i++)
505 folder =
"/TILE/DCS/SYSTEM1/BEAM";
509 folder =
"/TILE/DCS/TILE_LV_62/BEAM";
521 (*m_trim_file)[
i] = trim_file[
i];
522 (*m_trim_equip)[
i] = trim_equip[
i];
528 for (
int i=0;
i<nc_coll;
i++)
538 folder =
"/TILE/DCS/SYSTEM1/BEAM";
542 folder =
"/TILE/DCS/TILE_LV_62/BEAM";
554 (*m_coll_file)[
i] = coll_file[
i];
555 (*m_coll_equip)[
i] = coll_equip[
i];
559 for (
int i=0;
i<nc_quad;
i++)
563 for (
int i=0;
i<nc_bend;
i++)
567 for (
int i=0;
i<nc_trim;
i++)
571 for (
int i=0;
i<nc_coll;
i++)
582 for (
int i=0;
i<nc_quad;
i++)
586 for (
int i=0;
i<nc_bend;
i++)
590 for (
int i=0;
i<nc_trim;
i++)
594 for (
int i=0;
i<nc_coll;
i++)
613 for (
int i=0;
i<nc_bend;
i++)
620 folder =
"/TILE/DCS/SYSTEM1/BEAM";
624 folder =
"/TILE/DCS/TILE_LV_62/BEAM";
633 for (
int i=0;
i<nc_coll;
i++)
640 folder =
"/TILE/DCS/SYSTEM1/BEAM";
644 folder =
"/TILE/DCS/TILE_LV_62/BEAM";
671 m_B8_Bdl = 0.00530982*bend_equip[7] + 0.00000328502*bend_equip[7]*bend_equip[7] -
672 0.00000000532397*bend_equip[7]*bend_equip[7]*bend_equip[7]-
673 0.00000000000276483*bend_equip[7]*bend_equip[7]*bend_equip[7]*bend_equip[7]+
674 0.000000000000003368*bend_equip[7]*bend_equip[7]*bend_equip[7]*bend_equip[7]*bend_equip[7];
684 float coll12_opening = (fabs(coll_equip[11]) + fabs(coll_equip[23]))/2.0;