 |
ATLAS Offline Software
|
Go to the documentation of this file.
28 const std::vector<Gaudi::Details::PropertyBase*> props = this->getProperties();
29 for( Gaudi::Details::PropertyBase* prop : props ) {
30 if (prop->ownerTypeName()==this->type()) {
31 ATH_MSG_DEBUG(
"Property:\t" << prop->name() <<
"\t : \t"<< prop->toString());
38 return StatusCode::SUCCESS;
47 double hitr= storedhit.
hitptr->getR();
49 bool passesPhi =
true;
50 bool passesEta =
true;
54 bool isTruthBin = ((m_truthbin.size()>
step.stepNum())&&(m_truthbin[
step.stepNum()]==
idx));
63 half_xm_bin_pars.xm =
step.binWidth(4)/2.0;
66 double xrange = std::abs(xshift) + r1 *
step.binWidth(2) / 2.0
67 + ((r2*
step.binWidth(3) - r1*
step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0;
70 ATH_MSG_ERROR(
"Negative xrange: " << std::abs(xshift) <<
" " << r1 *
step.binWidth(2) / 2.0 <<
" "
71 << ((r2*
step.binWidth(3) - r1*
step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0);
75 double stripLength = 25.0;
77 if (!storedhit.
hitptr->isBarrel()) {
88 if (isTruthBin && !passesPhi)
ATH_MSG_DEBUG(
"Hit fails Phi cut, lyr=" << storedhit.
hitptr->getPhysLayer() <<
" "
92 <<
" " << hitr <<
" " << trackpars);
97 double fw_phiWindow = phiconsts.
phiWindow( hitr);
100 <<
" Orig: " << r1 *
step.binWidth(2) / 2.0 <<
" " << ((r2*
step.binWidth(3) - r1*
step.binWidth(2)) / (r2 - r1) * (hitr - r1))/2.0 <<
" " << std::abs(xshift));
109 double width_z_in =
step.binWidth(0)/2.0;
110 double width_z_out =
step.binWidth(1)/2.0;
111 double zrange = width_z_in + (width_z_out-width_z_in) * std::abs((hitr-r1))/(r2-r1);
115 double stripLength = 25.0;
117 if (!storedhit.
hitptr->isBarrel()) {
128 if (isTruthBin && !passesEta)
ATH_MSG_DEBUG(
"Hit fails Eta cut , lyr=" << storedhit.
hitptr->getPhysLayer() <<
" r=" << hitr <<
" "
133 double fw_etaShift = etaconsts.
etaShift(storedhit.
hitptr->getZ(), hitr);
134 double fw_etaWindow = etaconsts.
etaWindow( hitr);
142 if (isTruthBin && !(passesPhi && passesEta))
ATH_MSG_DEBUG(
"Hit in truth bin fails cuts: " <<
" passesPhi=" << passesPhi <<
" passesEta=" << passesEta);
144 return passesPhi && passesEta;
150 for (
const unsigned &steppar :
step.stepPars()) {
151 for (
const unsigned &phipar :
m_phipars) {
152 if (steppar == phipar)
161 for (
const unsigned &steppar :
step.stepPars()) {
162 for (
const unsigned &etapar :
m_etapars) {
163 if (steppar == etapar)
185 retv.
y = rotated_coords.y;
186 retv.
x1p = rotated_coords.xy1p.first;
187 retv.
y1p = rotated_coords.xy1p.second;
188 retv.
cosb = rotated_coords.rotang.first;
189 retv.
sinb = rotated_coords.rotang.second;
190 retv.
x_m = keypars.
xm;
191 retv.
x_factor = 4.0 * keypars.
xm / (rotated_coords.y * rotated_coords.y);
198 double w_in = r_in *
step.binWidth(2) / 2.0;
199 double w_out = r_out *
step.binWidth(3) / 2.0;
200 double w_x =
step.binWidth(4) / 2.0;
202 retv.
w_x = 4.0 * w_x / ((r_out - r_in) * (r_out - r_in));
204 retv.
dw_dr = (w_out - w_in) / (r_out - r_in);
217 double z_in =
step.binCenter(0,
idx[0]);
218 double z_out =
step.binCenter(1,
idx[1]);
219 double dz_dr = (z_out - z_in) / (r_out - r_in);
224 double w_in =
step.binWidth(0) / 2.0;
225 double w_out =
step.binWidth(1) / 2.0;
226 double dw_dr = (w_out - w_in) / (r_out - r_in);
241 return w_in + dw_dr*(
r-r_in) + w_x*(
r-r_in)*(r_out-
r);
244 return z - z_in - dz_dr*(
r-r_in);
247 return w_in + dw_dr*(
r-r_in);
263 if (
step.isFirstStep()) {
void xrange(TH1 *h, bool symmetric)
const std::vector< unsigned > m_etapars
std::shared_ptr< const FPGATrackSimHit > hitptr
Scalar phi() const
phi method
virtual double etaResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
double etaWindow(double r)
phiLUTConsts getPhiLUTConsts(const FPGATrackSimBinStep &step, const std::vector< unsigned > &idx) const
Gaudi::Property< double > m_rout
#define ATH_MSG_VERBOSE(x)
std::string to_string(const SectorProjector proj)
Gaudi::Property< double > m_etapad
virtual const FPGATrackSimTrackPars parSetToTrackPars(const FPGATrackSimBinUtil::ParSet &parset) const override
Binning Classes for BinStep.
etaLUTConsts getEtaLUTConsts(const FPGATrackSimBinStep &step, const std::vector< unsigned > &idx) const
std::atomic< int > padding
Gaudi::Property< double > m_phiOffset
static double dPhidQOverPt(double hitr)
double etaShift(double z, double r)
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
virtual bool hitInBin(const FPGATrackSimBinStep &step, const FPGATrackSimBinUtil::IdxSet &idx, FPGATrackSimBinUtil::StoredHit &storedhit) const override
::StatusCode StatusCode
StatusCode definition for legacy code.
Binning Utilities for GenScanTool.
Gaudi::Property< double > m_qptpad
Gaudi::Property< double > m_d0pad
Gaudi::Property< double > m_rin
bool stepIsREta(const FPGATrackSimBinStep &step) const
std::vector< std::string > remainder(const std::vector< std::string > &v1, const std::vector< std::string > &v2)
virtual double phiResidual(const FPGATrackSimBinUtil::ParSet &parset, FPGATrackSimHit const *hit) const override
double phiWindow(double r)
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
Binning Classes for BinTool.
virtual StatusCode initialize() override
void writeVar(const std::string &var, T val)
virtual void writeLUTs(const FPGATrackSimBinStep &step) const override
Gaudi::Property< std::vector< double > > m_slPerEtaMod
Structs that store the 5 track parameters.
double phiShift(double phi, double r)
Gaudi::Property< unsigned > m_region