Classes | Public Member Functions | Static Protected Member Functions | Protected Attributes | Private Member Functions | List of all members
geo::GeometryBuilderStandard Class Reference

Extracts of LArSoft geometry information from ROOT. More...

#include <GeometryBuilderStandard.h>

Inheritance diagram for geo::GeometryBuilderStandard:
geo::GeometryBuilder geo::GeometryBuilderWireless

Classes

struct  Config
 Configuration parameters. More...
 

Public Member Functions

 GeometryBuilderStandard (Config const &config)
 
template<typename ObjGeo , bool(geo::GeometryBuilderStandard::*)(TGeoNode const &) const IsObj, ObjGeo(geo::GeometryBuilderStandard::*)(geo::GeometryBuilder::Path_t &) MakeObj>
geo::GeometryBuilder::GeoColl_t< ObjGeo > doExtractGeometryObjects (Path_t &path)
 
- Public Member Functions inherited from geo::GeometryBuilder
virtual ~GeometryBuilder ()=default
 Virtual destructor. More...
 
Cryostats_t extractCryostats (Path_t const &path)
 Looks for all cryostats under the specified path. More...
 
AuxDets_t extractAuxiliaryDetectors (Path_t const &path)
 Looks for all auxiliary detectors under the specified path. More...
 

Protected Member Functions

Auxiliary detector information
geo::AuxDetGeo makeAuxDet (Path_t &path)
 Constructs a geo::AuxDetGeo from the current node of the path. More...
 
virtual AuxDets_t doExtractAuxiliaryDetectors (Path_t &path) override
 
virtual geo::AuxDetGeo doMakeAuxDet (Path_t &path)
 Core implementation of extractAuxiliaryDetectors(). More...
 
Cryostat information
geo::CryostatGeo makeCryostat (Path_t &path)
 Constructs a geo::CryostatGeo from the current node of the path. More...
 
virtual Cryostats_t doExtractCryostats (Path_t &path) override
 
virtual geo::CryostatGeo doMakeCryostat (Path_t &path)
 Core implementation of extractAuxDetSensitive(). More...
 
Node type identification

These are implementation details of doExtractGeometryObjects() and its users. They can be made virtual if the needs arises.

bool isAuxDetNode (TGeoNode const &node) const
 
bool isAuxDetSensitiveNode (TGeoNode const &node) const
 
bool isCryostatNode (TGeoNode const &node) const
 Returns whether the specified node is recognised as a cryostat. More...
 
bool isOpDetNode (TGeoNode const &node) const
 Returns whether the specified node is recognised as a optical detector. More...
 
bool isTPCNode (TGeoNode const &node) const
 Returns whether the specified node is recognised as a TPC. More...
 
bool isPlaneNode (TGeoNode const &node) const
 Returns whether the specified node is recognised as a wire plane. More...
 
bool isWireNode (TGeoNode const &node) const
 Returns whether the specified node is recognised as a wire. More...
 

Static Protected Member Functions

static bool starts_with (std::string_view const &s, std::string_view const &key)
 

Protected Attributes

Path_t::Depth_t fMaxDepth = std::numeric_limits<Path_t::Depth_t>::max()
 Maximum level to descend into in the path. More...
 
std::string fOpDetGeoName = "volOpDetSensitive"
 Name of the optical detector nodes. More...
 

Private Member Functions

template<typename ObjGeo , bool(geo::GeometryBuilderStandard::*)(TGeoNode const &) const IsObj, ObjGeo(geo::GeometryBuilderStandard::*)(Path_t &) MakeObj>
GeoColl_t< ObjGeo > doExtractGeometryObjects (Path_t &path)
 Boilerplate implementation of doExtractXxxx() methods. More...
 

Auxiliary detector sensitive volume information

using AuxDetSensitive_t = GeoColl_t< geo::AuxDetSensitiveGeo >
 
AuxDetSensitive_t extractAuxDetSensitive (Path_t &path)
 Looks for all auxiliary detectors under the specified path. More...
 
geo::AuxDetSensitiveGeo makeAuxDetSensitive (Path_t &path)
 
virtual AuxDetSensitive_t doExtractAuxDetSensitive (Path_t &path)
 
virtual geo::AuxDetSensitiveGeo doMakeAuxDetSensitive (Path_t &path)
 Core implementation of makeAuxDetSensitive(). More...
 

Optical detector information

