LArSoft  v10_04_05
Liquid Argon Software toolkit - https://larsoft.org/
Detector geometry information

Files

file  AuxDetGeo.h
 Encapsulate the geometry of an auxiliary detector

.

 
file  AuxDetGeometryCore.h
 Access the description of auxiliary detector geometry.
 
file  GeoObjectSorter.h
 Interface to algorithm class for sorting geo::AuxDet objects

.

 
file  GeoObjectSorterStandard.h
 Standard algorithm class for sorting of geo::AuxDet objects

.

 
file  AuxDetReadoutGeom.h
 Interface to auxiliary-detector geometry for wire readouts.

.

 
file  AuxDetSensitiveGeo.h
 Encapsulate the geometry of the sensitive portion of an auxiliary detector

.

 
file  BoxBoundedGeo.h
 Provides a base class aware of world box coordinates.
 
file  CryostatGeo.h
 Encapsulate the construction of a single cyostat

.

 
file  Decomposer.h
 Classes to project and compose a vector on a plane.
 
file  geo_vectors_fhicl.h
 Helpers for reading vectors from FHiCL files.This library depends on ROOT GenVector. In the link list in CMakeLists.txt, link to ROOT::GenVector.
 
file  geo_vectors_utils.h
 Utilities to extend the interface of geometry vectors.This library provides facilities that can be used for both LArSoft geometry vectors (geo_vectors.h) and ROOT TVector3 and related, with the same interface.
 
file  geo_vectors_utils_TVector.h
 Specializations of geo_vectors_utils.h for ROOT old vector types.
 
file  GeometryCore.h
 Access the description of the physical detector geometry.
 
file  GeometryDataContainers.h
 Containers to hold one datum per TPC or plane.This is a header-only library.
 
file  GeometryIDmapper.h
 Mapping between geometry/readout ID and flat index.This is a header-only library.
 
file  GeoObjectSorter.h
 Interface to algorithm class for sorting geo::AuxDet objects

.

 
file  GeoObjectSorterStandard.h
 Standard algorithm class for sorting of geo::AuxDet objects

.

 
file  GeoVectorLocalTransformation.cxx
 Specialization of local-to-world transformations for ROOT GenVector.
 
file  GeoVectorLocalTransformation.h
 Specialization of local-to-world transformations for ROOT GenVector.This is a header-only library.
 
file  LocalTransformation.h
 Class containing local-to-world transformations.
 
file  OpDetGeo.h
 Encapsulate the geometry of an optical detector

.

 
file  PlaneGeo.h
 Encapsulate the construction of a single detector plane

.

 
file  ReadoutDataContainers.h
 Containers to hold one datum per TPC set or readout plane.This is a header-only library.
 
file  ReadoutIDmapper.h
 Mapping between geometry/readout ID and flat index.This is a header-only library.
 
file  SimpleGeo.h
 Some simple functions to represent geometry entitiesThis library is simple and header-only.
 
file  StandaloneGeometrySetup.h
 Utilities for one-line geometry initialization.The main entry point for initializing the geometry is SetupGeometry().
 
file  TPCGeo.h
 Encapsulate the construction of a single detector plane

.

 
file  TransformationMatrix.h
 Selection of the type of transformation matrix used in geometry.
 
file  WireGeo.h
 Encapsulate the geometry of a wire

.

 
file  WireReadoutGeom.h
 Interface to geometry for wire readouts

.

 
file  GeoObjectSorter.h
 Interface to algorithm class for sorting geo::AuxDet objects

.

 
file  WireReadoutSorterStandard.h
 Interface to algorithm class for standard sorting of geo::XXXGeo objects

.

 
file  geo_optical_vectors.h
 Definitions of vector data types for optical detectors.
 
file  geo_types.cxx
 Definition of data types for geometry description (implementation).
 
file  geo_types.h
 Definition of data types for geometry description.
 
file  geo_vectors.h
 Definitions of geometry vector data types.
 

Namespaces

 geo::vect
 Utilities to manipulate geometry vectors.The utilities include generic vector interface facilities allowing to use different vector types via templates.
 
 geo::vect::extra
 Convenience utilities not directly related to vectors.
 
 lar::util::simple_geo
 Simple class definitions for geometry concepts.
 
 geo
 ROOT libraries.
 

Classes

class  geo::AuxDetGeo
 
