ATLAS Offline Software
List of all members
InDet::SiSpacePointsSeedMaker_Cosmic Class Referencefinal

#include <SiSpacePointsSeedMaker_Cosmic.h>

Inheritance diagram for InDet::SiSpacePointsSeedMaker_Cosmic:
Collaboration diagram for InDet::SiSpacePointsSeedMaker_Cosmic:

Public Member Functions

Standard tool methods
 SiSpacePointsSeedMaker_Cosmic (const std::string &, const std::string &, const IInterface *)
 
virtual ~SiSpacePointsSeedMaker_Cosmic ()=default
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
Methods to initialize tool for new event or region
virtual void newEvent (const EventContext &ctx, EventData &data, int iteration) const override
 
virtual void newRegion (const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
 
virtual void newRegion (const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT, const IRoiDescriptor &iRD) const override
 
Methods to initilize different strategies of seeds production
virtual void find2Sp (EventData &data, const std::list< Trk::Vertex > &lv) const override
 with two space points with or without vertex constraint More...
 
virtual void find3Sp (const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
 with three space points with or without vertex constraint More...
 
virtual void find3Sp (const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv, const double *zVertex) const override
 with three space points with or without vertex constraint with information about min and max Z of the vertex More...
 
virtual void findVSp (const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
 with variable number space points with or without vertex constraint Variable means (2,3,4,....) any number space points More...
 
Iterator through seeds pseudo collection

produced accordingly methods find

virtual const SiSpacePointsSeednext (const EventContext &ctx, EventData &data) const override
 
virtual void writeNtuple (const SiSpacePointsSeed *seed, const Trk::Track *track, int seedType, long eventNumber) const override
 
virtual bool getWriteNtupleBoolProperty () const override
 

Private Attributes

Data handles
SG::ReadHandleKey< SpacePointContainerm_spacepointsSCT {this, "SpacePointsSCTName", "SCT_SpacePoints"}
 
SG::ReadHandleKey< SpacePointContainerm_spacepointsPixel {this, "SpacePointsPixelName", "PixelSpacePoints"}
 
SG::ReadHandleKey< SpacePointOverlapCollectionm_spacepointsOverlap {this, "SpacePointsOverlapName", "OverlapSpacePoints"}
 
SG::ReadHandleKey< Trk::PRDtoTrackMapm_prdToTrackMap {this,"PRDtoTrackMap","","option PRD-to-track association"}
 
SG::ReadCondHandleKey< AtlasFieldCacheCondObjm_fieldCondObjInputKey
 
Properties, which will not be changed after construction
BooleanProperty m_pixel {this, "usePixel", true}
 
BooleanProperty m_sct {this, "useSCT", true}
 
BooleanProperty m_useOverlap {this, "useOverlapSpCollection", false}
 
IntegerProperty m_maxsize {this, "maxSize", 100}
 
IntegerProperty m_maxsizeSP {this, "maxSizeSP", 1500}
 
FloatProperty m_drmin {this, "mindRadius", 5.}
 
FloatProperty m_drmax {this, "maxdRadius", 1000.}
 
FloatProperty m_r_rmax {this, "radMax", 600.}
 
FloatProperty m_r_rstep {this, "radStep", 5.}
 
Properties, which can be updated in initialize
FloatProperty m_ptmin {this, "pTmin", 500.}
 
FloatProperty m_etamax {this, "etaMax", 2.3}
 
FloatProperty m_fieldScale {this, "fieldScale", 1.}
 
Data members, which are updated in only initialize
bool m_initialized {false}
 
int m_outputlevel {}
 
int m_r_size {}
 
int m_fNmax {}
 
int m_rfz_b [SizeRFZ] {}
 
int m_rfz_t [SizeRFZ] {}
 
int m_rfz_ib [SizeRFZ][SizeI] {}
 
int m_rfz_it [SizeRFZ][SizeI] {}
 
float m_dzdrmin {}
 
float m_dzdrmax {}
 
float m_sF {}
 

Print internal tool parameters and status

enum  Size { SizeRF =53, SizeZ =11, SizeRFZ =SizeRF*SizeZ, SizeI =12 }
 enum for array sizes More...
 
virtual MsgStream & dump (EventData &data, MsgStream &out) const override
 

Disallow default instantiation, copy, assignment

 SiSpacePointsSeedMaker_Cosmic ()=delete
 
 SiSpacePointsSeedMaker_Cosmic (const SiSpacePointsSeedMaker_Cosmic &)=delete
 
SiSpacePointsSeedMaker_Cosmicoperator= (const SiSpacePointsSeedMaker_Cosmic &)=delete
 
MsgStream & dumpConditions (MsgStream &out) const
 
void buildFrameWork ()
 
void newSeed (EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &) const
 
void newSeed (EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &) const
 
void fillLists (EventData &data) const
 
void production3Sp (const EventContext &ctx, EventData &data) const
 
void production3Sp (EventData &data, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, int, int, float, float) const
 
void production3SpWithoutField (EventData &data) const
 
void production3SpWithoutField (EventData &data, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, std::vector< InDet::SiSpacePointForSeed * >::iterator *, int, int, float) const
 
bool isUsed (const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const
 
void initializeEventData (EventData &data) const
 
static MsgStream & dumpEvent (EventData &data, MsgStream &out)
 
static SiSpacePointForSeednewSpacePoint (EventData &data, const Trk::SpacePoint *const &)
 
static SiSpacePointForSeednewSpacePoint (EventData &data, const Trk::SpacePoint *const &, const float *)
 
static void erase (EventData &data)
 
static void production2Sp (EventData &data)
 

Detailed Description

Class for track candidates generation using space points information for standard Atlas geometry

In AthenaMT, event dependent cache inside SiSpacePointsSeedMaker_Cosmic is not preferred. SiSpacePointsSeedMakerEventData = EventData class holds event dependent data for SiSpacePointsSeedMaker_Cosmic. Its object is instantiated in SiSPSeededTrackFinder::execute.

Definition at line 51 of file SiSpacePointsSeedMaker_Cosmic.h.

Member Enumeration Documentation

◆ Size

enum for array sizes

Enumerator
SizeRF 
SizeZ 
SizeRFZ 
SizeI 

Definition at line 124 of file SiSpacePointsSeedMaker_Cosmic.h.

124  {SizeRF=53,
125  SizeZ=11,
127  SizeI=12};

Constructor & Destructor Documentation

◆ SiSpacePointsSeedMaker_Cosmic() [1/3]

InDet::SiSpacePointsSeedMaker_Cosmic::SiSpacePointsSeedMaker_Cosmic ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 26 of file SiSpacePointsSeedMaker_Cosmic.cxx.

28  : base_class(t, n, p)
29 {
30 }

◆ ~SiSpacePointsSeedMaker_Cosmic()

virtual InDet::SiSpacePointsSeedMaker_Cosmic::~SiSpacePointsSeedMaker_Cosmic ( )
virtualdefault

◆ SiSpacePointsSeedMaker_Cosmic() [2/3]

InDet::SiSpacePointsSeedMaker_Cosmic::SiSpacePointsSeedMaker_Cosmic ( )
privatedelete

◆ SiSpacePointsSeedMaker_Cosmic() [3/3]

InDet::SiSpacePointsSeedMaker_Cosmic::SiSpacePointsSeedMaker_Cosmic ( const SiSpacePointsSeedMaker_Cosmic )
privatedelete

Member Function Documentation

◆ buildFrameWork()

void InDet::SiSpacePointsSeedMaker_Cosmic::buildFrameWork ( )
private

Definition at line 480 of file SiSpacePointsSeedMaker_Cosmic.cxx.

481 {
482  m_etamax = std::abs(m_etamax);
484  m_dzdrmin = -m_dzdrmax;
485 
486  // Build radius sorted containers
487  //
488  m_r_size = static_cast<int>((m_r_rmax+.1)/m_r_rstep)*2;
489 
490  // Build radius-azimuthal sorted containers
491  //
492  constexpr float pi2 = 2.*M_PI;
493  const int NFmax = SizeRF;
494  const float sFmax = static_cast<float>(NFmax)/pi2;
495  const float sFmin = 50./60.;
496 
497  m_sF = 50./60.;
498  if (m_sF >sFmax ) m_sF = sFmax ;
499  else if (m_sF < sFmin) m_sF = sFmin;
500  m_fNmax = static_cast<int>(pi2*m_sF);
501  if (m_fNmax >=NFmax) m_fNmax = NFmax-1;
502 
503  // Build maps for radius-azimuthal-Z sorted collections
504  //
505  for (int f=0; f<=m_fNmax; ++f) {
506  int fb = f-1; if (fb<0 ) fb=m_fNmax;
507  int ft = f+1; if (ft>m_fNmax) ft=0;
508 
509  // For each azimuthal region loop through all Z regions
510  //
511  for (int z=0; z<SizeZ; ++z) {
512  int a = f *SizeZ+z;
513  int b = fb*SizeZ+z;
514  int c = ft*SizeZ+z;
515  m_rfz_b [a] = 3; m_rfz_t [a] = 3;
516  m_rfz_ib[a][0] = a; m_rfz_it[a][0] = a;
517  m_rfz_ib[a][1] = b; m_rfz_it[a][1] = b;
518  m_rfz_ib[a][2] = c; m_rfz_it[a][2] = c;
519  if (z==5) {
520 
521  m_rfz_t [a] = 9 ; m_rfz_b [a] = 9 ;
522  m_rfz_it[a][3] = a+1; m_rfz_ib[a][3] = a+1;
523  m_rfz_it[a][4] = b+1; m_rfz_ib[a][4] = b+1;
524  m_rfz_it[a][5] = c+1; m_rfz_ib[a][5] = c+1;
525  m_rfz_it[a][6] = a-1; m_rfz_ib[a][6] = a-1;
526  m_rfz_it[a][7] = b-1; m_rfz_ib[a][7] = b-1;
527  m_rfz_it[a][8] = c-1; m_rfz_ib[a][8] = c-1;
528  } else if (z> 5) {
529 
530  m_rfz_b [a] = 6 ; m_rfz_t [a] = 6 ;
531  m_rfz_ib[a][3] = a-1; m_rfz_it[a][3] = a-1;
532  m_rfz_ib[a][4] = b-1; m_rfz_it[a][4] = b-1;
533  m_rfz_ib[a][5] = c-1; m_rfz_it[a][5] = c-1;
534 
535  if (z<10) {
536 
537  m_rfz_t [a] = 9 ; m_rfz_b [a] = 9 ;
538  m_rfz_it[a][6] = a+1; m_rfz_ib[a][6] = a+1;
539  m_rfz_it[a][7] = b+1; m_rfz_ib[a][7] = b+1;
540  m_rfz_it[a][8] = c+1; m_rfz_ib[a][8] = c+1;
541  }
542  } else {
543 
544  m_rfz_b [a] = 6 ; m_rfz_t [a] = 6 ;
545  m_rfz_ib[a][3] = a+1; m_rfz_it[a][3] = a+1;
546  m_rfz_ib[a][4] = b+1; m_rfz_it[a][4] = b+1;
547  m_rfz_ib[a][5] = c+1; m_rfz_it[a][5] = c+1;
548 
549  if (z>0) {
550 
551  m_rfz_t [a] = 9 ; m_rfz_b [a] = 9 ;
552  m_rfz_it[a][6] = a-1; m_rfz_ib[a][6] = a-1;
553  m_rfz_it[a][7] = b-1; m_rfz_ib[a][7] = b-1;
554  m_rfz_it[a][8] = c-1; m_rfz_ib[a][8] = c-1;
555  }
556  }
557 
558  if (z==3) {
559  m_rfz_b[a] = 12; m_rfz_t [a] = 12;
560  m_rfz_ib[a][ 9] = a+2; m_rfz_it[a][ 9] = a+2;
561  m_rfz_ib[a][10] = b+2; m_rfz_it[a][10] = b+2;
562  m_rfz_ib[a][11] = c+2; m_rfz_it[a][11] = c+2;
563  } else if (z==7) {
564  m_rfz_b[a] = 12; m_rfz_t [a] = 12;
565  m_rfz_ib[a][ 9] = a-2; m_rfz_it[a][ 9] = a-2;
566  m_rfz_ib[a][10] = b-2; m_rfz_it[a][10] = b-2;
567  m_rfz_ib[a][11] = c-2; m_rfz_it[a][11] = c-2;
568  }
569  }
570  }
571 }

◆ dump()

MsgStream & InDet::SiSpacePointsSeedMaker_Cosmic::dump ( EventData data,
MsgStream &  out 
) const
overridevirtual

Definition at line 389 of file SiSpacePointsSeedMaker_Cosmic.cxx.

390 {
391  if (not data.initialized) initializeEventData(data);
392 
393  if (data.nprint) return dumpEvent(data, out);
394  return dumpConditions(out);
395 }

◆ dumpConditions()

MsgStream & InDet::SiSpacePointsSeedMaker_Cosmic::dumpConditions ( MsgStream &  out) const
private

Definition at line 401 of file SiSpacePointsSeedMaker_Cosmic.cxx.

402 {
403  int n = 42-m_spacepointsPixel.key().size();
404  std::string s2; for (int i=0; i<n; ++i) s2.append(" "); s2.append("|");
405  n = 42-m_spacepointsSCT.key().size();
406  std::string s3; for (int i=0; i<n; ++i) s3.append(" "); s3.append("|");
407  n = 42-m_spacepointsOverlap.key().size();
408  std::string s4; for (int i=0; i<n; ++i) s4.append(" "); s4.append("|");
409 
410 
411  out<<"|---------------------------------------------------------------------|"
412  <<endmsg;
413  out<<"| Pixel space points | "<<m_spacepointsPixel.key() <<s2
414  <<endmsg;
415  out<<"| SCT space points | "<<m_spacepointsSCT.key()<<s3
416  <<endmsg;
417  out<<"| Overlap space points | "<<m_spacepointsOverlap.key() <<s4
418  <<endmsg;
419  out<<"| usePixel | "
420  <<std::setw(12)<<m_pixel
421  <<" |"<<endmsg;
422  out<<"| useSCT | "
423  <<std::setw(12)<<m_sct
424  <<" |"<<endmsg;
425  out<<"| maxSize | "
426  <<std::setw(12)<<m_maxsize
427  <<" |"<<endmsg;
428  out<<"| maxSizeSP | "
429  <<std::setw(12)<<m_maxsizeSP
430  <<" |"<<endmsg;
431  out<<"| pTmin (mev) | "
432  <<std::setw(12)<<std::setprecision(5)<<m_ptmin
433  <<" |"<<endmsg;
434  out<<"| |eta| <= | "
435  <<std::setw(12)<<std::setprecision(5)<<m_etamax
436  <<" |"<<endmsg;
437  out<<"| max radius SP | "
438  <<std::setw(12)<<std::setprecision(5)<<m_r_rmax
439  <<" |"<<endmsg;
440  out<<"| radius step | "
441  <<std::setw(12)<<std::setprecision(5)<<m_r_rstep
442  <<" |"<<endmsg;
443  out<<"| min space points dR | "
444  <<std::setw(12)<<std::setprecision(5)<<m_drmin
445  <<" |"<<endmsg;
446  out<<"| max space points dR | "
447  <<std::setw(12)<<std::setprecision(5)<<m_drmax
448  <<" |"<<endmsg;
449  out<<"|---------------------------------------------------------------------|"
450  <<endmsg;
451  return out;
452 }

◆ dumpEvent()

MsgStream & InDet::SiSpacePointsSeedMaker_Cosmic::dumpEvent ( EventData data,
MsgStream &  out 
)
staticprivate

Definition at line 458 of file SiSpacePointsSeedMaker_Cosmic.cxx.

459 {
460  out<<"|---------------------------------------------------------------------|"
461  <<endmsg;
462  out<<"| data.ns | "
463  <<std::setw(12)<<data.ns
464  <<" |"<<endmsg;
465  out<<"| data.nsaz | "
466  <<std::setw(12)<<data.nsaz
467  <<" |"<<endmsg;
468  out<<"| seeds | "
469  <<std::setw(12)<<data.l_seeds_map.size()
470  <<" |"<<endmsg;
471  out<<"|---------------------------------------------------------------------|"
472  <<endmsg;
473  return out;
474 }

◆ erase()

void InDet::SiSpacePointsSeedMaker_Cosmic::erase ( EventData data)
staticprivate

Definition at line 621 of file SiSpacePointsSeedMaker_Cosmic.cxx.

622 {
623  for (int i=0; i<data.nr; ++i) {
624  int n = data.r_index[i];
625  data.r_map[n] = 0;
626  data.r_Sorted[n].erase(data.r_Sorted[n].begin(), data.r_Sorted[n].end());
627  }
628 
629  for (int i=0; i>data.nrf; ++i) {
630  int n = data.rf_index[i];
631  data.rf_map[n] = 0;
632  data.rf_Sorted[n].erase(data.rf_Sorted[n].begin(), data.rf_Sorted[n].end());
633  }
634 
635  for (int i=0; i<data.nrfz; ++i) {
636  int n = data.rfz_index[i];
637  data.rfz_map[n] = 0;
638  data.rfz_Sorted[n].erase(data.rfz_Sorted[n].begin(), data.rfz_Sorted[n].end());
639  }
640 
641  data.state = 0;
642  data.ns = 0;
643  data.nsaz = 0;
644  data.nr = 0;
645  data.nrf = 0;
646  data.nrfz = 0;
647 }

◆ fillLists()

void InDet::SiSpacePointsSeedMaker_Cosmic::fillLists ( EventData data) const
private

Definition at line 577 of file SiSpacePointsSeedMaker_Cosmic.cxx.

578 {
579  constexpr float pi2 = 2.*M_PI;
580 
581  for (int i=0; i<m_r_size; ++i) {
582  if (!data.r_map[i]) continue;
583 
584  for (InDet::SiSpacePointForSeed* r : data.r_Sorted[i]) {
585 
586  // Azimuthal angle sort
587  //
588  float F = r->phi();
589  if (F<0.) F+=pi2;
590 
591  //int f = static_cast<int>(F*m_sF); f<0 ? f = m_fNmax : f>m_fNmax ? f = 0 : f=f;
592  int f = 1;
593  data.rf_Sorted[f].push_back(r);
594  if (!data.rf_map[f]++) data.rf_index[data.nrf++] = f;
595 
596  float Z = r->z();
597  // Azimuthal angle and Z-coordinate sort
598  //
599  int z;
600  if (Z>0.) {
601  Z< 250.?z=5:Z< 450.?z=6:Z< 925.?z=7:Z< 1400.?z=8:Z< 2500.?z=9:z=10;
602  } else {
603  Z>-250.?z=5:Z>-450.?z=4:Z>-925.?z=3:Z>-1400.?z=2:Z>-2500.?z=1:z= 0;
604  }
605  int n = f*SizeZ+z;
606  ++data.nsaz;
607  data.rfz_Sorted[n].push_back(r);
608  if (!data.rfz_map[n]++) data.rfz_index[data.nrfz++] = n;
609  }
610  data.r_Sorted[i].clear();
611  data.r_map[i] = 0;
612  }
613  data.nr = 0;
614  data.state = 0;
615 }

◆ finalize()

StatusCode InDet::SiSpacePointsSeedMaker_Cosmic::finalize ( )
overridevirtual

Definition at line 73 of file SiSpacePointsSeedMaker_Cosmic.cxx.

74 {
75  return AlgTool::finalize();
76 }

◆ find2Sp()

void InDet::SiSpacePointsSeedMaker_Cosmic::find2Sp ( EventData data,
const std::list< Trk::Vertex > &  lv 
) const
overridevirtual

with two space points with or without vertex constraint

Definition at line 279 of file SiSpacePointsSeedMaker_Cosmic.cxx.

280 {
281  if (not data.initialized) initializeEventData(data);
282 
283  int mode = 0;
284  if (lv.begin()!=lv.end()) mode = 1;
285 
286  data.nseeds = 0;
287  data.l_seeds_map.erase(data.l_seeds_map.begin(),data.l_seeds_map.end());
288 
289  if ( !data.state || data.nspoint!=2 || data.mode!=mode || data.nlist) {
290 
291  data.state = 1 ;
292  data.nspoint = 2 ;
293  data.nlist = 0 ;
294  data.mode = mode;
295  data.endlist = true;
296  data.fNmin = 0 ;
297  data.zMin = 0 ;
299  }
300 
301  data.i_seed_map = data.l_seeds_map.begin();
302  data.i_seede_map = data.l_seeds_map.end ();
303 
304  if (m_outputlevel<=0) {
305  data.nprint=1;
306  dump(data, msg(MSG::DEBUG));
307  }
308 }

◆ find3Sp() [1/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::find3Sp ( const EventContext &  ctx,
EventData data,
const std::list< Trk::Vertex > &  lv 
) const
overridevirtual

with three space points with or without vertex constraint

Definition at line 315 of file SiSpacePointsSeedMaker_Cosmic.cxx.

316 {
317  if (not data.initialized) initializeEventData(data);
318 
319  int mode = 2;
320  if (lv.begin()!=lv.end()) mode = 3;
321 
322  data.nseeds = 0;
323  data.l_seeds_map.erase(data.l_seeds_map.begin(),data.l_seeds_map.end());
324 
325  if (!data.state || data.nspoint!=3 || data.mode!=mode || data.nlist) {
326 
327  data.state = 1 ;
328  data.nspoint = 3 ;
329  data.nlist = 0 ;
330  data.mode = mode ;
331  data.endlist = true ;
332  data.fNmin = 0 ;
333  data.zMin = 0 ;
334  production3Sp(ctx, data);
335  }
336 
337  data.i_seed_map = data.l_seeds_map.begin();
338  data.i_seede_map = data.l_seeds_map.end ();
339 
340  if (m_outputlevel<=0) {
341  data.nprint=1;
342  dump(data, msg(MSG::DEBUG));
343  }
344 }

◆ find3Sp() [2/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::find3Sp ( const EventContext &  ctx,
EventData data,
const std::list< Trk::Vertex > &  lv,
const double *  zVertex 
) const
overridevirtual

with three space points with or without vertex constraint with information about min and max Z of the vertex

Definition at line 346 of file SiSpacePointsSeedMaker_Cosmic.cxx.

347 {
348  find3Sp(ctx, data, lv);
349 }

◆ findVSp()

void InDet::SiSpacePointsSeedMaker_Cosmic::findVSp ( const EventContext &  ctx,
EventData data,
const std::list< Trk::Vertex > &  lv 
) const
overridevirtual

with variable number space points with or without vertex constraint Variable means (2,3,4,....) any number space points

Definition at line 357 of file SiSpacePointsSeedMaker_Cosmic.cxx.

358 {
359  if (not data.initialized) initializeEventData(data);
360 
361  int mode = 5;
362  if (lv.begin()!=lv.end()) mode = 6;
363 
364  if (!data.state || data.nspoint!=4 || data.mode!=mode || data.nlist) {
365 
366  data.state = 1 ;
367  data.nspoint = 4 ;
368  data.nlist = 0 ;
369  data.mode = mode ;
370  data.endlist = true ;
371  data.fNmin = 0 ;
372  data.zMin = 0 ;
373  production3Sp(ctx, data);
374  }
375 
376  data.i_seed_map = data.l_seeds_map.begin();
377  data.i_seede_map = data.l_seeds_map.end ();
378 
379  if (m_outputlevel<=0) {
380  data.nprint=1;
381  dump(data, msg(MSG::DEBUG));
382  }
383 }

◆ getWriteNtupleBoolProperty()

bool InDet::SiSpacePointsSeedMaker_Cosmic::getWriteNtupleBoolProperty ( ) const
overridevirtual

Definition at line 1160 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1160  {
1161  return false;
1162 }

◆ initialize()

StatusCode InDet::SiSpacePointsSeedMaker_Cosmic::initialize ( )
overridevirtual

Definition at line 36 of file SiSpacePointsSeedMaker_Cosmic.cxx.

37 {
39 
43 
45 
46  // PRD-to-track association (optional)
48 
49  // Build framework
50  //
52  if ( m_ptmin/m_fieldScale < 300.) m_ptmin = 300.*m_fieldScale;
53 
54  // Get output print level
55  //
56  m_outputlevel = msg().level()-MSG::DEBUG;
57  if (m_outputlevel<=0) {
60  data.nprint=0;
62  }
63 
64  m_initialized = true;
65 
66  return sc;
67 }

◆ initializeEventData()

void InDet::SiSpacePointsSeedMaker_Cosmic::initializeEventData ( EventData data) const
private

Definition at line 1145 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1145  {
1146  data.initialize(EventData::ToolType::Cosmic,
1147  m_maxsizeSP,
1148  0, // maxOneSize not used
1149  m_maxsize,
1150  m_r_size,
1151  SizeRF,
1152  SizeRFZ,
1153  0, // sizeRFZV not used
1154  false); // checkEta not used
1155 }

◆ isUsed()

bool InDet::SiSpacePointsSeedMaker_Cosmic::isUsed ( const Trk::SpacePoint sp,
const Trk::PRDtoTrackMap prd_to_track_map 
) const
inlineprivate

Definition at line 238 of file SiSpacePointsSeedMaker_Cosmic.h.

238  {
239  const Trk::PrepRawData* d = sp->clusterList().first;
240  if (!d || !prd_to_track_map.isUsed(*d)) return false;
241 
242  d = sp->clusterList().second;
243  if (!d || prd_to_track_map.isUsed(*d)) return true;
244 
245  return false;
246 
247  }

◆ newEvent()

void InDet::SiSpacePointsSeedMaker_Cosmic::newEvent ( const EventContext &  ctx,
EventData data,
int  iteration 
) const
overridevirtual

Definition at line 82 of file SiSpacePointsSeedMaker_Cosmic.cxx.

83 {
84  if (!m_pixel && !m_sct) return;
85 
86  if (not data.initialized) initializeEventData(data);
87 
88  erase(data);
89  data.i_spforseed = data.l_spforseed.begin();
90 
91  float irstep = 1./m_r_rstep;
92  float errorsc[4] = {16.,16.,100.,16.};
93 
94  SG::ReadHandle<Trk::PRDtoTrackMap> prd_to_track_map;
95  const Trk::PRDtoTrackMap *prd_to_track_map_cptr = nullptr;
96  if (!m_prdToTrackMap.key().empty()) {
98  if (!prd_to_track_map.isValid()) {
99  ATH_MSG_ERROR("Failed to read PRD to track association map: " << m_prdToTrackMap.key());
100  }
101  prd_to_track_map_cptr=prd_to_track_map.cptr();
102  }
103 
104  // Get pixels space points containers from store gate
105  //
106  if (m_pixel) {
107 
109  if (spacepointsPixel.isValid()) {
110 
111  for (const SpacePointCollection* spc: *spacepointsPixel) {
112  for (const Trk::SpacePoint* sp: *spc) {
113 
114  float r = sp->r();
115  if (r<0. || r>=m_r_rmax) continue;
116  if (prd_to_track_map_cptr && isUsed(sp,*prd_to_track_map_cptr)) continue;
117 
118  int ir = static_cast<int>((sp->globalPosition().y()+m_r_rmax)*irstep);
119  InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp, errorsc);
120  data.r_Sorted[ir].push_back(sps);
121  ++data.r_map[ir];
122  if (data.r_map[ir]==1) data.r_index[data.nr++] = ir;
123  ++data.ns;
124  }
125  }
126  }
127  }
128 
129  // Get sct space points containers from store gate
130  //
131  if (m_sct) {
132 
134  if (spacepointsSCT.isValid()) {
135 
136  for (const SpacePointCollection* spc: *spacepointsSCT) {
137  for (const Trk::SpacePoint* sp: *spc) {
138 
139  float r = sp->r();
140  if (r<0. || r>=m_r_rmax) continue;
141  if (prd_to_track_map_cptr && isUsed(sp,*prd_to_track_map_cptr)) continue;
142 
143  int ir = static_cast<int>((sp->globalPosition().y()+m_r_rmax)*irstep);
144  InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp, errorsc);
145  data.r_Sorted[ir].push_back(sps);
146  ++data.r_map[ir];
147  if (data.r_map[ir]==1) data.r_index[data.nr++] = ir;
148  ++data.ns;
149  }
150  }
151  }
152 
153  // Get sct overlap space points containers from store gate
154  //
155  if (m_useOverlap) {
156 
158  if (spacepointsOverlap.isValid()) {
159 
160  for (const Trk::SpacePoint* sp: *spacepointsOverlap) {
161 
162  float r = sp->r();
163  if (r<0. || r>=m_r_rmax) continue;
164  if (prd_to_track_map_cptr && isUsed(sp, *prd_to_track_map_cptr)) continue;
165 
166  int ir = static_cast<int>((sp->globalPosition().y()+m_r_rmax)*irstep);
167  InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp, errorsc);
168  data.r_Sorted[ir].push_back(sps);
169  ++data.r_map[ir];
170  if (data.r_map[ir]==1) data.r_index[data.nr++] = ir;
171  ++data.ns;
172  }
173  }
174  }
175  }
176  fillLists(data);
177 }

◆ newRegion() [1/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::newRegion ( const EventContext &  ctx,
EventData data,
const std::vector< IdentifierHash > &  vPixel,
const std::vector< IdentifierHash > &  vSCT 
) const
overridevirtual

Definition at line 183 of file SiSpacePointsSeedMaker_Cosmic.cxx.

186 {
187  if (not data.initialized) initializeEventData(data);
188 
189  if (!m_pixel && !m_sct) return;
190  erase(data);
191  data.i_spforseed = data.l_spforseed.begin();
192 
193  float irstep = 1.f/m_r_rstep;
194  float errorsc[4] = {16.,16.,100.,16.};
195 
196  SG::ReadHandle<Trk::PRDtoTrackMap> prd_to_track_map;
197  const Trk::PRDtoTrackMap *prd_to_track_map_cptr = nullptr;
198  if (!m_prdToTrackMap.key().empty()) {
200  if (!prd_to_track_map.isValid()) {
201  ATH_MSG_ERROR("Failed to read PRD to track association map: " << m_prdToTrackMap.key());
202  }
203  prd_to_track_map_cptr = prd_to_track_map.cptr();
204  }
205 
206  // Get pixels space points containers from store gate
207  //
208  if (m_pixel && !vPixel.empty()) {
209 
211  if (spacepointsPixel.isValid()) {
212  // Loop through all trigger collections
213  //
214  for (const IdentifierHash& l: vPixel) {
215  const auto *w = spacepointsPixel->indexFindPtr(l);
216  if (w==nullptr) continue;
217  for (const Trk::SpacePoint* sp: *w) {
218  float r = sp->r();
219  if (r<0. || r>=m_r_rmax) continue;
220  if (prd_to_track_map_cptr && isUsed(sp,*prd_to_track_map_cptr)) continue;
221 
222  int ir = static_cast<int>((sp->globalPosition().y()+m_r_rmax)*irstep);
223  InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp, errorsc);
224  data.r_Sorted[ir].push_back(sps);
225  ++data.r_map[ir];
226  if (data.r_map[ir]==1) data.r_index[data.nr++] = ir;
227  ++data.ns;
228  }
229  }
230  }
231  }
232 
233  // Get sct space points containers from store gate
234  //
235  if (m_sct && !vSCT.empty()) {
236 
238  if (spacepointsSCT.isValid()) {
239 
240  // Loop through all trigger collections
241  //
242  for (const IdentifierHash& l: vSCT) {
243  const auto *w = spacepointsSCT->indexFindPtr(l);
244  if (w==nullptr) continue;
245  for (const Trk::SpacePoint* sp: *w) {
246  float r = sp->r();
247  if (r<0. || r>=m_r_rmax) continue;
248  if (prd_to_track_map_cptr && isUsed(sp,*prd_to_track_map_cptr)) continue;
249 
250  int ir = static_cast<int>((sp->globalPosition().y()+m_r_rmax)*irstep);
251  InDet::SiSpacePointForSeed* sps = newSpacePoint(data, sp, errorsc);
252  data.r_Sorted[ir].push_back(sps);
253  ++data.r_map[ir];
254  if (data.r_map[ir]==1) data.r_index[data.nr++] = ir;
255  ++data.ns;
256  }
257  }
258  }
259  }
260  fillLists(data);
261 }

◆ newRegion() [2/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::newRegion ( const EventContext &  ctx,
EventData data,
const std::vector< IdentifierHash > &  vPixel,
const std::vector< IdentifierHash > &  vSCT,
const IRoiDescriptor iRD 
) const
overridevirtual

Definition at line 267 of file SiSpacePointsSeedMaker_Cosmic.cxx.

270 {
271  newRegion(ctx, data, vPixel, vSCT);
272 }

◆ newSeed() [1/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::newSeed ( EventData data,
const Trk::SpacePoint *&  p1,
const Trk::SpacePoint *&  p2,
const float &  z 
) const
private

Definition at line 1087 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1091 {
1092  if (data.nseeds < m_maxsize) {
1093  data.seeds[data.nseeds].erase ( );
1094  data.seeds[data.nseeds].add (p1);
1095  data.seeds[data.nseeds].add (p2);
1096  data.seeds[data.nseeds].setZVertex(0.);
1097  data.l_seeds_map.insert(std::make_pair(z, &(data.seeds[data.nseeds])));
1098  ++data.nseeds;
1099  } else {
1100  std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator l = data.l_seeds_map.rbegin();
1101  if ((*l).first <= z) return;
1102  InDet::SiSpacePointsSeed* s = (*l).second;
1103  data.l_seeds_map.erase((*l).first);
1104 
1105  s->erase ( );
1106  s->add (p1);
1107  s->add (p2);
1108  s->setZVertex(0.);
1109  data.l_seeds_map.insert(std::make_pair(z,s));
1110  }
1111 }

◆ newSeed() [2/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::newSeed ( EventData data,
const Trk::SpacePoint *&  p1,
const Trk::SpacePoint *&  p2,
const Trk::SpacePoint *&  p3,
const float &  z 
) const
private

Definition at line 1117 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1121 {
1122  if (data.nseeds < m_maxsize) {
1123  data.seeds[data.nseeds].erase ( );
1124  data.seeds[data.nseeds].add (p1);
1125  data.seeds[data.nseeds].add (p2);
1126  data.seeds[data.nseeds].add (p3);
1127  data.seeds[data.nseeds].setZVertex(0.);
1128  data.l_seeds_map.insert(std::make_pair(z, &(data.seeds[data.nseeds])));
1129  ++data.nseeds;
1130  } else {
1131  std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator l = data.l_seeds_map.rbegin();
1132  if ((*l).first <= z) return;
1133  InDet::SiSpacePointsSeed* s = (*l).second;
1134  data.l_seeds_map.erase((*l).first);
1135 
1136  s->erase ( );
1137  s->add (p1);
1138  s->add (p2);
1139  s->add (p3);
1140  s->setZVertex(0.);
1141  data.l_seeds_map.insert(std::make_pair(z,s));
1142  }
1143 }

◆ newSpacePoint() [1/2]

InDet::SiSpacePointForSeed * InDet::SiSpacePointsSeedMaker_Cosmic::newSpacePoint ( EventData data,
const Trk::SpacePoint *const sp 
)
staticprivate

Definition at line 1036 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1038 {
1039  InDet::SiSpacePointForSeed* sps = nullptr;
1040 
1041  float r[3] = {static_cast<float>(sp->globalPosition().x()),
1042  static_cast<float>(sp->globalPosition().y()),
1043  static_cast<float>(sp->globalPosition().z())};
1044 
1045  if (data.i_spforseed!=data.l_spforseed.end()) {
1046  sps = &(*data.i_spforseed++);
1047  sps->set(sp, r);
1048  } else {
1049  data.l_spforseed.emplace_back(sp, r);
1050  sps = &(data.l_spforseed.back());
1051  data.i_spforseed = data.l_spforseed.end();
1052  }
1053 
1054  return sps;
1055 }

◆ newSpacePoint() [2/2]

InDet::SiSpacePointForSeed * InDet::SiSpacePointsSeedMaker_Cosmic::newSpacePoint ( EventData data,
const Trk::SpacePoint *const sp,
const float *  sc 
)
staticprivate

Definition at line 1061 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1063 {
1064  InDet::SiSpacePointForSeed* sps = nullptr;
1065 
1066  float r[3];
1067  r[0]=sp->globalPosition().x();
1068  r[1]=sp->globalPosition().y();
1069  r[2]=sp->globalPosition().z();
1070 
1071  if (data.i_spforseed!=data.l_spforseed.end()) {
1072  sps = &(*data.i_spforseed++);
1073  sps->set(sp, r, sc);
1074  } else {
1075  data.l_spforseed.emplace_back(sp, r, sc);
1076  sps = &(data.l_spforseed.back());
1077  data.i_spforseed = data.l_spforseed.end();
1078  }
1079 
1080  return sps;
1081 }

◆ next()

const InDet::SiSpacePointsSeed * InDet::SiSpacePointsSeedMaker_Cosmic::next ( const EventContext &  ctx,
EventData data 
) const
overridevirtual

Definition at line 1022 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1023 {
1024  if (not data.initialized) initializeEventData(data);
1025 
1026  if (data.i_seed_map==data.i_seede_map) return nullptr;
1027  InDet::SiSpacePointsSeed* sp = (*data.i_seed_map).second;
1028  ++data.i_seed_map;
1029  return sp;
1030 }

◆ operator=()

SiSpacePointsSeedMaker_Cosmic& InDet::SiSpacePointsSeedMaker_Cosmic::operator= ( const SiSpacePointsSeedMaker_Cosmic )
privatedelete

◆ production2Sp()

void InDet::SiSpacePointsSeedMaker_Cosmic::production2Sp ( EventData data)
staticprivate

Definition at line 653 of file SiSpacePointsSeedMaker_Cosmic.cxx.

654 {
655  data.endlist = true;
656 }

◆ production3Sp() [1/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::production3Sp ( const EventContext &  ctx,
EventData data 
) const
private

Definition at line 662 of file SiSpacePointsSeedMaker_Cosmic.cxx.

663 {
664  if (data.nsaz<3) return;
665 
666  float K = 0.;
667 
668  double f[3], gP[3] ={10.,10.,0.};
669 
670  MagField::AtlasFieldCache fieldCache;
671  // Get field cache object
673  const AtlasFieldCacheCondObj* fieldCondObj{*readHandle};
674  if (fieldCondObj == nullptr) {
675  ATH_MSG_ERROR("SiSpacePointsSeedMaker_Cosmic: Failed to retrieve AtlasFieldCacheCondObj with key " << m_fieldCondObjInputKey.key());
676  return;
677  }
678  fieldCondObj->getInitializedCache (fieldCache);
679 
680  if (fieldCache.solenoidOn()) {
681  fieldCache.getFieldZR(gP,f);
682 
683  K = 2./(300.*f[2]);
684  }
685  if (!K) return production3SpWithoutField(data);
686 
687  float ipt = 100000000.;
688  if (m_ptmin!=0.) ipt= 1.f/std::abs(.9f*m_ptmin);
689 
690  const int ZI[SizeZ]= {5,6,7,8,9,10,4,3,2,1,0};
692 
693  // Loop thorugh all azimuthal regions
694  //
695  for (int f=data.fNmin; f<=m_fNmax; ++f) {
696  // For each azimuthal region loop through all Z regions
697  //
698  int z = 0;
699  if (!data.endlist) z = data.zMin;
700 
701  for (; z<SizeZ; ++z) {
702  int a = f *SizeZ+ZI[z];
703  if (!data.rfz_map[a]) continue;
704  int NB = 0, NT = 0;
705  for (int i=0; i<m_rfz_b[a]; ++i) {
706 
707  int an = m_rfz_ib[a][i];
708  if (!data.rfz_map[an]) continue;
709  rb [NB] = data.rfz_Sorted[an].begin();
710  rbe[NB++] = data.rfz_Sorted[an].end();
711  }
712  for (int i=0; i<m_rfz_t[a]; ++i) {
713  int an = m_rfz_it[a][i];
714  if (!data.rfz_map[an]) continue;
715  rt [NT] = data.rfz_Sorted[an].begin();
716  rte[NT++] = data.rfz_Sorted[an].end();
717  }
718  production3Sp(data, rb, rbe, rt, rte, NB, NT, K, ipt);
719  if (!data.endlist) {data.fNmin=f; data.zMin = z; return;}
720  }
721  }
722  data.endlist = true;
723 }

◆ production3Sp() [2/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::production3Sp ( EventData data,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rb,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rbe,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rt,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rte,
int  NB,
int  NT,
float  K,
float  ipt 
) const
private

Definition at line 772 of file SiSpacePointsSeedMaker_Cosmic.cxx.

779 {
780  const float COF = 134*.05*9.;
781 
783  if (!data.endlist) {r0 = data.rMin; data.endlist = true;}
784 
785  // Loop through all trigger space points
786  //
787  for (; r0!=rbe[0]; ++r0) {
788  bool pix = true;
789  if ((*r0)->spacepoint->clusterList().second) pix = false;
790  float R = (*r0)->radius();
791  const Trk::Surface* sur0 = (*r0)->sur();
792  float X = (*r0)->x() ;
793  float Y = (*r0)->y() ;
794  float Z = (*r0)->z() ;
795  float ax = X/R ;
796  float ay = Y/R ;
797  float covr0 = (*r0)->covr ();
798  float covz0 = (*r0)->covz ();
799  int Nb = 0;
800 
801  // Bottom links production
802  //
803  for (int i=0; i<NB; ++i) {
804  for (r=rb[i]; r!=rbe[i]; ++r) {
805  float dy = (*r)->y()-Y ;
806  if (-dy < m_drmin) break;
807  if (-dy > m_drmax || (*r)->sur()==sur0) continue;
808 
809  if (!pix && !(*r)->spacepoint->clusterList().second) continue;
810  if ( pix && (*r)->spacepoint->clusterList().second) continue;
811 
812  float dx = (*r)->x()-X;
813  float dz = (*r)->z()-Z;
814 
815  float x = dx*ax+dy*ay ;
816  float y =-dx*ay+dy*ax ;
817  float r2 = 1.f/(x*x+y*y);
818  float dr = std::sqrt(r2);
819  data.Tz[Nb] = -dz*dr;
820 
821  if (data.Tz[Nb]<m_dzdrmin || data.Tz[Nb]>m_dzdrmax) continue;
822 
823  data.SP[Nb] = (*r);
824  data.U [Nb] = x*r2;
825  data.V [Nb] = y*r2;
826  data.Er[Nb] = (covz0+data.SP[Nb]->covz()+data.Tz[Nb]*data.Tz[Nb]*(covr0+data.SP[Nb]->covr()))*r2;
827  data.R [Nb] = dr ;
828  if (++Nb==m_maxsizeSP) goto breakb;
829  }
830  }
831  breakb:
832 
833  if (!Nb || Nb==m_maxsizeSP) continue;
834  int Nt = Nb;
835 
836  // Top links production
837  //
838  for (int i=0; i<NT; ++i) {
839  for (r=rt[i]; r!=rte[i]; ++r) {
840  float dy = (*r)->y()-Y ;
841  if (dy < m_drmin) {rt[i]=r; continue;}
842  if (dy>m_drmax) break;
843  if ((*r)->sur()==sur0) continue;
844 
845  if ( pix && (*r)->spacepoint->clusterList().second) continue;
846  if (!pix && !(*r)->spacepoint->clusterList().second) continue;
847 
848  float dx = (*r)->x()-X;
849  float dz = (*r)->z()-Z;
850 
851  float x = dx*ax+dy*ay;
852  float y =-dx*ay+dy*ax;
853  float r2 = 1.f/(x*x+y*y);
854  float dr = std::sqrt(r2);
855  data.Tz[Nt] = dz*dr;
856  if (data.Tz[Nt]<m_dzdrmin || data.Tz[Nt]>m_dzdrmax) continue;
857 
858  data.SP[Nt] = (*r);
859  data.U [Nt] = x*r2;
860  data.V [Nt] = y*r2;
861  data.Er[Nt] = (covz0+data.SP[Nt]->covz()+data.Tz[Nt]*data.Tz[Nt]*(covr0+data.SP[Nt]->covr()))*r2;
862  data.R [Nt] = dr;
863  if (++Nt==m_maxsizeSP) goto breakt;
864  }
865  }
866 
867  breakt:
868 
869  if (!(Nt-Nb)) continue;
870 
871  // Three space points comparison
872  //
873  for (int b=Nb-1; b>=0; --b) {
874  float SA = 1.+data.Tz[b]*data.Tz[b];
875  for (int t=Nb; t<Nt; ++t) {
876  float Ts = .5f*(data.Tz[b]+data.Tz[t]);
877  float dt = data.Tz[b]-data.Tz[t] ;
878  float dT = dt*dt-data.Er[b]-data.Er[t]-2.*data.R[b]*data.R[t]*(Ts*Ts*covr0+covz0);
879  if ( dT > 0. && dT > (ipt*ipt)*COF*SA ) continue;
880  float dU = data.U[t]-data.U[b]; if (dU == 0.) continue;
881  float A = (data.V[t]-data.V[b])/dU ;
882  float B = data.V[t]-A*data.U[t] ;
883  float S2 = 1.f+A*A ;
884  float S = std::sqrt(S2) ;
885  float BK = std::abs(B*K) ;
886  if (BK > ipt*S) continue ; // Momentum cut
887  dT -= ((BK*BK)*COF*SA/S2) ;
888  if (dT > 0.) continue ; // Polar angle cut
889  dT*= ((data.R[b]*data.R[t])/(data.R[b]+data.R[t]));
890 
891  newSeed(data, data.SP[b]->spacepoint,(*r0)->spacepoint,data.SP[t]->spacepoint,dT);
892  }
893  }
894  }
895 }

◆ production3SpWithoutField() [1/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::production3SpWithoutField ( EventData data) const
private

Definition at line 729 of file SiSpacePointsSeedMaker_Cosmic.cxx.

730 {
731 
732  float ipt = 100000000.;
733  if (m_ptmin!=0.) ipt= 1.f/std::abs(.9f*m_ptmin);
734  const int ZI[SizeZ]= {5,6,7,8,9,10,4,3,2,1,0};
736 
737  // Loop thorugh all azimuthal regions
738  //
739  for (int f=data.fNmin; f<=m_fNmax; ++f) {
740  // For each azimuthal region loop through all Z regions
741  //
742  int z = 0;
743  if (!data.endlist) z = data.zMin;
744 
745  for (; z<SizeZ; ++z) {
746  int a = f *SizeZ+ZI[z];
747  if (!data.rfz_map[a]) continue;
748  int NB = 0, NT = 0;
749  for (int i=0; i<m_rfz_b[a]; ++i) {
750  int an = m_rfz_ib[a][i];
751  if (!data.rfz_map[an]) continue;
752  rb [NB] = data.rfz_Sorted[an].begin();
753  rbe[NB++] = data.rfz_Sorted[an].end();
754  }
755  for (int i=0; i<m_rfz_t[a]; ++i) {
756  int an = m_rfz_it[a][i];
757  if (!data.rfz_map[an]) continue;
758  rt [NT] = data.rfz_Sorted[an].begin();
759  rte[NT++] = data.rfz_Sorted[an].end();
760  }
761  production3SpWithoutField(data, rb, rbe, rt, rte, NB, NT, ipt);
762  if (!data.endlist) {data.fNmin=f; data.zMin = z; return;}
763  }
764  }
765  data.endlist = true;
766 }

◆ production3SpWithoutField() [2/2]

void InDet::SiSpacePointsSeedMaker_Cosmic::production3SpWithoutField ( EventData data,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rb,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rbe,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rt,
std::vector< InDet::SiSpacePointForSeed * >::iterator *  rte,
int  NB,
int  NT,
float  ipt 
) const
private

Definition at line 901 of file SiSpacePointsSeedMaker_Cosmic.cxx.

908 {
909  const float COF = 134*.05*9.;
910  const float dFcut = .96 ;
911 
913  if (!data.endlist) {r0 = data.rMin; data.endlist = true;}
914 
915  // Loop through all trigger space points
916  //
917  for (; r0!=rbe[0]; ++r0) {
918  bool pix = true;
919  if ((*r0)->spacepoint->clusterList().second) pix = false;
920  const Trk::Surface* sur0 = (*r0)->sur() ;
921  float X = (*r0)->x() ;
922  float Y = (*r0)->y() ;
923  float Z = (*r0)->z() ;
924  float covr0 = (*r0)->covr ();
925  float covz0 = (*r0)->covz ();
926 
927  int Nb = 0;
928 
929  // Bottom links production
930  //
931  for (int i=0; i<NB; ++i) {
932  for (r=rb[i]; r!=rbe[i]; ++r) {
933  float dy = Y-(*r)->y() ;
934  if ( dy < m_drmin) break;
935  if ( dy > m_drmax || (*r)->sur()==sur0) continue;
936 
937  if (!pix && !(*r)->spacepoint->clusterList().second) continue;
938  if ( pix && (*r)->spacepoint->clusterList().second) continue;
939 
940  float dx = X-(*r)->x();
941  float dz = Z-(*r)->z();
942  float r2 = 1.f/(dx*dx+dy*dy);
943  float dr = std::sqrt(r2);
944  data.Tz[Nb] = dz*dr;
945  if (data.Tz[Nb]<m_dzdrmin || data.Tz[Nb]>m_dzdrmax) continue;
946 
947  data.SP[Nb] = (*r) ;
948  data.U [Nb] = dx*dr;
949  data.V [Nb] = dy*dr;
950  data.Er[Nb] = (covz0+data.SP[Nb]->covz()+data.Tz[Nb]*data.Tz[Nb]*(covr0+data.SP[Nb]->covr()))*r2;
951  data.R [Nb] = dr ;
952  if (++Nb==m_maxsizeSP) goto breakb;
953  }
954  }
955  breakb:
956 
957  if (!Nb || Nb==m_maxsizeSP) continue;
958  int Nt = Nb;
959 
960  // Top links production
961  //
962  for (int i=0; i<NT; ++i) {
963  for (r=rt[i]; r!=rte[i]; ++r) {
964  float dy = (*r)->y()-Y ;
965  if (dy < m_drmin) {rt[i]=r; continue;}
966  if (dy>m_drmax) break;
967  if ((*r)->sur()==sur0) continue;
968 
969  if ( pix && (*r)->spacepoint->clusterList().second) continue;
970  if (!pix && !(*r)->spacepoint->clusterList().second) continue;
971 
972  float dx = (*r)->x()-X;
973  float dz = (*r)->z()-Z;
974  float r2 = 1.f/(dx*dx+dy*dy);
975  float dr = std::sqrt(r2);
976  data.Tz[Nt] = dz*dr;
977  if (data.Tz[Nt]<m_dzdrmin || data.Tz[Nt]>m_dzdrmax) continue;
978 
979  data.SP[Nt] = (*r) ;
980  data.U [Nt] = dx*dr;
981  data.V [Nt] = dy*dr;
982  data.Er[Nt] = (covz0+data.SP[Nt]->covz()+data.Tz[Nt]*data.Tz[Nt]*(covr0+data.SP[Nt]->covr()))*r2;
983  data.R [Nt] = dr ;
984  if (++Nt==m_maxsizeSP) goto breakt;
985  }
986  }
987 
988  breakt:
989 
990  if (!(Nt-Nb)) continue;
991 
992  // Three space points comparison
993  //
994  for (int b=Nb-1; b>=0; --b) {
995  float SA = 1.f+data.Tz[b]*data.Tz[b];
996  for (int t=Nb; t<Nt; ++t) {
997  // Azimuth angle cut
998  //
999  float dF = data.U[b]*data.U[t]+data.V[b]*data.V[t];
1000  if (dF < dFcut) continue;
1001 
1002  // Polar angle cut
1003  //
1004  float Ts = .5f*(data.Tz[b]+data.Tz[t]);
1005  float dT = data.Tz[b]-data.Tz[t] ;
1006  dT = dT*dT-data.Er[b]-data.Er[t]-2.f*data.R[b]*data.R[t]*(Ts*Ts*covr0+covz0);
1007  dT -= (ipt*ipt)*COF*SA ;
1008  if ( dT > 0. ) continue ;
1009 
1010  dT*= ((data.R[b]*data.R[t])/(data.R[b]+data.R[t]));
1011 
1012  newSeed(data, data.SP[b]->spacepoint,(*r0)->spacepoint,data.SP[t]->spacepoint,dT);
1013  }
1014  }
1015  }
1016 }

◆ writeNtuple()

void InDet::SiSpacePointsSeedMaker_Cosmic::writeNtuple ( const SiSpacePointsSeed seed,
const Trk::Track track,
int  seedType,
long  eventNumber 
) const
overridevirtual

Definition at line 1157 of file SiSpacePointsSeedMaker_Cosmic.cxx.

1157  {
1158 }

Member Data Documentation

◆ m_drmax

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_drmax {this, "maxdRadius", 1000.}
private

Definition at line 152 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_drmin

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_drmin {this, "mindRadius", 5.}
private

Definition at line 151 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_dzdrmax

float InDet::SiSpacePointsSeedMaker_Cosmic::m_dzdrmax {}
private

Definition at line 175 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_dzdrmin

float InDet::SiSpacePointsSeedMaker_Cosmic::m_dzdrmin {}
private

Definition at line 174 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_etamax

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_etamax {this, "etaMax", 2.3}
private

Definition at line 160 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_fieldCondObjInputKey

SG::ReadCondHandleKey<AtlasFieldCacheCondObj> InDet::SiSpacePointsSeedMaker_Cosmic::m_fieldCondObjInputKey
private
Initial value:
{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}

Definition at line 140 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_fieldScale

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_fieldScale {this, "fieldScale", 1.}
private

Definition at line 161 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_fNmax

int InDet::SiSpacePointsSeedMaker_Cosmic::m_fNmax {}
private

Definition at line 169 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_initialized

bool InDet::SiSpacePointsSeedMaker_Cosmic::m_initialized {false}
private

Definition at line 166 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_maxsize

IntegerProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_maxsize {this, "maxSize", 100}
private

Definition at line 149 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_maxsizeSP

IntegerProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_maxsizeSP {this, "maxSizeSP", 1500}
private

Definition at line 150 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_outputlevel

int InDet::SiSpacePointsSeedMaker_Cosmic::m_outputlevel {}
private

Definition at line 167 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_pixel

BooleanProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_pixel {this, "usePixel", true}
private

Definition at line 146 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_prdToTrackMap

SG::ReadHandleKey<Trk::PRDtoTrackMap> InDet::SiSpacePointsSeedMaker_Cosmic::m_prdToTrackMap {this,"PRDtoTrackMap","","option PRD-to-track association"}
private

Definition at line 138 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_ptmin

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_ptmin {this, "pTmin", 500.}
private

Definition at line 159 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_r_rmax

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_r_rmax {this, "radMax", 600.}
private

Definition at line 153 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_r_rstep

FloatProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_r_rstep {this, "radStep", 5.}
private

Definition at line 154 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_r_size

int InDet::SiSpacePointsSeedMaker_Cosmic::m_r_size {}
private

Definition at line 168 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_rfz_b

int InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_b[SizeRFZ] {}
private

Definition at line 170 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_rfz_ib

int InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_ib[SizeRFZ][SizeI] {}
private

Definition at line 172 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_rfz_it

int InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_it[SizeRFZ][SizeI] {}
private

Definition at line 173 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_rfz_t

int InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_t[SizeRFZ] {}
private

Definition at line 171 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_sct

BooleanProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_sct {this, "useSCT", true}
private

Definition at line 147 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_sF

float InDet::SiSpacePointsSeedMaker_Cosmic::m_sF {}
private

Definition at line 176 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_spacepointsOverlap

SG::ReadHandleKey<SpacePointOverlapCollection> InDet::SiSpacePointsSeedMaker_Cosmic::m_spacepointsOverlap {this, "SpacePointsOverlapName", "OverlapSpacePoints"}
private

Definition at line 137 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_spacepointsPixel

SG::ReadHandleKey<SpacePointContainer> InDet::SiSpacePointsSeedMaker_Cosmic::m_spacepointsPixel {this, "SpacePointsPixelName", "PixelSpacePoints"}
private

Definition at line 136 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_spacepointsSCT

SG::ReadHandleKey<SpacePointContainer> InDet::SiSpacePointsSeedMaker_Cosmic::m_spacepointsSCT {this, "SpacePointsSCTName", "SCT_SpacePoints"}
private

Definition at line 135 of file SiSpacePointsSeedMaker_Cosmic.h.

◆ m_useOverlap

BooleanProperty InDet::SiSpacePointsSeedMaker_Cosmic::m_useOverlap {this, "useOverlapSpCollection", false}
private

Definition at line 148 of file SiSpacePointsSeedMaker_Cosmic.h.


The documentation for this class was generated from the following files:
Trk::SpacePoint::clusterList
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:127
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Trk::SpacePoint
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:35
beamspotman.r
def r
Definition: beamspotman.py:676
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
data
char data[hepevt_bytes_allocation_ATLAS]
Definition: HepEvt.cxx:11
InDet::SiSpacePointsSeedMaker_Cosmic::m_etamax
FloatProperty m_etamax
Definition: SiSpacePointsSeedMaker_Cosmic.h:160
InDet::SiSpacePointsSeedMaker_Cosmic::initializeEventData
void initializeEventData(EventData &data) const
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:1145
python.tests.PyTestsLib.finalize
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
Definition: PyTestsLib.py:50
PlotCalibFromCool.ft
ft
Definition: PlotCalibFromCool.py:329
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDet::SiSpacePointForSeed
Definition: SiSpacePointForSeed.h:30
InDet::SiSpacePointsSeedMaker_Cosmic::production3Sp
void production3Sp(const EventContext &ctx, EventData &data) const
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:662
fitman.ax
ax
Definition: fitman.py:522
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
SG::ReadHandle::cptr
const_pointer_type cptr()
Dereference the pointer.
AtlasFieldCacheCondObj
Definition: AtlasFieldCacheCondObj.h:19
InDet::SiSpacePointsSeedMaker_Cosmic::m_fieldScale
FloatProperty m_fieldScale
Definition: SiSpacePointsSeedMaker_Cosmic.h:161
Trk::SpacePoint::globalPosition
virtual const Amg::Vector3D & globalPosition() const override final
Interface method to get the global Position.
Definition: Tracking/TrkEvent/TrkSpacePoint/TrkSpacePoint/SpacePoint.h:146
WriteCellNoiseToCool.rb
rb
Definition: WriteCellNoiseToCool.py:229
MagField::AtlasFieldCache::getFieldZR
void getFieldZR(const double *ATH_RESTRICT xyz, double *ATH_RESTRICT bxyz, double *ATH_RESTRICT deriv=nullptr)
get B field valaue on the z-r plane at given position works only inside the solenoid.
Definition: AtlasFieldCache.cxx:86
Trk::PRDtoTrackMap
Definition: PRDtoTrackMap.h:17
SG::ReadHandle< Trk::PRDtoTrackMap >
InDet::SiSpacePointsSeedMaker_Cosmic::SizeRFZ
@ SizeRFZ
Definition: SiSpacePointsSeedMaker_Cosmic.h:126
InDet::SiSpacePointsSeedMaker_Cosmic::dumpConditions
MsgStream & dumpConditions(MsgStream &out) const
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:401
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
hist_file_dump.d
d
Definition: hist_file_dump.py:137
initialize
void initialize()
Definition: run_EoverP.cxx:894
InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_it
int m_rfz_it[SizeRFZ][SizeI]
Definition: SiSpacePointsSeedMaker_Cosmic.h:173
InDet::SiSpacePointsSeedMaker_Cosmic::m_r_rmax
FloatProperty m_r_rmax
Definition: SiSpacePointsSeedMaker_Cosmic.h:153
TRTCalib_cfilter.p1
p1
Definition: TRTCalib_cfilter.py:130
InDet::SiSpacePointsSeedMaker_Cosmic::m_spacepointsSCT
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
Definition: SiSpacePointsSeedMaker_Cosmic.h:135
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
python.PhysicalConstants.pi2
float pi2
Definition: PhysicalConstants.py:52
InDet::SiSpacePointsSeedMaker_Cosmic::dumpEvent
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:458
M_PI
#define M_PI
Definition: ActiveFraction.h:11
InDet::SiSpacePointsSeedMaker_Cosmic::m_useOverlap
BooleanProperty m_useOverlap
Definition: SiSpacePointsSeedMaker_Cosmic.h:148
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
ReadCellNoiseFromCoolCompare.s4
s4
Definition: ReadCellNoiseFromCoolCompare.py:381
python.TurnDataReader.dr
dr
Definition: TurnDataReader.py:112
InDet::SiSpacePointsSeedMaker_Cosmic::m_drmax
FloatProperty m_drmax
Definition: SiSpacePointsSeedMaker_Cosmic.h:152
InDet::SiSpacePointsSeedMaker_Cosmic::m_fNmax
int m_fNmax
Definition: SiSpacePointsSeedMaker_Cosmic.h:169
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
InDet::SiSpacePointsSeedMaker_Cosmic::m_pixel
BooleanProperty m_pixel
Definition: SiSpacePointsSeedMaker_Cosmic.h:146
MCP::ScaleSmearParam::r2
@ r2
drawFromPickle.exp
exp
Definition: drawFromPickle.py:36
x
#define x
JetTiledMap::S
@ S
Definition: TiledEtaPhiMap.h:44
InDet::SiSpacePointsSeedMaker_Cosmic::buildFrameWork
void buildFrameWork()
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:480
InDet::SiSpacePointsSeedMaker_Cosmic::m_dzdrmin
float m_dzdrmin
Definition: SiSpacePointsSeedMaker_Cosmic.h:174
InDet::SiSpacePointsSeedMaker_Cosmic::newSpacePoint
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:1037
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
Monitored::X
@ X
Definition: HistogramFillerUtils.h:24
dqt_zlumi_alleff_HIST.A
A
Definition: dqt_zlumi_alleff_HIST.py:110
InDet::SiSpacePointsSeedMaker_Cosmic::isUsed
bool isUsed(const Trk::SpacePoint *, const Trk::PRDtoTrackMap &prd_to_track_map) const
Definition: SiSpacePointsSeedMaker_Cosmic.h:238
InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_b
int m_rfz_b[SizeRFZ]
Definition: SiSpacePointsSeedMaker_Cosmic.h:170
InDet::SiSpacePointsSeedMaker_Cosmic::SizeZ
@ SizeZ
Definition: SiSpacePointsSeedMaker_Cosmic.h:125
InDet::SiSpacePointsSeedMaker_Cosmic::erase
static void erase(EventData &data)
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:621
TRTCalib_cfilter.p2
p2
Definition: TRTCalib_cfilter.py:131
InDet::SiSpacePointsSeedMaker_Cosmic::m_r_size
int m_r_size
Definition: SiSpacePointsSeedMaker_Cosmic.h:168
A
InDet::SiSpacePointsSeedMaker_Cosmic::dump
virtual MsgStream & dump(EventData &data, MsgStream &out) const override
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:389
InDet::SiSpacePointsSeedMaker_Cosmic::m_sct
BooleanProperty m_sct
Definition: SiSpacePointsSeedMaker_Cosmic.h:147
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
InDet::SiSpacePointsSeedMaker_Cosmic::SizeRF
@ SizeRF
Definition: SiSpacePointsSeedMaker_Cosmic.h:124
InDet::SiSpacePointsSeedMaker_Cosmic::m_initialized
bool m_initialized
Definition: SiSpacePointsSeedMaker_Cosmic.h:166
InDet::SiSpacePointForSeed::set
void set(const Trk::SpacePoint *const &, const float *)
Definition: SiSpacePointForSeed.cxx:36
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
InDet::SiSpacePointsSeedMaker_Cosmic::m_ptmin
FloatProperty m_ptmin
Definition: SiSpacePointsSeedMaker_Cosmic.h:159
InDet::SiSpacePointsSeed
Definition: SiSpacePointsSeed.h:30
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
beamspotman.n
n
Definition: beamspotman.py:731
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
CaloNoise_fillDB.dt
dt
Definition: CaloNoise_fillDB.py:58
TRT_PAI_physicsConstants::r0
const double r0
electron radius{cm}
Definition: TRT_PAI_physicsConstants.h:20
EventData
Definition: Trigger/TrigAccel/TrigCudaFitter/src/EventData.h:11
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Preparation.mode
mode
Definition: Preparation.py:94
InDet::SiSpacePointsSeedMaker_Cosmic::m_fieldCondObjInputKey
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
Definition: SiSpacePointsSeedMaker_Cosmic.h:140
InDet::SiSpacePointsSeedMaker_Cosmic::m_spacepointsPixel
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
Definition: SiSpacePointsSeedMaker_Cosmic.h:136
InDet::SiSpacePointsSeedMaker_Cosmic::m_prdToTrackMap
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
Definition: SiSpacePointsSeedMaker_Cosmic.h:138
hist_file_dump.f
f
Definition: hist_file_dump.py:135
InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_ib
int m_rfz_ib[SizeRFZ][SizeI]
Definition: SiSpacePointsSeedMaker_Cosmic.h:172
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
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
Trk::PRDtoTrackMap::isUsed
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
MagField::AtlasFieldCache::solenoidOn
bool solenoidOn() const
status of the magnets
SG::ReadHandle::isValid
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Trk::PrepRawData
Definition: PrepRawData.h:62
Monitored::Y
@ Y
Definition: HistogramFillerUtils.h:24
InDet::SiSpacePointsSeedMaker_Cosmic::m_maxsizeSP
IntegerProperty m_maxsizeSP
Definition: SiSpacePointsSeedMaker_Cosmic.h:150
InDet::SiSpacePointsSeedMaker_Cosmic::newSeed
void newSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &) const
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:1088
ReadCellNoiseFromCoolCompare.s3
s3
Definition: ReadCellNoiseFromCoolCompare.py:380
plotBeamSpotMon.b
b
Definition: plotBeamSpotMon.py:77
InDet::SiSpacePointsSeedMaker_Cosmic::SizeI
@ SizeI
Definition: SiSpacePointsSeedMaker_Cosmic.h:127
InDet::SiSpacePointsSeedMaker_Cosmic::production3SpWithoutField
void production3SpWithoutField(EventData &data) const
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:729
InDet::SiSpacePointsSeedMaker_Cosmic::production2Sp
static void production2Sp(EventData &data)
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:653
InDet::SiSpacePointsSeedMaker_Cosmic::m_maxsize
IntegerProperty m_maxsize
Definition: SiSpacePointsSeedMaker_Cosmic.h:149
InDet::SiSpacePointsSeedMaker_Cosmic::m_rfz_t
int m_rfz_t[SizeRFZ]
Definition: SiSpacePointsSeedMaker_Cosmic.h:171
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
ir
int ir
counter of the current depth
Definition: fastadd.cxx:49
InDet::SiSpacePointsSeedMaker_Cosmic::fillLists
void fillLists(EventData &data) const
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:577
makeTRTBarrelCans.dy
tuple dy
Definition: makeTRTBarrelCans.py:21
InDet::SiSpacePointsSeedMaker_Cosmic::m_drmin
FloatProperty m_drmin
Definition: SiSpacePointsSeedMaker_Cosmic.h:151
InDet::SiSpacePointsSeedMaker_Cosmic::m_r_rstep
FloatProperty m_r_rstep
Definition: SiSpacePointsSeedMaker_Cosmic.h:154
a
TList * a
Definition: liststreamerinfos.cxx:10
y
#define y
InDet::SiSpacePointsSeedMaker_Cosmic::find3Sp
virtual void find3Sp(const EventContext &ctx, EventData &data, const std::list< Trk::Vertex > &lv) const override
with three space points with or without vertex constraint
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:315
SpacePointCollection
Definition: SpacePointCollection.h:40
DEBUG
#define DEBUG
Definition: page_access.h:11
F
#define F(x, y, z)
Definition: MD5.cxx:112
ReadCellNoiseFromCoolCompare.s2
s2
Definition: ReadCellNoiseFromCoolCompare.py:379
makeTRTBarrelCans.dx
tuple dx
Definition: makeTRTBarrelCans.py:20
MagField::AtlasFieldCache
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
Definition: AtlasFieldCache.h:43
S2
struct TBPatternUnitContext S2
InDet::SiSpacePointsSeedMaker_Cosmic::newRegion
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
Definition: SiSpacePointsSeedMaker_Cosmic.cxx:184
InDet::SiSpacePointsSeedMaker_Cosmic::m_outputlevel
int m_outputlevel
Definition: SiSpacePointsSeedMaker_Cosmic.h:167
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
python.IoTestsLib.w
def w
Definition: IoTestsLib.py:200
pix
Definition: PixelMapping.cxx:16
TRTCalib_cfilter.p3
p3
Definition: TRTCalib_cfilter.py:132
InDet::SiSpacePointsSeedMaker_Cosmic::m_spacepointsOverlap
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
Definition: SiSpacePointsSeedMaker_Cosmic.h:137
Trk::Surface
Definition: Tracking/TrkDetDescr/TrkSurfaces/TrkSurfaces/Surface.h:75
InDet::SiSpacePointsSeedMaker_Cosmic::m_dzdrmax
float m_dzdrmax
Definition: SiSpacePointsSeedMaker_Cosmic.h:175
python.compressB64.c
def c
Definition: compressB64.py:93
python.AutoConfigFlags.msg
msg
Definition: AutoConfigFlags.py:7
InDet::SiSpacePointsSeedMaker_Cosmic::m_sF
float m_sF
Definition: SiSpacePointsSeedMaker_Cosmic.h:176
fitman.ay
ay
Definition: fitman.py:525