propagate the particles through a beamline to PPS
Definition at line 71 of file HectorTransport.cc.
72 edm::LogInfo(
"ProtonTransport") <<
"Starting proton transport using HECTOR method\n";
75 unsigned int line = (gpart)->barcode();
77 double mass = gpart->generatedMass();
80 px = gpart->momentum().px();
81 py = gpart->momentum().py();
82 pz = gpart->momentum().pz();
83 e = gpart->momentum().e();
87 int direction = (pz > 0) ? 1 : -1;
90 TLorentzVector p_out(
px,
py, pz,
e);
101 double XforPosition = gpart->production_vertex()->position().x() / cm;
102 double YforPosition = gpart->production_vertex()->position().y() / cm;
103 double ZforPosition = gpart->production_vertex()->position().z() / cm;
106 h_p.set4Momentum(-direction * p_out.Px(), p_out.Py(), fabs(p_out.Pz()), p_out.E());
115 XforPosition = XforPosition +
116 (
tan((
long double)fCrossingAngle *
urad) - ((
long double)p_out.Px()) / ((
long double)p_out.Pz())) *
118 YforPosition = YforPosition - ((
long double)p_out.Py()) / ((
long double)p_out.Pz()) * ZforPosition;
124 h_p.setPosition(-direction * XforPosition *
cm_to_um,
128 -direction * ZforPosition *
cm_to_m);
133 H_BeamLine* _beamline =
nullptr;
146 h_p.computePath(&*_beamline);
147 is_stop = h_p.stopped(&*_beamline);
149 LogDebug(
"HectorTransportEventProcessing")
150 <<
"HectorTransport:filterPPS: barcode = " <<
line <<
" is_stop= " << is_stop;
157 h_p.propagate(_targetZ);
161 p_out.SetPx(direction * p_out.Px());
162 x1_ctpps = direction * h_p.getX() *
um_to_mm;
166 LogDebug(
"HectorTransportEventProcessing")
167 <<
"HectorTransport:filterPPS: barcode = " <<
line <<
" x= " << x1_ctpps <<
" y= " << y1_ctpps;
References BaseProtonTransport::ApplyBeamCorrection(), BaseProtonTransport::bApplyZShift, BaseProtonTransport::beamEnergy_, BaseProtonTransport::beamMomentum_, ALCARECOTkAlJpsiMuMu_cff::charge, cm_to_m, cm_to_um, MillePedeFileConverter_cfg::e, BaseProtonTransport::fBeamXatIP, BaseProtonTransport::fBeamYatIP, BaseProtonTransport::fCrossingAngle_45, BaseProtonTransport::fCrossingAngle_56, BaseProtonTransport::fPPSRegionStart_45, BaseProtonTransport::fPPSRegionStart_56, BaseProtonTransport::fVtxMeanX, BaseProtonTransport::fVtxMeanY, PPSTools::HectorParticle2LorentzVector(), mps_splice::line, LogDebug, PPSTools::LorentzBoost(), m_beamline45, m_beamline56, BaseProtonTransport::m_beamPart, BaseProtonTransport::m_xAtTrPoint, BaseProtonTransport::m_yAtTrPoint, EgHLTOffHistBins_cfi::mass, mm_to_cm, funct::pow(), multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, mathSSE::sqrt(), funct::tan(), um_to_mm, urad, and BaseProtonTransport::verbosity_.
Referenced by process().