class  geo::AuxDetGeometryCore
 Description of physical geometry of one set of auxiliary detectors. More...
 
class  geo::AuxDetGeoObjectSorter
 
class  geo::AuxDetGeoObjectSorterStandard
 
class  geo::AuxDetReadoutGeom
 
class  geo::AuxDetSensitiveGeo
 
class  geo::BoxBoundedGeo
 A base class aware of world box coordinatesAn object describing a simple shape can inherit from this one to gain access to a common boundary checking interface. More...
 
class  geo::CryostatGeo
 Geometry information for a single cryostat. More...
 
class  geo::GeometryCore
 Description of the physical geometry of one entire detector. More...
 
class  geo::GeoObjectSorterStandard
 
class  geo::LocalTransformation< StoredMatrix >
 Class to transform between world and local coordinates. More...
 
class  geo::OpDetGeo
 
class  geo::PlaneGeo
 Geometry information for a single wire plane.The plane is represented in the geometry by a solid which contains wires. Currently, only box solids are well supported. The box which is representation of the plane has some thickness, and it should not be assumed that the wires are in the median section of it, that is, the center of the box may not lie on the plane defined by the wires. More...
 
class  geo::TPCGeo
 Geometry information for a single TPC. More...
 
class  geo::WireGeo
 Geometry description of a TPC wireThe wire is a single straight segment on a wire plane. Different wires may be connected to the same readout channel. That is of no relevance for the geometry description. More...
 
class  geo::WireReadoutGeom
 Interface for a class providing readout channel mapping to geometry. More...
 
std::unique_ptr< geo::GeometryCorelar::standalone::GeometryFor (fhicl::ParameterSet const &pset, std::unique_ptr< geo::GeoObjectSorter > sorter)
 Initializes a LArSoft geometry object. More...
 
std::unique_ptr< geo::AuxDetGeometryCorelar::standalone::AuxDetGeometryFor (fhicl::ParameterSet const &pset, std::unique_ptr< geo::AuxDetGeoObjectSorter > sorter, std::unique_ptr< geo::AuxDetInitializer > initializer=nullptr)
 Initializes a LArSoft geometry object. More...
 
template<typename ObjectSorter = geo::GeoObjectSorterStandard>
std::unique_ptr< geo::GeometryCorelar::standalone::SetupGeometry (fhicl::ParameterSet const &pset)
 Initializes a LArSoft geometry object. More...
 
template<typename ObjectSorter = geo::AuxDetGeoObjectSorterStandard>
std::unique_ptr< geo::AuxDetGeometryCorelar::standalone::SetupAuxDetGeometry (fhicl::ParameterSet const &pset)
 Initializes a LArSoft geometry object. More...
 
template<typename ObjectSorter = geo::WireReadoutSorterStandard, typename WireGeom = geo::WireReadoutStandardGeom>
std::unique_ptr< geo::WireReadoutGeomlar::standalone::SetupReadout (fhicl::ParameterSet const &pset, geo::GeometryCore const *geom)
 Initializes a LArSoft geometry object. More...
 

Detailed Description

See also
geo::GeometryCore

The description of the detector as seen by LArSoft is accessed via LArSoft "geometry system".

A high level explanation of the geometry description is present in the official LArSoft collaboration web site, at the bottom of which further sources are detailed.

The geometry system revolves around the geo::GeometryCore service provider, which is the hub to access all the geometry information. The information accessible via this interface include:

The service provider can be obtained including larcore/Geometry/Geometry.h header and calling:

auto const& geom = *(lar::providerFrom<geo::Geometry>());

Function Documentation

std::unique_ptr< geo::AuxDetGeometryCore > lar::standalone::AuxDetGeometryFor ( fhicl::ParameterSet const &  pset,
std::unique_ptr< geo::AuxDetGeoObjectSorter sorter,
std::unique_ptr< geo::AuxDetInitializer initializer = nullptr 
)

Initializes a LArSoft geometry object.

Parameters
psetparameters for geometry configuration
wireReadoutGeomchannel mapping object to be used, already constructed
Returns
the geometry object, fully initialized
See also
SetupGeometry()

This function creates, sets up and returns a geometry object using the specified channel mapping.

