ECCE @ EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
MakeActsGeometry Class Reference

#include <coresoftware/blob/master/offline/packages/trackreco/MakeActsGeometry.h>

+ Inheritance diagram for MakeActsGeometry:
+ Collaboration diagram for MakeActsGeometry:

Public Member Functions

 MakeActsGeometry (const std::string &name="MakeActsGeometry")
 Default constructor.
 
 ~MakeActsGeometry () override=default
 Destructor.
 
int Init (PHCompositeNode *topNode) override
 
int InitRun (PHCompositeNode *topNode) override
 
int process_event (PHCompositeNode *topNode) override
 
int End (PHCompositeNode *topNode) override
 Called at the end of all processing.
 
std::vector< std::shared_ptr
< ActsExamples::IContextDecorator > > 
getContextDecorators ()
 
void setMagField (const std::string &magField)
 
void setMagFieldRescale (double magFieldRescale)
 
double getSurfStepPhi ()
 
double getSurfStepZ ()
 
void add_fake_surfaces (bool add)
 
- Public Member Functions inherited from SubsysReco
 ~SubsysReco () override
 
virtual int EndRun (const int)
 Called at the end of each run.
 
virtual int Reset (PHCompositeNode *)
 Reset.
 
virtual int ResetEvent (PHCompositeNode *)
 Clean up after each event.
 
void Print (const std::string &="ALL") const override
 
- Public Member Functions inherited from Fun4AllBase
virtual ~Fun4AllBase ()
 
virtual const std::string Name () const
 Returns the name of this module.
 
virtual void Name (const std::string &name)
 Sets the name of this module.
 
virtual void Verbosity (const int ival)
 Sets the verbosity of this module (0 by default=quiet).
 
virtual void Verbosity (enu_Verbosity ival)
 Sets the verbosity of this module (0 by default=quiet).
 
virtual int Verbosity () const
 Gets the verbosity of this module.
 

Private Member Functions

int buildAllGeometry (PHCompositeNode *topNode)
 Main function to build all acts geometry for use in the fitting modules.
 
int getNodes (PHCompositeNode *)
 Get all the nodes.
 
int createNodes (PHCompositeNode *)
 Create New nodes.
 
void setPlanarSurfaceDivisions ()
 Functions to edit TGeoManager to include TPC boxes.
 
void editTPCGeometry (PHCompositeNode *topNode)
 
void addActsTpcSurfaces (TGeoVolume *tpc_gas_vol, TGeoManager *geoManager)
 
void addActsMicromegasSurfaces (int mm_layer, TGeoVolume *micromegas_vol, TGeoManager *geoManager)
 create relevant micromegas volumes relevant for ACTS
 
void buildActsSurfaces ()
 Silicon layers made by BuildSiliconLayers and its helper functions.
 
void makeGeometry (int argc, char *argv[], ActsExamples::IBaseDetector &detector)
 Function that mimics ActsFW::GeometryExampleBase.
 
void setMaterialResponseFile (std::string &responseFile, std::string &materialFile)
 
void getInttKeyFromNode (TGeoNode *gnode)
 Get hitsetkey from TGeoNode for each detector geometry.
 
void getMvtxKeyFromNode (TGeoNode *gnode)
 
void getTpcKeyFromNode (TGeoNode *gnode)
 
void makeMvtxMapPairs (TrackingVolumePtr &mvtxVolume)
 
void makeInttMapPairs (TrackingVolumePtr &inttVolume)
 
void makeTpcMapPairs (TrackingVolumePtr &tpcVolume)
 
void makeMmMapPairs (TrackingVolumePtr &tpcVolume)
 bind micromegas surfaces to hitset id
 
TrkrDefs::hitsetkey getMvtxHitSetKeyFromCoords (unsigned int layer, std::vector< double > &world)
 Get subdetector hitsetkey from the local sensor unit coordinates.
 
TrkrDefs::hitsetkey getInttHitSetKeyFromCoords (unsigned int layer, std::vector< double > &world)
 
TrkrDefs::hitsetkey getTpcHitSetKeyFromCoords (std::vector< double > &world)
 
void isActive (TGeoNode *gnode, int nmax_print)
 Helper diagnostic function for identifying active layers in subdetectors.
 
void makeTGeoNodeMap (PHCompositeNode *topNode)
 Makes map of TrkrHitSetKey<–>TGeoNode.
 