using OpDets_t = GeoColl_t< geo::OpDetGeo >
 
OpDets_t extractOpDets (Path_t &path)
 Looks for all optical detectors under the specified path. More...
 
geo::OpDetGeo makeOpDet (Path_t &path)
 Constructs a geo::OpDetGeo from the current node of the path. More...
 
virtual OpDets_t doExtractOpDets (Path_t &path)
 
virtual geo::OpDetGeo doMakeOpDet (Path_t &path)
 Core implementation of makeOpDet(). More...
 

TPC information

using TPCs_t = GeoColl_t< geo::TPCGeo >
 
TPCs_t extractTPCs (Path_t &path)
 Looks for all TPCs under the specified path. More...
 
geo::TPCGeo makeTPC (Path_t &path)
 Constructs a geo::TPCGeo from the current node of the path. More...
 
virtual TPCs_t doExtractTPCs (Path_t &path)
 
virtual geo::TPCGeo doMakeTPC (Path_t &path)
 Core implementation of makeTPC(). More...
 

Wire plane information

using Planes_t = GeoColl_t< geo::PlaneGeo >
 
Planes_t extractPlanes (Path_t &path)
 Looks for all wire planes under the specified path. More...
 
geo::PlaneGeo makePlane (Path_t &path)
 Constructs a geo::PlaneGeo from the current node of the path. More...
 
virtual Planes_t doExtractPlanes (Path_t &path)
 
virtual geo::PlaneGeo doMakePlane (Path_t &path)
 Core implementation of makePlanes(). More...
 

Wire information

using Wires_t = GeoColl_t< geo::WireGeo >
 
Wires_t extractWires (Path_t &path)
 Looks for all wires under the specified path. More...
 
geo::WireGeo makeWire (Path_t &path)
 Constructs a geo::WireGeo from the current node of the path. More...
 
virtual Wires_t doExtractWires (Path_t &path)
 
virtual geo::WireGeo doMakeWire (Path_t &path)
 Core implementation of makeWire(). More...
 

Additional Inherited Members

- Public Types inherited from geo::GeometryBuilder
using Path_t = geo::GeoNodePath
 Identification of a single node in ROOT geometry. More...
 
template<typename GeoObj >
using GeoColl_t = std::vector< GeoObj >
 Type of direct collection of geometry objects. More...
 
using Cryostats_t = GeoColl_t< geo::CryostatGeo >
 Collection of cryostat information objects. More...
 
using AuxDets_t = GeoColl_t< geo::AuxDetGeo >
 Collection of auxiliary detector information objects. More...
 

Detailed Description

Extracts of LArSoft geometry information from ROOT.

The builder manages several components, each devoted to the extraction of a specific type of geometry object (e.g. cryostat, or wire plane within a TPC).

Further customization notes

This builder does not extend the interface of geo::GeometryBuilder, but it defines a protected interface that other builder classes could override to customize single elements of the build. As long as the interface is complied to, the different components are interchangeable.

If instead a different interface is needed for one component, the parent component needs to be customised too. For example, if the signature of doExtractPlanes() is changed, also doMakePlane() needs to be customized to correctly call the previous. In that case, take care of deleting the inherited interface to avoid confusion and errors.

Technical notes on customization

The internal structure of the builder follows the pattern already employed in the base class. The base class defines both the public interface and the implementation, but it separates the two leaving the former as non-virtual functions, and the latter as virtual functions accessible only by derived classes.

The geo::GeometryBuilderStandard class replicates this pattern in a more hidden level. The general flow of the algorithm is a top-down crawl of the geometry tree structure, where the top objects (cryostats and auxiliary detectors) are discovered and built, and each of these objects takes care of discovering its own relevant components. Therefore e.g. the cryostat algorithm will, once found a candidate cryostat, descend into it to discover TPCs and optical detectors. This nested discovery is delegated to other algorithms, and e.g. the TPC algorithm will take care of creating a TPC and populating it with wire planes whose discovery is again delegated to another algorithm.

The interface of these algorithms is fixed and is part of the protected class interface, in a way mirroring geo::GeometryBuilder in that it does not rely on virtuality, but entirely protected. The implementation is also in the protected space.

Each component type has five elements:

The discovery interface and the collection type of two of these components are directly part of the public interface inherited from geo::GeometryBuilder.

Definition at line 106 of file GeometryBuilderStandard.h.

