|
ATLAS Offline Software
|
#include <TrackingVolumeDisplayer.h>
|
| TrackingVolumeDisplayer (const std::string &, const std::string &, const IInterface *) |
| Constructor. More...
|
|
virtual | ~TrackingVolumeDisplayer () |
| Destructor. More...
|
|
StatusCode | initialize () |
| AlgTool initialize method. More...
|
|
StatusCode | finalize () |
| AlgTool finalize method. More...
|
|
virtual StatusCode | process (TrackingGeometry &tgeo) const |
| Processor Action to work on TrackingGeometry& tgeo. More...
|
|
virtual StatusCode | process (TrackingVolume &tvol, size_t level=0) const |
| Processor Action to work on TrackingVolumes - the level is for the hierachy tree. More...
|
|
virtual StatusCode | process (Layer &lay, size_t level=0) const |
| Processor Action to work on Layers. More...
|
|
virtual StatusCode | process (Surface &surf, size_t level=0) const |
| Processor Action to work on Surfaces. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
| DeclareInterfaceID (IGeometryProcessor, 1, 0) |
| Creates the InterfaceID and interfaceID() method. More...
|
|
The TrackingVolumeDisplayer writes a root .C file which can be executed and used the OpenGL root viewer
- Author
- Andre.nosp@m.as.S.nosp@m.alzbu.nosp@m.rger.nosp@m.@cern.nosp@m..ch
Definition at line 34 of file TrackingVolumeDisplayer.h.
◆ StoreGateSvc_t
◆ TrackingVolumeDisplayer()
Trk::TrackingVolumeDisplayer::TrackingVolumeDisplayer |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~TrackingVolumeDisplayer()
Trk::TrackingVolumeDisplayer::~TrackingVolumeDisplayer |
( |
| ) |
|
|
virtualdefault |
◆ closeFile()
void Trk::TrackingVolumeDisplayer::closeFile |
( |
std::ofstream & |
output | ) |
|
|
staticprivate |
File handling: write footer + close.
Definition at line 118 of file TrackingVolumeDisplayer.cxx.
120 out <<
"worldnode->cd();" <<
'\n';
121 out <<
"worldnode->Draw(\"ogl\");" <<
'\n';
122 out <<
"tg->Update();" <<
'\n';
◆ colorCodeFromMaterial()
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ DeclareInterfaceID()
Creates the InterfaceID and interfaceID() method.
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ finalize()
StatusCode Trk::TrackingVolumeDisplayer::finalize |
( |
| ) |
|
◆ initialize()
StatusCode Trk::TrackingVolumeDisplayer::initialize |
( |
| ) |
|
AlgTool initialize method.
Definition at line 63 of file TrackingVolumeDisplayer.cxx.
70 return StatusCode::FAILURE;
83 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ openFile()
void Trk::TrackingVolumeDisplayer::openFile |
( |
std::ofstream & |
output, |
|
|
const std::string & |
filename |
|
) |
| |
|
staticprivate |
File handling: open + write header.
Definition at line 105 of file TrackingVolumeDisplayer.cxx.
111 out <<
"tg = new TCanvas(\"tg\",\"Geometry Shapes\",200,10,700,500);" <<
'\n';
112 out <<
" world = new TBRIK(\"BRIK\",\"BRIK\",\"void\",2,2,2);" <<
'\n';
113 out <<
" worldnode = new TNode(\"NODE1\",\"NODE1\",\"BRIK\");" <<
'\n';
114 out <<
" worldnode->cd();" <<
'\n';
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ process() [1/4]
StatusCode Trk::RecursiveGeometryProcessor::process |
( |
Trk::Layer & |
lay, |
|
|
size_t |
level = 0 |
|
) |
| const |
|
virtualinherited |
Processor Action to work on Layers.
Implements Trk::IGeometryProcessor.
Definition at line 128 of file RecursiveGeometryProcessor.cxx.
130 std::stringstream displayBuffer;
131 for (
size_t il = 0;
il <
level; ++
il) displayBuffer <<
" ";
136 ATH_MSG_FATAL(
"Failed to call processNode(const Layer&). Aborting.");
137 return StatusCode::FAILURE;
143 ATH_MSG_VERBOSE(displayBuffer.str() <<
" ---> has " << layerSurfaces.size() <<
" surfaces on the layer.");
145 auto laySurfIter = layerSurfaces.begin();
146 auto laySurfIterEnd = layerSurfaces.end();
148 for ( ; laySurfIter != laySurfIterEnd; ++laySurfIter) {
150 ATH_MSG_WARNING(
"Zero-pointer found in SurfaceArray - indicates problem !");
151 if ((*laySurfIter) &&
process(**laySurfIter,
level).isFailure()){
152 ATH_MSG_FATAL(
"Failed to call process(const Surface&) on confined layer surfaces. Aborting.");
153 return StatusCode::FAILURE;
158 return StatusCode::SUCCESS;
◆ process() [2/4]
StatusCode Trk::RecursiveGeometryProcessor::process |
( |
Trk::Surface & |
surf, |
|
|
size_t |
level = 0 |
|
) |
| const |
|
virtualinherited |
◆ process() [3/4]
◆ process() [4/4]
StatusCode Trk::RecursiveGeometryProcessor::process |
( |
Trk::TrackingVolume & |
tvol, |
|
|
size_t |
level = 0 |
|
) |
| const |
|
virtualinherited |
Processor Action to work on TrackingVolumes - the level is for the hierachy tree.
Implements Trk::IGeometryProcessor.
Definition at line 61 of file RecursiveGeometryProcessor.cxx.
63 std::stringstream displayBuffer;
64 for (
size_t il = 0;
il <
level; ++
il) displayBuffer <<
" ";
70 ATH_MSG_FATAL(
"Failed to call processNode(const TrackingVolume&). Aborting.");
71 return StatusCode::FAILURE;
80 for (
const auto & layIter :
layers){
82 ATH_MSG_WARNING(
"Zero-pointer found in LayerArray - indicates problem !");
84 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on confined layers. Aborting.");
85 return StatusCode::FAILURE;
92 for (
auto & bSurface : bSurfaces){
93 if (bSurface->surfaceRepresentation().associatedLayer()){
97 *bSurface->surfaceRepresentation().associatedLayer()),
level)
99 ATH_MSG_FATAL(
"Failed to call process(const Layer&) on boundary "
101 return StatusCode::FAILURE;
110 if (confinedVolumes) {
112 for (
const auto & volumesIter : volumes){
114 ATH_MSG_WARNING(
"Zero-pointer found in VolumeArray - indicates problem !");
115 if (volumesIter &&
process(*volumesIter, ++
level).isFailure() ){
116 ATH_MSG_FATAL(
"Failed to call process(const TrackingVolume&) on confined volumes. Aborting.");
117 return StatusCode::FAILURE;
123 return StatusCode::SUCCESS;
◆ processNode() [1/3]
StatusCode Trk::TrackingVolumeDisplayer::processNode |
( |
const Layer & |
lay, |
|
|
size_t |
level = 0 |
|
) |
| const |
|
privatevirtual |
Current implementation: write root visualization to file stream.
Reimplemented from Trk::RecursiveGeometryProcessor.
Definition at line 166 of file TrackingVolumeDisplayer.cxx.
171 int layerIndex = lay.layerIndex().value();
172 int layerIndexStr = (layerIndex < 0) ? (-layerIndex)+1 : layerIndex;
174 const Amg::Vector3D& layerPosition = lay.surfaceRepresentation().center();
175 double layerPositionZ = layerPosition.z();
178 std::stringstream
ss;
183 m_fileSurfaceOutput<<
"// Enclosing Volume: "<<lay.enclosingTrackingVolume()->volumeName()<<std::endl;
191 for (
const auto & laySurfIter : layerSurfaces) {
192 if ( laySurfIter &&
processNode(*laySurfIter).isFailure()){
193 ATH_MSG_FATAL(
"Failed to call processNode(const Surface& sf) on sub surface. Abort.");
194 return StatusCode::FAILURE;
202 const Trk::Surface& lSurface = lay.surfaceRepresentation();
203 int layerColor = lay.enclosingTrackingVolume() ? lay.enclosingTrackingVolume()->colorCode() : 22;
211 return StatusCode::FAILURE;
217 m_fileLayerOutput <<
"Cylinder" << layerIndexStr <<
" = new TTUBE(\"CylinderLayer";
218 m_fileLayerOutput << layerIndexStr <<
"\",\"CylinderLayer" << layerIndex <<
"\",\"void\",";
221 m_fileLayerOutput <<
"Cylinder" << layerIndexStr <<
"->SetLineColor(" << layerColor <<
");" <<
'\n';
223 m_fileLayerOutput <<
"Node" << layerIndexStr <<
" = new TNode(\"CylinderNode" << layerIndex;
224 m_fileLayerOutput <<
"\",\"CylinderNode" << layerIndexStr <<
"\",\"CylinderLayer";
225 m_fileLayerOutput << layerIndexStr <<
"\"," << 0 <<
"," << 0 <<
"," <<
int(layerPositionZ) <<
");" <<
'\n';
228 return StatusCode::SUCCESS;
235 return StatusCode::FAILURE;
240 double rMin = discBo->
rMin();
241 double rMax = discBo->
rMax();
243 m_fileLayerOutput <<
"Disc" << layerIndexStr <<
" = new TTUBE(\"DiscLayer" << layerIndexStr <<
"\",\"DiscLayer" << layerIndex <<
"\",\"void\",";
246 m_fileLayerOutput <<
"Disc" << layerIndexStr <<
"->SetLineColor(" << layerColor <<
");" <<
'\n';
248 m_fileLayerOutput <<
"DiscNode" << layerIndexStr <<
" = new TNode(\"DiscNode" << layerIndex;
250 m_fileLayerOutput << layerIndexStr <<
"\"," << 0 <<
"," << 0 <<
"," <<
int(layerPositionZ) <<
");" <<
'\n';
252 return StatusCode::SUCCESS;
255 return StatusCode::SUCCESS;
◆ processNode() [2/3]
StatusCode Trk::TrackingVolumeDisplayer::processNode |
( |
const Surface & |
sf, |
|
|
size_t |
level = 0 |
|
) |
| const |
|
privatevirtual |
Current implementation: write root visualization to file stream.
Reimplemented from Trk::RecursiveGeometryProcessor.
Definition at line 259 of file TrackingVolumeDisplayer.cxx.
267 m_fileSurfaceOutput <<
"// ---------------------- Surface -------------------------------// " << std::endl;
270 double surfX =
sf.center().x();
271 double surfY =
sf.center().y();
272 double surfZ =
sf.center().z();
277 const double convFac = 180./
M_PI;
278 double xPhi = sfRot.col(0).phi()*convFac;
279 double xTheta = sfRot.col(0).theta()*convFac;
280 double yPhi = sfRot.col(1).phi()*convFac;
281 double yTheta = sfRot.col(1).theta()*convFac;
282 double zPhi = sfRot.col(2).phi()*convFac;
283 double zTheta = sfRot.col(2).theta()*convFac;
286 TString surfaceString =
"Surface_";
288 TString rotationString =
"Rotation_";
290 TString nodeString =
"Node";
301 m_fileSurfaceOutput << surfaceString <<
" = new TBRIK(\""<< surfaceString <<
"\",\"" << surfaceString<<
"\",\"void\",";
307 m_fileSurfaceOutput << rotationString <<
"= new TRotMatrix(\" "<< rotationString <<
" \",\" " << rotationString <<
" \", ";
308 m_fileSurfaceOutput << xTheta <<
"," << xPhi <<
"," << yTheta <<
"," << yPhi <<
", " << zTheta <<
"," << zPhi <<
");" << std::endl;
314 m_fileSurfaceOutput << surfaceString <<
" = new TTRD1(\""<< surfaceString <<
"\",\"" << surfaceString<<
"\",\"void\",";
320 m_fileSurfaceOutput << rotationString <<
"= new TRotMatrix(\" "<< rotationString <<
" \",\" " << rotationString <<
" \", ";
321 m_fileSurfaceOutput << xTheta <<
"," << xPhi <<
", " << zTheta <<
"," << zPhi <<
"," << yTheta <<
"," << yPhi <<
");" << std::endl;
322 }
else if (disctraBo) {
329 double stereo = disctraBo->
stereo();
330 double rMedium = disctraBo->
rCenter();
331 double avePhi = disctraBo->
averagePhi()+stereo;
333 surfX = rMedium*
cos(avePhi);
334 surfY = rMedium*
sin(avePhi);
335 surfZ = (
sf.center()).
z();
343 xPhi =
rotation.col(0).phi()*convFac;
344 xTheta =
rotation.col(0).theta()*convFac;
345 yPhi =
rotation.col(1).phi()*convFac;
346 yTheta =
rotation.col(1).theta()*convFac;
347 zPhi =
rotation.col(2).phi()*convFac;
348 zTheta =
rotation.col(2).theta()*convFac;
353 m_fileSurfaceOutput << surfaceString <<
" = new TTRD1(\""<< surfaceString <<
"\",\"" << surfaceString<<
"\",\"void\",";
359 m_fileSurfaceOutput << rotationString <<
"= new TRotMatrix(\" "<< rotationString <<
" \",\" " << rotationString <<
" \", ";
360 m_fileSurfaceOutput << xTheta <<
"," << xPhi <<
", " << zTheta <<
"," << zPhi <<
"," << yTheta <<
"," << yPhi <<
");" << std::endl;
364 m_fileSurfaceOutput << nodeString <<
" = new TNode(\"" << nodeString <<
"\",\"" << nodeString <<
"\"," << surfaceString;
365 m_fileSurfaceOutput <<
"," << surfX <<
", " << surfY <<
"," << surfZ <<
", " << rotationString <<
");" << std::endl;
367 return StatusCode::SUCCESS;
◆ processNode() [3/3]
StatusCode Trk::TrackingVolumeDisplayer::processNode |
( |
const TrackingVolume & |
tvol, |
|
|
size_t |
level = 0 |
|
) |
| const |
|
privatevirtual |
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_detStore
◆ m_evtStore
◆ m_fileLayerOutput
std::ofstream Trk::TrackingVolumeDisplayer::m_fileLayerOutput |
|
mutableprivate |
◆ m_fileLayerOutputMode
bool Trk::TrackingVolumeDisplayer::m_fileLayerOutputMode |
|
mutableprivate |
◆ m_fileLayerOutputName
std::string Trk::TrackingVolumeDisplayer::m_fileLayerOutputName |
|
mutableprivate |
◆ m_fileSurfaceOutput
std::ofstream Trk::TrackingVolumeDisplayer::m_fileSurfaceOutput |
|
mutableprivate |
◆ m_fileSurfaceOutputMode
bool Trk::TrackingVolumeDisplayer::m_fileSurfaceOutputMode |
|
mutableprivate |
◆ m_fileSurfaceOutputName
std::string Trk::TrackingVolumeDisplayer::m_fileSurfaceOutputName |
|
mutableprivate |
◆ m_fileSurfaceOutputSplit
bool Trk::TrackingVolumeDisplayer::m_fileSurfaceOutputSplit |
|
mutableprivate |
◆ m_fileVolumeOutput
std::ofstream Trk::TrackingVolumeDisplayer::m_fileVolumeOutput |
|
mutableprivate |
◆ m_fileVolumeOutputMode
bool Trk::TrackingVolumeDisplayer::m_fileVolumeOutputMode |
|
mutableprivate |
◆ m_fileVolumeOutputName
std::string Trk::TrackingVolumeDisplayer::m_fileVolumeOutputName |
|
mutableprivate |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_volumeCounter
int Trk::TrackingVolumeDisplayer::m_volumeCounter |
|
mutableprivate |
◆ s_displaySurfaces
int Trk::TrackingVolumeDisplayer::s_displaySurfaces = 0 |
|
staticprivate |
The documentation for this class was generated from the following files:
double maxHalflengthX() const
This method returns the maximal halflength in X (first coordinate of local surface frame)
bool m_fileLayerOutputMode
steer writing
std::string m_fileVolumeOutputName
file name for visualization action
virtual StatusCode processNode(const TrackingVolume &tvol, size_t level=0) const
Dedicated action for the different processors.
@ z
global position (cartesian)
StatusCode initialize()
AlgTool initialize method.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
std::vector< SharedObject< BoundarySurface< TrackingVolume > > > & boundarySurfaces()
Method to return the BoundarySurfaces.
double halflengthY() const
This method returns the halflength in Y (second coordinate of local surface frame)
float thicknessInX0() const
Return the radiationlength fraction.
int m_volumeCounter
volume counter
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
virtual StatusCode process(TrackingGeometry &tgeo) const
Processor Action to work on TrackingGeometry& tgeo.
double minHalflengthX() const
This method returns the minimal halflength in X (first coordinate of local surface frame)
#define ATH_MSG_VERBOSE(x)
bool m_fileSurfaceOutputMode
steer writing
double rMax() const
This method returns outer radius.
std::string m_fileLayerOutputName
file name for visualization action
virtual void setOwner(IDataHandleHolder *o)=0
const LayerArray * confinedLayers() const
Return the subLayer array.
const SurfaceArray * surfaceArray() const
Return the entire SurfaceArray, returns nullptr if no SurfaceArray.
std::ofstream m_fileLayerOutput
file output for visualization action
double rMin() const
This method returns inner radius.
const TrackingVolume * highestTrackingVolume() const
return the world
double halflengthX() const
for consistant naming
double averagePhi() const
This method returns the average phi.
double halflengthZ() const
This method returns the halflengthZ.
std::ofstream m_fileSurfaceOutput
file output for visualization action
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
double rCenter() const
This method returns the center radius.
double halflengthY() const
This method returns the halflength in Y (this is Rmax -Rmin)
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
const std::string & volumeName() const
Returns the VolumeName - for debug reason, might be depreciated later.
virtual const SurfaceBounds & bounds() const =0
Surface Bounds method.
static void openFile(std::ofstream &output, const std::string &filename)
File handling: open + write header.
double outerRadius() const
This method returns the outer radius.
virtual BinnedArraySpan< T *const > arrayObjects()=0
Return all objects of the Array non-const we can still modify the T.
double halflengthY() const
for consitant naming
Eigen::Matrix< double, 3, 1 > Vector3D
static void closeFile(std::ofstream &output)
File handling: write footer + close.
static int s_displaySurfaces
static surface counter
bool m_fileSurfaceOutputSplit
use one file for each layer
#define ATH_MSG_WARNING(x)
double innerRadius() const
This method returns the inner radius.
Eigen::Matrix< double, 3, 3 > RotationMatrix3D
const TrackingVolumeArray * confinedVolumes() const
Return the subLayer array.
bool m_fileVolumeOutputMode
steer writing
StatusCode processNode(const TrackingVolume &tvol, size_t level=0) const
Current implementation: write root visualization to file stream.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Eigen::AngleAxisd AngleAxis3D
float zOverAtimesRho() const
Return the .
double minHalflengthX() const
This method returns the minimal halflength in X.
double stereo() const
This method returns the stereo angle.
std::ofstream m_fileVolumeOutput
file output for visualization action
double maxHalflengthX() const
This method returns the maximal halflength in X.
std::span< T > BinnedArraySpan
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
constexpr virtual SurfaceType type() const =0
Returns the Surface type to avoid dynamic casts.
double halflengthZ() const
This method returns the halflengthZ.
virtual double r() const override final
This method returns the radius.
const LayerIndex & layerIndex() const
get the layerIndex
std::string m_fileSurfaceOutputName
file name for visualization action