void unpackVolumes ()
 

Private Attributes

PHG4CylinderGeomContainerm_geomContainerMvtx = nullptr
 Subdetector geometry containers for getting layer information.
 
PHG4CylinderGeomContainerm_geomContainerIntt = nullptr
 
PHG4CylinderGeomContainerm_geomContainerMicromegas = nullptr
 
PHG4CylinderCellGeomContainerm_geomContainerTpc = nullptr
 
TGeoManager * m_geoManager = nullptr
 
std::vector< std::shared_ptr
< ActsExamples::IContextDecorator > > 
m_contextDecorators
 Acts Context decorators, which may contain e.g. calibration information.
 
std::map< TrkrDefs::hitsetkey,
TGeoNode * > 
m_clusterNodeMap
 Several maps that connect Acts world to sPHENIX G4 world.
 
std::map< TrkrDefs::hitsetkey,
Surface
m_clusterSurfaceMapSilicon
 
std::map< unsigned int,
std::vector< Surface > > 
m_clusterSurfaceMapTpcEdit
 
std::map< TrkrDefs::hitsetkey,
Surface
m_clusterSurfaceMapMmEdit
 
const unsigned int m_nTpcModulesPerLayer = 12
 
const unsigned int m_nTpcSides = 2
 
double m_minSurfZ = 0.
 TPC Acts::Surface subdivisions.
 
double m_maxSurfZ = 105.78
 
unsigned int m_nSurfZ = 1
 
unsigned int m_nSurfPhi = 12
 
double m_surfStepPhi = 0
 
double m_surfStepZ = 0
 
double m_moduleStepPhi = 0
 
double m_modulePhiStart = 0
 
int nprint_tpc = 0
 Debugger for printing out tpc active volumes.
 
const double m_minRadius [m_nTpcSectors] = {30.0, 40.0, 60.0}
 
const double m_maxRadius [m_nTpcSectors] = {40.0, 60.0, 77.0}
 
double layer_thickness_sector [m_nTpcSectors] = {0}
 
double m_layerRadius [m_nTpcLayers] = {0}
 
double m_layerThickness [m_nTpcLayers] = {0}
 
const double half_width_clearance_thick = 0.4999
 
const double half_width_clearance_phi = 0.4999
 
const double half_width_clearance_z = 0.4999
 
TGeoDetector m_detector
 The acts geometry object.
 
TrackingGeometry m_tGeometry
 Acts geometry objects that are needed to create (for example) the fitter.
 
ActsExamples::Options::BFieldVariant m_magneticField
 
Acts::GeometryContext m_geoCtxt
 
Acts::CalibrationContext m_calibContext
 
Acts::MagneticFieldContext m_magFieldContext
 
ActsTrackingGeometrym_actsGeometry = nullptr
 Structs to put on the node tree which carry around ActsGeom info.
 
ActsSurfaceMapsm_surfMaps = nullptr
 
int m_verbosity = 0
 Verbosity value handed from PHActsSourceLinks.
 
std::string m_magField ="1.4"
 Magnetic field components to set Acts magnetic field.
 
double m_magFieldRescale = -1.
 
bool m_buildMMs = false
 
bool fake_surfaces = true
 

Static Private Attributes

static const unsigned int m_nTpcLayers = 48
 These don't change, we are building the tpc this way!
 
static const int m_nTpcSectors = 3
 TPC TGeoManager editing box surfaces subdivisions.
 

Additional Inherited Members

- Public Types inherited from Fun4AllBase
enum  enu_Verbosity {
  VERBOSITY_QUIET = 0, VERBOSITY_SOME = 1, VERBOSITY_MORE = 2, VERBOSITY_EVEN_MORE = 3,
  VERBOSITY_A_LOT = 4, VERBOSITY_MAX = INT_MAX - 10
}
 
- Protected Member Functions inherited from SubsysReco
 SubsysReco (const std::string &name="NONAME")
 

Detailed Description

This class is responsible for building the ActsGeometry from the sPHENIX TGeometry. The code largely follows examples within the ACTFW code, specifically GeometryExampleBase.cpp. This class puts several nodes on the node tree which relate Acts::Surfaces to sPHENIX TGeo objects, for use in building Acts SourceLinks.