Member Typedef Documentation

Definition at line 172 of file GeometryBuilderStandard.h.

Definition at line 233 of file GeometryBuilderStandard.h.

Definition at line 297 of file GeometryBuilderStandard.h.

Definition at line 264 of file GeometryBuilderStandard.h.

Definition at line 330 of file GeometryBuilderStandard.h.

Constructor & Destructor Documentation

geo::GeometryBuilderStandard::GeometryBuilderStandard ( Config const &  config)

Definition at line 39 of file GeometryBuilderStandard.cxx.

42  {}
fhicl::Atom< Path_t::Depth_t > maxDepth
static Config * config
Definition: config.cpp:1054
std::string fOpDetGeoName
Name of the optical detector nodes.
Path_t::Depth_t fMaxDepth
Maximum level to descend into in the path.

Member Function Documentation

geo::GeometryBuilderStandard::AuxDetSensitive_t geo::GeometryBuilderStandard::doExtractAuxDetSensitive ( Path_t path)
protectedvirtual

Core implementation of extractAuxDetSensitive().

The actual algorithm is specialization of doExtractGeometryObjects().

Definition at line 72 of file GeometryBuilderStandard.cxx.

72  {
77  >
78  (path);
79 } // geo::GeometryBuilderStandard::doExtractAuxDetSensitive()
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
bool isAuxDetSensitiveNode(TGeoNode const &node) const
geo::AuxDetSensitiveGeo makeAuxDetSensitive(Path_t &path)
geo::GeometryBuilderStandard::AuxDets_t geo::GeometryBuilderStandard::doExtractAuxiliaryDetectors ( Path_t path)
overrideprotectedvirtual

Core implementation of extractCryostats().

The actual algorithm is specialization of doExtractGeometryObjects().

Implements geo::GeometryBuilder.

Definition at line 47 of file GeometryBuilderStandard.cxx.

47  {
48 
53  >
54  (path);
55 
56 } // geo::GeometryBuilderStandard::doExtractAuxiliaryDetectors()
virtual geo::AuxDetGeo doMakeAuxDet(Path_t &path)
Core implementation of extractAuxiliaryDetectors().
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
bool isAuxDetNode(TGeoNode const &node) const
geo::GeometryBuilderStandard::Cryostats_t geo::GeometryBuilderStandard::doExtractCryostats ( Path_t path)
overrideprotectedvirtual

Core implementation of extractCryostats().

The actual algorithm is specialization of doExtractGeometryObjects().

Implements geo::GeometryBuilder.

Definition at line 93 of file GeometryBuilderStandard.cxx.

93  {
94 
99  >
100  (path);
101 
102 } // geo::GeometryBuilderStandard::doExtractCryostats()
bool isCryostatNode(TGeoNode const &node) const
Returns whether the specified node is recognised as a cryostat.
Geometry information for a single cryostat.
Definition: CryostatGeo.h:43
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
geo::CryostatGeo makeCryostat(Path_t &path)
Constructs a geo::CryostatGeo from the current node of the path.
template<typename ObjGeo , bool(geo::GeometryBuilderStandard::*)(TGeoNode const &) const IsObj, ObjGeo(geo::GeometryBuilderStandard::*)(geo::GeometryBuilder::Path_t &) MakeObj>
geo::GeometryBuilder::GeoColl_t<ObjGeo> geo::GeometryBuilderStandard::doExtractGeometryObjects ( Path_t path)

Definition at line 263 of file GeometryBuilderStandard.cxx.

265  {
266 
268 
269  //
270  // if this is a wire, we are set
271  //
272  if ((this->*IsObj)(path.current())) {
273  objs.push_back((this->*MakeObj)(path));
274  return objs;
275  }
276 
277  //
278  // descend into the next layer down, concatenate the results and return them
279  //
280  if (path.depth() >= fMaxDepth) return objs; // yep, this is empty
281 
282  TGeoVolume const& volume = *(path.current().GetVolume());
283  int const n = volume.GetNdaughters();
284  for (int i = 0; i < n; ++i) {
285  path.append(*(volume.GetNode(i)));
286  extendCollection(objs, doExtractGeometryObjects<ObjGeo, IsObj, MakeObj>(path));
287  path.pop();
288  } // for
289 
290  return objs;
291 
292 } // geo::GeometryBuilderStandard::doExtractGeometryObjects()
static const std::string volume[nvol]
std::void_t< T > n
Path_t::Depth_t fMaxDepth
Maximum level to descend into in the path.
std::vector< GeoObj > GeoColl_t
Type of direct collection of geometry objects.
template<typename ObjGeo , bool(geo::GeometryBuilderStandard::*)(TGeoNode const &) const IsObj, ObjGeo(geo::GeometryBuilderStandard::*)(Path_t &) MakeObj>
GeoColl_t<ObjGeo> geo::GeometryBuilderStandard::doExtractGeometryObjects ( Path_t path)
private

