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

#include <fun4all_coresoftware/blob/master/offline/packages/trackreco/PHTpcClusterMover.h>

+ Inheritance diagram for PHTpcClusterMover:
+ Collaboration diagram for PHTpcClusterMover:

Public Member Functions

 PHTpcClusterMover (const std::string &name="PHTpcClusterMover")
 Tracking includes.
 
 ~PHTpcClusterMover () override
 
int InitRun (PHCompositeNode *topNode) override
 
int process_event (PHCompositeNode *topNode) override
 
int End (PHCompositeNode *topNode) override
 Called at the end of all processing.
 
- Public Member Functions inherited from SubsysReco
 ~SubsysReco () override
 
virtual int EndRun (const int)
 Called at the end of each run.
 
virtual int Init (PHCompositeNode *)
 
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 GetNodes (PHCompositeNode *topNode)
 
void CircleFitByTaubin (std::vector< Acts::Vector3D > clusters, double &R, double &X0, double &Y0)
 
void circle_circle_intersection (double r1, double r2, double x2, double y2, double &xplus, double &yplus, double &xminus, double &yminus)
 
void line_fit (std::vector< Acts::Vector3D > clusters, double &a, double &b)
 
int get_circle_circle_intersection (double target_radius, double R, double X0, double Y0, double xref, double yref, double &x, double &y)
 
Surface get_tpc_surface_from_coords (TrkrDefs::hitsetkey hitsetkey, Acts::Vector3D world, ActsSurfaceMaps *surfMaps, ActsTrackingGeometry *tGeometry, TrkrDefs::subsurfkey &subsurfkey)
 

Private Attributes

ActsTransformations _transformer
 acts transformation object
 
TpcDistortionCorrection _distortionCorrection
 tpc distortion correction utility class
 
double _z_start =0.0
 
double _y_start =0.0
 
double _x_start =0.0
 
double _z_proj =0.0
 
double _y_proj =0.0
 
double _x_proj =0.0
 
SvtxTrackMap_track_map {nullptr}
 
SvtxTrack_track {nullptr}
 
TrkrClusterContainer_cluster_map {nullptr}
 
TrkrClusterContainer_corrected_cluster_map {nullptr}
 
ActsSurfaceMaps_surfmaps {nullptr}
 
ActsTrackingGeometry_tGeometry {nullptr}
 
TpcDistortionCorrectionContainer_dcc {nullptr}
 
double layer_radius [48] = {0}
 
double inner_tpc_min_radius = 30.0
 
double mid_tpc_min_radius = 40.0
 
double outer_tpc_min_radius = 60.0
 
double outer_tpc_max_radius = 77.0
 
double inner_tpc_spacing = 0.0
 
double mid_tpc_spacing = 0.0
 
double outer_tpc_spacing = 0.0
 

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

Definition at line 30 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 30 of file PHTpcClusterMover.h

Constructor & Destructor Documentation

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

Tracking includes.

Definition at line 30 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 30 of file PHTpcClusterMover.cc

PHTpcClusterMover::~PHTpcClusterMover ( )
override

Definition at line 37 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 37 of file PHTpcClusterMover.cc

Member Function Documentation

void PHTpcClusterMover::circle_circle_intersection ( double  r1,
double  r2,
double  x2,
double  y2,
double &  xplus,
double &  yplus,
double &  xminus,
double &  yminus 
)
private

Definition at line 488 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 488 of file PHTpcClusterMover.cc

References c, and x2.

Referenced by get_circle_circle_intersection().

+ Here is the caller graph for this function:

void PHTpcClusterMover::CircleFitByTaubin ( std::vector< Acts::Vector3D clusters,
double &  R,
double &  X0,
double &  Y0 
)
private

Definition at line 390 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 390 of file PHTpcClusterMover.cc

References starlightConstants::A2, Dy, Fun4AllBase::Verbosity(), x, and y.

Referenced by process_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHTpcClusterMover::End ( PHCompositeNode )
overridevirtual

Called at the end of all processing.

Reimplemented from SubsysReco.

Definition at line 275 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 275 of file PHTpcClusterMover.cc

References Fun4AllReturnCodes::EVENT_OK.