Definition at line 63 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 63 of file MakeActsGeometry.h

Constructor & Destructor Documentation

MakeActsGeometry::MakeActsGeometry ( const std::string &  name = "MakeActsGeometry")

Default constructor.

Definition at line 96 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 96 of file MakeActsGeometry.cc

References setPlanarSurfaceDivisions().

+ Here is the call graph for this function:

MakeActsGeometry::~MakeActsGeometry ( )
overridedefault

Destructor.

Member Function Documentation

void MakeActsGeometry::add_fake_surfaces ( bool  add)
inline

Definition at line 89 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 89 of file MakeActsGeometry.h

References fake_surfaces.

void MakeActsGeometry::addActsMicromegasSurfaces ( int  mm_layer,
TGeoVolume *  micromegas_vol,
TGeoManager *  geoManager 
)
private

create relevant micromegas volumes relevant for ACTS

there is one volume per micromegas tile. It is a box included inside the main G4 Micromegas cylinder

Definition at line 358 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 358 of file MakeActsGeometry.cc

References CylinderGeomMicromegas::get_tile(), PHG4CylinderGeomContainer::GetFirstLayerGeom(), PHG4CylinderGeomContainer::GetLayerGeom(), m_geomContainerMicromegas, M_PI, and CylinderGeomMicromegas::reference_radius.

Referenced by editTPCGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::addActsTpcSurfaces ( TGeoVolume *  tpc_gas_vol,
TGeoManager *  geoManager 
)
private

Definition at line 411 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 411 of file MakeActsGeometry.cc

References field_utils::copy(), half_width_clearance_phi, half_width_clearance_thick, half_width_clearance_z, m_layerRadius, m_layerThickness, m_modulePhiStart, m_moduleStepPhi, m_nSurfPhi, m_nSurfZ, m_nTpcLayers, m_nTpcModulesPerLayer, M_PI, m_surfStepPhi, m_surfStepZ, and Fun4AllBase::Verbosity().

Referenced by editTPCGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::buildActsSurfaces ( )
private

Silicon layers made by BuildSiliconLayers and its helper functions.

Builds silicon layers and TPC geometry in the ACTS surface world

Alter args if using field map

Definition at line 508 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 508 of file MakeActsGeometry.cc

References m_detector, m_magField, m_magFieldRescale, makeGeometry(), PHWHERE, setMaterialResponseFile(), nlohmann::to_string(), and Fun4AllBase::Verbosity().

Referenced by buildAllGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int MakeActsGeometry::buildAllGeometry ( PHCompositeNode topNode)
private

Main function to build all acts geometry for use in the fitting modules.

Add the TPC surfaces to the copy of the TGeoManager.

Run Acts layer builder

Create a map of sensor TGeoNode pointers using the TrkrDefs:: hitsetkey as the key

Export the new geometry to a root file for examination

Definition at line 159 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 159 of file MakeActsGeometry.cc

References Fun4AllReturnCodes::ABORTEVENT, buildActsSurfaces(), createNodes(), editTPCGeometry(), Fun4AllReturnCodes::EVENT_OK, PHGeomUtility::ExportGeomtry(), fake_surfaces, getNodes(), m_buildMMs, m_geomContainerMicromegas, and Fun4AllBase::Verbosity().

Referenced by InitRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int MakeActsGeometry::createNodes ( PHCompositeNode topNode)
private

Create New nodes.

Get the DST Node

Check that it is there

Get the tracking subnode

Check that it is there

Definition at line 1477 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1477 of file MakeActsGeometry.cc

References PHCompositeNode::addNode(), Fun4AllReturnCodes::EVENT_OK, PHNodeIterator::findFirst(), m_actsGeometry, and m_surfMaps.

Referenced by buildAllGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::editTPCGeometry ( PHCompositeNode topNode)
private

Reset the geometry node, which we will recreate with the TPC edits

If the node was found, we're building the MMs

Definition at line 202 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 202 of file MakeActsGeometry.cc

References addActsMicromegasSurfaces(), addActsTpcSurfaces(), PHGeomIOTGeo::ConstructTGeoManager(), PHGeomUtility::GetGeomIOTGeoNode(), PHGeomUtility::GetGeomTGeoNode(), PHGeomTGeo::isValid(), PHGeomIOTGeo::isValid(), m_buildMMs, m_geomContainerMicromegas, PHGeomTGeo::Reset(), PHGeomTGeo::SetGeometry(), PHGeomUtility::UpdateIONode(), and Fun4AllBase::Verbosity().