Boilerplate implementation of doExtractXxxx() methods.

Template Parameters
ObjGeothe geometry object being extracted (e.g. geo::WireGeo)
IsObjfunction to identify if a node is of the right type
MakeObjclass method creating the target object from a path
Parameters
paththe path to the node describing the object
Returns
a fully constructed object of type ObjGeo

This implementation first evaluates if the current node in the specified path is suitable to create a ObjGeo; if not, then it descends into the node daughters and recursively to their descendents. For each candidate node, a ObjGeo is created. All descendents of the candidates are ignored.

Note
Multithreading note: path is allowed to change during processing.
geo::GeometryBuilderStandard::OpDets_t geo::GeometryBuilderStandard::doExtractOpDets ( Path_t path)
protectedvirtual

Core implementation of extractOpDets().

The actual algorithm is specialization of doExtractGeometryObjects().

Definition at line 119 of file GeometryBuilderStandard.cxx.

119  {
124  >
125  (path);
126 } // geo::GeometryBuilderStandard::doExtractOpDets()
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
bool isOpDetNode(TGeoNode const &node) const
Returns whether the specified node is recognised as a optical detector.
geo::OpDetGeo makeOpDet(Path_t &path)
Constructs a geo::OpDetGeo from the current node of the path.
geo::GeometryBuilderStandard::Planes_t geo::GeometryBuilderStandard::doExtractPlanes ( Path_t path)
protectedvirtual

Core implementation of extractPlanes().

The actual algorithm is specialization of doExtractGeometryObjects().

Definition at line 161 of file GeometryBuilderStandard.cxx.

162 {
167  >
168  (path);
169 
170 } // geo::GeometryBuilderStandard::doExtractPlanes()
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
Definition: PlaneGeo.h:82
bool isPlaneNode(TGeoNode const &node) const
Returns whether the specified node is recognised as a wire plane.
geo::PlaneGeo makePlane(Path_t &path)
Constructs a geo::PlaneGeo from the current node of the path.
geo::GeometryBuilderStandard::TPCs_t geo::GeometryBuilderStandard::doExtractTPCs ( Path_t path)
protectedvirtual

Core implementation of extractTPCs().

The actual algorithm is specialization of doExtractGeometryObjects().

Definition at line 138 of file GeometryBuilderStandard.cxx.

139 {
141  geo::TPCGeo,
144  >
145  (path);
146 
147 } // geo::GeometryBuilderStandard::doExtractTPCs()
geo::TPCGeo makeTPC(Path_t &path)
Constructs a geo::TPCGeo from the current node of the path.
Geometry information for a single TPC.
Definition: TPCGeo.h:38
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
bool isTPCNode(TGeoNode const &node) const
Returns whether the specified node is recognised as a TPC.
geo::GeometryBuilderStandard::Wires_t geo::GeometryBuilderStandard::doExtractWires ( Path_t path)
protectedvirtual

Core implementation of extractWires().

The actual algorithm is specialization of doExtractGeometryObjects().

Reimplemented in geo::GeometryBuilderWireless.

Definition at line 184 of file GeometryBuilderStandard.cxx.

185 {
187  geo::WireGeo,
190  >
191  (path);
192 
193 } // geo::GeometryBuilderStandard::doExtractWires()
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
Definition: WireGeo.h:65
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path)
Boilerplate implementation of doExtractXxxx() methods.
bool isWireNode(TGeoNode const &node) const
Returns whether the specified node is recognised as a wire.
geo::WireGeo makeWire(Path_t &path)
Constructs a geo::WireGeo from the current node of the path.
geo::AuxDetGeo geo::GeometryBuilderStandard::doMakeAuxDet ( Path_t path)
protectedvirtual

Core implementation of extractAuxiliaryDetectors().

Definition at line 60 of file GeometryBuilderStandard.cxx.