// create a channel mapping algorithm
std::make_unique<geo::StandardWireReadoutGeom> wireReadoutGeom
(pset.get<fhicl::ParameterSet>("SortingParameters"));
std::unique_ptr<geo::GeometryCore> geom
= SetupGeometryWithChannelMapping(pset, wireReadoutGeom);

If no set up is required for channel mapping after construction, the use of SetupGeometry() is preferred over this function.

Configuration parameters

It is expected that a standard geo::Geometry service configuration will correctly set up the geometry.

In addition to the parameters documented in geo::GeometryCore, the following parameters are supported:

  • RelativePath (string, default: no path): this path is prepended to the geometry file names before searching from them; the path string does not affect the file name
  • GDML (string, mandatory): path of the GDML file to be served to GEANT4 * for detector simulation. The full file is composed out of the optional relative path specified by RelativePath path and the base name specified in GDML parameter; this path is searched for in the directories configured in the FW_SEARCH_PATH environment variable;
  • ROOT (string, mandatory): currently overridden by GDML parameter, whose value is used instead; this path is assembled in the same way as the one for GDML parameter, except that no alternative (wireless) geometry is used even if DisableWiresInG4 is specified (see below); this file is used to load the geometry used in the internal simulation and reconstruction, basically everywhere except for the GEANT4 simulation
  • DisableWiresInG4 (boolean, default: false): if true, GEANT4 is loaded with an alternative geometry from a file with the standard name as configured with the /GDML/ parameter, but with an additional _nowires appended before the .gdml suffix
  • SortingParameters (a parameter set; default: empty): this configuration is directly passed to the channel mapping algorithm (see geo::WireReadoutGeom); its content is dependent on the chosen implementation of geo::WireReadoutGeom

Definition at line 32 of file StandaloneGeometrySetup.cxx.

Referenced by lar::standalone::SetupAuxDetGeometry().

36 {
37  return std::make_unique<geo::AuxDetGeometryCore>(pset, std::move(sorter), std::move(initializer));
38 }
std::unique_ptr< geo::GeometryCore > lar::standalone::GeometryFor ( fhicl::ParameterSet const &  pset,
std::unique_ptr< geo::GeoObjectSorter sorter 
)

Initializes a LArSoft geometry object.

Parameters
psetparameters for geometry configuration
wireReadoutGeomchannel mapping object to be used, already constructed
Returns
the geometry object, fully initialized
See also
SetupGeometry()

This function creates, sets up and returns a geometry object using the specified channel mapping.

// create a channel mapping algorithm
std::make_unique<geo::StandardWireReadoutGeom> wireReadoutGeom
(pset.get<fhicl::ParameterSet>("SortingParameters"));
std::unique_ptr<geo::GeometryCore> geom
= SetupGeometryWithChannelMapping(pset, wireReadoutGeom);

If no set up is required for channel mapping after construction, the use of SetupGeometry() is preferred over this function.

Configuration parameters

It is expected that a standard geo::Geometry service configuration will correctly set up the geometry.

In addition to the parameters documented in geo::GeometryCore, the following parameters are supported:

  • RelativePath (string, default: no path): this path is prepended to the geometry file names before searching from them; the path string does not affect the file name
  • GDML (string, mandatory): path of the GDML file to be served to GEANT4 * for detector simulation. The full file is composed out of the optional relative path specified by RelativePath path and the base name specified in GDML parameter; this path is searched for in the directories configured in the FW_SEARCH_PATH environment variable;
  • ROOT (string, mandatory): currently overridden by GDML parameter, whose value is used instead; this path is assembled in the same way as the one for GDML parameter, except that no alternative (wireless) geometry is used even if DisableWiresInG4 is specified (see below); this file is used to load the geometry used in the internal simulation and reconstruction, basically everywhere except for the GEANT4 simulation
  • DisableWiresInG4 (boolean, default: false): if true, GEANT4 is loaded with an alternative geometry from a file with the standard name as configured with the /GDML/ parameter, but with an additional _nowires appended before the .gdml suffix
  • SortingParameters (a parameter set; default: empty): this configuration is directly passed to the channel mapping algorithm (see geo::WireReadoutGeom); its content is dependent on the chosen implementation of geo::WireReadoutGeom

Definition at line 21 of file StandaloneGeometrySetup.cxx.

Referenced by lar::standalone::SetupGeometry().

