|
ATLAS Offline Software
|
#include <SiSpacePointsSeedMaker_BeamGas.h>
|
|
| SiSpacePointsSeedMaker_BeamGas (const std::string &, const std::string &, const IInterface *) |
|
virtual | ~SiSpacePointsSeedMaker_BeamGas ()=default |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
|
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 |
|
virtual void | find2Sp (EventData &data, const std::list< Trk::Vertex > &lv) const override |
|
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...
|
|
|
produced accordingly methods find
|
virtual const SiSpacePointsSeed * | next (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 |
|
|
|
SG::ReadHandleKey< SpacePointContainer > | m_spacepointsSCT {this, "SpacePointsSCTName", "SCT_SpacePoints", "SCT space points container"} |
|
SG::ReadHandleKey< SpacePointContainer > | m_spacepointsPixel {this, "SpacePointsPixelName", "PixelSpacePoints", "Pixel space points container"} |
|
SG::ReadHandleKey< SpacePointOverlapCollection > | m_spacepointsOverlap {this, "SpacePointsOverlapName", "OverlapSpacePoints"} |
|
SG::ReadHandleKey< Trk::PRDtoTrackMap > | m_prdToTrackMap {this,"PRDtoTrackMap","","option PRD-to-track association"} |
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"} |
|
|
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCondObjInputKey |
|
|
BooleanProperty | m_pixel {this, "usePixel", true} |
|
BooleanProperty | m_sct {this, "useSCT""useSCT", true} |
|
BooleanProperty | m_useOverlap {this, "useOverlapSpCollection", true} |
|
IntegerProperty | m_maxsize {this, "maxSize", 20000} |
|
IntegerProperty | m_maxsizeSP {this, "maxSizeSP", 1500} |
|
IntegerProperty | m_maxOneSize {this, "maxSeedsForSpacePoint", 5} |
|
FloatProperty | m_drmax {this, "maxdRadius", 270.} |
|
FloatProperty | m_zmin {this, "minZ", -5000.} |
|
FloatProperty | m_zmax {this, "maxZ", +5000.} |
|
FloatProperty | m_r_rmax {this, "radMax", 600.} |
|
FloatProperty | m_r_rstep {this, "radStep", 2.} |
|
FloatProperty | m_r1min {this, "minRadius1", 0.} |
|
FloatProperty | m_r1max {this, "maxRadius1", 450.} |
|
FloatProperty | m_r2min {this, "minRadius2", 0.} |
|
FloatProperty | m_r2max {this, "maxRadius2", 600.} |
|
FloatProperty | m_r3min {this, "minRadius3", 0.} |
|
FloatProperty | m_r3max {this, "maxRadius3", 600.} |
|
FloatProperty | m_drmin {this, "mindRadius", 10.} |
|
FloatProperty | m_diver {this, "maxdImpact", 10.} |
|
FloatProperty | m_diverpps {this, "maxdImpactPPS", 1.7} |
|
|
FloatProperty | m_ptmin {this, "pTmin", 1000.} |
|
FloatProperty | m_etamax {this, "etaMax", 5.3} |
|
FloatProperty | m_fieldScale {this, "fieldScale", 1.} |
|
|
bool | m_initialized {false} |
|
int | m_outputlevel {0} |
|
int | m_r_size {0} |
|
int | m_fNmax {0} |
|
int | m_rfz_b [SizeRFZ] {} |
|
int | m_rfz_t [SizeRFZ] {} |
|
int | m_rfz_ib [SizeRFZ][SizeI] {} |
|
int | m_rfz_it [SizeRFZ][SizeI] {} |
|
float | m_dzdrmax {0.} |
|
float | m_dzdrmin {0.} |
|
float | m_COF {0.} |
|
float | m_ipt {0.} |
|
float | m_ipt2 {0.} |
|
float | m_sF {0.} |
|
|
| SiSpacePointsSeedMaker_BeamGas ()=delete |
|
| SiSpacePointsSeedMaker_BeamGas (const SiSpacePointsSeedMaker_BeamGas &)=delete |
|
SiSpacePointsSeedMaker_BeamGas & | operator= (const SiSpacePointsSeedMaker_BeamGas &)=delete |
|
MsgStream & | dumpConditions (EventData &data, MsgStream &out) const |
|
void | buildFrameWork () |
|
void | buildBeamFrameWork (EventData &data) const |
|
void | newOneSeed (EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const |
|
void | fillLists (EventData &data) const |
|
void | production3Sp (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, int &) const |
|
void | findNext (EventData &data) const |
|
bool | isZCompatible (float &) const |
|
bool | isUsed (const Trk::SpacePoint *sp, const Trk::PRDtoTrackMap &prd_to_track_map) const |
|
void | initializeEventData (EventData &data) const |
|
static MsgStream & | dumpEvent (EventData &data, MsgStream &out) |
|
static SiSpacePointForSeed * | newSpacePoint (EventData &data, const Trk::SpacePoint *const &) |
|
static void | newSeed (EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &) |
|
static void | newSeed (EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &) |
|
static void | fillSeeds (EventData &data) |
|
static void | erase (EventData &data) |
|
static void | production2Sp (EventData &data) |
|
static void | convertToBeamFrameWork (EventData &data, const Trk::SpacePoint *const &sp, float *r) |
|
Class for track candidates generation using space points information for standard Atlas geometry
In AthenaMT, event dependent cache inside SiSpacePointsSeedMaker_BeamGas is not preferred. SiSpacePointsSeedMakerEventData = EventData class holds event dependent data for SiSpacePointsSeedMaker_BeamGas. Its object is instantiated in SiSPSeededTrackFinder::execute.
Definition at line 54 of file SiSpacePointsSeedMaker_BeamGas.h.
◆ Size
◆ SiSpacePointsSeedMaker_BeamGas() [1/3]
InDet::SiSpacePointsSeedMaker_BeamGas::SiSpacePointsSeedMaker_BeamGas |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~SiSpacePointsSeedMaker_BeamGas()
virtual InDet::SiSpacePointsSeedMaker_BeamGas::~SiSpacePointsSeedMaker_BeamGas |
( |
| ) |
|
|
virtualdefault |
◆ SiSpacePointsSeedMaker_BeamGas() [2/3]
InDet::SiSpacePointsSeedMaker_BeamGas::SiSpacePointsSeedMaker_BeamGas |
( |
| ) |
|
|
privatedelete |
◆ SiSpacePointsSeedMaker_BeamGas() [3/3]
◆ buildBeamFrameWork()
void InDet::SiSpacePointsSeedMaker_BeamGas::buildBeamFrameWork |
( |
EventData & |
data | ) |
const |
|
private |
Definition at line 680 of file SiSpacePointsSeedMaker_BeamGas.cxx.
685 double tx =
std::tan(beamSpotHandle->beamTilt(0));
686 double ty =
std::tan(beamSpotHandle->beamTilt(1));
688 double ph = atan2(ty,
tx);
689 double th = acos(1./sqrt(1.+
tx*
tx+ty*ty));
690 double sint =
sin(
th);
692 double sinp =
sin(ph);
693 double cosp =
cos(ph);
695 data.xbeam[0] =
static_cast<float>(cb.x());
696 data.xbeam[1] =
static_cast<float>(
cost*cosp*cosp+sinp*sinp);
697 data.xbeam[2] =
static_cast<float>(
cost*sinp*cosp-sinp*cosp);
698 data.xbeam[3] =-
static_cast<float>(sint*cosp );
700 data.ybeam[0] =
static_cast<float>(cb.y());
701 data.ybeam[1] =
static_cast<float>(
cost*cosp*sinp-sinp*cosp);
702 data.ybeam[2] =
static_cast<float>(
cost*sinp*sinp+cosp*cosp);
703 data.ybeam[3] =-
static_cast<float>(sint*sinp );
705 data.zbeam[0] =
static_cast<float>(cb.z());
706 data.zbeam[1] =
static_cast<float>(sint*cosp);
707 data.zbeam[2] =
static_cast<float>(sint*sinp);
708 data.zbeam[3] =
static_cast<float>(
cost);
◆ buildFrameWork()
void InDet::SiSpacePointsSeedMaker_BeamGas::buildFrameWork |
( |
| ) |
|
|
private |
◆ convertToBeamFrameWork()
◆ dump()
MsgStream & InDet::SiSpacePointsSeedMaker_BeamGas::dump |
( |
EventData & |
data, |
|
|
MsgStream & |
out |
|
) |
| const |
|
overridevirtual |
◆ dumpConditions()
MsgStream & InDet::SiSpacePointsSeedMaker_BeamGas::dumpConditions |
( |
EventData & |
data, |
|
|
MsgStream & |
out |
|
) |
| const |
|
private |
Definition at line 433 of file SiSpacePointsSeedMaker_BeamGas.cxx.
436 std::string
s2;
for (
int i=0;
i<
n; ++
i)
s2.append(
" ");
s2.append(
"|");
438 std::string
s3;
for (
int i=0;
i<
n; ++
i)
s3.append(
" ");
s3.append(
"|");
440 std::string
s4;
for (
int i=0;
i<
n; ++
i)
s4.append(
" ");
s4.append(
"|");
442 std::string s5;
for (
int i=0;
i<
n; ++
i) s5.append(
" "); s5.append(
"|");
445 out<<
"|---------------------------------------------------------------------|"
459 <<std::setw(12)<<
m_sct
464 out<<
"| maxSizeSP | "
467 out<<
"| pTmin (mev) | "
468 <<std::setw(12)<<std::setprecision(5)<<
m_ptmin
471 <<std::setw(12)<<std::setprecision(5)<<
m_etamax
473 out<<
"| max radius SP | "
474 <<std::setw(12)<<std::setprecision(5)<<
m_r_rmax
476 out<<
"| radius step | "
477 <<std::setw(12)<<std::setprecision(5)<<
m_r_rstep
479 out<<
"| min Z-vertex position | "
480 <<std::setw(12)<<std::setprecision(5)<<
m_zmin
482 out<<
"| max Z-vertex position | "
483 <<std::setw(12)<<std::setprecision(5)<<
m_zmax
485 out<<
"| min radius first SP(3) | "
486 <<std::setw(12)<<std::setprecision(5)<<
m_r1min
488 out<<
"| min radius second SP(3) | "
489 <<std::setw(12)<<std::setprecision(5)<<
m_r2min
491 out<<
"| min radius last SP(3) | "
492 <<std::setw(12)<<std::setprecision(5)<<
m_r3min
494 out<<
"| max radius first SP(3) | "
495 <<std::setw(12)<<std::setprecision(4)<<
m_r1max
497 out<<
"| max radius second SP(3) | "
498 <<std::setw(12)<<std::setprecision(5)<<
m_r2max
500 out<<
"| max radius last SP(3) | "
501 <<std::setw(12)<<std::setprecision(5)<<
m_r3max
503 out<<
"| min space points dR | "
504 <<std::setw(12)<<std::setprecision(5)<<
m_drmin
506 out<<
"| max space points dR | "
507 <<std::setw(12)<<std::setprecision(5)<<
m_drmax
509 out<<
"| max impact | "
510 <<std::setw(12)<<std::setprecision(5)<<
m_diver
512 out<<
"| max impact pps | "
513 <<std::setw(12)<<std::setprecision(5)<<
m_diverpps
515 out<<
"|---------------------------------------------------------------------|"
517 out<<
"| Beam X center | "
518 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[0]
520 out<<
"| Beam Y center | "
521 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[0]
523 out<<
"| Beam Z center | "
524 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[0]
526 out<<
"| Beam X-axis direction | "
527 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[1]
528 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[2]
529 <<std::setw(12)<<std::setprecision(5)<<
data.xbeam[3]
531 out<<
"| Beam Y-axis direction | "
532 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[1]
533 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[2]
534 <<std::setw(12)<<std::setprecision(5)<<
data.ybeam[3]
536 out<<
"| Beam Z-axis direction | "
537 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[1]
538 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[2]
539 <<std::setw(12)<<std::setprecision(5)<<
data.zbeam[3]
541 out<<
"|---------------------------------------------------------------------|"
◆ dumpEvent()
MsgStream & InDet::SiSpacePointsSeedMaker_BeamGas::dumpEvent |
( |
EventData & |
data, |
|
|
MsgStream & |
out |
|
) |
| |
|
staticprivate |
Definition at line 550 of file SiSpacePointsSeedMaker_BeamGas.cxx.
552 out<<
"|---------------------------------------------------------------------|"
555 <<std::setw(12)<<
data.ns
558 <<std::setw(12)<<
data.nsaz
561 <<std::setw(12)<<
data.l_seeds.size()
563 out<<
"|---------------------------------------------------------------------|"
◆ erase()
void InDet::SiSpacePointsSeedMaker_BeamGas::erase |
( |
EventData & |
data | ) |
|
|
staticprivate |
◆ fillLists()
void InDet::SiSpacePointsSeedMaker_BeamGas::fillLists |
( |
EventData & |
data | ) |
const |
|
private |
Definition at line 730 of file SiSpacePointsSeedMaker_BeamGas.cxx.
738 if (!
data.r_map[
i])
continue;
739 r =
data.r_Sorted[
i].begin();
741 while (
r!=
data.r_Sorted[
i].end()) {
745 float F = (*r)->phi();
if (
F<0.)
F+=
pi2;
747 int f =
static_cast<int>(
F*
m_sF);
751 data.rf_Sorted[
f].push_back(*
r);
754 int z;
float Z = (*r)->z();
759 Z< 250.?
z=5:
Z< 450.?
z=6:
Z< 925.?
z=7:
Z< 1400.?
z=8:
Z< 2500.?
z=9:
z=10;
761 Z>-250.?
z=5:
Z>-450.?
z=4:
Z>-925.?
z=3:
Z>-1400.?
z=2:
Z>-2500.?
z=1:
z= 0;
765 data.rfz_Sorted[
n].push_back(*
r);
767 data.r_Sorted[
i].erase(
r++);
◆ fillSeeds()
void InDet::SiSpacePointsSeedMaker_BeamGas::fillSeeds |
( |
EventData & |
data | ) |
|
|
staticprivate |
◆ finalize()
StatusCode InDet::SiSpacePointsSeedMaker_BeamGas::finalize |
( |
| ) |
|
|
overridevirtual |
◆ find2Sp()
◆ find3Sp() [1/2]
◆ find3Sp() [2/2]
◆ findNext()
void InDet::SiSpacePointsSeedMaker_BeamGas::findNext |
( |
EventData & |
data | ) |
const |
|
private |
◆ findVSp()
◆ getWriteNtupleBoolProperty()
bool InDet::SiSpacePointsSeedMaker_BeamGas::getWriteNtupleBoolProperty |
( |
| ) |
const |
|
overridevirtual |
◆ initialize()
StatusCode InDet::SiSpacePointsSeedMaker_BeamGas::initialize |
( |
| ) |
|
|
overridevirtual |
◆ initializeEventData()
void InDet::SiSpacePointsSeedMaker_BeamGas::initializeEventData |
( |
EventData & |
data | ) |
const |
|
private |
◆ isUsed()
◆ isZCompatible()
bool InDet::SiSpacePointsSeedMaker_BeamGas::isZCompatible |
( |
float & |
Zv | ) |
const |
|
private |
◆ newEvent()
void InDet::SiSpacePointsSeedMaker_BeamGas::newEvent |
( |
const EventContext & |
ctx, |
|
|
EventData & |
data, |
|
|
int |
iteration |
|
) |
| const |
|
overridevirtual |
Definition at line 86 of file SiSpacePointsSeedMaker_BeamGas.cxx.
95 double f[3], gP[3] ={10.,10.,0.};
101 if (fieldCondObj ==
nullptr) {
105 fieldCondObj->getInitializedCache (fieldCache);
110 data.K = 2./(300.*
f[2]);
112 data.K = 2./(300.* 5. );
115 data.i_spforseed =
data.l_spforseed.begin();
124 if (!prd_to_track_map.
isValid()) {
127 prd_to_track_map_cptr = prd_to_track_map.
cptr();
135 if (spacepointsPixel.isValid()) {
141 if (prd_to_track_map_cptr &&
isUsed(sp,*prd_to_track_map_cptr))
continue;
143 int ir =
static_cast<int>(
r*irstep);
145 data.r_Sorted[
ir].push_back(sps);
159 if (spacepointsSCT.isValid()) {
165 if (prd_to_track_map_cptr &&
isUsed(sp,*prd_to_track_map_cptr))
continue;
167 int ir =
static_cast<int>(
r*irstep);
169 data.r_Sorted[
ir].push_back(sps);
182 if (spacepointsOverlap.isValid()) {
188 if (prd_to_track_map_cptr &&
isUsed(sp,*prd_to_track_map_cptr))
continue;
190 int ir =
static_cast<int>(
r*irstep);
192 data.r_Sorted[
ir].push_back(sps);
◆ newOneSeed()
Definition at line 1064 of file SiSpacePointsSeedMaker_BeamGas.cxx.
1070 data.OneSeeds[
data.nOneSeeds].erase();
1074 data.OneSeeds[
data.nOneSeeds].setZVertex(
static_cast<double>(
z));
1075 data.mapOneSeeds.insert(std::make_pair(
q, &(
data.OneSeeds[
data.nOneSeeds])));
1078 std::multimap<float,InDet::SiSpacePointsSeed*>::reverse_iterator
1079 l =
data.mapOneSeeds.rbegin();
1080 if ((*l).first <=
q)
return;
1086 s->setZVertex(
static_cast<double>(
z));
1088 i =
data.mapOneSeeds.insert(std::make_pair(
q,
s));
1090 for (++
i;
i!=
data.mapOneSeeds.end(); ++
i) {
1091 if ((*i).second==
s) {
1092 data.mapOneSeeds.erase(
i);
◆ newRegion() [1/2]
Definition at line 207 of file SiSpacePointsSeedMaker_BeamGas.cxx.
218 double f[3], gP[3] ={10.,10.,0.};
224 if (fieldCondObj ==
nullptr) {
228 fieldCondObj->getInitializedCache (fieldCache);
233 data.K = 2./(300.*
f[2]);
235 data.K = 2./(300.* 5. );
238 data.i_spforseed =
data.l_spforseed.begin();
246 if (!prd_to_track_map.
isValid()) {
249 prd_to_track_map_cptr = prd_to_track_map.
cptr();
254 if (
m_pixel && !vPixel.empty()) {
257 if (spacepointsPixel.isValid()) {
262 const auto *
w = spacepointsPixel->indexFindPtr(
l);
263 if (
w==
nullptr)
continue;
267 if (prd_to_track_map_cptr &&
isUsed(sp, *prd_to_track_map_cptr))
continue;
268 int ir =
static_cast<int>(
r*irstep);
270 data.r_Sorted[
ir].push_back(sps);
281 if (
m_sct && !vSCT.empty()) {
284 if (spacepointsSCT.isValid()) {
288 const auto *
w = spacepointsSCT->indexFindPtr(
l);
289 if (
w==
nullptr)
continue;
293 if (prd_to_track_map_cptr &&
isUsed(sp,*prd_to_track_map_cptr))
continue;
294 int ir =
static_cast<int>(
r*irstep);
296 data.r_Sorted[
ir].push_back(sps);
◆ newRegion() [2/2]
◆ newSeed() [1/2]
◆ newSeed() [2/2]
◆ newSpacePoint()
◆ next()
◆ operator=()
◆ production2Sp()
void InDet::SiSpacePointsSeedMaker_BeamGas::production2Sp |
( |
EventData & |
data | ) |
|
|
staticprivate |
◆ production3Sp() [1/2]
void InDet::SiSpacePointsSeedMaker_BeamGas::production3Sp |
( |
EventData & |
data | ) |
const |
|
private |
Definition at line 820 of file SiSpacePointsSeedMaker_BeamGas.cxx.
822 if (
data.nsaz<3)
return;
824 const int ZI[
SizeZ]= {5,6,7,8,9,10,4,3,2,1,0};
844 if (!
data.rfz_map[an])
continue;
845 rb [NB] =
data.rfz_Sorted[an].begin();
846 rbe[NB++] =
data.rfz_Sorted[an].end();
851 if (!
data.rfz_map[an])
continue;
852 rt [NT] =
data.rfz_Sorted[an].begin();
853 rte[NT++] =
data.rfz_Sorted[an].end();
858 data.zMin =
z;
return;
◆ production3Sp() [2/2]
Definition at line 869 of file SiSpacePointsSeedMaker_BeamGas.cxx.
885 for (;
r0!=rbe[0]; ++
r0) {
888 data.mapOneSeeds.erase(
data.mapOneSeeds.begin(),
data.mapOneSeeds.end());
890 float R = (*r0)->radius();
899 float X = (*r0)->x();
900 float Y = (*r0)->y();
901 float Z = (*r0)->z();
906 for (
int i=0;
i!=NB; ++
i) {
908 for (
r=
rb[
i];
r!=rbe[
i]; ++
r) {
910 float Rb =(*r)->radius();
917 if (dR >
m_drmax || (*r)->sur()==sur0)
continue;
919 if ( !
pix && !(*r)->spacepoint->clusterList().second)
continue;
921 float Tz = (
Z-(*r)->z())/dR;
923 if (Tz < m_dzdrmin || Tz >
m_dzdrmax)
continue;
940 for (
int i=0;
i!=NT; ++
i) {
942 for (
r=rt[
i];
r!=rte[
i]; ++
r) {
944 float Rt =(*r)->radius();
949 if ( (*r)->sur()==sur0)
continue;
951 float Tz = ((*r)->z()-
Z)/dR;
953 if (Tz < m_dzdrmin || Tz >
m_dzdrmax)
continue;
965 if (!(Nt-Nb))
continue;
967 float covr0 = (*r0)->covr();
968 float covz0 = (*r0)->covz();
973 for (
int i=0;
i!=Nt; ++
i) {
977 float dx = sp->
x()-
X;
978 float dy = sp->
y()-
Y;
979 float dz = sp->
z()-
Z;
983 float dr = std::sqrt(r2);
984 float tz = dz*
dr;
if (
i < Nb) tz = -tz;
1000 float ipt2K = ipt2/K2;
1001 float ipt2C = ipt2*COF;
1002 float COFK = COF*K2;
1008 for (
int b=0;
b!=Nb; ++
b) {
1012 float Zob =
data.Zo[
b];
1013 float Tzb =
data.Tz[
b];
1014 float Rb2r =
data.R [
b]*covr0;
1015 float Rb2z =
data.R [
b]*covz0;
1016 float Erb =
data.Er[
b];
1017 float Vb =
data.V [
b];
1018 float Ub =
data.U [
b];
1019 float Tzb2 = (1.f+Tzb*Tzb);
1020 float CSA = Tzb2*COFK;
1021 float ICSA = Tzb2*ipt2C;
1023 for (
int t=Nb;
t!=Nt; ++
t) {
1025 float Ts = .5f*(Tzb+
data.Tz[
t]);
1028 if ( dT > ICSA)
continue;
1029 float dU =
data.U[
t]-Ub;
if (dU == 0. )
continue;
1030 float A = (
data.V[
t]-Vb)/dU;
1034 if (B2 > ipt2K*
S2 || dT*
S2 > B2*CSA)
continue;
1035 float Im = std::abs((
A-
B*
R)*
R);
1038 if ( Im > imc )
continue;
1039 if (
data.SP[
t]->spacepoint->clusterList().second && Im > imcs)
continue;
1044 nseed +=
data.mapOneSeeds.size();
◆ writeNtuple()
◆ m_beamSpotKey
◆ m_COF
float InDet::SiSpacePointsSeedMaker_BeamGas::m_COF {0.} |
|
private |
◆ m_diver
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_diver {this, "maxdImpact", 10.} |
|
private |
◆ m_diverpps
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_diverpps {this, "maxdImpactPPS", 1.7} |
|
private |
◆ m_drmax
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_drmax {this, "maxdRadius", 270.} |
|
private |
◆ m_drmin
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_drmin {this, "mindRadius", 10.} |
|
private |
◆ m_dzdrmax
float InDet::SiSpacePointsSeedMaker_BeamGas::m_dzdrmax {0.} |
|
private |
◆ m_dzdrmin
float InDet::SiSpacePointsSeedMaker_BeamGas::m_dzdrmin {0.} |
|
private |
◆ m_etamax
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_etamax {this, "etaMax", 5.3} |
|
private |
◆ m_fieldCondObjInputKey
Initial value:{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 147 of file SiSpacePointsSeedMaker_BeamGas.h.
◆ m_fieldScale
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_fieldScale {this, "fieldScale", 1.} |
|
private |
◆ m_fNmax
int InDet::SiSpacePointsSeedMaker_BeamGas::m_fNmax {0} |
|
private |
◆ m_initialized
bool InDet::SiSpacePointsSeedMaker_BeamGas::m_initialized {false} |
|
private |
◆ m_ipt
float InDet::SiSpacePointsSeedMaker_BeamGas::m_ipt {0.} |
|
private |
◆ m_ipt2
float InDet::SiSpacePointsSeedMaker_BeamGas::m_ipt2 {0.} |
|
private |
◆ m_maxOneSize
IntegerProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_maxOneSize {this, "maxSeedsForSpacePoint", 5} |
|
private |
◆ m_maxsize
IntegerProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_maxsize {this, "maxSize", 20000} |
|
private |
◆ m_maxsizeSP
IntegerProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_maxsizeSP {this, "maxSizeSP", 1500} |
|
private |
◆ m_outputlevel
int InDet::SiSpacePointsSeedMaker_BeamGas::m_outputlevel {0} |
|
private |
◆ m_pixel
BooleanProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_pixel {this, "usePixel", true} |
|
private |
◆ m_prdToTrackMap
◆ m_ptmin
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_ptmin {this, "pTmin", 1000.} |
|
private |
◆ m_r1max
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r1max {this, "maxRadius1", 450.} |
|
private |
◆ m_r1min
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r1min {this, "minRadius1", 0.} |
|
private |
◆ m_r2max
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r2max {this, "maxRadius2", 600.} |
|
private |
◆ m_r2min
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r2min {this, "minRadius2", 0.} |
|
private |
◆ m_r3max
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r3max {this, "maxRadius3", 600.} |
|
private |
◆ m_r3min
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r3min {this, "minRadius3", 0.} |
|
private |
◆ m_r_rmax
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r_rmax {this, "radMax", 600.} |
|
private |
◆ m_r_rstep
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_r_rstep {this, "radStep", 2.} |
|
private |
◆ m_r_size
int InDet::SiSpacePointsSeedMaker_BeamGas::m_r_size {0} |
|
private |
◆ m_rfz_b
int InDet::SiSpacePointsSeedMaker_BeamGas::m_rfz_b[SizeRFZ] {} |
|
private |
◆ m_rfz_ib
int InDet::SiSpacePointsSeedMaker_BeamGas::m_rfz_ib[SizeRFZ][SizeI] {} |
|
private |
◆ m_rfz_it
int InDet::SiSpacePointsSeedMaker_BeamGas::m_rfz_it[SizeRFZ][SizeI] {} |
|
private |
◆ m_rfz_t
int InDet::SiSpacePointsSeedMaker_BeamGas::m_rfz_t[SizeRFZ] {} |
|
private |
◆ m_sct
BooleanProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_sct {this, "useSCT""useSCT", true} |
|
private |
◆ m_sF
float InDet::SiSpacePointsSeedMaker_BeamGas::m_sF {0.} |
|
private |
◆ m_spacepointsOverlap
◆ m_spacepointsPixel
◆ m_spacepointsSCT
◆ m_useOverlap
BooleanProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_useOverlap {this, "useOverlapSpCollection", true} |
|
private |
◆ m_zmax
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_zmax {this, "maxZ", +5000.} |
|
private |
◆ m_zmin
FloatProperty InDet::SiSpacePointsSeedMaker_BeamGas::m_zmin {this, "minZ", -5000.} |
|
private |
The documentation for this class was generated from the following files:
const std::pair< const PrepRawData *, const PrepRawData * > & clusterList() const
return the pair of cluster pointers by reference
JetConstituentVector::iterator iterator
int cost(std::vector< std::string > &files, node &n, const std::string &directory="", bool deleteref=false, bool relocate=false)
char data[hepevt_bytes_allocation_ATLAS]
def finalize(self)
_info( "content of StoreGate..." ) self.sg.dump()
virtual MsgStream & dump(EventData &data, MsgStream &out) const override
static void convertToBeamFrameWork(EventData &data, const Trk::SpacePoint *const &sp, float *r)
const_pointer_type cptr()
Dereference the pointer.
SG::ReadHandleKey< SpacePointContainer > m_spacepointsSCT
virtual const Amg::Vector3D & globalPosition() const override final
Interface method to get the global Position.
static SiSpacePointForSeed * newSpacePoint(EventData &data, const Trk::SpacePoint *const &)
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.
void newOneSeed(EventData &data, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const Trk::SpacePoint *&, const float &, const float &) const
IntegerProperty m_maxsize
bool isZCompatible(float &) const
static void erase(EventData &data)
const float & covz() const
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_prdToTrackMap
void findNext(EventData &data) const
SG::ReadHandleKey< SpacePointOverlapCollection > m_spacepointsOverlap
const std::string & key() const
Return the StoreGate ID for the referenced object.
MsgStream & dumpConditions(EventData &data, MsgStream &out) const
IntegerProperty m_maxOneSize
bool isUsed(const Trk::SpacePoint *sp, const Trk::PRDtoTrackMap &prd_to_track_map) const
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
void set(const Trk::SpacePoint *const &, const float *)
FloatProperty m_fieldScale
::StatusCode StatusCode
StatusCode definition for legacy code.
const double r0
electron radius{cm}
SG::ReadHandleKey< SpacePointContainer > m_spacepointsPixel
void fillLists(EventData &data) const
BooleanProperty m_useOverlap
void production3Sp(EventData &data) const
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
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
bool isUsed(const PrepRawData &prd) const
does this PRD belong to at least one track?
bool solenoidOn() const
status of the magnets
virtual bool isValid() override final
Can the handle be successfully dereferenced?
void initializeEventData(EventData &data) const
IntegerProperty m_maxsizeSP
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
const float & covr() const
int ir
counter of the current depth
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > m_fieldCondObjInputKey
static MsgStream & dumpEvent(EventData &data, MsgStream &out)
int m_rfz_ib[SizeRFZ][SizeI]
virtual void newRegion(const EventContext &ctx, EventData &data, const std::vector< IdentifierHash > &vPixel, const std::vector< IdentifierHash > &vSCT) const override
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
struct TBPatternUnitContext S2
void buildBeamFrameWork(EventData &data) const
static void production2Sp(EventData &data)
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
int m_rfz_it[SizeRFZ][SizeI]
static void fillSeeds(EventData &data)