ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
Acts
ActsMaterial
src
MaterialTrackRecorder.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#ifndef ACTSGEOMETRY_MATERIALTRACKRECORDER_H
6
#define ACTSGEOMETRY_MATERIALTRACKRECORDER_H
7
8
#include "
AthenaBaseComps/AthMessaging.h
"
9
#include "
ActsGeometry/RecordedMaterialTrackCollection.h
"
10
11
#include "Acts/Definitions/Algebra.hpp"
12
#include "Acts/Definitions/Units.hpp"
13
#include "CLHEP/Units/SystemOfUnits.h"
14
15
#include "G4UserEventAction.hh"
16
#include "G4UserRunAction.hh"
17
#include "G4UserSteppingAction.hh"
18
#include "G4ThreeVector.hh"
19
20
class
G4Event;
21
class
G4Run;
22
class
G4Step;
23
24
25
namespace
ActsTrk
26
{
33
34
class
MaterialTrackRecorder
:
public
AthMessaging
,
public
G4UserEventAction,
35
public
G4UserRunAction,
public
G4UserSteppingAction
36
{
37
public
:
38
struct
Config
{
40
std::string
materialTrackCollectionName
=
"MaterialTracks"
;
41
std::vector<std::string>
excludeMaterials
= {
"Air"
,
"Vacuum"
};
42
43
};
44
45
MaterialTrackRecorder
(
const
Config
& config);
46
virtual
void
BeginOfEventAction
(
const
G4Event*)
override
;
47
virtual
void
EndOfEventAction
(
const
G4Event*)
override
;
48
virtual
void
BeginOfRunAction
(
const
G4Run*)
override
;
49
virtual
void
UserSteppingAction
(
const
G4Step*)
override
;
50
51
private
:
53
RecordedMaterialTrackCollection
*
m_rmtCollection
{
nullptr
};
55
constexpr
static
double
s_convertLength
= Acts::UnitConstants::mm / CLHEP::mm;
56
constexpr
static
double
s_convertDensity
=
57
(Acts::UnitConstants::g / Acts::UnitConstants::mm3) / (CLHEP::gram / CLHEP::mm3);
58
60
Config
m_cfg
;
61
63
Acts::Vector3
convertPosition
(
const
G4ThreeVector& g4vec) {
64
return
Acts::Vector3(g4vec[0] *
s_convertLength
, g4vec[1] *
s_convertLength
,
65
g4vec[2] *
s_convertLength
);
66
}
67
68
Acts::Vector3
convertDirection
(
const
G4ThreeVector& g4vec) {
69
return
Acts::Vector3{g4vec[0], g4vec[1], g4vec[2]};
70
}
71
72
};
// class MaterialTrackRecorder
73
74
}
// namespace ActsTrk
75
76
#endif
77
AthMessaging.h
RecordedMaterialTrackCollection.h
ActsTrk::MaterialTrackRecorder::UserSteppingAction
virtual void UserSteppingAction(const G4Step *) override
Definition
MaterialTrackRecorder.cxx:70
ActsTrk::MaterialTrackRecorder::s_convertDensity
static constexpr double s_convertDensity
Definition
MaterialTrackRecorder.h:56
ActsTrk::MaterialTrackRecorder::convertPosition
Acts::Vector3 convertPosition(const G4ThreeVector &g4vec)
Useful fuction for position coversion.
Definition
MaterialTrackRecorder.h:63
ActsTrk::MaterialTrackRecorder::s_convertLength
static constexpr double s_convertLength
Conversion constants.
Definition
MaterialTrackRecorder.h:55
ActsTrk::MaterialTrackRecorder::EndOfEventAction
virtual void EndOfEventAction(const G4Event *) override
Definition
MaterialTrackRecorder.cxx:59
ActsTrk::MaterialTrackRecorder::m_cfg
Config m_cfg
The config class.
Definition
MaterialTrackRecorder.h:60
ActsTrk::MaterialTrackRecorder::convertDirection
Acts::Vector3 convertDirection(const G4ThreeVector &g4vec)
Useful fuction for direction coversion.
Definition
MaterialTrackRecorder.h:68
ActsTrk::MaterialTrackRecorder::BeginOfRunAction
virtual void BeginOfRunAction(const G4Run *) override
Definition
MaterialTrackRecorder.cxx:64
ActsTrk::MaterialTrackRecorder::BeginOfEventAction
virtual void BeginOfEventAction(const G4Event *) override
Definition
MaterialTrackRecorder.cxx:24
ActsTrk::MaterialTrackRecorder::MaterialTrackRecorder
MaterialTrackRecorder(const Config &config)
Definition
MaterialTrackRecorder.cxx:20
ActsTrk::MaterialTrackRecorder::m_rmtCollection
RecordedMaterialTrackCollection * m_rmtCollection
Pointer to the collection, non-owning.
Definition
MaterialTrackRecorder.h:53
AthMessaging::AthMessaging
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
Definition
AthMessaging.cxx:13
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition
MdtCalibInput.h:31
ActsTrk::RecordedMaterialTrackCollection
std::vector< Acts::RecordedMaterialTrack > RecordedMaterialTrackCollection
Definition
RecordedMaterialTrackCollection.h:14
ActsTrk::MaterialTrackRecorder::Config
Definition
MaterialTrackRecorder.h:38
ActsTrk::MaterialTrackRecorder::Config::excludeMaterials
std::vector< std::string > excludeMaterials
Definition
MaterialTrackRecorder.h:41
ActsTrk::MaterialTrackRecorder::Config::materialTrackCollectionName
std::string materialTrackCollectionName
Output collection name for recorded material tracks.
Definition
MaterialTrackRecorder.h:40
Config
Definition
dumpNPs.cxx:47
Generated on
for ATLAS Offline Software by
1.17.0