Referenced by buildAllGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int MakeActsGeometry::End ( PHCompositeNode )
overridevirtual

Called at the end of all processing.

Reimplemented from SubsysReco.

Definition at line 154 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 154 of file MakeActsGeometry.cc

References Fun4AllReturnCodes::EVENT_OK.

std::vector<std::shared_ptr<ActsExamples::IContextDecorator> > MakeActsGeometry::getContextDecorators ( )
inline

Definition at line 78 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 78 of file MakeActsGeometry.h

References m_contextDecorators.

TrkrDefs::hitsetkey MakeActsGeometry::getInttHitSetKeyFromCoords ( unsigned int  layer,
std::vector< double > &  world 
)
private

Definition at line 1099 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1099 of file MakeActsGeometry.cc

References CylinderGeomIntt::find_indices_from_segment_center(), CylinderGeomIntt::find_segment_center(), InttDefs::genHitSetKey(), PHG4CylinderGeomContainer::GetLayerGeom(), m_geomContainerIntt, and PHWHERE.

Referenced by makeInttMapPairs().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::getInttKeyFromNode ( TGeoNode *  gnode)
private

Get hitsetkey from TGeoNode for each detector geometry.

Definition at line 1213 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1213 of file MakeActsGeometry.cc

References g4zmq::exit(), InttDefs::genHitSetKey(), G4TTL::layer, m_clusterNodeMap, PHWHERE, pos(), tmp, and Fun4AllBase::Verbosity().

Referenced by makeTGeoNodeMap().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

TrkrDefs::hitsetkey MakeActsGeometry::getMvtxHitSetKeyFromCoords ( unsigned int  layer,
std::vector< double > &  world 
)
private

Get subdetector hitsetkey from the local sensor unit coordinates.

Definition at line 1075 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1075 of file MakeActsGeometry.cc

References CylinderGeom_Mvtx::find_sensor_center(), MvtxDefs::genHitSetKey(), CylinderGeom_Mvtx::get_sensor_indices_from_world_coords(), PHG4CylinderGeomContainer::GetLayerGeom(), m_geomContainerMvtx, and PHWHERE.

Referenced by makeMvtxMapPairs().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::getMvtxKeyFromNode ( TGeoNode *  gnode)
private

Definition at line 1292 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1292 of file MakeActsGeometry.cc

References MvtxDefs::genHitSetKey(), G4TTL::layer, m_clusterNodeMap, pos(), tmp, and Fun4AllBase::Verbosity().

Referenced by makeTGeoNodeMap().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int MakeActsGeometry::getNodes ( PHCompositeNode topNode)
private

Get all the nodes.

Definition at line 1529 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1529 of file MakeActsGeometry.cc

References Fun4AllReturnCodes::ABORTEVENT, Fun4AllReturnCodes::ABORTRUN, Fun4AllReturnCodes::EVENT_OK, findNode::getClass(), PHGeomUtility::GetTGeoManager(), m_geoManager, m_geomContainerIntt, m_geomContainerMicromegas, m_geomContainerMvtx, m_geomContainerTpc, and PHWHERE.

Referenced by buildAllGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

double MakeActsGeometry::getSurfStepPhi ( )
inline

Definition at line 86 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 86 of file MakeActsGeometry.h

References m_surfStepPhi.

double MakeActsGeometry::getSurfStepZ ( )
inline

Definition at line 87 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 87 of file MakeActsGeometry.h

References m_surfStepZ.

TrkrDefs::hitsetkey MakeActsGeometry::getTpcHitSetKeyFromCoords ( std::vector< double > &  world)
private

Definition at line 1005 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1005 of file MakeActsGeometry.cc

References Fun4AllReturnCodes::ABORTEVENT, TpcDefs::genHitSetKey(), G4TTL::layer, m_layerRadius, m_layerThickness, m_modulePhiStart, m_moduleStepPhi, m_nTpcLayers, m_nTpcModulesPerLayer, PHWHERE, and Fun4AllBase::Verbosity().

Referenced by makeTpcMapPairs().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::getTpcKeyFromNode ( TGeoNode *  gnode)
private

