ATLAS Offline Software
TRT_TrackSegmentsMaker_ATLxk.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 // Implementation file for class TRT_TrackSegmentsMaker_ATLxk
8 // (c) ATLAS Detector software
10 // AlgTool used for TRT_DriftCircleOnTrack object production
12 // Version 1.0 21/04/2004 I.Gavrilenko
14 
16 
19 #include "TrkSurfaces/DiscBounds.h"
25 #include "StoreGate/ReadHandle.h"
26 #include <cmath>
28 // Constructor
30 
32 (const std::string& t,const std::string& n,const IInterface* p)
33  : AthAlgTool(t,n,p)
34 {
35  declareInterface<ITRT_TrackSegmentsMaker>(this);
36 }
37 
39 // Destructor
42 = default;
43 
44 
45 
47 // Initialisation
49 
51 {
53 
54  // Initiate magnetic field properties
55  //
57 
58  // Initialize ReadHandle
59  //
61 
62  // Get tool for track extension to TRT
63  //
64  if(m_extensionTool.retrieve().isFailure()) {
65  ATH_MSG_FATAL("Failed to retrieve tool "<< m_extensionTool);
66  return StatusCode::FAILURE;
67  }
68  ATH_MSG_DEBUG("Retrieved tool " << m_extensionTool);
69 
70  // PRD-to-track association (optional)
73 
74  // TRT
75  if (detStore()->retrieve(m_trtid, "TRT_ID").isFailure()) {
76  ATH_MSG_FATAL("Could not get TRT ID helper");
77  return StatusCode::FAILURE;
78  }
79 
80  //Define set of private variables
81  m_Ts = m_nPhi*m_nMom ;
82  m_Psi = 2./float(m_nMom-1) ;
83  m_Psi128 = m_Psi*128. ;
84  m_Ns128 = m_nPhi*128 ;
85  m_A = float(m_nPhi)/(2.*M_PI) ;
86  m_Ai = 1./m_A ;
87  m_histsize = (m_nPhi*m_nMom*26/4) ;
88 
89  // Get output print level
90  //
91  m_outputlevel = msg().level()-MSG::DEBUG;
92  return sc;
93 }
94 
96 // Finalize
98 
100 {
101  StatusCode sc = AlgTool::finalize(); return sc;
102 }
103 
105 // Initialize tool for new event
107 
108 std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>
109 InDet::TRT_TrackSegmentsMaker_ATLxk::newEvent(const EventContext &ctx) const
110 {
111 
112  const float pi2 = 2.*M_PI;
113 
115 
116  // Get drift circles collection
117  //
119  if(not trtcontainer.isValid()) {
120  std::stringstream msg;
121  msg << name() << " Missing TRT_DriftCircleContainer " << m_trtname.key();
122  throw std::runtime_error(msg.str());
123  }
124 
125  SG::ReadHandle<Trk::PRDtoTrackMap> prd_to_track_map;
126  const Trk::PRDtoTrackMap *prd_to_track_map_cptr = nullptr;
127  if (!m_prdToTrackMap.key().empty()) {
129  if (!prd_to_track_map.isValid()) {
130  ATH_MSG_ERROR("Failed to read PRD to track association map: " << m_prdToTrackMap.key());
131  }
132  prd_to_track_map_cptr = prd_to_track_map.cptr();
133  }
134 
135 
136  std::unique_ptr<TRT_TrackSegmentsMaker_ATLxk::EventData>
137  event_data = std::make_unique<TRT_TrackSegmentsMaker_ATLxk::EventData>(trtcontainer.cptr(), condData.m_cirsize);
138 
139  // Initiate extension tool
140  //
141  event_data->m_extEventData = m_extensionTool->newEvent(ctx);
142 
143  InDet::TRT_DriftCircleContainer::const_iterator
144  w = trtcontainer->begin(),we = trtcontainer->end();
145  int n = 0;
146  if(w!=we) {
147 
148  eraseHistogramm(*event_data);
149 
150  for(; w!=we; ++w) {
151 
152  if(n >= condData.m_cirsize) break;
153 
154  Identifier ID = (*w)->identify();
155  int be = m_trtid->barrel_ec (ID);
156  int lw = m_trtid->layer_or_wheel(ID);
157  int sl = m_trtid->straw_layer (ID);
158 
159  int b; be < 0 ? b = be+2 : b = be+1;
160  int l = condData.m_flayers[b][lw]+sl;
161  unsigned int sb = condData.m_begin[b][l];
162  unsigned int se = condData.m_end [b][l];
163  unsigned int ad = 1000*b+l;
164 
165  // Loop through all clusters from given detector element
166  //
167  InDet::TRT_DriftCircleCollection::const_iterator
168  c = (*w)->begin(), ce = (*w)->end();
169  for(; c!=ce; ++c) {
170 
171  if(prd_to_track_map_cptr && prd_to_track_map_cptr->isUsed(*(*c))) continue;
172  if(m_removeNoise && (*c)->isNoise() ) continue;
173 
174  if(n >= condData.m_cirsize) break;
175 
176  int ns = m_trtid->straw((*c)->identify());
177  const Amg::Vector3D& sc = (*c)->detectorElement()->strawCenter(ns);
178  float Fs = std::atan2(sc.y(),sc.x()); if(Fs<0.) Fs+=pi2;
179  event_data->m_circles[n].set((*c),Fs,ad);
180 
181  // Loop through all dz/dr for given cluster
182  //
183  for(unsigned int s=sb; s<=se; ++s) fillHistogramm (Fs,s,*event_data);
184  ++n;
185  }
186  }
187  }
188  event_data->m_clusters = n;
189  return std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>(event_data.release());
190 }
191 
193 // Initialize tool for new region
195 
196 std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>
198 (const EventContext& ctx, const std::vector<IdentifierHash>& vTRT) const
199 {
200  const float pi2 = 2.*M_PI;
201 
203 
204  // Get drift cilrcles collection
205  //
207  if(not trtcontainer.isValid()) {
208  ATH_MSG_DEBUG("Could not get TRT_DriftCircleContainer");
209  }
210 
211  SG::ReadHandle<Trk::PRDtoTrackMap> prd_to_track_map;
212  const Trk::PRDtoTrackMap *prd_to_track_map_cptr = nullptr;
213  if (!m_prdToTrackMap.key().empty()) {
215  if (!prd_to_track_map.isValid()) {
216  ATH_MSG_ERROR("Failed to read PRD to track association map: " << m_prdToTrackMap.key());
217  }
218  prd_to_track_map_cptr = prd_to_track_map.cptr();
219  }
220 
221  std::unique_ptr<TRT_TrackSegmentsMaker_ATLxk::EventData>
222  event_data = std::make_unique<TRT_TrackSegmentsMaker_ATLxk::EventData>(trtcontainer.cptr(), condData.m_cirsize);
223 
224  if(trtcontainer.isValid()) {
225  // Initiate extension tool
226  //
227  event_data->m_extEventData = m_extensionTool->newEvent(ctx);
228 
229  eraseHistogramm(*event_data);
230 
231  std::vector<IdentifierHash>::const_iterator d=vTRT.begin(),de=vTRT.end();
232  int n = 0;
233  for(; d!=de; ++d) {
234 
235  const auto *w = trtcontainer->indexFindPtr((*d));
236 
237  if(w!=nullptr) {
238 
239  Identifier ID = w->identify();
240  int be = m_trtid->barrel_ec (ID);
241  int lw = m_trtid->layer_or_wheel(ID);
242  int sl = m_trtid->straw_layer (ID);
243 
244  int b; be < 0 ? b = be+2 : b = be+1;
245  int l = condData.m_flayers[b][lw]+sl;
246  unsigned int sb = condData.m_begin[b][l];
247  unsigned int se = condData.m_end [b][l];
248  unsigned int ad = 1000*b+l;
249 
250  InDet::TRT_DriftCircleCollection::const_iterator
251  c = w->begin(), ce = w->end();
252 
253  for(; c!=ce; ++c) {
254 
255  if(prd_to_track_map_cptr && prd_to_track_map_cptr->isUsed(*(*c))) continue;
256  if(m_removeNoise && (*c)->isNoise() ) continue;
257 
258  if(n >= condData.m_cirsize) break;
259 
260  int ns = m_trtid->straw((*c)->identify());
261  const Amg::Vector3D& sc = (*c)->detectorElement()->strawCenter(ns);
262  float Fs = std::atan2(sc.y(),sc.x()); if(Fs<0.) Fs+=pi2;
263  event_data->m_circles[n].set((*c),Fs,ad);
264 
265  // Loop through all dz/dr for given cluster
266  //
267  for(unsigned int s=sb; s<=se; ++s) fillHistogramm (Fs,s,*event_data);
268  ++n;
269  }
270  }
271  }
272  event_data->m_clusters = n;
273  }
274  return std::unique_ptr<InDet::ITRT_TrackSegmentsMaker::IEventData>( event_data.release() );
275 }
276 
278 // Inform tool about end of event or region investigation
280 
282 {
283  if (msgLvl(MSG::DEBUG)) {
286  dumpEvent(msg(MSG::DEBUG),event_data);
288  msg(MSG::DEBUG) << endmsg;
289  }
290 }
291 
293 // Methods for seeds production without vertex constraint
295 void InDet::TRT_TrackSegmentsMaker_ATLxk::find(const EventContext &ctx,
298 {
301 
302  event_data.m_sizebin_iterator = event_data.m_sizebin.rbegin();
303 
304  if(event_data.m_clusters<m_clustersCut) return;
305 
307 
308  event_data.m_clusterSegment.clear();
309  event_data.m_qualitySegment.clear();
310 
311  unsigned int mc = event_data.m_clusters;
312 
313  for(unsigned int n=0; n!=mc; ++n) {
314 
315  unsigned int b = event_data.m_circles[n].buffer();
316  unsigned int l = event_data.m_circles[n].layer ();
317  unsigned int sb = condData.m_begin[b][l];
318  unsigned int se = condData.m_end [b][l];
319 
320  // Loop through all dz/dr for given cluster
321  //
322  unsigned char max = 0;
323  unsigned int maxbin = 0;
324 
325  for(unsigned int s=sb; s<=se; ++s) {
326  analyseHistogramm(max,maxbin,event_data.m_circles[n].phi(),s,event_data);
327  }
328 
329  if(int(max) > m_clustersCut) {
330  event_data.m_bincluster.insert(std::make_pair(localMaximum(maxbin,event_data),n));
331  }
332  }
333 
335  bc,bce =event_data.m_bincluster.end();
336 
337  unsigned int nbins = 0 ;
338  unsigned int fbin = 99999999;
339  for(bc = event_data.m_bincluster.begin(); bc!=bce; ++bc) {
340 
341  if((*bc).first==fbin) ++nbins;
342  else {
343  if(fbin!=99999999 && nbins>=5) event_data.m_sizebin.insert(std::make_pair(nbins,fbin));
344  fbin=(*bc).first; nbins = 1;
345  }
346  }
347  if(fbin!=99999999 && nbins>=5) event_data.m_sizebin.insert(std::make_pair(nbins,fbin));
348  event_data.m_sizebin_iterator = event_data.m_sizebin.rbegin();
349 
350  // @TODO add to event data
351  SG::ReadHandle<Trk::PRDtoTrackMap> prd_to_track_map;
352  const Trk::PRDtoTrackMap *prd_to_track_map_cptr = nullptr;
353  if (!m_prdToTrackMap.key().empty()) {
355  if (!prd_to_track_map.isValid()) {
356  ATH_MSG_ERROR("Failed to read PRD to track association map: " << m_prdToTrackMap.key());
357  }
358  prd_to_track_map_cptr = prd_to_track_map.cptr();
359  }
360 
361  // Local reconstruction and track segments production
362  //
363  while(event_data.m_sizebin_iterator!=event_data.m_sizebin.rend()) {
364 
365  unsigned int bin =(*event_data.m_sizebin_iterator++).second;
366  findLocaly(ctx, bin,prd_to_track_map_cptr, event_data, used);
367  }
368 
369  // Final segments preparation
370  //
371  segmentsPreparation(event_data);
372 
373  event_data.m_segiterator = event_data.m_segments.begin();
374 }
375 
377 // Pseudo iterator
379 
381 {
384 
385  if(event_data.m_segiterator!=event_data.m_segments.end()) return (*event_data.m_segiterator++);
386  return nullptr;
387 }
388 
390 // Dumps relevant information into the MsgStream
392 
393 MsgStream& InDet::TRT_TrackSegmentsMaker_ATLxk::dump( MsgStream& out ) const
394 {
395  out<<std::endl;
396  return dumpConditions(out);
397 }
398 
400 // Dumps conditions information into the MsgStream
402 
404 {
405 
407 
408  std::string fieldmode[9] ={"NoField" ,"ConstantField","SolenoidalField",
409  "ToroidalField" ,"Grid3DField" ,"RealisticField" ,
410  "UndefinedField","AthenaField" , "?????" };
411 
413  if(mode<0 || mode>8 ) mode = 8;
414 
415  int n = 62-fieldmode[mode].size();
416  std::string s3; for(int i=0; i<n; ++i) s3.append(" "); s3.append("|");
417 
418  n = 62-m_trtname.key().size();
419  std::string s4; for(int i=0; i<n; ++i) s4.append(" "); s4.append("|");
420 
421  n = 62-m_extensionTool.type().size();
422  std::string s7; for(int i=0; i<n; ++i) s7.append(" "); s7.append("|");
423 
424 
425  out<<"|----------------------------------------------------------------------"
426  <<"-------------------|"
427  <<std::endl;
428  out<<"| Tool tracks extension | "<<m_extensionTool.type()<<s7<<std::endl;
429  out<<"| Magnetic field mode | "<<fieldmode[mode] <<s3<<std::endl;
430  out<<"| TRT container | "<<m_trtname.key().size() <<s4<<std::endl;
431  out<<"| Min. number straws | "
432  <<std::setw(12)<<m_clustersCut
433  <<" |"<<std::endl;
434  out<<"| Number neg. bar. layers | "
435  <<std::setw(12)<<condData.m_nlayers[1]
436  <<" |"<<std::endl;
437  out<<"| Number pos. bar. layers | "
438  <<std::setw(12)<<condData.m_nlayers[2]
439  <<" |"<<std::endl;
440  out<<"| Number neg. end. layers | "
441  <<std::setw(12)<<condData.m_nlayers[0]
442  <<" |"<<std::endl;
443  out<<"| Number pos. end. layers | "
444  <<std::setw(12)<<condData.m_nlayers[3]
445  <<" |"<<std::endl;
446  out<<"| Number neg. bar. straws | "
447  <<std::setw(12)<<condData.m_nstraws[1]
448  <<" |"<<std::endl;
449  out<<"| Number pos. bar. straws | "
450  <<std::setw(12)<<condData.m_nstraws[2]
451  <<" |"<<std::endl;
452  out<<"| Number neg. end. straws | "
453  <<std::setw(12)<<condData.m_nstraws[0]
454  <<" |"<<std::endl;
455  out<<"| Number pos. end. straws | "
456  <<std::setw(12)<<condData.m_nstraws[3]
457  <<" |"<<std::endl;
458  out<<"| Number azimut. channels | "
459  <<std::setw(12)<<m_nPhi
460  <<" |"<<std::endl;
461  out<<"| Number moment. channels | "
462  <<std::setw(12)<<m_nMom
463  <<" |"<<std::endl;
464  out<<"| Number histog. channels | "
465  <<std::setw(12)<<m_histsize
466  <<" |"<<std::endl;
467  out<<"| Number cluster links | "
468  <<std::setw(12)<<condData.m_cirsize
469  <<" |"<<std::endl;
470  out<<"| Use PRD-to-track assoc.?| "
471  <<std::setw(12)<< (!m_prdToTrackMap.key().empty() ? "yes" : "no ")
472  <<" |"<<std::endl;
473  out<<"| Remove noise ? | "
474  <<std::setw(12)<<m_removeNoise
475  <<" |"<<std::endl;
476  out<<"|----------------------------------------------------------------------"
477  <<"-------------------|"
478  <<std::endl;
479  return out;
480 }
481 
483 // Dumps event information into the MsgStream
485 
488 {
491  out<<"|----------------------------------------------------------------------"
492  <<"-------------------|"
493  <<std::endl;
494  out<<"| Number drift circles | "
495  <<std::setw(12)<<event_data.m_clusters
496  <<" |"<<std::endl;
497  out<<"| Number local calls | "
498  <<std::setw(12)<<event_data.m_nlocal
499  <<" |"<<std::endl;
500  out<<"| Number found segments | "
501  <<std::setw(12)<<event_data.m_nsegments
502  <<" |"<<std::endl;
503  out<<"| Number save segments | "
504  <<std::setw(12)<<event_data.m_segments.size()
505  <<" |"<<std::endl;
506  out<<"|----------------------------------------------------------------------"
507  <<"-------------------|"
508  <<std::endl;
509  return out;
510 }
511 
513 // Dumps relevant information into the ostream
515 
516 std::ostream& InDet::TRT_TrackSegmentsMaker_ATLxk::dump( std::ostream& out ) const
517 {
518  return out;
519 }
520 
522 // Erase histogramm
524 
526 {
527  for(int i=0; i!=m_histsize; i+=10) {
528 
529  event_data.m_U.H4[i ]=0;
530 
531  event_data.m_U.H4[i+1]=0;
532  event_data.m_U.H4[i+2]=0;
533  event_data.m_U.H4[i+3]=0;
534  event_data.m_U.H4[i+4]=0;
535  event_data.m_U.H4[i+5]=0;
536  event_data.m_U.H4[i+6]=0;
537  event_data.m_U.H4[i+7]=0;
538  event_data.m_U.H4[i+8]=0;
539  event_data.m_U.H4[i+9]=0;
540  }
541 }
542 
544 // Fill histogramm
546 
548 (float Fs,int s, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
549 {
551 
552  int s0 = condData.m_ndzdr[s]*m_Ts;
553  int f = int((Fs*m_A-condData.m_slope[s])*128.); if(f<0) f+=m_Ns128;
554  int sf = condData.m_islope[s];
555 
556  // Loop through all momentum slopes
557  //
558  for(int i=s0; i!=s0+m_Ts; i+=m_nPhi) {
559  int k =(f>>7); f+=sf; k<m_nPhi ? ++event_data.m_U.H[k+i] : ++event_data.m_U.H[k+i-m_nPhi];
560  }
561 }
562 
563 
565 // Analyse histogramm
567 
569 (unsigned char& max,unsigned int& maxbin,float Fs,int s, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
570 {
572 
573  int s0 = condData.m_ndzdr[s]*m_Ts;
574  int f = int((Fs*m_A-condData.m_slope[s])*128.); if(f<0) f+=m_Ns128;
575  int sf = condData.m_islope[s];
576 
577  // Loop through all momentum slopes
578  //
579  for(int i=s0; i!=s0+m_Ts; i+=m_nPhi) {
580  int k =(f>>7); f+=sf; if(k>=m_nPhi) k-=m_nPhi;
581  if(event_data.m_U.H[k+i] > max) max = event_data.m_U.H[maxbin = k+i];
582  }
583 }
584 
586 // TRT seeds production
588 
590  unsigned int bin,
591  const Trk::PRDtoTrackMap *prd_to_track_map,
594 {
596 
597  const double pi=M_PI, pi2 = 2.*M_PI;
598 
599  std::multimap<const InDet::TRT_DriftCircle*,Trk::TrackSegment*>::const_iterator
600  cse = event_data.m_clusterSegment.end();
601 
603  bc ,
604  bcb = event_data.m_bincluster.find(bin),
605  bce = event_data.m_bincluster.end() ;
606  int nfree = 0;
607  for(bc=bcb; bc!=bce; ++bc) {
608 
609  if((*bc).first!=bin) break;
610  if(event_data.m_clusterSegment.find(event_data.m_circles[(*bc).second].circle())==cse) ++nfree;
611  }
612  if(nfree<5) return;
613  unsigned int ndzdr = bin/m_Ts;
614  unsigned int b = bin-ndzdr*m_Ts;
615  unsigned int m = b/m_nPhi;
616  float c0 = (1.-float(m)*m_Psi)*m_Ai;
617 
618  bce=bc;
619  float fm = 0. ;
620  float Fo = 0. ;
621  bool first = false;
622  for(bc=bcb; bc!=bce; ++bc) {
623 
624  unsigned int n = (*bc).second;
625 
626  unsigned int b = event_data.m_circles[n].buffer();
627  unsigned int l = event_data.m_circles[n].layer ();
628  unsigned int s = condData.m_begin[b][l];
629  unsigned int se = condData.m_end [b][l];
630 
631  for(; s<= se; ++s) {if(condData.m_ndzdr[s]==ndzdr) break;}
632  if(s>se) continue;
633  float F = event_data.m_circles[n].phi()-condData.m_slope[s]*c0;
634 
635  if(!first) {
636  Fo = F; first = true;
637  }
638  else {
639  float df = F-Fo;
640  if (df > pi) df-=pi2;
641  else if(df <-pi) df+=pi2;
642  fm+=df;
643  }
644  }
645  fm = Fo+fm/float(nfree);
646 
647  if (fm > pi) fm = fmod(fm+pi,pi2)-pi;
648  else if(fm <-pi) fm = fmod(fm-pi,pi2)+pi;
649 
650  double pT = m_pTmin/(double(m)*m_Psi-1.);
651 
652  double pin = 1./(pT*std::sqrt((1.+condData.m_dzdr[ndzdr]*condData.m_dzdr[ndzdr])));
653 
654  Amg::Vector3D PSV(0.,0.,0.); Trk::PerigeeSurface PS(PSV);
655  auto Tp = PS.createUniqueTrackParameters(
656  0., 0., fm, std::atan2(1., condData.m_dzdr[ndzdr]), pin, std::nullopt);
657  ++event_data.m_nlocal;
658 
659  Trk::TrackSegment* seg = m_extensionTool->findSegment(ctx, Tp.get(), *(event_data.m_extEventData),used);
660  if(!seg) return;
661 
662  // Momentum cut
663  //
664  double T = seg->localParameters().get(Trk::theta );
665  double iP = seg->localParameters().get(Trk::qOverP);
666 
667  // ME: let's not use a soft cut here
668  if(std::sin(T) < 0.9*m_pTmin*std::abs(iP)) {delete seg; return;}
669 
670 
671  ++event_data.m_nsegments;
672 
673  bool isbarrel=false;
674  const Trk::MeasurementBase *lastmeas=seg->containedMeasurements().back();
675  if (std::abs(lastmeas->globalPosition().z())<750.) isbarrel=true;
676  // Number drift circles test
677  //
678  unsigned int size = isbarrel ? seg->numberOfMeasurementBases()-1 : seg->numberOfMeasurementBases()-2;
679 
680  if(int(size) < m_clustersCut) {delete seg; return;}
681 
682  std::vector<const Trk::MeasurementBase*>::const_iterator
683  s = seg->containedMeasurements().begin(), se = seg->containedMeasurements().end();
684 
685  if(prd_to_track_map) {
686 
687  // Test number unused drift circles
688  //
689  int nu = 0, ntot = 0;
690  for(++s; s!=se; ++s) {
691 
692  const Trk::RIO_OnTrack* rio = dynamic_cast<const Trk::RIO_OnTrack*>(*s);
693  if(rio) {
694  ++ntot;
695  if (prd_to_track_map->isUsed(*rio->prepRawData())) ++nu;
696  }
697  }
698  // ME: use fraction cut
699  if( nu > int(ntot*m_sharedfrac)) {delete seg; return;}
700  }
701 
702  // Save information about qiality and segment
703  //
704  int quality = size;
705  double Xi2 = seg->fitQuality()->chiSquared()/double(seg->fitQuality()->numberDoF());
706 
707  if(Xi2 > .5) {
708  if (Xi2 > 6) quality-=9;
709  else if(Xi2 > 5.) quality-=7;
710  else if(Xi2 > 3.) quality-=5;
711  else if(Xi2 > 2.) quality-=3;
712  else if(Xi2 > 1.) quality-=1;
713  }
714 
715  event_data.m_qualitySegment.insert(std::make_pair(quality,seg));
716 
717  s = seg->containedMeasurements().begin();
718 
719  // Save information about TRT clusters and segments
720  //
721  for(++s; s!=se; ++s) {
722  const Trk::RIO_OnTrack* rio = dynamic_cast<const Trk::RIO_OnTrack*>(*s);
723  if (!rio) continue;
724  const InDet::TRT_DriftCircle* dc = ((const InDet::TRT_DriftCircleOnTrack*)(*s))->prepRawData();
725  if(dc) event_data.m_clusterSegment.insert(std::make_pair(dc,seg));
726  }
727 }
728 
730 // Remove fake TRT segments
732 
734 {
735  std::multimap<int,Trk::TrackSegment*>::reverse_iterator
736  qs = event_data.m_qualitySegment.rbegin();
737 
738  for(; qs!=event_data.m_qualitySegment.rend(); ++qs) {
739 
740  int nfree = 0;
741 
742  std::vector<const Trk::MeasurementBase*>::const_iterator
743  s =(*qs).second->containedMeasurements().begin(),
744  se =(*qs).second->containedMeasurements().end ();
745 
746  for(++s; s!=se; ++s) {
747  const Trk::RIO_OnTrack* rio = dynamic_cast<const Trk::RIO_OnTrack*>(*s);
748  if (!rio) continue;
749 
750  const InDet::TRT_DriftCircle* dc = ((const InDet::TRT_DriftCircleOnTrack*)(*s))->prepRawData();
751  if(dc && event_data.m_clusterSegment.erase(dc)) ++nfree;
752  }
753  if(nfree >= 7) event_data.m_segments.push_back((*qs).second);
754  else delete (*qs).second;
755  }
756 }
757 
759 // Local maximum
761 
763 (unsigned int bin, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
764 {
765  int b = bin-(bin/m_Ts)*m_Ts ;
766  int m = b/m_nPhi ;
767  int f = b-m*m_nPhi ;
768  unsigned int maxb = bin ;
769  unsigned char max = event_data.m_U.H[bin];
770 
771  int a1 = bin-1; if(f== 0 ) a1+=m_nPhi; if(event_data.m_U.H[a1]>max) {max=event_data.m_U.H[a1]; maxb=a1;}
772  int a2 = bin+1; if(f==m_nPhi-1) a2-=m_nPhi; if(event_data.m_U.H[a2]>max) {max=event_data.m_U.H[a2]; maxb=a2;}
773 
774  if ( m < m_nMom-1) {
775 
776  int a = bin+m_nPhi; if(event_data.m_U.H[a]>max) {max=event_data.m_U.H[a]; maxb=a;}
777  a = a1 +m_nPhi; if(event_data.m_U.H[a]>max) {max=event_data.m_U.H[a]; maxb=a;}
778  a = a2 +m_nPhi; if(event_data.m_U.H[a]>max) {max=event_data.m_U.H[a]; maxb=a;}
779 
780  }
781  if ( m > 0 ) {
782 
783  int a = bin-m_nPhi; if(event_data.m_U.H[a]>max) {max=event_data.m_U.H[a]; maxb=a;}
784  a = a1 -m_nPhi; if(event_data.m_U.H[a]>max) {max=event_data.m_U.H[a]; maxb=a;}
785  a = a2 -m_nPhi; if(event_data.m_U.H[a]>max) {max=event_data.m_U.H[a]; maxb=a;}
786  }
787  return maxb;
788 }
789 
791 {
792  // Build MagneticFieldProperties
793  //
797 }
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
used
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
CalculateHighPtTerm.pT
pT
Definition: ICHEP2016/CalculateHighPtTerm.py:57
InDet::TRT_TrackSegmentsMaker_ATLxk::findLocaly
void findLocaly(const EventContext &ctx, unsigned int, const Trk::PRDtoTrackMap *prd_to_track_map, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:589
InDet::TRT_TrackSegmentsToolCondData_xk::m_end
unsigned int m_end[4][200]
Definition: TRT_TrackSegmentsToolCondData_xk.h:18
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:50
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
InDet::TRT_TrackSegmentsMaker_ATLxk::m_outputlevel
int m_outputlevel
Definition: TRT_TrackSegmentsMaker_ATLxk.h:159
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_qualitySegment
std::multimap< int,Trk::TrackSegment * > m_qualitySegment
Definition: TRT_TrackSegmentsMaker_ATLxk.h:128
python.SystemOfUnits.m
int m
Definition: SystemOfUnits.py:91
DiscBounds.h
InDet::TRT_TrackSegmentsMaker_ATLxk::dumpEvent
static MsgStream & dumpEvent(MsgStream &out, InDet::ITRT_TrackSegmentsMaker::IEventData &event_data)
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:486
Trk::MagneticFieldProperties
Definition: MagneticFieldProperties.h:31
ID
std::vector< Identifier > ID
Definition: CalibHitIDCheck.h:24
RectangleBounds.h
InDet::TRT_DriftCircleLinkN_xk::circle
const TRT_DriftCircle * circle() const
Definition: TRT_DriftCircleLinkN_xk.h:39
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
InDet::TRT_TrackSegmentsToolCondData_xk
Definition: TRT_TrackSegmentsToolCondData_xk.h:13
InDet::TRT_TrackSegmentsMaker_ATLxk::m_histsize
int m_histsize
Definition: TRT_TrackSegmentsMaker_ATLxk.h:166
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
InDet::TRT_TrackSegmentsMaker_ATLxk::dump
virtual MsgStream & dump(MsgStream &out) const override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:393
InDet::TRT_TrackSegmentsMaker_ATLxk::m_nMom
IntegerProperty m_nMom
Definition: TRT_TrackSegmentsMaker_ATLxk.h:156
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Trk::PRDtoTrackMap
Definition: PRDtoTrackMap.h:17
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
hist_file_dump.d
d
Definition: hist_file_dump.py:137
max
constexpr double max()
Definition: ap_fixedTest.cxx:33
InDet::TRT_TrackSegmentsMaker_ATLxk::m_Ai
float m_Ai
Definition: TRT_TrackSegmentsMaker_ATLxk.h:165
python.LumiCalcWorking.lw
lw
Definition: LumiCalcWorking.py:112
initialize
void initialize()
Definition: run_EoverP.cxx:894
InDet::TRT_DriftCircleLinkN_xk::layer
unsigned int layer() const
Definition: TRT_DriftCircleLinkN_xk.h:43
InDet::TRT_TrackSegmentsToolCondData_xk::m_begin
unsigned int m_begin[4][200]
Definition: TRT_TrackSegmentsToolCondData_xk.h:17
InDet::TRT_TrackSegmentsMaker_ATLxk::m_prdToTrackMap
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
Definition: TRT_TrackSegmentsMaker_ATLxk.h:148
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
python.PhysicalConstants.pi2
float pi2
Definition: PhysicalConstants.py:52
M_PI
#define M_PI
Definition: ActiveFraction.h:11
bin
Definition: BinsDiffFromStripMedian.h:43
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_clusterSegment
std::multimap< const InDet::TRT_DriftCircle *, Trk::TrackSegment * > m_clusterSegment
Definition: TRT_TrackSegmentsMaker_ATLxk.h:127
InDet::TRT_TrackSegmentsMaker_ATLxk::newEvent
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newEvent(const EventContext &ctx) const override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:109
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_extEventData
std::unique_ptr< InDet::ITRT_TrackExtensionTool::IEventData > m_extEventData
Definition: TRT_TrackSegmentsMaker_ATLxk.h:112
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_segiterator
std::list< Trk::TrackSegment * >::iterator m_segiterator
Definition: TRT_TrackSegmentsMaker_ATLxk.h:121
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
Trk::RIO_OnTrack
Definition: RIO_OnTrack.h:70
ReadCellNoiseFromCoolCompare.s4
s4
Definition: ReadCellNoiseFromCoolCompare.py:381
InDet::TRT_TrackSegmentsMaker_ATLxk::m_trtid
const TRT_ID * m_trtid
Definition: TRT_TrackSegmentsMaker_ATLxk.h:144
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Trk::TrackSegment
Definition: TrackSegment.h:56
InDet::TRT_TrackSegmentsMaker_ATLxk::dumpConditions
MsgStream & dumpConditions(MsgStream &out) const
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:403
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_nsegments
int m_nsegments
Definition: TRT_TrackSegmentsMaker_ATLxk.h:115
keylayer_zslicemap.se
se
Definition: keylayer_zslicemap.py:194
InDet::TRT_DriftCircleOnTrack
Definition: TRT_DriftCircleOnTrack.h:53
InDet::TRT_TrackSegmentsMaker_ATLxk::m_sharedfrac
FloatProperty m_sharedfrac
Definition: TRT_TrackSegmentsMaker_ATLxk.h:153
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::H4
unsigned int H4[227500]
Definition: TRT_TrackSegmentsMaker_ATLxk.h:125
InDet::TRT_DriftCircle
Definition: TRT_DriftCircle.h:32
InDet::TRT_TrackSegmentsMaker_ATLxk::fillHistogramm
void fillHistogramm(float, int, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:548
pi
#define pi
Definition: TileMuonFitter.cxx:65
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Trk::Segment::numberOfMeasurementBases
unsigned int numberOfMeasurementBases() const
Return the number of contained Trk::MeasurementBase (s)
Definition: Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:193
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
InDet::TRT_TrackSegmentsMaker_ATLxk::analyseHistogramm
void analyseHistogramm(unsigned char &, unsigned int &, float, int, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:569
Trk::FastField
@ FastField
call the fast field access method of the FieldSvc
Definition: MagneticFieldMode.h:20
Trk::LocalParameters::get
double get(ParamDefs par) const
Retrieve specified parameter (const version).
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
hotSpotInTAG.c0
c0
Definition: hotSpotInTAG.py:192
InDet::TRT_TrackSegmentsMaker_ATLxk::getConditionsData
const TRT_TrackSegmentsToolCondData_xk * getConditionsData() const
Definition: TRT_TrackSegmentsMaker_ATLxk.h:174
Ringer::PS
@ PS
Definition: CaloRingsDefs.h:46
mc
Definition: mc.PG_single_nu_valid.py:1
TRT_ID::straw
int straw(const Identifier &id) const
Definition: TRT_ID.h:902
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData
Definition: TRT_TrackSegmentsMaker_ATLxk.h:97
InDet::TRT_TrackSegmentsMaker_ATLxk::endEvent
void endEvent(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:281
lumiFormat.i
int i
Definition: lumiFormat.py:85
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_clusters
int m_clusters
Definition: TRT_TrackSegmentsMaker_ATLxk.h:113
InDet::TRT_TrackSegmentsMaker_ATLxk::m_Ts
int m_Ts
Definition: TRT_TrackSegmentsMaker_ATLxk.h:160
beamspotman.n
n
Definition: beamspotman.py:731
Trk::theta
@ theta
Definition: ParamDefs.h:66
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::TRT_DriftCircleLinkN_xk::buffer
unsigned int buffer() const
Definition: TRT_DriftCircleLinkN_xk.h:42
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Trk::Segment::containedMeasurements
const std::vector< const Trk::MeasurementBase * > & containedMeasurements() const
returns the vector of Trk::MeasurementBase objects
Definition: Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:166
ITRT_TrackExtensionTool.h
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Preparation.mode
mode
Definition: Preparation.py:94
hist_file_dump.f
f
Definition: hist_file_dump.py:135
InDet::TRT_TrackSegmentsMaker_ATLxk::segmentsPreparation
static void segmentsPreparation(TRT_TrackSegmentsMaker_ATLxk::EventData &event_data)
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:733
InDet::TRT_TrackSegmentsToolCondData_xk::m_slope
float * m_slope
Definition: TRT_TrackSegmentsToolCondData_xk.h:22
TRT_DriftCircleOnTrack.h
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
TRT_ID::barrel_ec
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
Definition: TRT_ID.h:866
xAOD::double
double
Definition: CompositeParticle_v1.cxx:159
InDet::TRT_TrackSegmentsMaker_ATLxk::initialize
virtual StatusCode initialize() override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:50
TRT_ID::straw_layer
int straw_layer(const Identifier &id) const
Definition: TRT_ID.h:893
InDet::TRT_TrackSegmentsMaker_ATLxk::m_pTmin
FloatProperty m_pTmin
Definition: TRT_TrackSegmentsMaker_ATLxk.h:152
TRT_ID::layer_or_wheel
int layer_or_wheel(const Identifier &id) const
Definition: TRT_ID.h:884
InDet::TRT_TrackSegmentsMaker_ATLxk::m_trtname
SG::ReadHandleKey< InDet::TRT_DriftCircleContainer > m_trtname
Definition: TRT_TrackSegmentsMaker_ATLxk.h:145
InDet::TRT_TrackSegmentsMaker_ATLxk::m_extensionTool
ToolHandle< ITRT_TrackExtensionTool > m_extensionTool
Definition: TRT_TrackSegmentsMaker_ATLxk.h:141
Trk::PRDtoTrackMap::isUsed
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
Trk::FullField
@ FullField
Field is set to be realistic, but within a given Volume.
Definition: MagneticFieldMode.h:21
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
IGeoModelTool.h
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_nlocal
int m_nlocal
Definition: TRT_TrackSegmentsMaker_ATLxk.h:114
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_bincluster
std::multimap< unsigned int, unsigned int > m_bincluster
Definition: TRT_TrackSegmentsMaker_ATLxk.h:117
InDet::TRT_TrackSegmentsToolCondData_xk::m_nlayers
unsigned int m_nlayers[4]
Definition: TRT_TrackSegmentsToolCondData_xk.h:14
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::H
unsigned char H[227500 *4]
Definition: TRT_TrackSegmentsMaker_ATLxk.h:125
InDet::TRT_TrackSegmentsToolCondData_xk::m_cirsize
int m_cirsize
Definition: TRT_TrackSegmentsToolCondData_xk.h:23
Trk::MeasurementBase
Definition: MeasurementBase.h:58
InDet::TRT_TrackSegmentsMaker_ATLxk::eraseHistogramm
void eraseHistogramm(TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:525
Trk::NoField
@ NoField
Field is set to 0., 0., 0.,.
Definition: MagneticFieldMode.h:18
InDet::TRT_TrackSegmentsMaker_ATLxk::~TRT_TrackSegmentsMaker_ATLxk
virtual ~TRT_TrackSegmentsMaker_ATLxk()
keylayer_zslicemap.sb
sb
Definition: keylayer_zslicemap.py:192
ReadCellNoiseFromCoolCompare.s3
s3
Definition: ReadCellNoiseFromCoolCompare.py:380
InDet::TRT_TrackSegmentsMaker_ATLxk::m_condDataKey
SG::ReadCondHandleKey< InDet::TRT_TrackSegmentsToolCondData_xk > m_condDataKey
Definition: TRT_TrackSegmentsMaker_ATLxk.h:146
InDet::TRT_TrackSegmentsToolCondData_xk::m_ndzdr
unsigned int * m_ndzdr
Definition: TRT_TrackSegmentsToolCondData_xk.h:20
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
InDet::TRT_TrackSegmentsMaker_ATLxk::next
virtual Trk::TrackSegment * next(InDet::ITRT_TrackSegmentsMaker::IEventData &event_data) const override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:380
plotBeamSpotVxVal.bin
int bin
Definition: plotBeamSpotVxVal.py:83
InDet::TRT_TrackSegmentsMaker_ATLxk::m_removeNoise
BooleanProperty m_removeNoise
Definition: TRT_TrackSegmentsMaker_ATLxk.h:150
InDet::TRT_TrackSegmentsMaker_ATLxk::m_Psi
float m_Psi
Definition: TRT_TrackSegmentsMaker_ATLxk.h:162
InDet::TRT_TrackSegmentsMaker_ATLxk::m_fieldprop
Trk::MagneticFieldProperties m_fieldprop
Definition: TRT_TrackSegmentsMaker_ATLxk.h:143
Trk::MeasurementBase::globalPosition
virtual const Amg::Vector3D & globalPosition() const =0
Interface method to get the global Position.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
InDet::TRT_TrackSegmentsMaker_ATLxk::find
virtual void find(const EventContext &ctx, InDet::ITRT_TrackSegmentsMaker::IEventData &event_data, InDet::TRT_DetElementLink_xk::TRT_DetElemUsedMap &used) const override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:295
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::MagneticFieldProperties::magneticFieldMode
MagneticFieldMode magneticFieldMode() const
Returns the MagneticFieldMode as specified.
Trk::RIO_OnTrack::prepRawData
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
SCT_CalibAlgs::nbins
@ nbins
Definition: SCT_CalibNumbers.h:10
TRT_TrackSegmentsMaker_ATLxk.h
InDet::TRT_TrackSegmentsToolCondData_xk::m_flayers
unsigned int m_flayers[4][30]
Definition: TRT_TrackSegmentsToolCondData_xk.h:16
Trk::MeasurementBase::localParameters
const LocalParameters & localParameters() const
Interface method to get the LocalParameters.
Definition: MeasurementBase.h:132
InDet::TRT_TrackSegmentsMaker_ATLxk::m_nPhi
IntegerProperty m_nPhi
Definition: TRT_TrackSegmentsMaker_ATLxk.h:154
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_segments
std::list< Trk::TrackSegment * > m_segments
Definition: TRT_TrackSegmentsMaker_ATLxk.h:120
CylinderBounds.h
InDet::TRT_TrackSegmentsToolCondData_xk::m_islope
int * m_islope
Definition: TRT_TrackSegmentsToolCondData_xk.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::TRT_TrackSegmentsMaker_ATLxk::m_Ns128
int m_Ns128
Definition: TRT_TrackSegmentsMaker_ATLxk.h:161
InDet::TRT_TrackSegmentsMaker_ATLxk::m_fieldmode
StringProperty m_fieldmode
Definition: TRT_TrackSegmentsMaker_ATLxk.h:138
InDet::TRT_TrackSegmentsMaker_ATLxk::m_A
float m_A
Definition: TRT_TrackSegmentsMaker_ATLxk.h:164
mapkey::sf
@ sf
Definition: TElectronEfficiencyCorrectionTool.cxx:38
InDet::TRT_TrackSegmentsToolCondData_xk::m_nstraws
unsigned int m_nstraws[4]
Definition: TRT_TrackSegmentsToolCondData_xk.h:15
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_circles
TRT_DriftCircleLinkN_xk * m_circles
Definition: TRT_TrackSegmentsMaker_ATLxk.h:130
InDet::TRT_TrackSegmentsMaker_ATLxk::m_Psi128
float m_Psi128
Definition: TRT_TrackSegmentsMaker_ATLxk.h:163
DeMoScan.first
bool first
Definition: DeMoScan.py:536
InDet::TRT_TrackSegmentsMaker_ATLxk::finalize
virtual StatusCode finalize() override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:99
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
TRT_Numerology.h
Trk::FitQuality::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
python.SystemOfUnits.ns
int ns
Definition: SystemOfUnits.py:130
InDet::TRT_TrackSegmentsMaker_ATLxk::m_clustersCut
IntegerProperty m_clustersCut
Definition: TRT_TrackSegmentsMaker_ATLxk.h:151
Trk::FitQuality::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
InDet::TRT_DriftCircleLinkN_xk::phi
const float & phi() const
Definition: TRT_DriftCircleLinkN_xk.h:40
Trk::EventDataBase< EventData, InDet::ITRT_TrackSegmentsMaker::IEventData >::getPrivateEventData
static EventData & getPrivateEventData(InDet::ITRT_TrackSegmentsMaker::IEventData &virt_event_data)
Definition: EventDataBase.h:19
InDet::TRT_TrackSegmentsMaker_ATLxk::magneticFieldInit
void magneticFieldInit()
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:790
InDet::TRT_TrackSegmentsMaker_ATLxk::newRegion
virtual std::unique_ptr< InDet::ITRT_TrackSegmentsMaker::IEventData > newRegion(const EventContext &ctx, const std::vector< IdentifierHash > &) const override
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:198
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_U
union InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::@97 m_U
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
ReadHandle.h
Handle class for reading from StoreGate.
AthAlgTool
Definition: AthAlgTool.h:26
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
covarianceTool.mc
mc
Definition: covarianceTool.py:554
Trk::Segment::fitQuality
const FitQuality * fitQuality() const
return the FitQuality object, returns NULL if no FitQuality is defined
Definition: Tracking/TrkEvent/TrkSegment/TrkSegment/Segment.h:160
FitQuality.h
InDet::TRT_TrackSegmentsMaker_ATLxk::localMaximum
unsigned int localMaximum(unsigned int, TRT_TrackSegmentsMaker_ATLxk::EventData &event_data) const
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:763
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_sizebin_iterator
std::multimap< unsigned int, unsigned int >::reverse_iterator m_sizebin_iterator
Definition: TRT_TrackSegmentsMaker_ATLxk.h:123
InDet::ITRT_TrackSegmentsMaker::IEventData
Definition: ITRT_TrackSegmentsMaker.h:53
InDet::TRT_TrackSegmentsMaker_ATLxk::EventData::m_sizebin
std::multimap< unsigned int, unsigned int > m_sizebin
Definition: TRT_TrackSegmentsMaker_ATLxk.h:118
python.compressB64.c
def c
Definition: compressB64.py:93
PlotCalibFromCool.be
be
Definition: PlotCalibFromCool.py:398
python.TriggerAPI.TriggerAPISession.df
df
Definition: TriggerAPISession.py:432
InDet::TRT_TrackSegmentsMaker_ATLxk::TRT_TrackSegmentsMaker_ATLxk
TRT_TrackSegmentsMaker_ATLxk(const std::string &, const std::string &, const IInterface *)
Definition: TRT_TrackSegmentsMaker_ATLxk.cxx:32
readCCLHist.float
float
Definition: readCCLHist.py:83
fitman.k
k
Definition: fitman.py:528
InDet::TRT_TrackSegmentsToolCondData_xk::m_dzdr
float m_dzdr[26]
Definition: TRT_TrackSegmentsToolCondData_xk.h:19
Identifier
Definition: IdentifierFieldParser.cxx:14