 |
ATLAS Offline Software
|
Go to the documentation of this file.
39 return StatusCode::SUCCESS;
45 for(
long unsigned int i=0;
i<HitCollections.size();++
i){
47 ATH_CHECK(HitsWriteHandles[
i].record(std::make_unique<SiHitCollection>(HitCollections[
i])));
50 return StatusCode::SUCCESS;
55 return StatusCode::SUCCESS;
59 std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry,
60 const std::vector<ActsFatras::Hit>&
hits,
66 double time = hit.time();
69 auto hit_geoid = hit.geometryId();
72 auto acts_surface = trackingGeometry->findSurface(hit_geoid);
90 double thickness = hitSiDetElement->
thickness();
97 Amg::Vector3D localDirection = sTransform.inverse().linear() * particleDir;
98 localDirection *= thickness/
cos(localDirection.theta());
100 int movingDirection = localDirection.z() > 0. ? 1 : -1;
102 double distX = localDirection.x();
103 double distY = localDirection.y();
105 double localEntryX = interX-0.5*distX;
106 double localEntryY = interY-0.5*distY;
107 double localExitX = interX+0.5*distX;
108 double localExitY = interY+0.5*distY;
111 Amg::Vector3D localEntry(hitTransform * (sTransform *
Amg::Vector3D(localEntryX,localEntryY,-0.5*movingDirection*thickness)));
113 const HepGeom::Point3D<double> localEntryHep( localEntry.x(), localEntry.y(), localEntry.z() );
114 const HepGeom::Point3D<double> localExitHep( localExit.x(), localExit.y(), localExit.z() );
116 auto isPixel=hitSiDetElement->
isPixel();
117 ATH_MSG_VERBOSE(
name() <<
" localEntryHep|localExitHep (atlas)" << localEntryHep <<
"|" << localExitHep);
125 auto siHit =
SiHit(localEntryHep,
140 ATH_MSG_VERBOSE(
name() <<
" convert and store 1 hit, total" << pixelSiHits.
size() <<
"Pixel | "<<sctSiHits.
size()<<
" SCT hits stored for particle" << isp);
def retrieve(aClass, aKey=None)
ActsFatrasWriteHandler(const std::string &, const std::string &, const IInterface *)
Constructor.
const TrkDetElementBase * associatedDetectorElement() const
return associated Detector Element
virtual StatusCode initialize() override
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
StatusCode WriteHits(std::vector< SiHitCollection > &HitCollections, const EventContext &ctx) const
Identifier associatedDetectorElementIdentifier() const
return Identifier of the associated Detector Element
int barrel_ec(const Identifier &id) const
Values of different levels (failure returns 0)
int phi_module(const Identifier &id) const
#define ATH_MSG_VERBOSE(x)
const Amg::Vector3D & center() const
Returns the center position of the Surface.
std::vector< std::string > intersection(std::vector< std::string > &v1, std::vector< std::string > &v2)
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
~ActsFatrasWriteHandler()
Destructor.
virtual bool isOnSurface(const Amg::Vector3D &glopo, const BoundaryCheck &bchk=true, double tol1=0., double tol2=0.) const
This method returns true if the GlobalPosition is on the Surface for both, within or without check of...
virtual StatusCode finalize() override
::StatusCode StatusCode
StatusCode definition for legacy code.
const Trk::Surface & atlasSurface() const
Return a shared pointer on the ATLAS surface associated with this identifier,.
Eigen::Affine3d Transform3D
int layer_disk(const Identifier &id) const
int eta_module(const Identifier &id) const
int layer_disk(const Identifier &id) const
Eigen::Matrix< double, 3, 1 > Vector3D
const SCT_ID * m_sctIdHelper
the SCT ID helper
const HepMcParticleLink * getParticleLink() const
HepMcParticleLink accessors.
std::array< StringProperty, 2 > m_HitCollectionNames
virtual bool globalToLocal(const Amg::Vector3D &glob, const Amg::Vector3D &mom, Amg::Vector2D &loc) const =0
Specified by each surface type: GlobalToLocal method without dynamic memory allocation - boolean chec...
def time(flags, cells_name, *args, **kw)
int eta_module(const Identifier &id) const
int side(const Identifier &id) const
SG::WriteHandleKeyArray< SiHitCollection > m_HitCollectionKeys
int phi_module(const Identifier &id) const
const GeoTrf::Transform3D & transformHit() const
Local (simulation/hit frame) to global transform.
void createHits(const ISF::ISFParticle &isp, std::shared_ptr< const Acts::TrackingGeometry > trackingGeometry, const std::vector< ActsFatras::Hit > &hits, SiHitCollection &pixelSiHits, SiHitCollection &sctSiHits) const
Loop over the hits and call the hit creator, provide the ActsFatras::Particle to create the hits.
const Amg::Transform3D & transform() const
Returns HepGeom::Transform3D by reference.
virtual const Amg::Vector3D & center() const =0
Return the center of the element.
const PixelID * m_pixIdHelper
the Pixel ID helper
void push_back(const T &t)