Definition at line 1288 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1288 of file MakeActsGeometry.cc

int MakeActsGeometry::Init ( PHCompositeNode )
overridevirtual

Called during initialization. Typically this is where you can book histograms, and e.g. register them to Fun4AllServer (so they can be output to file using Fun4AllServer::dumpHistos() method).

Reimplemented from SubsysReco.

Definition at line 100 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 100 of file MakeActsGeometry.cc

References Fun4AllReturnCodes::EVENT_OK.

int MakeActsGeometry::InitRun ( PHCompositeNode )
overridevirtual
void MakeActsGeometry::isActive ( TGeoNode *  gnode,
int  nmax_print 
)
private

Helper diagnostic function for identifying active layers in subdetectors.

Definition at line 1372 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1372 of file MakeActsGeometry.cc

References nprint_tpc.

Referenced by makeTGeoNodeMap().

+ Here is the caller graph for this function:

void MakeActsGeometry::makeGeometry ( int  argc,
char *  argv[],
ActsExamples::IBaseDetector &  detector 
)
private

Function that mimics ActsFW::GeometryExampleBase.

setup and parse options

Add specific options for this geometry

The geometry, material and decoration

Geometry is a pair of (tgeoTrackingGeometry, tgeoContextDecorators)

Setup the event and algorithm context

The geometry context

Definition at line 628 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 628 of file MakeActsGeometry.cc

References FW::Options::addBFieldOptions(), FW::Options::addGeometryOptions(), FW::Options::addMaterialOptions(), FW::Options::addObjWriterOptions(), FW::Options::addOutputOptions(), FW::Geometry::build(), incremental_prev_tag::desc, Acts::getDefaultLogger(), Acts::Logging::INFO, m_calibContext, m_contextDecorators, m_geoCtxt, m_magFieldContext, m_magneticField, m_tGeometry, FW::Options::makeDefaultOptions(), FW::Options::parse(), FW::Options::readBField(), nlohmann::to_string(), and unpackVolumes().

Referenced by buildActsSurfaces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::makeInttMapPairs ( TrackingVolumePtr inttVolume)
private

The Acts geometry builder combines layers 4 and 5 together, and layers 6 and 7 together. We need to use the radius to figure out which layer to use to get the layergeom

Definition at line 846 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 846 of file MakeActsGeometry.cc

References getInttHitSetKeyFromCoords(), InttDefs::getLadderPhiId(), InttDefs::getLadderZId(), G4TTL::layer, m_clusterSurfaceMapSilicon, m_geoCtxt, tmp, and Fun4AllBase::Verbosity().

Referenced by unpackVolumes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::makeMmMapPairs ( TrackingVolumePtr tpcVolume)
private

bind micromegas surfaces to hitset id

Need to unfold each layer that Acts builds

surfaceVector is a vector of surfaces corresponding to the micromegas layer that acts builds

convert to cm

Definition at line 778 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 778 of file MakeActsGeometry.cc

References Acts::UnitConstants::cm, CylinderGeomMicromegas::find_tile_planar(), MicromegasDefs::genHitSetKey(), PHG4CylinderGeomContainer::get_begin_end(), CylinderGeomMicromegas::get_segmentation_type(), G4TTL::layer, m_clusterSurfaceMapMmEdit, m_geoCtxt, m_geomContainerMicromegas, surface(), and Fun4AllBase::Verbosity().

Referenced by unpackVolumes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::makeMvtxMapPairs ( TrackingVolumePtr mvtxVolume)
private

Make the Surface<–>TrkrDef::hitsetkey map pairs for each of the various subdetectors

Definition at line 924 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 924 of file MakeActsGeometry.cc

References MvtxDefs::getChipId(), getMvtxHitSetKeyFromCoords(), MvtxDefs::getStaveId(), G4TTL::layer, m_clusterSurfaceMapSilicon, m_geoCtxt, tmp, and Fun4AllBase::Verbosity().

Referenced by unpackVolumes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::makeTGeoNodeMap ( PHCompositeNode topNode)
private

Makes map of TrkrHitSetKey<–>TGeoNode.

The Mvtx has an additional wrapper that needs to be unpacked

We only want the av_1 nodes

Put placeholders for the TPC and MMs. Because we modify the geometry within TGeoVolume, we don't need a mapping to the TGeoNode

