#include <FastCaloSimCaloTransportation.h>
◆ FastCaloSimCaloTransportation()
FastCaloSimCaloTransportation::FastCaloSimCaloTransportation |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~FastCaloSimCaloTransportation()
FastCaloSimCaloTransportation::~FastCaloSimCaloTransportation |
( |
| ) |
|
|
default |
◆ convertToFieldTrack()
std::vector< G4FieldTrack > FastCaloSimCaloTransportation::convertToFieldTrack |
( |
const std::vector< Trk::HitInfo > & |
vec | ) |
const |
|
protected |
◆ finalize()
StatusCode FastCaloSimCaloTransportation::finalize |
( |
| ) |
|
|
finaloverridevirtual |
◆ initialize()
StatusCode FastCaloSimCaloTransportation::initialize |
( |
| ) |
|
|
finaloverridevirtual |
◆ transport()
std::vector< G4FieldTrack > FastCaloSimCaloTransportation::transport |
( |
const TFCSTruthState * |
truth, |
|
|
bool |
forceNeutral = false |
|
) |
| const |
|
finaloverridevirtual |
Definition at line 59 of file FastCaloSimCaloTransportation.cxx.
63 auto hitVector = std::make_unique<std::vector<Trk::HitInfo>>();
65 int pdgId = truth->
pdgid();
67 if (forceNeutral)
charge = 0.;
81 ATH_MSG_DEBUG(
"[ fastCaloSim transport ] x from position eta="<<
pos.eta()<<
" phi="<<
pos.phi()<<
" d="<<
pos.mag()<<
" pT="<<
mom.perp() );
86 double freepath = -1.;
87 double tDec = freepath > 0. ? freepath : -1.;
95 ATH_MSG_DEBUG(
"[ fastCaloSim transport ] before calo entrance ");
106 ATH_MSG_DEBUG(
"[ fastCaloSim transport ] after calo entrance ");
108 std::unique_ptr<const Trk::TrackParameters> caloEntry =
nullptr;
111 std::vector<Trk::HitInfo>* dummyHitVector =
nullptr;
133 caloEntry = inputPar.uniqueClone();
135 ATH_MSG_DEBUG(
"[ fastCaloSim transport ] after calo caloEntry ");
138 std::unique_ptr<const Trk::TrackParameters> eParameters =
nullptr;
144 "[ fastCaloSim transport ] starting Calo transport from position eta="
146 <<
" d=" << caloEntry->
position().mag());
148 std::vector<Trk::HitInfo>* rawHitVector =
hitVector.get();
169 if(eParameters)
hitVector->push_back(
Trk::HitInfo(std::move(eParameters), timeLim.time, nextGeoID, 0.));
173 int IDCaloBoundary = 3000;
177 while (it < hitVector->
end()){
180 ATH_MSG_DEBUG(
" HIT: layer="<<
sample<<
" sample="<<
sample-IDCaloBoundary<<
" eta="<<hitPos.eta()<<
" phi="<<hitPos.phi()<<
" d="<<hitPos.mag());
186 while(it2 < hitVector->
end()){
189 ATH_MSG_DEBUG(
" HIT: layer="<<
sample<<
" sample="<<
sample-IDCaloBoundary<<
" eta="<<hitPos.eta()<<
" phi="<<hitPos.phi()<<
" r="<<hitPos.perp()<<
" z="<<hitPos[
Amg::z]);
194 if (!forceNeutral &&
hitVector->empty()){
195 ATH_MSG_DEBUG(
"forcing neutral charge in FastCaloSimCaloTransportation::caloHits");
200 else if(
hitVector->empty())
ATH_MSG_ERROR(
"Empty hitVector even after forcing neutral charge. This may cause a segfault soon.");
◆ m_caloEntrance
◆ m_caloEntranceName
StringProperty FastCaloSimCaloTransportation::m_caloEntranceName {this, "CaloEntrance", ""} |
|
protected |
◆ m_extrapolator
PublicToolHandle<Trk::ITimedExtrapolator> FastCaloSimCaloTransportation::m_extrapolator {this, "Extrapolator", "TimedExtrapolator"} |
|
protected |
◆ m_pdgToParticleHypothesis
The documentation for this class was generated from the following files:
Trk::ParticleHypothesis convert(int pdg, bool &stable, bool &exiting, double charge=1.) const
Converter method : PDG -> Particle Hyptothesis.