ATLAS Offline Software
SiSpacePointsProSeed.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
9 
10 namespace InDet {
12  {
13  m_s0 = nullptr ;
14  m_s1 = nullptr ;
15  m_s2 = nullptr ;
16  m_d0 = 0.;
17  m_eta = 0.;
18  m_z = 0.;
19  m_q = 0.;
20  }
21 
22  // Variables not copied deliberately?
23  // cppcheck-suppress operatorEqVarError
24  SiSpacePointsProSeed& SiSpacePointsProSeed::operator =
25  (const SiSpacePointsProSeed& sp)
26  {
27  if(&sp!=this) {
28 
29  m_d0 = sp.m_d0;
30  m_z = sp.m_z ;
31  m_eta = sp.m_eta;
32  m_q = sp.m_q ;
33  m_s0 = sp.m_s0;
34  m_s1 = sp.m_s1;
35  m_s2 = sp.m_s2;
36  }
37  return(*this);
38  }
39 
42  {
43  set(s0,s1,s2,z); m_q = 0.;
44  }
45 
47  // Copy constructor
49 
50  SiSpacePointsProSeed::SiSpacePointsProSeed (const SiSpacePointsProSeed& sp): m_s0(sp.m_s0),m_s1(sp.m_s1),m_s2(sp.m_s2)
51  {
52  *this = sp;
53  }
54 
56  // Set
58 
61  {
62  m_z = z ;
63  m_s0 = s0;
64  m_s1 = s1;
65  m_s2 = s2;
66  }
67 
69  // Set two space points seed
71 
73  {
74  s.erase();
75  s.add(m_s0->spacepoint);
76  s.add(m_s1->spacepoint);
77  s.setZVertex(double(m_z));
78  }
79 
81  // Set three space points seed
83 
85  {
86 
87  bool pixb = !m_s0->spacepoint->clusterList().second;
88  bool pixt = !m_s2->spacepoint->clusterList().second;
89 
90  if(pixb!=pixt) {
91  if(m_q > m_s0->quality() && m_q > m_s1->quality() && m_q > m_s2->quality()) return false;
92  }
93 
97 
98  s.erase();
99  s.add(m_s0->spacepoint);
100  s.add(m_s1->spacepoint);
101  s.add(m_s2->spacepoint);
102  s.setD0(m_s2->param());
103  s.setZVertex(double(m_z));
104  s.setEta(m_s2->eta());
105  s.setX1(m_s0->x());
106  s.setX2(m_s1->x());
107  s.setX3(m_s2->x());
108  s.setY1(m_s0->y());
109  s.setY2(m_s1->y());
110  s.setY3(m_s2->y());
111  s.setZ1(m_s0->z());
112  s.setZ2(m_s1->z());
113  s.setZ3(m_s2->z());
114  s.setR1(m_s0->radius());
115  s.setR2(m_s1->radius());
116  s.setR3(m_s2->radius());
117  s.setDZDR_B(m_s0->dzdr());
118  s.setDZDR_T(m_s2->dzdr());
119  s.setPt(m_s2->Pt());
120  return true;
121  }
122 
124  // Set quality in pro seed
126 
128  {
129  m_q = q;
130  bool pixb = !m_s0->spacepoint->clusterList().second;
131  bool pixt = !m_s2->spacepoint->clusterList().second;
133  if(pixb==pixt) {
134  m_s0->setQuality(q);
135  m_s1->setQuality(q);
136  m_s2->setQuality(q);
137  return true;
138  }
139  return q < m_s0->quality() || q < m_s1->quality() || q < m_s2->quality();
140  }
141 
142 } // end of name space
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
InDet::SiSpacePointsProSeed::m_eta
float m_eta
Definition: SiSpacePointsProSeed.h:67
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
InDet::SiSpacePointForSeed
Definition: SiSpacePointForSeed.h:30
InDet::SiSpacePointsProSeed::set2
void set2(InDet::SiSpacePointsSeed &)
Definition: SiSpacePointsProSeed.cxx:72
InDet::SiSpacePointsProSeed::z
const float & z() const
Definition: SiSpacePointsProSeed.h:45
InDet::SiSpacePointForSeed::spacepoint
const Trk::SpacePoint * spacepoint
Definition: SiSpacePointForSeed.h:58
SiSpacePointsSeed.h
InDet::SiSpacePointsProSeed::m_s2
SiSpacePointForSeed * m_s2
Definition: SiSpacePointsProSeed.h:64
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::SiSpacePointsProSeed::set3
bool set3(InDet::SiSpacePointsSeed &)
Definition: SiSpacePointsProSeed.cxx:84
InDet::SiSpacePointForSeed::x
const float & x() const
Definition: SiSpacePointForSeed.h:59
InDet::SiSpacePointForSeed::radius
const float & radius() const
Definition: SiSpacePointForSeed.h:62
InDet::SiSpacePointForSeed::Pt
const float & Pt() const
Definition: SiSpacePointForSeed.h:72
InDet::SiSpacePointForSeed::param
const float & param() const
Definition: SiSpacePointForSeed.h:68
InDet::SiSpacePointForSeed::eta
const float & eta() const
Definition: SiSpacePointForSeed.h:67
InDet::SiSpacePointsSeed
Definition: SiSpacePointsSeed.h:30
InDet::SiSpacePointsProSeed::SiSpacePointsProSeed
SiSpacePointsProSeed()
Definition: SiSpacePointsProSeed.cxx:11
InDet::SiSpacePointForSeed::y
const float & y() const
Definition: SiSpacePointForSeed.h:60
z
#define z
InDet::SiSpacePointForSeed::z
const float & z() const
Definition: SiSpacePointForSeed.h:61
InDet::SiSpacePointForSeed::setQuality
void setQuality(float)
Definition: SiSpacePointForSeed.cxx:126
SiSpacePointForSeed.h
SiSpacePointsProSeed.h
InDet::SiSpacePointsProSeed::setQuality
bool setQuality(float)
Definition: SiSpacePointsProSeed.cxx:127
InDet::SiSpacePointForSeed::quality
const float & quality() const
penalty term in the seed score
Definition: SiSpacePointForSeed.h:70
InDet::SiSpacePointsProSeed::set
void set(SiSpacePointForSeed *&, SiSpacePointForSeed *&, SiSpacePointForSeed *&, float)
Definition: SiSpacePointsProSeed.cxx:60
InDet::SiSpacePointsProSeed
Definition: SiSpacePointsProSeed.h:24
InDet::SiSpacePointsProSeed::m_s1
SiSpacePointForSeed * m_s1
Definition: SiSpacePointsProSeed.h:63
InDet::SiSpacePointsProSeed::m_s0
SiSpacePointForSeed * m_s0
Definition: SiSpacePointsProSeed.h:62
ReadCellNoiseFromCoolCompare.s2
s2
Definition: ReadCellNoiseFromCoolCompare.py:379
InDet::SiSpacePointsProSeed::m_q
float m_q
Definition: SiSpacePointsProSeed.h:74
extractSporadic.q
list q
Definition: extractSporadic.py:98
InDet::SiSpacePointsProSeed::m_d0
float m_d0
Definition: SiSpacePointsProSeed.h:65
InDet::SiSpacePointForSeed::dzdr
const float & dzdr() const
quality of the best seed this candidate was seen on
Definition: SiSpacePointForSeed.h:71
InDet::SiSpacePointsProSeed::m_z
float m_z
Definition: SiSpacePointsProSeed.h:66