Definition at line 1125 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1125 of file MakeActsGeometry.cc

References getInttKeyFromNode(), getMvtxKeyFromNode(), isActive(), m_geoManager, PHWHERE, and Fun4AllBase::Verbosity().

+ Here is the call graph for this function:

void MakeActsGeometry::makeTpcMapPairs ( TrackingVolumePtr tpcVolume)
private

Need to unfold each layer that Acts builds

surfaceVector is a vector of surfaces corresponding to the tpc layer that acts builds

convert to cm

If there is already an entry for this hitsetkey, add the surface to its corresponding vector

Otherwise make a new map entry

Definition at line 720 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 720 of file MakeActsGeometry.cc

References TrkrDefs::getLayer(), getTpcHitSetKeyFromCoords(), G4TTL::layer, m_clusterSurfaceMapTpcEdit, m_geoCtxt, tmp, and Fun4AllBase::Verbosity().

Referenced by unpackVolumes().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int MakeActsGeometry::process_event ( PHCompositeNode )
overridevirtual

Called for each event. This is where you do the real work.

Reimplemented from SubsysReco.

Definition at line 150 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 150 of file MakeActsGeometry.cc

References Fun4AllReturnCodes::EVENT_OK.

void MakeActsGeometry::setMagField ( const std::string &  magField)
inline

Definition at line 81 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 81 of file MakeActsGeometry.h

References m_magField.

void MakeActsGeometry::setMagFieldRescale ( double  magFieldRescale)
inline

Definition at line 83 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 83 of file MakeActsGeometry.h

References m_magFieldRescale.

void MakeActsGeometry::setMaterialResponseFile ( std::string &  responseFile,
std::string &  materialFile 
)
private

Check to see if files exist locally - if not, use defaults

Definition at line 579 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 579 of file MakeActsGeometry.cc

References file, m_buildMMs, and Fun4AllBase::Verbosity().

Referenced by buildActsSurfaces().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void MakeActsGeometry::setPlanarSurfaceDivisions ( )
private

Functions to edit TGeoManager to include TPC boxes.

These are arbitrary tpc subdivisions, and may change Setup how TPC boxes will be built for Acts::Surfaces

Definition at line 1452 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 1452 of file MakeActsGeometry.cc

References layer_thickness_sector, m_layerRadius, m_layerThickness, m_maxRadius, m_maxSurfZ, m_minRadius, m_minSurfZ, m_modulePhiStart, m_moduleStepPhi, m_nSurfPhi, m_nSurfZ, m_nTpcModulesPerLayer, M_PI, m_surfStepPhi, and m_surfStepZ.

Referenced by MakeActsGeometry().

+ Here is the caller graph for this function:

void MakeActsGeometry::unpackVolumes ( )
private

m_tGeometry is a TrackingGeometry pointer vol is a TrackingVolume pointer

Definition at line 671 of file MakeActsGeometry.cc.

View newest version in sPHENIX GitHub at line 671 of file MakeActsGeometry.cc

References m_buildMMs, m_tGeometry, makeInttMapPairs(), makeMmMapPairs(), makeMvtxMapPairs(), makeTpcMapPairs(), and Fun4AllBase::Verbosity().

Referenced by makeGeometry().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

bool MakeActsGeometry::fake_surfaces = true
private

Definition at line 223 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 223 of file MakeActsGeometry.h

Referenced by add_fake_surfaces(), and buildAllGeometry().

const double MakeActsGeometry::half_width_clearance_phi = 0.4999
private

Definition at line 198 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 198 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces().

const double MakeActsGeometry::half_width_clearance_thick = 0.4999
private

Definition at line 197 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 197 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces().

const double MakeActsGeometry::half_width_clearance_z = 0.4999
private

Definition at line 199 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 199 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces().

double MakeActsGeometry::layer_thickness_sector[m_nTpcSectors] = {0}
private

Definition at line 192 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 192 of file MakeActsGeometry.h

Referenced by setPlanarSurfaceDivisions().

ActsTrackingGeometry* MakeActsGeometry::m_actsGeometry = nullptr
private

Structs to put on the node tree which carry around ActsGeom info.

Definition at line 212 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 212 of file MakeActsGeometry.h

Referenced by createNodes(), and InitRun().

bool MakeActsGeometry::m_buildMMs = false
private

