9 bool isInNoiseArea(
float r,
float zz) {
11 if(zz>-3.5 && zz<-1.5)
return true;
12 if(zz>38. && zz<40.)
return true;
13 if(zz>79.5 && zz<81.5)
return true;
14 if(zz>121. && zz<123.)
return true;
15 if(zz>162. && zz<165.)
return true;
16 if(zz>204. && zz<206.)
return true;
17 if(zz>245.5 && zz<247.5)
return true;
18 if(zz>-45. && zz<-43.5)
return true;
19 if(zz>-86.5 && zz<-84.5)
return true;
20 if(zz>-128. && zz<-126.)
return true;
21 if(zz>-170. && zz<-167.)
return true;
22 if(zz>-211. && zz<-209.)
return true;
23 if(zz>-252.5 && zz<-250.5)
return true;
42 return StatusCode::SUCCESS;
51 int pixCLBeforeCuts{};
60 int pixModulesOverThreshold{};
61 std::complex<double> pixQ2TotSum;
64 ATH_MSG_DEBUG(
"Successfully retrieved pixel SP container of size " << pixelSP->
size());
66 for (
const auto pixSPointColl : *pixelSP) {
67 if (pixSPointColl ==
nullptr) {
77 int nPixSP{}, nPixCL_1{}, nPixCL_2{}, nPixCLmin3{}, nPixCLnoToT{};
78 std::complex<double> pixQ2sum;
80 for (
const auto pSP : *pixSPointColl) {
83 if ( isInNoiseArea(pSP->r(), pSP->globalPosition()[
Amg::z]) ) {
87 auto[hashId1, hashId2] = pSP->elementIdList();
89 ATH_MSG_VERBOSE(
"Module " << hashId1 <<
" in exclusion list, skipping the SP");
96 const int pixclToT = pixClust->
totalToT();
99 pixQ2sum += std::polar(1.0, 2.0*pSP->phi());
102 if (pixClSize == 1) {
105 if (pixClSize == 2) {
108 if (pixClSize >= 3) {
116 ATH_MSG_DEBUG(
" This pixel module : " << pixid <<
" produced " << nPixSP <<
" pix spacepoints. Ignoring these spacepoints as the maximum allowed spacepoints per module is " <<
m_pixModuleThreshold);
117 pixModulesOverThreshold++;
120 pixQ2TotSum += pixQ2sum;
121 pixCLnoToT += nPixCLnoToT;
124 pixCLmin3 += nPixCLmin3;
126 pixCLBarrel += nPixSP;
127 ATH_MSG_VERBOSE(
" Formed " << nPixSP <<
" PIX spacepoints in PIX Barrel after ToT cut.");
128 }
else if (
bec == 2) {
129 pixCLEndcapA += nPixSP;
130 ATH_MSG_VERBOSE(
" Formed " << nPixSP <<
" PIX spacepoints in PIX ECA after ToT cut.");
131 }
else if (
bec == -2) {
132 pixCLEndcapC += nPixSP;
133 ATH_MSG_VERBOSE(
" Formed " << nPixSP <<
" PIX spacepoints in PIX ECC after ToT cut.");
137 const float pixQ2mod = pixCLnoToT !=0 ? std::abs(pixQ2TotSum)/pixCLnoToT : 0.0;
138 ATH_MSG_DEBUG(
"REGTEST : Formed " << pixCLBeforeCuts <<
" pixel spacepoints in total before cuts.");
139 ATH_MSG_DEBUG(
"REGTEST : " << pixCL_1 <<
" have cl size == 1 in total.");
140 ATH_MSG_DEBUG(
"REGTEST : " << pixCL_2 <<
" have cl size == 2 in total.");
141 ATH_MSG_DEBUG(
"REGTEST : " << pixCLmin3 <<
" have cl size >= 3 in total.");
142 ATH_MSG_DEBUG(
"REGTEST : Formed " << pixCLnoToT <<
" pixel spacepoints without ToT cut in total.");
143 ATH_MSG_DEBUG(
"REGTEST : Formed " << pixCL <<
" pixel spacepoints after ToT cut in total.");
144 ATH_MSG_DEBUG(
"REGTEST : Formed " << pixCLBarrel <<
" SP in pixel barrel in total.");
145 ATH_MSG_DEBUG(
"REGTEST : Formed " << pixCLEndcapA <<
" SP in pixel ECA in total.");
146 ATH_MSG_DEBUG(
"REGTEST : Formed " << pixCLEndcapC <<
" SP in pixel ECC in total.");
152 ATH_MSG_DEBUG(
"Successfully retrieved SCT SP container of size " << SctSP->
size());
160 int sctModulesOverThreshold{};
162 for (
const auto SctSPointColl : *SctSP) {
163 if (SctSPointColl ==
nullptr) {
167 nSctSP = (SctSPointColl)->
size();
172 <<
" with sctid module " << Sctid);
177 ATH_MSG_DEBUG(
" This SCT module : " << Sctid <<
" produced " << nSctSP <<
" SCT spacepoints. Ignoring these spacepoints as the number of allowed spacepoints per module is between"
179 sctModulesOverThreshold++;
182 sctSPBarrel += nSctSP;
184 }
else if (
bec == 2) {
185 sctSPEndcapA += nSctSP;
187 }
else if (
bec == -2) {
188 sctSPEndcapC += nSctSP;
194 sctSP = sctSPEndcapC + sctSPBarrel + sctSPEndcapA;
196 ATH_MSG_DEBUG(
"REGTEST : Formed " << sctSP <<
" sct spacepoints in total.");
197 ATH_MSG_DEBUG(
"REGTEST : Formed " << sctSPEndcapC <<
" sct ECC spacepoints in total.");
198 ATH_MSG_DEBUG(
"REGTEST : Formed " << sctSPBarrel <<
" sct Barr spacepoints in total.");
199 ATH_MSG_DEBUG(
"REGTEST : Formed " << sctSPEndcapA <<
" sct ECA spacepoints in total.");
204 auto spacePoints = std::make_unique<xAOD::TrigCompositeContainer>();
205 auto spacePointsAux = std::make_unique<xAOD::TrigCompositeAuxContainer>();
206 spacePoints->setStore(spacePointsAux.get());
209 spacePoints->push_back(spCounts);
211 std::vector<std::reference_wrapper<Monitored::IMonitoredVariable>> monitoredVariables;
213 #define SAVE_AND_MONITOR(__VARNAME) \
214 spCounts->setDetail(#__VARNAME, __VARNAME); \
215 auto mon_##__VARNAME = Monitored::Scalar(#__VARNAME, __VARNAME); \
216 monitoredVariables.emplace_back(mon_##__VARNAME);
231 #undef SAVE_AND_MONITOR
234 monitoredVariables.emplace_back(mon_pixCLBeforeCuts);
235 auto mon_pixModulesOverThreshold =
Monitored::Scalar<int>(
"pixModulesOverThreshold", pixModulesOverThreshold);
236 monitoredVariables.emplace_back(mon_pixModulesOverThreshold);
237 auto mon_sctModulesOverThreshold =
Monitored::Scalar<int>(
"sctModulesOverThreshold", sctModulesOverThreshold);
238 monitoredVariables.emplace_back(mon_sctModulesOverThreshold);
241 ATH_CHECK(spacePointHandle.
record(std::move(spacePoints), std::move(spacePointsAux)));
243 return StatusCode::SUCCESS;