60  {
61 
62  return geo::AuxDetGeo(
63  path.current(), path.currentTransformation<geo::TransformationMatrix>(),
65  );
66 
67 } // geo::GeometryBuilderStandard::doMakeAuxDet()
AuxDetSensitive_t extractAuxDetSensitive(Path_t &path)
Looks for all auxiliary detectors under the specified path.
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
geo::AuxDetSensitiveGeo geo::GeometryBuilderStandard::doMakeAuxDetSensitive ( Path_t path)
protectedvirtual

Core implementation of makeAuxDetSensitive().

Definition at line 84 of file GeometryBuilderStandard.cxx.

85 {
87  (path.current(), path.currentTransformation<geo::TransformationMatrix>());
88 } // geo::GeometryBuilderStandard::doMakeAuxDetSensitive()
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
geo::CryostatGeo geo::GeometryBuilderStandard::doMakeCryostat ( Path_t path)
protectedvirtual

Core implementation of extractAuxDetSensitive().

Definition at line 106 of file GeometryBuilderStandard.cxx.

106  {
107 
108  return geo::CryostatGeo(
109  path.current(), path.currentTransformation<geo::TransformationMatrix>(),
110  extractTPCs(path),
111  extractOpDets(path)
112  );
113 
114 } // geo::GeometryBuilderStandard::doMakeCryostat()
TPCs_t extractTPCs(Path_t &path)
Looks for all TPCs under the specified path.
Geometry information for a single cryostat.
Definition: CryostatGeo.h:43
OpDets_t extractOpDets(Path_t &path)
Looks for all optical detectors under the specified path.
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
geo::OpDetGeo geo::GeometryBuilderStandard::doMakeOpDet ( Path_t path)
protectedvirtual

Core implementation of makeOpDet().

Definition at line 130 of file GeometryBuilderStandard.cxx.

130  {
131  return geo::OpDetGeo
132  (path.current(), path.currentTransformation<geo::TransformationMatrix>());
133 } // geo::GeometryBuilderStandard::doMakeOpDet()
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
geo::PlaneGeo geo::GeometryBuilderStandard::doMakePlane ( Path_t path)
protectedvirtual

Core implementation of makePlanes().

Definition at line 174 of file GeometryBuilderStandard.cxx.

174  {
175  return geo::PlaneGeo(
176  path.current(), path.currentTransformation<geo::TransformationMatrix>(),
177  extractWires(path)
178  );
179 } // geo::GeometryBuilderStandard::doMakePlane()
Geometry information for a single wire plane.The plane is represented in the geometry by a solid whic...
Definition: PlaneGeo.h:82
Wires_t extractWires(Path_t &path)
Looks for all wires under the specified path.
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
geo::TPCGeo geo::GeometryBuilderStandard::doMakeTPC ( Path_t path)
protectedvirtual

Core implementation of makeTPC().

Definition at line 151 of file GeometryBuilderStandard.cxx.

151  {
152  return geo::TPCGeo(
153  path.current(), path.currentTransformation<geo::TransformationMatrix>(),
154  extractPlanes(path)
155  );
156 } // geo::GeometryBuilderStandard::doMakeTPC()
Planes_t extractPlanes(Path_t &path)
Looks for all wire planes under the specified path.
Geometry information for a single TPC.
Definition: TPCGeo.h:38
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
geo::WireGeo geo::GeometryBuilderStandard::doMakeWire ( Path_t path)
protectedvirtual

Core implementation of makeWire().

Definition at line 197 of file GeometryBuilderStandard.cxx.

197  {
198 
199  return geo::WireGeo
200  (path.current(), path.currentTransformation<geo::TransformationMatrix>());
201 
202 } // geo::GeometryBuilderStandard::doMakeWire()
Geometry description of a TPC wireThe wire is a single straight segment on a wire plane...
Definition: WireGeo.h:65
ROOT::Math::Transform3D TransformationMatrix
Type of transformation matrix used in geometry.
AuxDetSensitive_t geo::GeometryBuilderStandard::extractAuxDetSensitive ( Path_t path)
inlineprotected

Looks for all auxiliary detectors under the specified path.

Parameters
pathpath pointing to the starting node
Returns
a list of fully constructed auxiliary detectors

The auxiliary detectors contain all their inner elements. The current node itself of the path is also considered as auxiliary detector candidate, then it is descended into.