Definition at line 222 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 222 of file MakeActsGeometry.h

Referenced by buildAllGeometry(), editTPCGeometry(), setMaterialResponseFile(), and unpackVolumes().

Acts::CalibrationContext MakeActsGeometry::m_calibContext
private

Definition at line 208 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 208 of file MakeActsGeometry.h

Referenced by InitRun(), and makeGeometry().

std::map<TrkrDefs::hitsetkey, TGeoNode*> MakeActsGeometry::m_clusterNodeMap
private

Several maps that connect Acts world to sPHENIX G4 world.

Definition at line 165 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 165 of file MakeActsGeometry.h

Referenced by getInttKeyFromNode(), getMvtxKeyFromNode(), and InitRun().

std::map<TrkrDefs::hitsetkey, Surface> MakeActsGeometry::m_clusterSurfaceMapMmEdit
private

Definition at line 168 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 168 of file MakeActsGeometry.h

Referenced by InitRun(), and makeMmMapPairs().

std::map<TrkrDefs::hitsetkey, Surface> MakeActsGeometry::m_clusterSurfaceMapSilicon
private

Definition at line 166 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 166 of file MakeActsGeometry.h

Referenced by InitRun(), makeInttMapPairs(), and makeMvtxMapPairs().

std::map<unsigned int, std::vector<Surface> > MakeActsGeometry::m_clusterSurfaceMapTpcEdit
private

Definition at line 167 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 167 of file MakeActsGeometry.h

Referenced by InitRun(), and makeTpcMapPairs().

std::vector<std::shared_ptr<ActsExamples::IContextDecorator> > MakeActsGeometry::m_contextDecorators
private

Acts Context decorators, which may contain e.g. calibration information.

Definition at line 162 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 162 of file MakeActsGeometry.h

Referenced by getContextDecorators(), and makeGeometry().

TGeoDetector MakeActsGeometry::m_detector
private

The acts geometry object.

Definition at line 202 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 202 of file MakeActsGeometry.h

Referenced by buildActsSurfaces().

Acts::GeometryContext MakeActsGeometry::m_geoCtxt
private

Definition at line 207 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 207 of file MakeActsGeometry.h

Referenced by InitRun(), makeGeometry(), makeInttMapPairs(), makeMmMapPairs(), makeMvtxMapPairs(), and makeTpcMapPairs().

TGeoManager* MakeActsGeometry::m_geoManager = nullptr
private

Definition at line 158 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 158 of file MakeActsGeometry.h

Referenced by getNodes(), and makeTGeoNodeMap().

PHG4CylinderGeomContainer* MakeActsGeometry::m_geomContainerIntt = nullptr
private

Definition at line 154 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 154 of file MakeActsGeometry.h

Referenced by getInttHitSetKeyFromCoords(), and getNodes().

PHG4CylinderGeomContainer* MakeActsGeometry::m_geomContainerMicromegas = nullptr
private

Definition at line 155 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 155 of file MakeActsGeometry.h

Referenced by addActsMicromegasSurfaces(), buildAllGeometry(), editTPCGeometry(), getNodes(), and makeMmMapPairs().

PHG4CylinderGeomContainer* MakeActsGeometry::m_geomContainerMvtx = nullptr
private

Subdetector geometry containers for getting layer information.

Definition at line 153 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 153 of file MakeActsGeometry.h

Referenced by getMvtxHitSetKeyFromCoords(), and getNodes().

PHG4CylinderCellGeomContainer* MakeActsGeometry::m_geomContainerTpc = nullptr
private

Definition at line 156 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 156 of file MakeActsGeometry.h

Referenced by getNodes().

double MakeActsGeometry::m_layerRadius[m_nTpcLayers] = {0}
private

Definition at line 193 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 193 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getTpcHitSetKeyFromCoords(), and setPlanarSurfaceDivisions().

double MakeActsGeometry::m_layerThickness[m_nTpcLayers] = {0}
private

Definition at line 194 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 194 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getTpcHitSetKeyFromCoords(), and setPlanarSurfaceDivisions().

std::string MakeActsGeometry::m_magField ="1.4"
private

Magnetic field components to set Acts magnetic field.

Definition at line 219 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 219 of file MakeActsGeometry.h

Referenced by buildActsSurfaces(), and setMagField().

