68 ATH_CHECK(trigRNNOutputColl.record (std::make_unique<xAOD::TrigRNNOutputContainer>(),
69 std::make_unique<xAOD::TrigRNNOutputAuxContainer>()));
76 if (roiCollection->size()==0) {
78 return StatusCode::SUCCESS;
84 <<
": Eta = " << (roiDescriptor)->
eta()
85 <<
", Phi = " << (roiDescriptor)->
phi());
88 std::vector<float> trththits{0,-999,0,-999,-999,-999};
99 std::vector<TRT_hit> hit;
102 double deltaEta= std::abs(roiDescriptor->
etaPlus()-roiDescriptor->
etaMinus());
109 float phiTolerance = 0.001;
110 float etaTolerance = 0.001;
119 float fineWedgeHalfWidth = coarseWedgeHalfWidth/
m_nBinFine;
127 if (trtDCC->size() == 0){
128 return StatusCode::SUCCESS;
131 InDet::TRT_DriftCircleContainer::const_iterator trtdriftContainerItr = trtDCC->begin();
132 InDet::TRT_DriftCircleContainer::const_iterator trtdriftContainerItrE = trtDCC->end();
134 for (; trtdriftContainerItr != trtdriftContainerItrE; ++trtdriftContainerItr) {
136 InDet::TRT_DriftCircleCollection::const_iterator trtItr = (*trtdriftContainerItr)->begin();
137 InDet::TRT_DriftCircleCollection::const_iterator trtEnd = (*trtdriftContainerItr)->end();
139 for(; trtItr!=trtEnd; ++trtItr){
147 float hphi = strawcenter.phi();
148 float heta = strawcenter.eta();
149 float R = strawcenter.perp();
151 if ((*trtItr)->highLevel()) hth =
true;
155 hit.push_back(
make_hit(hphi,R,hth));
163 float increment = 2*coarseWedgeHalfWidth;
164 for(
float roibincenter = startValue; roibincenter < endValue; roibincenter += increment){
166 if(hth) count_httrt_c.at(countbin) += 1.;
167 count_tottrt_c.at(countbin) += 1.;
173 ATH_MSG_VERBOSE (
"timeOverThreshold=" << (*trtItr)->timeOverThreshold()
174 <<
" highLevel=" << (*trtItr)->highLevel()
175 <<
" rawDriftTime=" << (*trtItr)->rawDriftTime()
178 <<
" layer_or_wheel=" <<
m_trtHelper->layer_or_wheel(ID)
181 <<
" scR=" << det->strawCenter(
m_trtHelper->straw(ID)).perp()
183 <<
" scEta=" << heta);
192 for (
size_t iw = 0; iw < count_httrt_c.size(); iw++){
193 if(maxHits <= count_httrt_c[iw]){
194 maxHits = count_httrt_c[iw];
200 float center_pos_phi=roiDescriptor->
phi()+(2*dist+1-
m_nBinCoarse)*coarseWedgeHalfWidth;
203 for(
size_t v=0;v<hit.size();v++){
206 float startValue = center_pos_phi - 3*coarseWedgeHalfWidth + fineWedgeHalfWidth;
207 float endValue = center_pos_phi + 3*coarseWedgeHalfWidth;
208 float increment = 2*fineWedgeHalfWidth;
209 for(
float roibincenter = startValue; roibincenter < endValue; roibincenter += increment){
211 if(hit[v].isHT) count_httrt.at(countbin) += 1.;
212 count_tottrt.at(countbin) += 1.;
224 for (
size_t iw = 0; iw < count_httrt.size(); iw++){
225 if(maxHits <= count_httrt[iw]){
226 maxHits = count_httrt[iw];
232 center_pos_phi+=(2*dist+1-3*
m_nBinFine)*fineWedgeHalfWidth;
235 int trthit=0, trthit_ht=0;
236 for(
size_t v=0;v<hit.size();v++){
238 if(hit[v].isHT) trthit_ht+=1;
244 trththits[0] = trthit_ht;
245 trththits[1] = (float)trthit_ht/trthit;
256 if(binNumber >= 0 && binNumber < (
int)count_httrt.size()){
257 trthit += count_tottrt.at(binNumber);
258 trthit_ht += count_httrt.at(binNumber);
263 trththits[2] = trthit_ht;
264 trththits[3] = (float)trthit_ht/trthit;
267 trththits[4]=roiDescriptor->
eta();
268 trththits[5]=roiDescriptor->
phi();
278 trigRNNOutputColl->push_back(rnnOutput);
281 ATH_MSG_DEBUG(
"REGTEST: returning an xAOD::TrigRNNOutputContainer with size "<< trigRNNOutputColl->size() <<
".");
283 return StatusCode::SUCCESS;