Note
Multithreading note: path is allowed to change during processing.

Definition at line 185 of file GeometryBuilderStandard.h.

186  { auto localPath = path; return doExtractAuxDetSensitive(localPath); }
virtual AuxDetSensitive_t doExtractAuxDetSensitive(Path_t &path)
OpDets_t geo::GeometryBuilderStandard::extractOpDets ( Path_t path)
inlineprotected

Looks for all optical detectors under the specified path.

Parameters
pathpath pointing to the starting node
Returns
a list of fully constructed optical detector objects

Definition at line 240 of file GeometryBuilderStandard.h.

241  { auto localPath = path; return doExtractOpDets(localPath); }
virtual OpDets_t doExtractOpDets(Path_t &path)
Planes_t geo::GeometryBuilderStandard::extractPlanes ( Path_t path)
inlineprotected

Looks for all wire planes under the specified path.

Parameters
pathpath pointing to the starting node
Returns
a list of fully constructed wire plane objects

Each plane has its own wires already in.

Definition at line 306 of file GeometryBuilderStandard.h.

307  { auto localPath = path; return doExtractPlanes(localPath); }
virtual Planes_t doExtractPlanes(Path_t &path)
TPCs_t geo::GeometryBuilderStandard::extractTPCs ( Path_t path)
inlineprotected

Looks for all TPCs under the specified path.

Parameters
pathpath pointing to the starting node
Returns
a list of fully constructed TPC objects

Each TPC has its own wire planes already in.

Definition at line 273 of file GeometryBuilderStandard.h.

274  { auto localPath = path; return doExtractTPCs(localPath); }
virtual TPCs_t doExtractTPCs(Path_t &path)
Wires_t geo::GeometryBuilderStandard::extractWires ( Path_t path)
inlineprotected

Looks for all wires under the specified path.

Parameters
pathpath pointing to the starting node
Returns
a list of fully constructed wires

Definition at line 338 of file GeometryBuilderStandard.h.

339  { auto localPath = path; return doExtractWires(localPath); }
virtual Wires_t doExtractWires(Path_t &path)
bool geo::GeometryBuilderStandard::isAuxDetNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as auxiliary detector.

Definition at line 206 of file GeometryBuilderStandard.cxx.

206  {
207  using namespace std::literals;
208  return starts_with(node.GetName(), "volAuxDet"sv);
209 } // geo::GeometryBuilderStandard::isAuxDetNode()
static bool starts_with(std::string_view const &s, std::string_view const &key)
bool geo::GeometryBuilderStandard::isAuxDetSensitiveNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as sensitive volume of auxiliary detector.

Definition at line 214 of file GeometryBuilderStandard.cxx.

215 {
216  return std::string_view(node.GetName()).find("Sensitive")
217  != std::string_view::npos;
218 } // geo::GeometryBuilderStandard::isAuxDetSensitiveNode()
bool geo::GeometryBuilderStandard::isCryostatNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as a cryostat.

Definition at line 222 of file GeometryBuilderStandard.cxx.

222  {
223  using namespace std::literals;
224  return starts_with(node.GetName(), "volCryostat"sv);
225 } // geo::GeometryBuilderStandard::isCryostatNode()
static bool starts_with(std::string_view const &s, std::string_view const &key)
bool geo::GeometryBuilderStandard::isOpDetNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as a optical detector.

Definition at line 229 of file GeometryBuilderStandard.cxx.

229  {
230  return starts_with(node.GetName(), fOpDetGeoName);
231 } // geo::GeometryBuilderStandard::isOpDetNode()
std::string fOpDetGeoName
Name of the optical detector nodes.
static bool starts_with(std::string_view const &s, std::string_view const &key)
bool geo::GeometryBuilderStandard::isPlaneNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as a wire plane.

Definition at line 243 of file GeometryBuilderStandard.cxx.

243  {
244  using namespace std::literals;
245  return starts_with(node.GetName(), "volTPCPlane"sv);
246 } // geo::GeometryBuilderStandard::isPlaneNode()
static bool starts_with(std::string_view const &s, std::string_view const &key)
bool geo::GeometryBuilderStandard::isTPCNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as a TPC.

Definition at line 236 of file GeometryBuilderStandard.cxx.