int PHTpcClusterMover::get_circle_circle_intersection ( double  target_radius,
double  R,
double  X0,
double  Y0,
double  xref,
double  yref,
double &  x,
double &  y 
)
private

Definition at line 356 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 356 of file PHTpcClusterMover.cc

References Fun4AllReturnCodes::ABORTEVENT, circle_circle_intersection(), Fun4AllReturnCodes::EVENT_OK, and Fun4AllBase::Verbosity().

Referenced by process_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Surface PHTpcClusterMover::get_tpc_surface_from_coords ( TrkrDefs::hitsetkey  hitsetkey,
Acts::Vector3D  world,
ActsSurfaceMaps surfMaps,
ActsTrackingGeometry tGeometry,
TrkrDefs::subsurfkey subsurfkey 
)
private

Definition at line 541 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 541 of file PHTpcClusterMover.cc

References ActsTrackingGeometry::geoContext, TrkrDefs::getLayer(), G4TTL::layer, M_PI, PHWHERE, round(), ActsSurfaceMaps::tpcSurfaceMap, ActsTrackingGeometry::tpcSurfStepPhi, ActsTrackingGeometry::tpcSurfStepZ, and Fun4AllBase::Verbosity().

Referenced by process_event().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHTpcClusterMover::GetNodes ( PHCompositeNode topNode)
private

Definition at line 280 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 280 of file PHTpcClusterMover.cc

References _cluster_map, _corrected_cluster_map, _dcc, _surfmaps, _tGeometry, _track_map, Fun4AllReturnCodes::ABORTEVENT, Fun4AllReturnCodes::ABORTRUN, PHCompositeNode::addNode(), Fun4AllReturnCodes::EVENT_OK, PHNodeIterator::findFirst(), PHWHERE, and TrkrClusterContainer::Reset().

Referenced by InitRun().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int PHTpcClusterMover::InitRun ( PHCompositeNode )
overridevirtual

Called for first event when run number is known. Typically this is where you may want to fetch data from database, because you know the run number.

Reimplemented from SubsysReco.

Definition at line 43 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 43 of file PHTpcClusterMover.cc

References Fun4AllReturnCodes::EVENT_OK, GetNodes(), inner_tpc_min_radius, inner_tpc_spacing, layer_radius, mid_tpc_min_radius, mid_tpc_spacing, outer_tpc_max_radius, outer_tpc_min_radius, outer_tpc_spacing, and Fun4AllBase::Verbosity().

+ Here is the call graph for this function:

void PHTpcClusterMover::line_fit ( std::vector< Acts::Vector3D clusters,
double &  a,
double &  b 
)
private

Definition at line 519 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 519 of file PHTpcClusterMover.cc

References z.

Referenced by process_event().

+ Here is the caller graph for this function:

int PHTpcClusterMover::process_event ( PHCompositeNode )
overridevirtual

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

If the surface can't be found, we can't track with it. So just continue and don't modify the cluster to the container

otherwise take the manual calculation

Reimplemented from SubsysReco.

Definition at line 72 of file PHTpcClusterMover.cc.

View newest version in sPHENIX GitHub at line 72 of file PHTpcClusterMover.cc

References _cluster_map, _corrected_cluster_map, _dcc, _distortionCorrection, _surfmaps, _tGeometry, _track, _track_map, _transformer, _x_proj, _x_start, _y_proj, _y_start, _z_proj, _z_start, Fun4AllReturnCodes::ABORTEVENT, SvtxTrackMap::begin(), SvtxTrack::begin_cluster_keys(), CircleFitByTaubin(), Acts::UnitConstants::cm, SvtxTrackMap::end(), SvtxTrack::end_cluster_keys(), Fun4AllReturnCodes::EVENT_OK, TrkrClusterContainer::findCluster(), TrkrClusterContainer::findOrAddCluster(), ActsTrackingGeometry::geoContext, get_circle_circle_intersection(), TpcDistortionCorrection::get_corrected_position(), SvtxTrack::get_phi(), get_tpc_surface_from_coords(), TrkrCluster::getActsLocalError(), TrkrCluster::getAdc(), ActsTransformations::getGlobalPosition(), TrkrDefs::getHitSetKeyFromClusKey(), TrkrDefs::getLayer(), TrkrDefs::getTrkrId(), G4TTL::layer, layer_radius, line_fit(), PHWHERE, Acts::IntegrationTest::R, TrkrCluster::setActsLocalError(), TrkrCluster::setAdc(), TrkrCluster::setLocalX(), TrkrCluster::setLocalY(), TrkrCluster::setSubSurfKey(), SvtxTrackMap::size(), surface(), TrkrDefs::tpcId, and Fun4AllBase::Verbosity().

+ Here is the call graph for this function:

Member Data Documentation

TrkrClusterContainer* PHTpcClusterMover::_cluster_map {nullptr}
private

Definition at line 77 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 77 of file PHTpcClusterMover.h

Referenced by GetNodes(), and process_event().

TrkrClusterContainer* PHTpcClusterMover::_corrected_cluster_map {nullptr}
private

Definition at line 78 of file PHTpcClusterMover.h.

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

Referenced by GetNodes(), and process_event().

TpcDistortionCorrectionContainer* PHTpcClusterMover::_dcc {nullptr}
private

Definition at line 81 of file PHTpcClusterMover.h.

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

Referenced by GetNodes(), and process_event().

TpcDistortionCorrection PHTpcClusterMover::_distortionCorrection
private

tpc distortion correction utility class

Definition at line 63 of file PHTpcClusterMover.h.

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

Referenced by process_event().

ActsSurfaceMaps* PHTpcClusterMover::_surfmaps {nullptr}
private

Definition at line 79 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 79 of file PHTpcClusterMover.h

Referenced by GetNodes(), and process_event().

ActsTrackingGeometry* PHTpcClusterMover::_tGeometry {nullptr}
private

Definition at line 80 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 80 of file PHTpcClusterMover.h

Referenced by GetNodes(), and process_event().

SvtxTrack* PHTpcClusterMover::_track {nullptr}
private

Definition at line 76 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 76 of file PHTpcClusterMover.h

Referenced by process_event().

SvtxTrackMap* PHTpcClusterMover::_track_map {nullptr}
private

Definition at line 75 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 75 of file PHTpcClusterMover.h

Referenced by GetNodes(), and process_event().

ActsTransformations PHTpcClusterMover::_transformer
private

acts transformation object

Definition at line 60 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 60 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::_x_proj =0.0
private

Definition at line 71 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 71 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::_x_start =0.0
private

Definition at line 67 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 67 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::_y_proj =0.0
private

Definition at line 70 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 70 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::_y_start =0.0
private

Definition at line 66 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 66 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::_z_proj =0.0
private

Definition at line 69 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 69 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::_z_start =0.0
private

Definition at line 65 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 65 of file PHTpcClusterMover.h

Referenced by process_event().

double PHTpcClusterMover::inner_tpc_min_radius = 30.0
private

Definition at line 84 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 84 of file PHTpcClusterMover.h

Referenced by InitRun().

double PHTpcClusterMover::inner_tpc_spacing = 0.0
private

Definition at line 89 of file PHTpcClusterMover.h.

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

Referenced by InitRun().

double PHTpcClusterMover::layer_radius[48] = {0}
private

Definition at line 83 of file PHTpcClusterMover.h.

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

Referenced by InitRun(), and process_event().

double PHTpcClusterMover::mid_tpc_min_radius = 40.0
private

Definition at line 85 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 85 of file PHTpcClusterMover.h

Referenced by InitRun().

double PHTpcClusterMover::mid_tpc_spacing = 0.0
private

Definition at line 90 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 90 of file PHTpcClusterMover.h

Referenced by InitRun().

double PHTpcClusterMover::outer_tpc_max_radius = 77.0
private

Definition at line 87 of file PHTpcClusterMover.h.

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

Referenced by InitRun().

double PHTpcClusterMover::outer_tpc_min_radius = 60.0
private

Definition at line 86 of file PHTpcClusterMover.h.

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

Referenced by InitRun().

double PHTpcClusterMover::outer_tpc_spacing = 0.0
private

Definition at line 91 of file PHTpcClusterMover.h.

View newest version in sPHENIX GitHub at line 91 of file PHTpcClusterMover.h

Referenced by InitRun().


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