24 {
25  return std::make_unique<geo::GeometryCore>(
26  pset,
27  std::make_unique<geo::GeometryBuilderStandard>(pset.get<fhicl::ParameterSet>("Builder", {})),
28  std::move(sorter));
29 }
template<typename ObjectSorter = geo::AuxDetGeoObjectSorterStandard>
std::unique_ptr<geo::AuxDetGeometryCore> lar::standalone::SetupAuxDetGeometry ( fhicl::ParameterSet const &  pset)

Initializes a LArSoft geometry object.

Parameters
psetparameters for geometry configuration
wireReadoutGeomchannel mapping object to be used, already constructed
Returns
the geometry object, fully initialized
See also
SetupGeometry()

This function creates, sets up and returns a geometry object using the specified channel mapping.

// create a channel mapping algorithm
std::make_unique<geo::StandardWireReadoutGeom> wireReadoutGeom
(pset.get<fhicl::ParameterSet>("SortingParameters"));
std::unique_ptr<geo::GeometryCore> geom
= SetupGeometryWithChannelMapping(pset, wireReadoutGeom);

If no set up is required for channel mapping after construction, the use of SetupGeometry() is preferred over this function.

Configuration parameters

It is expected that a standard geo::Geometry service configuration will correctly set up the geometry.

In addition to the parameters documented in geo::GeometryCore, the following parameters are supported:

  • RelativePath (string, default: no path): this path is prepended to the geometry file names before searching from them; the path string does not affect the file name
  • GDML (string, mandatory): path of the GDML file to be served to GEANT4 * for detector simulation. The full file is composed out of the optional relative path specified by RelativePath path and the base name specified in GDML parameter; this path is searched for in the directories configured in the FW_SEARCH_PATH environment variable;
  • ROOT (string, mandatory): currently overridden by GDML parameter, whose value is used instead; this path is assembled in the same way as the one for GDML parameter, except that no alternative (wireless) geometry is used even if DisableWiresInG4 is specified (see below); this file is used to load the geometry used in the internal simulation and reconstruction, basically everywhere except for the GEANT4 simulation
  • DisableWiresInG4 (boolean, default: false): if true, GEANT4 is loaded with an alternative geometry from a file with the standard name as configured with the /GDML/ parameter, but with an additional _nowires appended before the .gdml suffix
  • SortingParameters (a parameter set; default: empty): this configuration is directly passed to the channel mapping algorithm (see geo::WireReadoutGeom); its content is dependent on the chosen implementation of geo::WireReadoutGeom

Definition at line 119 of file StandaloneGeometrySetup.h.

References lar::standalone::AuxDetGeometryFor(), and fhicl::ParameterSet::get().

120  {
121  auto sorting_parameters = pset.get<fhicl::ParameterSet>("SortingParameters", {});
122  return AuxDetGeometryFor(pset,
123  detail::make_unique_maybe_default<ObjectSorter>(sorting_parameters));
124  }
std::unique_ptr< geo::AuxDetGeometryCore > AuxDetGeometryFor(fhicl::ParameterSet const &pset, std::unique_ptr< geo::AuxDetGeoObjectSorter > sorter, std::unique_ptr< geo::AuxDetInitializer > initializer=nullptr)
Initializes a LArSoft geometry object.
template<typename ObjectSorter = geo::GeoObjectSorterStandard>
std::unique_ptr<geo::GeometryCore> lar::standalone::SetupGeometry ( fhicl::ParameterSet const &  pset)

Initializes a LArSoft geometry object.

Parameters
psetparameters for geometry configuration
wireReadoutGeomchannel mapping object to be used, already constructed
Returns
the geometry object, fully initialized
See also
SetupGeometry()

This function creates, sets up and returns a geometry object using the specified channel mapping.

// create a channel mapping algorithm
std::make_unique<geo::StandardWireReadoutGeom> wireReadoutGeom
(pset.get<fhicl::ParameterSet>("SortingParameters"));
std::unique_ptr<geo::GeometryCore> geom
= SetupGeometryWithChannelMapping(pset, wireReadoutGeom);

If no set up is required for channel mapping after construction, the use of SetupGeometry() is preferred over this function.

Configuration parameters

It is expected that a standard geo::Geometry service configuration will correctly set up the geometry.

