Class for primary vertices z-coordinates generation (xKalman algorithm)
More...
#include <SiZvertexMaker_xk.h>
|
| | SiZvertexMaker_xk (const std::string &, const std::string &, const IInterface *) |
| virtual | ~SiZvertexMaker_xk ()=default |
| virtual StatusCode | initialize () override |
| virtual StatusCode | finalize () override |
| virtual std::list< Trk::Vertex > | newEvent (const EventContext &ctx, SiSpacePointsSeedMakerEventData &data) const override |
| virtual std::list< Trk::Vertex > | newRegion (const EventContext &ctx, SiSpacePointsSeedMakerEventData &data, const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &) const override |
| virtual std::list< Trk::Vertex > | newRegion (const EventContext &ctx, SiSpacePointsSeedMakerEventData &data, const std::vector< IdentifierHash > &, const std::vector< IdentifierHash > &, const IRoiDescriptor &) const override |
| virtual MsgStream & | dump (MsgStream &out) const override |
|
| IntegerProperty | m_nspoint {this, "SeedSize", 2} |
| IntegerProperty | m_histsize {this, "HistSize", 500} |
| IntegerProperty | m_mincontent {this, "minContent", 20} |
| DoubleProperty | m_zmin {this, "Zmin", -250.} |
| DoubleProperty | m_zmax {this, "Zmax", +250.} |
| DoubleProperty | m_ratio {this, "minRatio", 0.25} |
| std::list< Trk::Vertex > | production (const EventContext &ctx, SiSpacePointsSeedMakerEventData &data) const |
| MsgStream & | dumpConditions (MsgStream &out) const |
Class for primary vertices z-coordinates generation (xKalman algorithm)
In AthenaMT, event dependent cache inside SiZvertexMaker_xk is not preferred. SiSpacePointsSeedMakerEventData class holds event dependent data for SiZvertexMaker_xk and ISiSpacePointsSeedMaker. Its object is instantiated in SiSPSeededTrackFinder::execute.
Definition at line 49 of file SiZvertexMaker_xk.h.
◆ SiZvertexMaker_xk()
| InDet::SiZvertexMaker_xk::SiZvertexMaker_xk |
( |
const std::string & | t, |
|
|
const std::string & | n, |
|
|
const IInterface * | p ) |
◆ ~SiZvertexMaker_xk()
| virtual InDet::SiZvertexMaker_xk::~SiZvertexMaker_xk |
( |
| ) |
|
|
virtualdefault |
◆ dump()
| MsgStream & InDet::SiZvertexMaker_xk::dump |
( |
MsgStream & | out | ) |
const |
|
overridevirtual |
◆ dumpConditions()
| MsgStream & InDet::SiZvertexMaker_xk::dumpConditions |
( |
MsgStream & | out | ) |
const |
|
protected |
Definition at line 230 of file SiZvertexMaker_xk.cxx.
231{
234 for (
int i=0;
i<
n; ++
i)
s1.append(
" ");
236
237 out<<
"|----------------------------------------------------------------------"
238 <<"-------------------|"
239 <<std::endl;
240 out<<
"| SP seeds maker tool | "
242 out<<
"| Histogram size | "
244 <<" |"<<std::endl;
245 out<<
"| SP seed length (2 or 3) | "
247 <<" |"<<std::endl;
248 out<<
"| min content of hist.bin | "
250 <<" |"<<std::endl;
251 out<<
"| min vertex Z-coordinate | "
252 <<std::setw(12)<<std::setprecision(4)<<
m_zmin
253 <<" |"<<std::endl;
254 out<<
"| max vertex Z-coordinate | "
255 <<std::setw(12)<<std::setprecision(4)<<
m_zmax
256 <<" |"<<std::endl;
257 out<<
"| min. ratio to max bin | "
258 <<std::setw(12)<<std::setprecision(4)<<
m_ratio
259 <<" |"<<std::endl;
260 out<<
"|----------------------------------------------------------------------"
261 <<"-------------------|"
262 <<std::endl;
263
265}
IntegerProperty m_mincontent
IntegerProperty m_nspoint
IntegerProperty m_histsize
ToolHandle< InDet::ISiSpacePointsSeedMaker > m_seedsgenerator
◆ finalize()
| StatusCode InDet::SiZvertexMaker_xk::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
| StatusCode InDet::SiZvertexMaker_xk::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 37 of file SiZvertexMaker_xk.cxx.
38{
39
40
42
44
45 return StatusCode::SUCCESS;
46}
#define ATH_CHECK
Evaluate an expression and check for errors.
virtual MsgStream & dump(MsgStream &out) const override
◆ newEvent()
Definition at line 61 of file SiZvertexMaker_xk.cxx.
62{
65}
char data[hepevt_bytes_allocation_ATLAS]
std::list< Trk::Vertex > production(const EventContext &ctx, SiSpacePointsSeedMakerEventData &data) const
◆ newRegion() [1/2]
◆ newRegion() [2/2]
◆ production()
Definition at line 96 of file SiZvertexMaker_xk.cxx.
98{
99 std::list<Trk::Vertex> vertices;
100
102 std::vector<double> z_histogram(
m_histsize+1, 0.);
103
105
107 std::list<double> ZMAX;
108 const Trk::SpacePoint*
p0 =
nullptr;
109
110 std::list<Trk::Vertex> lv;
111
115
116 const InDet::SiSpacePointsSeed*
seed =
nullptr;
117 std::multimap<int,double>
ver;
118
120 int Hmax = 0 ;
122
124
125 std::vector<const Trk::SpacePoint*>::const_iterator
126 s =
seed->spacePoints().begin();
128 if ((*s)!=p0) {
129 if (Hmax!=0) {
131 ZMAX.push_back(zmax);
132 }
135 }
136 int n =
static_cast<int>((
seed->zVertex()-
m_zmin)*sZ);
142 }
143 }
144 }
145
146
147
149
150
151
152 std::list<int> ::iterator
m, me =
NMAX.end();
153 std::list<double>::iterator
z = ZMAX.begin();
154 for (m=
NMAX.begin(); m!=me; ++m) {
156 z_histogram[(*m)] += (*
z++);
157 }
158
159
160
161 int HiZm = 0;
164 while (true) {
165
168 if (H3>HiZm) {
169 HiZm=H3;
171 }
173 }
175 }
176
178
179 return vertices;
180 }
181 double zv = (z_histogram[
im]+z_histogram[
im-1]+z_histogram[
im+1])/
static_cast<double>(HiZm);
182 ver.insert(std::make_pair(-HiZm, zv));
183
184
185
186 HiZm =
static_cast<int>(
m_ratio*
static_cast<double>(HiZm));
189 while (true) {
192 if (H3>=HiZm) {
193 zv = (z_histogram[
i]+z_histogram[
i-1]+z_histogram[
i+1])/
static_cast<double>(H3);
194 ver.insert(std::make_pair(-H3, zv));
195 }
197 }
199 }
200
202 std::multimap<int, double>::iterator
v =
ver.begin(), ve =
ver.end();
205 Trk::Vertex Ver(Vp);
206 vertices.push_back(Ver);
207 }
208 }
209
211
212 return vertices;
213}
Eigen::Matrix< double, 3, 1 > Vector3D
◆ m_histsize
| IntegerProperty InDet::SiZvertexMaker_xk::m_histsize {this, "HistSize", 500} |
|
protected |
◆ m_mincontent
| IntegerProperty InDet::SiZvertexMaker_xk::m_mincontent {this, "minContent", 20} |
|
protected |
◆ m_nspoint
| IntegerProperty InDet::SiZvertexMaker_xk::m_nspoint {this, "SeedSize", 2} |
|
protected |
◆ m_ratio
| DoubleProperty InDet::SiZvertexMaker_xk::m_ratio {this, "minRatio", 0.25} |
|
protected |
◆ m_seedsgenerator
Definition at line 98 of file SiZvertexMaker_xk.h.
99{this, "SeedMakerTool", "InDet::SiSpacePointsSeedMaker_ATLxk"};
◆ m_zmax
| DoubleProperty InDet::SiZvertexMaker_xk::m_zmax {this, "Zmax", +250.} |
|
protected |
◆ m_zmin
| DoubleProperty InDet::SiZvertexMaker_xk::m_zmin {this, "Zmin", -250.} |
|
protected |
The documentation for this class was generated from the following files: