LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
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 Types

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...
 

Public Member Functions

 GeometryBuilderStandard (Config const &config)
 
template<typename ObjGeo >
geo::GeometryBuilder::GeoColl_t< ObjGeo > doExtractGeometryObjects (Path_t &path, std::function< bool(TGeoNode const &)> const IsObj, ObjGeo(GeometryBuilderStandard::*MakeObj)(Path_t &))
 

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...
 

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 >
GeoColl_t< ObjGeo > doExtractGeometryObjects (Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
 Boilerplate implementation of doExtractXxxx() methods. More...
 

Cryostat information

Cryostats_t extractCryostats (Path_t const &path)
 Looks for all cryostats under the specified path. More...
 
using Cryostats_t = GeoColl_t< geo::CryostatGeo >
 Collection of cryostat information objects. More...
 

Auxiliary detector information

AuxDets_t extractAuxiliaryDetectors (Path_t const &path)
 Looks for all auxiliary detectors under the specified path. More...
 
using AuxDets_t = GeoColl_t< geo::AuxDetGeo >
 Collection of auxiliary detector information objects. More...
 

Auxiliary detector sensitive volume information

using AuxDetSensitive_t = GeoColl_t< geo::AuxDetSensitiveGeo >
 Looks for all auxiliary detectors under the specified path. More...
 
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 >
 Looks for all optical detectors under the specified path. More...
 
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 >
 Looks for all TPCs under the specified path. More...
 
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 >
 Looks for all wire planes under the specified path. More...
 
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 >
 Looks for all wires under the specified path. More...
 
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...
 

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:

  • a type describing a collection of the object of this component; this is integral part of the protected interface
  • an interface to create an object for a single component, called makeXxx(), expected to rely on its implementation method doMakeXxx()
  • an interface to discover all the components of this type, and creating them; it is called extractXxx() and it logically relies on makeXxx(), expected to rely on its implementation method doExtractXxx()
  • a virtual implementation method of the component creation routine, called doMakeXxx() and expected to invoke the extractYyy() interface of all the subcomponents nested inside it
  • a virtual implementation method of the component discovery routine, called doExtractXxx() and expected to invoke the makeYyy() interface of all the subcomponents nested inside it

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

Collection of auxiliary detector information objects.

Definition at line 101 of file GeometryBuilder.h.

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 166 of file GeometryBuilderStandard.h.

Collection of cryostat information objects.

Definition at line 76 of file GeometryBuilder.h.

template<typename GeoObj >
using geo::GeometryBuilder::GeoColl_t = std::vector<GeoObj>
inherited

Type of direct collection of geometry objects.

Definition at line 61 of file GeometryBuilder.h.

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 227 of file GeometryBuilderStandard.h.

Identification of a single node in ROOT geometry.

Definition at line 57 of file GeometryBuilder.h.

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 291 of file GeometryBuilderStandard.h.

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 258 of file GeometryBuilderStandard.h.

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 324 of file GeometryBuilderStandard.h.

Constructor & Destructor Documentation

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

Definition at line 69 of file GeometryBuilderStandard.cxx.

70  : fMaxDepth(config.maxDepth()), fOpDetGeoName(config.opDetGeoName())
71 {}
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 92 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), and makeAuxDetSensitive().

Referenced by extractAuxDetSensitive(), and makeAuxDetSensitive().

93 {
95  path, isAuxDetSensitiveNode, &GeometryBuilderStandard::makeAuxDetSensitive);
96 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
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 74 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), and doMakeAuxDet().

Referenced by makeAuxDet().

76 {
77 
79 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
virtual geo::AuxDetGeo doMakeAuxDet(Path_t &path)
Core implementation of extractAuxiliaryDetectors().
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 105 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), and makeCryostat().

Referenced by makeCryostat().

107 {
109 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
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 >
geo::GeometryBuilder::GeoColl_t<ObjGeo> geo::GeometryBuilderStandard::doExtractGeometryObjects ( Path_t path,
std::function< bool(TGeoNode const &)> const  IsObj,
ObjGeo(GeometryBuilderStandard::*)(Path_t &)  MakeObj 
)

Definition at line 175 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::append(), geo::GeoNodePath::current(), geo::GeoNodePath::depth(), doExtractGeometryObjects(), fMaxDepth, n, and geo::GeoNodePath::pop().

179 {
180  GeoColl_t<ObjGeo> objs;
181 
182  //
183  // if this is a wire, we are set
184  //
185  if (IsObj(path.current())) {
186  objs.push_back((this->*MakeObj)(path));
187  return objs;
188  }
189 
190  //
191  // descend into the next layer down, concatenate the results and return them
192  //
193  if (path.depth() >= fMaxDepth) return objs; // yep, this is empty
194 
195  TGeoVolume const* volume = path.current().GetVolume();
196  int const n = volume->GetNdaughters();
197  for (int i = 0; i < n; ++i) {
198  path.append(*volume->GetNode(i));
199  extendCollection(objs, doExtractGeometryObjects(path, IsObj, MakeObj));
200  path.pop();
201  } // for
202 
203  return objs;
204 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
Path_t::Depth_t fMaxDepth
Maximum level to descend into in the path.
Char_t n[5]
template<typename ObjGeo >
GeoColl_t<ObjGeo> geo::GeometryBuilderStandard::doExtractGeometryObjects ( Path_t path,
std::function< bool(TGeoNode const &)>  IsObj,
ObjGeo(geo::GeometryBuilderStandard::*)(Path_t &)  MakeObj 
)
private

Boilerplate implementation of doExtractXxxx() methods.

Template Parameters
ObjGeothe geometry object being extracted (e.g. geo::WireGeo)
Parameters
paththe path to the node describing the object
IsObjfunction to identify if a node is of the right type
MakeObjclass method creating the target object from a path
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.

Referenced by doExtractAuxDetSensitive(), doExtractAuxiliaryDetectors(), doExtractCryostats(), doExtractGeometryObjects(), doExtractOpDets(), doExtractPlanes(), doExtractTPCs(), doExtractWires(), and makeWire().

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 121 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), fOpDetGeoName, and makeOpDet().

Referenced by extractOpDets(), and makeOpDet().

122 {
124  path,
125  [this](auto const& node) { return isOpDetNode(node, fOpDetGeoName); },
127 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
std::string fOpDetGeoName
Name of the optical detector nodes.
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 149 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), and makePlane().

Referenced by extractPlanes(), and makePlane().

150 {
152 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
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 136 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), and makeTPC().

Referenced by extractTPCs(), and makeTPC().

137 {
139 }
geo::TPCGeo makeTPC(Path_t &path)
Constructs a geo::TPCGeo from the current node of the path.
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
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 162 of file GeometryBuilderStandard.cxx.

References doExtractGeometryObjects(), and makeWire().

Referenced by extractWires(), and makeWire().

163 {
165 }
GeoColl_t< ObjGeo > doExtractGeometryObjects(Path_t &path, std::function< bool(TGeoNode const &)> IsObj, ObjGeo(geo::GeometryBuilderStandard::*MakeObj)(Path_t &))
Boilerplate implementation of doExtractXxxx() methods.
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 82 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::current(), geo::GeoNodePath::currentTransformation(), and extractAuxDetSensitive().

Referenced by doExtractAuxiliaryDetectors(), and makeAuxDet().

83 {
84 
85  return AuxDetGeo(path.current(),
86  path.currentTransformation<TransformationMatrix>(),
88 }
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 99 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::current(), and geo::GeoNodePath::currentTransformation().

Referenced by makeAuxDetSensitive().

100 {
101  return AuxDetSensitiveGeo(path.current(), path.currentTransformation<TransformationMatrix>());
102 }
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 112 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::current(), geo::GeoNodePath::currentTransformation(), extractOpDets(), and extractTPCs().

Referenced by makeCryostat().

113 {
114  return CryostatGeo{path.current(),
115  path.currentTransformation<TransformationMatrix>(),
116  extractTPCs(path),
117  extractOpDets(path)};
118 }
TPCs_t extractTPCs(Path_t &path)
Looks for all TPCs under the specified path.
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.

References geo::GeoNodePath::current(), and geo::GeoNodePath::currentTransformation().

Referenced by makeOpDet().

131 {
132  return OpDetGeo(path.current(), path.currentTransformation<TransformationMatrix>());
133 }
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 155 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::current(), geo::GeoNodePath::currentTransformation(), and extractWires().

Referenced by makePlane().

156 {
157  return PlaneGeo{
158  path.current(), path.currentTransformation<TransformationMatrix>(), extractWires(path)};
159 }
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 142 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::current(), geo::GeoNodePath::currentTransformation(), and extractPlanes().

Referenced by makeTPC().

143 {
144  return TPCGeo{
145  path.current(), path.currentTransformation<TransformationMatrix>(), extractPlanes(path)};
146 }
Planes_t extractPlanes(Path_t &path)
Looks for all wire planes under the specified path.
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 168 of file GeometryBuilderStandard.cxx.

References geo::GeoNodePath::current(), and geo::GeoNodePath::currentTransformation().

Referenced by makeWire().

169 {
170  return WireGeo{path.current(), path.currentTransformation<TransformationMatrix>()};
171 }
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 179 of file GeometryBuilderStandard.h.

References doExtractAuxDetSensitive().

Referenced by doMakeAuxDet().

180  {
181  auto localPath = path;
182  return doExtractAuxDetSensitive(localPath);
183  }
virtual AuxDetSensitive_t doExtractAuxDetSensitive(Path_t &path)
AuxDets_t geo::GeometryBuilder::extractAuxiliaryDetectors ( Path_t const &  path)
inlineinherited

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.

Definition at line 112 of file GeometryBuilder.h.

References geo::GeometryBuilder::doExtractAuxiliaryDetectors(), and geo::GeometryBuilder::doExtractCryostats().

Referenced by geo::GeometryCore::BuildGeometry(), and geo::AuxDetGeometryCore::LoadGeometryFile().

113  {
114  auto myPath = path;
115  return doExtractAuxiliaryDetectors(myPath);
116  }
virtual AuxDets_t doExtractAuxiliaryDetectors(Path_t &path)=0
Custom implementation of extractAuxiliaryDetectors().
Cryostats_t geo::GeometryBuilder::extractCryostats ( Path_t const &  path)
inlineinherited

Looks for all cryostats under the specified path.

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

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

Definition at line 87 of file GeometryBuilder.h.

References geo::GeometryBuilder::doExtractCryostats().

Referenced by geo::GeometryCore::BuildGeometry().

88  {
89  auto myPath = path;
90  return doExtractCryostats(myPath);
91  }
virtual Cryostats_t doExtractCryostats(Path_t &path)=0
Custom implementation of extractCryostats().
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 234 of file GeometryBuilderStandard.h.

References doExtractOpDets().

Referenced by doMakeCryostat().

235  {
236  auto localPath = path;
237  return doExtractOpDets(localPath);
238  }
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 300 of file GeometryBuilderStandard.h.

References doExtractPlanes().

Referenced by doMakeTPC().

301  {
302  auto localPath = path;
303  return doExtractPlanes(localPath);
304  }
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 267 of file GeometryBuilderStandard.h.

References doExtractTPCs().

Referenced by doMakeCryostat().

268  {
269  auto localPath = path;
270  return doExtractTPCs(localPath);
271  }
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 332 of file GeometryBuilderStandard.h.

References doExtractWires().

Referenced by doMakePlane().

333  {
334  auto localPath = path;
335  return doExtractWires(localPath);
336  }
virtual Wires_t doExtractWires(Path_t &path)
geo::AuxDetGeo geo::GeometryBuilderStandard::makeAuxDet ( Path_t path)
inlineprotected

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

Definition at line 149 of file GeometryBuilderStandard.h.

References doExtractAuxiliaryDetectors(), and doMakeAuxDet().

149 { 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 187 of file GeometryBuilderStandard.h.

References doExtractAuxDetSensitive(), and doMakeAuxDetSensitive().

Referenced by doExtractAuxDetSensitive().

188  {
189  return doMakeAuxDetSensitive(path);
190  }
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 210 of file GeometryBuilderStandard.h.

References doExtractCryostats(), and doMakeCryostat().

Referenced by doExtractCryostats().

210 { 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 241 of file GeometryBuilderStandard.h.

References doExtractOpDets(), and doMakeOpDet().

Referenced by doExtractOpDets().

241 { 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 307 of file GeometryBuilderStandard.h.

References doExtractPlanes(), and doMakePlane().

Referenced by doExtractPlanes().

307 { 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 274 of file GeometryBuilderStandard.h.

References doExtractTPCs(), and doMakeTPC().

Referenced by doExtractTPCs().

274 { 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 339 of file GeometryBuilderStandard.h.

References doExtractGeometryObjects(), doExtractWires(), and doMakeWire().

Referenced by doExtractWires().

339 { return doMakeWire(path); }
virtual geo::WireGeo doMakeWire(Path_t &path)
Core implementation of makeWire().

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 137 of file GeometryBuilderStandard.h.

Referenced by doExtractGeometryObjects().

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

Name of the optical detector nodes.

Definition at line 140 of file GeometryBuilderStandard.h.

Referenced by doExtractOpDets().


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