11 #include "nlohmann/json.hpp"
49 std::ifstream
fin(
file.c_str());
52 return StatusCode::FAILURE;
57 m_maskedChipsEc =
data[
"Endcap"].template get<std::array<std::array<std::vector<int>, 32>, 2>>();
60 for(
int j=0; j<75; j++) {
102 int idSide = idBarrelEndcap?1:-1;
105 if (element ==
nullptr)
continue;
107 for(
unsigned int istraw = 0; istraw < element->
nStraws(); istraw++) {
119 if (idLayerWheel == 1) i_chip+=21;
120 if (idLayerWheel == 2) i_chip+=54;
129 int idSide = idBarrelEndcap?2:-2;
136 if (element ==
nullptr)
continue;
138 for(
unsigned int istraw = 0; istraw < element->
nStraws(); istraw++) {
140 int tempStrawNumber =
EndcapStrawNumber(istraw, idStrawLayer, idLayerWheel, idPhiModule, idSide);
157 return StatusCode::SUCCESS;
167 int barrel_trigger_board[2][32][9] = {{{0}}};
168 int endcap_trigger_board[2][32][20] = {{{0}}};
171 int barrel_trigger_ttc[2][8] = {{0}};
172 int endcap_trigger_ttc[2][16] = {{0}};
179 for (
const auto trtRDO : *trtRDOs) {
182 if(!TRT_Collection) {
188 for (
const auto p_rdo : *TRT_Collection) {
192 Identifier TRT_Identifier = p_rdo->identify();
197 if(!p_lolum)
continue;
200 TRT_Identifier = p_lolum->
identify();
213 if (barrel_ec == 1 || barrel_ec == -1) {
214 int side = barrel_ec>0?1:0;
220 return StatusCode::FAILURE;
225 if(
std::find(maskedChips.begin(), maskedChips.end(), chip) != maskedChips.end())
229 barrel_trigger_board[
side][phi_module][board]++;
233 else if (barrel_ec == 2 || barrel_ec == -2) {
235 int side = barrel_ec>0?1:0;
242 if(
std::find(maskedChips.begin(), maskedChips.end(), chip) != maskedChips.end())
246 endcap_trigger_board[
side][phi_module][board]++;
255 for (
int i=0;
i<2;
i++) {
256 for (
int j=0; j<32; j++) {
257 for (
int k=0;
k<9;
k++) {
258 if (barrel_trigger_board[
i][j][
k]) {
259 barrel_trigger_ttc[
i][j%4]++;
262 for (
int k=0;
k<20;
k++) {
263 if (endcap_trigger_board[
i][j][
k]) {
264 endcap_trigger_ttc[
i][j%2]++;
270 unsigned int cableWord0 = 0;
273 for (
int i=0;
i<2;
i++) {
274 for (
int j=0; j<8; j++) {
279 for (
int j=0; j<16; j++) {
293 ATH_MSG_DEBUG(
"Stored TRT CTP object with bit " << std::dec << cableWord0);
295 return StatusCode::SUCCESS;
315 int list[] = {10, 11, 15, 9, 9, 11, 12, 13, 14};
319 for (
int i=0;
i<9;
i++) {
321 if (chip <
count)
return i+1;
322 else if (chip == 104)
return 9;
325 throw std::runtime_error(
"Board not found!");
343 static const int TripletOrientation[2][32] = {
356 else if (
side==-2) phi1=31-phi_stack,
side=0;
358 if (TripletOrientation[
side][phi1]){
360 if (strawLayerNumber < 8)strawNumber = strawNumber + 24*strawLayerNumber;
361 if (strawLayerNumber > 7)strawNumber = strawNumber + 24*(strawLayerNumber -8);
362 strawNumber = (192-1)*TripletOrientation[
side][phi1]+strawNumber*(1-2*TripletOrientation[
side][phi1]);
365 if (strawLayerNumber<8) strawLayerNumber =
int(strawNumber/24);
366 if (strawLayerNumber>7) strawLayerNumber =
int(strawNumber/24) + 8;
367 strawNumber = strawNumber%24;
374 if (
side==0) strawNumber = 23 - strawNumber;
382 int strawNumberNew=0;
384 if(LayerNumber<6 && strawLayerNumber>7) {
385 strawNumberNew=strawNumberNew+(384*LayerNumber);
386 strawNumberNew=strawNumberNew+192+(strawLayerNumber%8)+(strawNumber*8);
388 else if(LayerNumber<6 && strawLayerNumber<8) {
389 strawNumberNew=strawNumberNew+(384*LayerNumber);
390 strawNumberNew=strawNumberNew + (strawLayerNumber%8) + (strawNumber*8);
392 else if(LayerNumber>5 && strawLayerNumber>7) {
393 strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
394 strawNumberNew = strawNumberNew + 192 + (strawLayerNumber%8) + (8*strawNumber);
396 else if(LayerNumber>5 && strawLayerNumber<8) {
397 strawNumberNew = strawNumberNew + 2304 + 192*(LayerNumber-6);
398 strawNumberNew = strawNumberNew + (strawLayerNumber%8) + (8*strawNumber);
401 strawNumber=strawNumberNew;
407 int addToStrawNumber=0;
408 int addToStrawNumberNext=0;
417 strawNumber = addToStrawNumberNext - strawNumber-1;
424 }
else if(LayerNumber==1) {
425 strawLayerNumber+=19;
426 }
else if(LayerNumber==2) {
427 strawLayerNumber+=43;
429 return strawLayerNumber;