In addition to the parameters documented in geo::GeometryCore, the following parameters are supported:

  • RelativePath (string, default: no path): this path is prepended to the geometry file names before searching from them; the path string does not affect the file name
  • GDML (string, mandatory): path of the GDML file to be served to GEANT4 * for detector simulation. The full file is composed out of the optional relative path specified by RelativePath path and the base name specified in GDML parameter; this path is searched for in the directories configured in the FW_SEARCH_PATH environment variable;
  • ROOT (string, mandatory): currently overridden by GDML parameter, whose value is used instead; this path is assembled in the same way as the one for GDML parameter, except that no alternative (wireless) geometry is used even if DisableWiresInG4 is specified (see below); this file is used to load the geometry used in the internal simulation and reconstruction, basically everywhere except for the GEANT4 simulation
  • DisableWiresInG4 (boolean, default: false): if true, GEANT4 is loaded with an alternative geometry from a file with the standard name as configured with the /GDML/ parameter, but with an additional _nowires appended before the .gdml suffix
  • SortingParameters (a parameter set; default: empty): this configuration is directly passed to the channel mapping algorithm (see geo::WireReadoutGeom); its content is dependent on the chosen implementation of geo::WireReadoutGeom

Definition at line 112 of file StandaloneGeometrySetup.h.

References lar::standalone::GeometryFor(), and fhicl::ParameterSet::get().

113  {
114  auto sorting_parameters = pset.get<fhicl::ParameterSet>("SortingParameters", {});
115  return GeometryFor(pset, detail::make_unique_maybe_default<ObjectSorter>(sorting_parameters));
116  }
std::unique_ptr< geo::GeometryCore > GeometryFor(fhicl::ParameterSet const &pset, std::unique_ptr< geo::GeoObjectSorter > sorter)
Initializes a LArSoft geometry object.
template<typename ObjectSorter = geo::WireReadoutSorterStandard, typename WireGeom = geo::WireReadoutStandardGeom>
std::unique_ptr<geo::WireReadoutGeom> lar::standalone::SetupReadout ( fhicl::ParameterSet const &  pset,
geo::GeometryCore const *  geom 
)

Initializes a LArSoft geometry object.

Parameters
psetparameters for geometry configuration
wireReadoutGeomchannel mapping object to be used, already constructed
Returns
the geometry object, fully initialized
See also
SetupGeometry()

This function creates, sets up and returns a geometry object using the specified channel mapping.

// create a channel mapping algorithm
std::make_unique<geo::StandardWireReadoutGeom> wireReadoutGeom
(pset.get<fhicl::ParameterSet>("SortingParameters"));
std::unique_ptr<geo::GeometryCore> geom
= SetupGeometryWithChannelMapping(pset, wireReadoutGeom);

If no set up is required for channel mapping after construction, the use of SetupGeometry() is preferred over this function.

Configuration parameters

It is expected that a standard geo::Geometry service configuration will correctly set up the geometry.

In addition to the parameters documented in geo::GeometryCore, the following parameters are supported:

  • RelativePath (string, default: no path): this path is prepended to the geometry file names before searching from them; the path string does not affect the file name
  • GDML (string, mandatory): path of the GDML file to be served to GEANT4 * for detector simulation. The full file is composed out of the optional relative path specified by RelativePath path and the base name specified in GDML parameter; this path is searched for in the directories configured in the FW_SEARCH_PATH environment variable;
  • ROOT (string, mandatory): currently overridden by GDML parameter, whose value is used instead; this path is assembled in the same way as the one for GDML parameter, except that no alternative (wireless) geometry is used even if DisableWiresInG4 is specified (see below); this file is used to load the geometry used in the internal simulation and reconstruction, basically everywhere except for the GEANT4 simulation
  • DisableWiresInG4 (boolean, default: false): if true, GEANT4 is loaded with an alternative geometry from a file with the standard name as configured with the /GDML/ parameter, but with an additional _nowires appended before the .gdml suffix
  • SortingParameters (a parameter set; default: empty): this configuration is directly passed to the channel mapping algorithm (see geo::WireReadoutGeom); its content is dependent on the chosen implementation of geo::WireReadoutGeom

Definition at line 128 of file StandaloneGeometrySetup.h.

References fhicl::ParameterSet::get().

130  {
131  auto sorting_parameters = pset.get<fhicl::ParameterSet>("SortingParameters", {});
132  return std::make_unique<WireGeom>(
133  pset, geom, detail::make_unique_maybe_default<ObjectSorter>(sorting_parameters));
134  }