ATLAS Offline Software
Classes | Public Member Functions | Private Member Functions | Private Attributes | List of all members
Acts::ObjTrackingGeometryWriter Class Reference

#include <ObjTrackingGeometryWriter.h>

Collaboration diagram for Acts::ObjTrackingGeometryWriter:

Classes

class  Config
 

Public Member Functions

 ObjTrackingGeometryWriter (const Config &cfg)
 Constructor. More...
 
std::string name () const
 Framework name() method. More...
 
void write (const Acts::GeometryContext &gctx, const Acts::TrackingGeometry &tGeometry)
 The write interface. More...
 

Private Member Functions

void write (const Acts::GeometryContext &gctx, const Acts::TrackingVolume &tVolume)
 process this volume More...
 
const Acts::Logger & logger () const
 Private access to the logging instance. More...
 

Private Attributes

Config m_cfg
 the config class More...
 

Detailed Description

An Obj writer for the geometry It delegates the writing of surfaces to the surface writers

Definition at line 26 of file ObjTrackingGeometryWriter.h.

Constructor & Destructor Documentation

◆ ObjTrackingGeometryWriter()

Acts::ObjTrackingGeometryWriter::ObjTrackingGeometryWriter ( const Config cfg)

Constructor.

Parameters
cfgis the configuration class

Definition at line 14 of file ObjTrackingGeometryWriter.cxx.

16  : m_cfg(cfg)
17 {
18 }

Member Function Documentation

◆ logger()

const Acts::Logger& Acts::ObjTrackingGeometryWriter::logger ( ) const
inlineprivate

Private access to the logging instance.

Definition at line 78 of file ObjTrackingGeometryWriter.h.

79  {
80  return *m_cfg.logger;
81  }

◆ name()

std::string Acts::ObjTrackingGeometryWriter::name ( ) const

Framework name() method.

Returns
the name of the tool

Definition at line 21 of file ObjTrackingGeometryWriter.cxx.

22 {
23  return m_cfg.name;
24 }

◆ write() [1/2]

void Acts::ObjTrackingGeometryWriter::write ( const Acts::GeometryContext &  gctx,
const Acts::TrackingGeometry &  tGeometry 
)

The write interface.

Parameters
tGeometryis the geometry to be written out
Returns
ProcessCode to indicate success/failure

Definition at line 27 of file ObjTrackingGeometryWriter.cxx.

28 {
29  ACTS_DEBUG(">>Obj: Writer for TrackingGeometry object called.");
30  // get the world volume
31  auto world = tGeometry.highestTrackingVolume();
32  if (world) write(gctx, *world);
33  // return the success code
34 }

◆ write() [2/2]

void Acts::ObjTrackingGeometryWriter::write ( const Acts::GeometryContext &  gctx,
const Acts::TrackingVolume &  tVolume 
)
private

process this volume

Parameters
tVolumethe volume to be processed

Definition at line 38 of file ObjTrackingGeometryWriter.cxx.

39 {
40  ACTS_DEBUG(">>Obj: Writer for TrackingVolume object called.");
41  // get the confined layers and process them
42  if (tVolume.confinedLayers()) {
43  ACTS_VERBOSE(">>Obj: Layers are present, process them.");
44  // loop over the layers
45  for (auto layer : tVolume.confinedLayers()->arrayObjects()) {
46  // we jump navigation layers
47  if (layer->layerType() == Acts::navigation) continue;
48  // get the volume name
49  const std::string& volumeName = tVolume.volumeName();
50  // find the right surfacewriter
51  std::shared_ptr<ObjSurfaceWriter> surfaceWriter = nullptr;
52  for (auto writer : m_cfg.surfaceWriters) {
53  // get name and writer
54  auto writerName = writer->name();
55  if (volumeName.find(writerName) != std::string::npos) {
56  // asign the writer
57  surfaceWriter = writer;
58  // and break
59  break;
60  }
61  }
62  // bail out if you have no surface writer
63  if (!surfaceWriter) return;
64  // layer prefix
65  surfaceWriter->write(m_cfg.layerPrefix);
66  // check for sensitive surfaces
67  if (layer->surfaceArray() && surfaceWriter) {
68  // surfaces
69  surfaceWriter->write(m_cfg.sensitiveGroupPrefix);
70  // loop over the surface
71  for (auto surface : layer->surfaceArray()->surfaces()) {
72  if (surface) surfaceWriter->write(gctx, *surface);
73  }
74  }
75  }
76  }
77  // get the confined volumes and step down the hierarchy
78  if (tVolume.confinedVolumes()) {
79  // loop over the volumes and write what they have
80  for (auto volume : tVolume.confinedVolumes()->arrayObjects()) {
81  write(gctx, *volume.get());
82  }
83  }
84 }

Member Data Documentation

◆ m_cfg

Config Acts::ObjTrackingGeometryWriter::m_cfg
private

the config class

Definition at line 69 of file ObjTrackingGeometryWriter.h.


The documentation for this class was generated from the following files:
Acts::ObjTrackingGeometryWriter::Config::logger
std::shared_ptr< const Acts::Logger > logger
the default logger
Definition: ObjTrackingGeometryWriter.h:35
Acts::ObjTrackingGeometryWriter::Config::layerPrefix
std::string layerPrefix
Definition: ObjTrackingGeometryWriter.h:42
Acts::ObjTrackingGeometryWriter::Config::name
std::string name
the name of the writer
Definition: ObjTrackingGeometryWriter.h:37
Acts::ObjTrackingGeometryWriter::m_cfg
Config m_cfg
the config class
Definition: ObjTrackingGeometryWriter.h:69
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
Acts::ObjTrackingGeometryWriter::Config::sensitiveGroupPrefix
std::string sensitiveGroupPrefix
Definition: ObjTrackingGeometryWriter.h:41
WriteCaloSwCorrections.cfg
cfg
Definition: WriteCaloSwCorrections.py:23
Acts::ObjTrackingGeometryWriter::write
void write(const Acts::GeometryContext &gctx, const Acts::TrackingGeometry &tGeometry)
The write interface.
Definition: ObjTrackingGeometryWriter.cxx:27
example.writer
writer
show summary of content
Definition: example.py:36
Acts::ObjTrackingGeometryWriter::Config::surfaceWriters
std::vector< std::shared_ptr< ObjSurfaceWriter > > surfaceWriters
surfaceWriters
Definition: ObjTrackingGeometryWriter.h:39