Acts::MagneticFieldContext MakeActsGeometry::m_magFieldContext
private

Definition at line 209 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 209 of file MakeActsGeometry.h

Referenced by InitRun(), and makeGeometry().

double MakeActsGeometry::m_magFieldRescale = -1.
private

Definition at line 220 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 220 of file MakeActsGeometry.h

Referenced by buildActsSurfaces(), and setMagFieldRescale().

ActsExamples::Options::BFieldVariant MakeActsGeometry::m_magneticField
private

Definition at line 206 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 206 of file MakeActsGeometry.h

Referenced by InitRun(), and makeGeometry().

const double MakeActsGeometry::m_maxRadius[m_nTpcSectors] = {40.0, 60.0, 77.0}
private

Definition at line 191 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 191 of file MakeActsGeometry.h

Referenced by setPlanarSurfaceDivisions().

double MakeActsGeometry::m_maxSurfZ = 105.78
private

Definition at line 177 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 177 of file MakeActsGeometry.h

Referenced by setPlanarSurfaceDivisions().

const double MakeActsGeometry::m_minRadius[m_nTpcSectors] = {30.0, 40.0, 60.0}
private

Definition at line 190 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 190 of file MakeActsGeometry.h

Referenced by setPlanarSurfaceDivisions().

double MakeActsGeometry::m_minSurfZ = 0.
private

TPC Acts::Surface subdivisions.

Definition at line 176 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 176 of file MakeActsGeometry.h

Referenced by setPlanarSurfaceDivisions().

double MakeActsGeometry::m_modulePhiStart = 0
private

Definition at line 183 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 183 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getTpcHitSetKeyFromCoords(), and setPlanarSurfaceDivisions().

double MakeActsGeometry::m_moduleStepPhi = 0
private

Definition at line 182 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 182 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getTpcHitSetKeyFromCoords(), and setPlanarSurfaceDivisions().

unsigned int MakeActsGeometry::m_nSurfPhi = 12
private

Definition at line 179 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 179 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), and setPlanarSurfaceDivisions().

unsigned int MakeActsGeometry::m_nSurfZ = 1
private

Definition at line 178 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 178 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), and setPlanarSurfaceDivisions().

const unsigned int MakeActsGeometry::m_nTpcLayers = 48
staticprivate

These don't change, we are building the tpc this way!

Definition at line 171 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 171 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), and getTpcHitSetKeyFromCoords().

const unsigned int MakeActsGeometry::m_nTpcModulesPerLayer = 12
private

Definition at line 172 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 172 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getTpcHitSetKeyFromCoords(), and setPlanarSurfaceDivisions().

const int MakeActsGeometry::m_nTpcSectors = 3
staticprivate

TPC TGeoManager editing box surfaces subdivisions.

Definition at line 189 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 189 of file MakeActsGeometry.h

const unsigned int MakeActsGeometry::m_nTpcSides = 2
private

Definition at line 173 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 173 of file MakeActsGeometry.h

ActsSurfaceMaps* MakeActsGeometry::m_surfMaps = nullptr
private

Definition at line 213 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 213 of file MakeActsGeometry.h

Referenced by createNodes(), and InitRun().

double MakeActsGeometry::m_surfStepPhi = 0
private

Definition at line 180 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 180 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getSurfStepPhi(), InitRun(), and setPlanarSurfaceDivisions().

double MakeActsGeometry::m_surfStepZ = 0
private

Definition at line 181 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 181 of file MakeActsGeometry.h

Referenced by addActsTpcSurfaces(), getSurfStepZ(), InitRun(), and setPlanarSurfaceDivisions().

TrackingGeometry MakeActsGeometry::m_tGeometry
private

Acts geometry objects that are needed to create (for example) the fitter.

Definition at line 205 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 205 of file MakeActsGeometry.h

Referenced by InitRun(), makeGeometry(), and unpackVolumes().

int MakeActsGeometry::m_verbosity = 0
private

Verbosity value handed from PHActsSourceLinks.

Definition at line 216 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 216 of file MakeActsGeometry.h

int MakeActsGeometry::nprint_tpc = 0
private

Debugger for printing out tpc active volumes.

Definition at line 186 of file MakeActsGeometry.h.

View newest version in sPHENIX GitHub at line 186 of file MakeActsGeometry.h

Referenced by isActive().


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