 |
ATLAS Offline Software
|
#include <FPGATrackSimKeyLayerBinDesc.h>
|
Gaudi::Property< double > | m_rin {this, "rin", {-1.0}, "Radius of inner layer for keylayer definition"} |
|
Gaudi::Property< double > | m_rout {this, "rout", {-1.0}, "Radius of outer layer for keylayer definition"} |
|
Gaudi::Property< bool > | m_approxMath {this, "approxMath", {false}, "Use approximate math to emulate possible firmware"} |
|
Gaudi::Property< double > | m_d0pad {this, "D0Pad", 0.0, "Extra phi padding from d0 resolution"} |
|
Gaudi::Property< double > | m_phipad {this, "PhiPad", 0.0, "Extra phi padding from phi resolution"} |
|
Gaudi::Property< double > | m_qptpad {this, "QPtPad", 0.0, "Extra phi padding from q/pT resolution"} |
|
Gaudi::Property< double > | m_z0pad {this, "Z0Pad", 0.0, "Extra eta padding from z0 resolution"} |
|
Gaudi::Property< double > | m_etapad {this, "EtaPad", 0.0, "Extra eta padding from eta resolution"} |
|
Gaudi::Property< std::vector< double > > | m_slPerEtaMod |
|
Gaudi::Property< unsigned > | m_fieldCorRegion { this, "fieldCorRegion", 2, "region for fieldCorrection"} |
|
Gaudi::Property< bool > | m_fieldCorrection {this, "fieldCorrection", true, "Use magnetic field correction for Hough transform"} |
|
FPGATrackSimKeyLayerTool | m_keylyrtool |
|
const std::vector< std::string > | m_parNames {"zR1", "zR2", "phiR1", "phiR2", "xm"} |
|
const std::vector< unsigned > | m_phipars {2, 3, 4} |
|
const std::vector< unsigned > | m_etapars {0, 1} |
|
◆ etaResidual()
◆ hitInBin()
Definition at line 40 of file FPGATrackSimKeyLayerBinDesc.cxx.
46 double hitr= storedhit.
hitptr->getR();
48 bool passesPhi =
true;
49 bool passesEta =
true;
53 bool isTruthBin = ((m_truthbin.size()>
step.stepNum())&&(m_truthbin[
step.stepNum()]==
idx));
62 half_xm_bin_pars.xm =
step.binWidth(4)/2.0;
65 double xrange = std::abs(xshift) +
r1 *
step.binWidth(2) / 2.0
66 + ((
r2*
step.binWidth(3) -
r1*
step.binWidth(2)) / (r2 - r1) * (hitr -
r1))/2.0;
69 ATH_MSG_ERROR(
"Negative xrange: " << std::abs(xshift) <<
" " << r1 *
step.binWidth(2) / 2.0 <<
" "
70 << ((r2*
step.binWidth(3) - r1*
step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0);
74 double stripLength = 25.0;
76 if (!storedhit.
hitptr->isBarrel()) {
87 if (isTruthBin && !passesPhi)
ATH_MSG_DEBUG(
"Hit fails Phi cut, lyr=" << storedhit.
hitptr->getPhysLayer() <<
" "
91 <<
" " << hitr <<
" " << trackpars);
98 double width_z_in =
step.binWidth(0)/2.0;
99 double width_z_out =
step.binWidth(1)/2.0;
100 double zrange = width_z_in + (width_z_out-width_z_in) * std::abs((hitr-r1))/(r2-r1);
104 double stripLength = 25.0;
106 if (!storedhit.
hitptr->isBarrel()) {
117 if (isTruthBin && !passesEta)
ATH_MSG_DEBUG(
"Hit fails Eta cut , lyr=" << storedhit.
hitptr->getPhysLayer() <<
" r=" << hitr <<
" "
122 if (isTruthBin && !(passesPhi && passesEta))
ATH_MSG_DEBUG(
"Hit in truth bin fails cuts: " <<
" passesPhi=" << passesPhi <<
" passesEta=" << passesEta);
124 return passesPhi && passesEta;
◆ initialize()
StatusCode FPGATrackSimKeyLayerBinDesc::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 24 of file FPGATrackSimKeyLayerBinDesc.cxx.
27 const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties();
28 for( Gaudi::Details::PropertyBase* prop : props ) {
29 if (prop->ownerTypeName()==this->type()) {
30 ATH_MSG_DEBUG(
"Property:\t" << prop->name() <<
"\t : \t"<< prop->toString());
37 return StatusCode::SUCCESS;
◆ keyparsToParSet()
◆ parNames()
virtual const std::string& FPGATrackSimKeyLayerBinDesc::parNames |
( |
unsigned |
i | ) |
const |
|
inlineoverridevirtual |
◆ parSetToKeyPars()
◆ parSetToTrackPars()
◆ phiResidual()
◆ stepIsREta()
◆ stepIsRPhi()
◆ trackParsToParSet()
◆ writeLUTs()
Definition at line 155 of file FPGATrackSimKeyLayerBinDesc.cxx.
162 if (
step.isFirstStep()) {
164 sm.writeVar(
"r_in",r_in);
165 sm.writeVar(
"r_out",r_out);
176 sm.writeVar(
"phi_bin",
bin.idx());
181 keypars.
xm =
step.binCenter(4,
bin.idx()[2]);
185 sm.writeVar(
"y", rotated_coords.y);
186 sm.writeVar(
"x1p", rotated_coords.xy1p.first);
187 sm.writeVar(
"y1p", rotated_coords.xy1p.second);
188 sm.writeVar(
"cosb", rotated_coords.rotang.first);
189 sm.writeVar(
"sinb", rotated_coords.rotang.second);
191 sm.writeVar(
"x_m", keypars.
xm);
192 sm.writeVar(
"x_factor", 4.0 * keypars.
xm / (rotated_coords.y * rotated_coords.y));
197 double w_in = r_in *
step.binWidth(2) / 2.0;
198 double w_out = r_out *
step.binWidth(3) / 2.0;
199 double w_x =
step.binWidth(4) / 2.0;
200 double dw_dr = (w_out - w_in) / (r_out - r_in);
202 sm.writeVar(
"w_x", 4.0 * w_x / ((r_out - r_in) * (r_out - r_in)));
203 sm.writeVar(
"w_in", w_in);
204 sm.writeVar(
"dw_dr", dw_dr);
206 sm.writeVar(
"nbins",
nbins);
219 sm.writeVar(
"z_bin",
bin.idx());
221 double z_in =
step.binCenter(0,
bin.idx()[0]);
222 double z_out =
step.binCenter(1,
bin.idx()[1]);
223 double dz_dr = (z_out - z_in) / (r_out - r_in);
225 sm.writeVar(
"z_in", z_in);
226 sm.writeVar(
"dz_dr", dz_dr);
230 sm.writeVar(
"nbins",
nbins);
233 double w_in =
step.binWidth(0) / 2.0;
234 double w_out =
step.binWidth(1) / 2.0;
235 double dw_dr = (w_out - w_in) / (r_out - r_in);
236 sm.writeVar(
"w_in", w_in);
237 sm.writeVar(
"dw_dr", dw_dr);
◆ m_approxMath
Gaudi::Property<bool> FPGATrackSimKeyLayerBinDesc::m_approxMath {this, "approxMath", {false}, "Use approximate math to emulate possible firmware"} |
|
private |
◆ m_d0pad
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_d0pad {this, "D0Pad", 0.0, "Extra phi padding from d0 resolution"} |
|
private |
◆ m_etapad
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_etapad {this, "EtaPad", 0.0, "Extra eta padding from eta resolution"} |
|
private |
◆ m_etapars
const std::vector<unsigned> FPGATrackSimKeyLayerBinDesc::m_etapars {0, 1} |
|
private |
◆ m_fieldCorrection
Gaudi::Property<bool> FPGATrackSimKeyLayerBinDesc::m_fieldCorrection {this, "fieldCorrection", true, "Use magnetic field correction for Hough transform"} |
|
private |
◆ m_fieldCorRegion
Gaudi::Property<unsigned> FPGATrackSimKeyLayerBinDesc::m_fieldCorRegion { this, "fieldCorRegion", 2, "region for fieldCorrection"} |
|
private |
◆ m_keylyrtool
◆ m_parNames
const std::vector<std::string> FPGATrackSimKeyLayerBinDesc::m_parNames {"zR1", "zR2", "phiR1", "phiR2", "xm"} |
|
private |
◆ m_phipad
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_phipad {this, "PhiPad", 0.0, "Extra phi padding from phi resolution"} |
|
private |
◆ m_phipars
const std::vector<unsigned> FPGATrackSimKeyLayerBinDesc::m_phipars {2, 3, 4} |
|
private |
◆ m_qptpad
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_qptpad {this, "QPtPad", 0.0, "Extra phi padding from q/pT resolution"} |
|
private |
◆ m_rin
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_rin {this, "rin", {-1.0}, "Radius of inner layer for keylayer definition"} |
|
private |
◆ m_rout
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_rout {this, "rout", {-1.0}, "Radius of outer layer for keylayer definition"} |
|
private |
◆ m_slPerEtaMod
Gaudi::Property<std::vector<double> > FPGATrackSimKeyLayerBinDesc::m_slPerEtaMod |
|
private |
Initial value:{
this,
"slPerEtaMod",
std::vector<double>{19.0, 24.0, 29.0, 32.0, 18.1, 27.1, 24.1, 15.1, 30.8,
30.8, 26.2, 32.2, 32.2, 26.2, 54.6, 54.6, 40.2, 60.2},
"Strip length per eta eta mod"
}
Definition at line 102 of file FPGATrackSimKeyLayerBinDesc.h.
◆ m_z0pad
Gaudi::Property<double> FPGATrackSimKeyLayerBinDesc::m_z0pad {this, "Z0Pad", 0.0, "Extra eta padding from z0 resolution"} |
|
private |
The documentation for this class was generated from the following files:
void xrange(TH1 *h, bool symmetric)
const std::vector< unsigned > m_etapars
std::shared_ptr< const FPGATrackSimHit > hitptr
virtual double etaResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
Gaudi::Property< unsigned > m_fieldCorRegion
Gaudi::Property< double > m_rout
FPGATrackSimBinUtil::ParSet keyparsToParSet(const FPGATrackSimKeyLayerTool::KeyLyrPars &keypars) const
const std::vector< std::string > m_parNames
Gaudi::Property< double > m_etapad
virtual const FPGATrackSimTrackPars parSetToTrackPars(const FPGATrackSimBinUtil::ParSet &parset) const override
std::atomic< int > padding
static double dPhidQOverPt(double hitr)
static double dPhiHitTrkFromPars(double r, const FPGATrackSimTrackPars &pars)
def etamod(flags, cells_name, *args, **kw)
const std::vector< unsigned > m_phipars
Gaudi::Property< double > m_phipad
Gaudi::Property< double > m_qptpad
Gaudi::Property< double > m_d0pad
Gaudi::Property< double > m_rin
bool stepIsREta(const FPGATrackSimBinStep &step) const
virtual double phiResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
FPGATrackSimKeyLayerTool m_keylyrtool
bool stepIsRPhi(const FPGATrackSimBinStep &step) const
static double dZdEta(double eta)
FPGATrackSimKeyLayerTool::KeyLyrPars parSetToKeyPars(const FPGATrackSimBinUtil::ParSet &parset) const
Gaudi::Property< double > m_z0pad
double fieldCorrection(unsigned region, double qoverpt, double r)
Gaudi::Property< bool > m_fieldCorrection
Gaudi::Property< std::vector< double > > m_slPerEtaMod