236  {
237  using namespace std::literals;
238  return starts_with(node.GetName(), "volTPC"sv);
239 } // geo::GeometryBuilderStandard::isTPCNode()
static bool starts_with(std::string_view const &s, std::string_view const &key)
bool geo::GeometryBuilderStandard::isWireNode ( TGeoNode const &  node) const
protected

Returns whether the specified node is recognised as a wire.

Definition at line 250 of file GeometryBuilderStandard.cxx.

250  {
251  using namespace std::literals;
252  return starts_with(node.GetName(), "volTPCWire"sv);
253 } // geo::GeometryBuilderStandard::isWireNode()
static bool starts_with(std::string_view const &s, std::string_view const &key)
geo::AuxDetGeo geo::GeometryBuilderStandard::makeAuxDet ( Path_t path)
inlineprotected

Constructs a geo::AuxDetGeo from the current node of the path.

Definition at line 152 of file GeometryBuilderStandard.h.

153  { return doMakeAuxDet(path); }
virtual geo::AuxDetGeo doMakeAuxDet(Path_t &path)
Core implementation of extractAuxiliaryDetectors().
geo::AuxDetSensitiveGeo geo::GeometryBuilderStandard::makeAuxDetSensitive ( Path_t path)
inlineprotected

Constructs a geo::AuxDetSensitiveGeo from the current node of the path.

Definition at line 190 of file GeometryBuilderStandard.h.

191  { return doMakeAuxDetSensitive(path); }
virtual geo::AuxDetSensitiveGeo doMakeAuxDetSensitive(Path_t &path)
Core implementation of makeAuxDetSensitive().
geo::CryostatGeo geo::GeometryBuilderStandard::makeCryostat ( Path_t path)
inlineprotected

Constructs a geo::CryostatGeo from the current node of the path.

Definition at line 213 of file GeometryBuilderStandard.h.

214  { return doMakeCryostat(path); }
virtual geo::CryostatGeo doMakeCryostat(Path_t &path)
Core implementation of extractAuxDetSensitive().
geo::OpDetGeo geo::GeometryBuilderStandard::makeOpDet ( Path_t path)
inlineprotected

Constructs a geo::OpDetGeo from the current node of the path.

Definition at line 244 of file GeometryBuilderStandard.h.

245  { return doMakeOpDet(path); }
virtual geo::OpDetGeo doMakeOpDet(Path_t &path)
Core implementation of makeOpDet().
geo::PlaneGeo geo::GeometryBuilderStandard::makePlane ( Path_t path)
inlineprotected

Constructs a geo::PlaneGeo from the current node of the path.

Definition at line 310 of file GeometryBuilderStandard.h.

311  { return doMakePlane(path); }
virtual geo::PlaneGeo doMakePlane(Path_t &path)
Core implementation of makePlanes().
geo::TPCGeo geo::GeometryBuilderStandard::makeTPC ( Path_t path)
inlineprotected

Constructs a geo::TPCGeo from the current node of the path.

Definition at line 277 of file GeometryBuilderStandard.h.

278  { return doMakeTPC(path); }
virtual geo::TPCGeo doMakeTPC(Path_t &path)
Core implementation of makeTPC().
geo::WireGeo geo::GeometryBuilderStandard::makeWire ( Path_t path)
inlineprotected

Constructs a geo::WireGeo from the current node of the path.

Definition at line 342 of file GeometryBuilderStandard.h.

343  { return doMakeWire(path); }
virtual geo::WireGeo doMakeWire(Path_t &path)
Core implementation of makeWire().
static bool geo::GeometryBuilderStandard::starts_with ( std::string_view const &  s,
std::string_view const &  key 
)
inlinestaticprotected

Returns whether the start of s matches the full key.

Note
Remove this when C++20 is adopted (s.starts_with(key)).

Definition at line 396 of file GeometryBuilderStandard.h.

397  { return s.compare(0, key.size(), key) == 0; }
def key(type, name=None)
Definition: graph.py:13
static QCString * s
Definition: config.cpp:1042

Member Data Documentation

Path_t::Depth_t geo::GeometryBuilderStandard::fMaxDepth = std::numeric_limits<Path_t::Depth_t>::max()
protected

Maximum level to descend into in the path.

Definition at line 139 of file GeometryBuilderStandard.h.

std::string geo::GeometryBuilderStandard::fOpDetGeoName = "volOpDetSensitive"
protected

Name of the optical detector nodes.

Definition at line 142 of file GeometryBuilderStandard.h.


The documentation for this class was generated from the following files: