ECCE @ EIC Software
Reference for
ECCE @ EIC
simulation and reconstruction software on GitHub
|
#include <coresoftware/blob/master/offline/packages/trackreco/PHActsSiliconSeeding.h>
Public Member Functions | |
PHActsSiliconSeeding (const std::string &name="PHActsSiliconSeeding") | |
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. | |
void | useTruthClusters (bool useTruthClusters) |
Set seeding with truth clusters. | |
void | seedAnalysis (bool seedAnalysis) |
Output some diagnostic histograms. | |
void | fieldMapName (const std::string &fieldmap) |
field map name for 3d map functionality | |
void | cleanSeeds (bool cleanSeeds) |
void | rMax (const float rMax) |
void | rMin (const float rMin) |
void | zMax (const float zMax) |
void | zMin (const float zMin) |
void | deltaRMax (const float deltaRMax) |
void | cotThetaMax (const float cotThetaMax) |
void | gridFactor (const float gridFactor) |
void | largeGridSpacing (const bool spacing) |
void | set_track_map_name (const std::string &map_name) |
void | SetIteration (int iter) |
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 | getNodes (PHCompositeNode *topNode) |
int | createNodes (PHCompositeNode *topNode) |
GridSeeds | runSeeder (std::vector< const SpacePoint * > &spVec) |
Acts::SeedfinderConfig < SpacePoint > | configureSeeder () |
Acts::SpacePointGridConfig | configureSPGrid () |
void | makeSvtxTracks (GridSeeds &seedVector) |
Take final seeds and fill the SvtxTrackMap. | |
SpacePointPtr | makeSpacePoint (const TrkrDefs::cluskey cluskey, const SourceLink &sl) |
Create a seeding space point out of an Acts::SourceLink. | |
std::vector< const SpacePoint * > | getMvtxSpacePoints () |
Get all space points for the seeder. | |
int | circleFitSeed (std::vector< TrkrCluster * > &clusters, std::vector< Acts::Vector3D > &clusGlobPos, double &x, double &y, double &z, double &px, double &py, double &pz) |
void | circleFitByTaubin (const std::vector< Acts::Vector3D > &globalPositions, double &R, double &X0, double &Y0) |
void | lineFit (const std::vector< Acts::Vector3D > &globPos, double &A, double &B) |
void | findRoot (const double R, const double X0, const double Y0, double &x, double &y) |
int | getCharge (const std::vector< Acts::Vector3D > &globalPos, const double circPhi) |
std::vector< TrkrDefs::cluskey > | findInttMatches (std::vector< Acts::Vector3D > &clusters, const double R, const double X0, const double Y0, const double B, const double m) |
std::vector< TrkrDefs::cluskey > | matchInttClusters (std::vector< Acts::Vector3D > &clusters, const double xProj[], const double yProj[], const double zProj[]) |
void | circleCircleIntersection (const double layerRadius, const double circRadius, const double circX0, const double circY0, double &xplus, double &yplus, double &xminus, double &yminus) |
void | createSvtxTrack (const double x, const double y, const double z, const double px, const double py, const double pz, const int charge, std::vector< TrkrCluster * > &clusters, std::vector< Acts::Vector3D > &clusGlobPos) |
std::map< const unsigned int, std::pair< std::vector < TrkrCluster * >, std::vector < Acts::Vector3D > > > | makePossibleStubs (std::vector< TrkrCluster * > &allClusters, std::vector< Acts::Vector3D > &clusGlobPos) |
Surface | getSurface (TrkrDefs::hitsetkey hitsetkey) |
std::map< const unsigned int, std::pair< std::vector < TrkrCluster * >, std::vector < Acts::Vector3D > > > | identifyBestSeed (std::map< const unsigned int, std::pair< std::vector< TrkrCluster * >, std::vector< Acts::Vector3D >>>) |
void | createHistograms () |
void | writeHistograms () |
double | normPhi2Pi (const double phi) |
Private Attributes | |
ActsTrackingGeometry * | m_tGeometry = nullptr |
SvtxTrackMap * | m_trackMap = nullptr |
TrkrClusterContainer * | m_clusterMap = nullptr |
TrkrHitSetContainer * | m_hitsets = nullptr |
PHG4CylinderGeomContainer * | m_geomContainerIntt = nullptr |
ActsSurfaceMaps * | m_surfMaps = nullptr |
Acts::SeedfinderConfig < SpacePoint > | m_seedFinderCfg |
Configuration classes for Acts seeding. | |
Acts::SpacePointGridConfig | m_gridCfg |
float | m_minSeedPt = 100 |
int | m_maxSeedsPerSpM = 1 |
float | m_rMax = 200. |
float | m_rMin = 23. |
float | m_zMax = 300. |
float | m_zMin = -300. |
float | m_gridFactor = 2.3809 |
float | m_deltaRMax = 15 |
max distance between two measurements in one seed | |
float | m_cotThetaMax = 2.9 |
Cot of maximum theta angle. | |
float | m_bField = 1.4 / 1000. |
std::shared_ptr < Acts::BinFinder< SpacePoint > > | m_bottomBinFinder |
std::shared_ptr < Acts::BinFinder< SpacePoint > > | m_topBinFinder |
int | m_event = 0 |
double | m_maxSeedPCA = 2. |
Maximum allowed transverse PCA for seed, cm. | |
const double | m_nInttLayerRadii [m_nInttLayers] |
double | m_rPhiSearchWin = 0.1 |
cm | |
bool | m_useTruthClusters = false |
Whether or not to use truth clusters in hit lookup. | |
bool | m_cleanSeeds = false |
int | m_nBadUpdates = 0 |
int | m_nBadInitialFits = 0 |
std::string | m_fieldMapName = "" |
TrkrClusterIterationMapv1 * | _iteration_map = nullptr |
int | _n_iteration = 0 |
std::string | _track_map_name = "SvtxSiliconTrackMap" |
bool | m_seedAnalysis = false |
TFile * | m_file = nullptr |
TH2 * | h_nInttProj = nullptr |
TH1 * | h_nMvtxHits = nullptr |
TH1 * | h_nInttHits = nullptr |
TH2 * | h_nHits = nullptr |
TH1 * | h_nSeeds = nullptr |
TH1 * | h_nActsSeeds = nullptr |
TH1 * | h_nTotSeeds = nullptr |
TH1 * | h_nInputMeas = nullptr |
TH1 * | h_nInputMvtxMeas = nullptr |
TH1 * | h_nInputInttMeas = nullptr |
TH2 * | h_hits = nullptr |
TH2 * | h_zhits = nullptr |
TH2 * | h_projHits = nullptr |
TH2 * | h_zprojHits = nullptr |
TH2 * | h_resids = nullptr |
Static Private Attributes | |
static const unsigned int | m_nInttLayers = 4 |
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") | |
This class runs the Acts seeder over the MVTX measurements to create track stubs for the rest of the stub matching pattern recognition. The module also projects the MVTX stubs to the INTT to find possible matches in the INTT to the MVTX triplet.
Definition at line 77 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 77 of file PHActsSiliconSeeding.h
PHActsSiliconSeeding::PHActsSiliconSeeding | ( | const std::string & | name = "PHActsSiliconSeeding" | ) |
Definition at line 42 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 42 of file PHActsSiliconSeeding.cc
|
private |
Solutions to the circle intersection are (xplus, yplus) and (xminus, yminus). The intersection of the two circles occurs when (x-x1)^2 + (y-y1)^2 = r1^2, / (x-x2)^2 + (y-y2)^2 = r2^2 Here we assume that circle 1 is an sPHENIX layer centered on x1=y1=0, and circle 2 is arbitrary such that they are described by x^2 +y^2 = r1^2, (x-x0)^2 + (y-y0)^2 = r2^2 expand the equations and subtract to eliminate the x^2 and y^2 terms, gives the radial line connecting the intersection points iy = - (2*x2*x - D) / 2*y2, then substitute for y in equation of circle 1
Definition at line 934 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 934 of file PHActsSiliconSeeding.cc
Referenced by findInttMatches().
|
private |
Circle fit to a given set of data points (in 2D) This is an algebraic fit, due to Taubin, based on the journal article G. Taubin, "Estimation Of Planar Curves, Surfaces And Nonplanar Space Curves Defined By Implicit Equations, With Applications To Edge And Range Image Segmentation", IEEE Trans. PAMI, Vol. 13, pages 1115-1138, (1991) It works well whether data points are sampled along an entire circle or along a small arc. It still has a small bias and its statistical accuracy is slightly lower than that of the geometric fit (minimizing geometric distances), It provides a very good initial guess for a subsequent geometric fit. Nikolai Chernov (September 2012)
Definition at line 1139 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1139 of file PHActsSiliconSeeding.cc
References A22, A33, Dy, isfinite, pos(), weight, x, and y.
Referenced by circleFitSeed(), createSvtxTrack(), and identifyBestSeed().
|
private |
Perform circle/line fits with the final MVTX seed to get initial point and momentum estimates for stub matching
Circle radius at x,y center Note - units are sPHENIX cm since we are using TrkrClusters
If the xy position is O(100s) microns, the initial vertex finder will throw an eigen stepper error trying to propagate from the PCA. These are likely bad seeds anyway since the MVTX has position resolution O(5) microns. Units are cm
Return statement doesn't matter as x = nan will be caught
Now determine the line tangent to the circle at this point to get phi The slope of the line connecting the circle center and PCA is m = (y0-y)/(x0-x). So the perpendicular slope (i.e. phi) is then -1/m For some reason the phi value comes back from atan2 off by a factor of pi for positive charged tracks, hence the check
m is slope as a function of radius, B is z intercept (vertex)
normalize to 0 < theta < pi
0.3 conversion factor, 1.4=B field, 100 convert R from cm to m Get a very rough estimate of p
The only thing that is really needed for the propagation is the direction
Project to INTT and find matches
Add possible matches to cluster list to be parsed when Svtx tracks are made
Definition at line 625 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 625 of file PHActsSiliconSeeding.cc
References B(), charge, circleFitByTaubin(), Acts::VectorHelpers::eta(), TrkrClusterContainer::findCluster(), findInttMatches(), findRoot(), getCharge(), lineFit(), m, m_clusterMap, m_maxSeedPCA, M_PI, phi, pt, Acts::IntegrationTest::R, theta(), and Fun4AllBase::Verbosity().
Referenced by makeSvtxTracks().
|
inline |
For each MVTX+INTT seed, take the best INTT hits and form 1 silicon seed per MVTX seed
Definition at line 100 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 100 of file PHActsSiliconSeeding.h
References cleanSeeds(), and m_cleanSeeds.
Referenced by cleanSeeds().
|
private |
Configure the seeding parameters for Acts. There are a number of tunable parameters for the seeder here
Limiting location of measurements (e.g. detector constraints)
Min/max distance between two measurements in one seed
Limiting collision region in z
Average radiation length traversed per seed
Maximum impact parameter must be smaller than rMin
Definition at line 1361 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1361 of file PHActsSiliconSeeding.cc
References Acts::SeedfinderConfig< SpacePoint >::bFieldInZ, Acts::SeedfinderConfig< SpacePoint >::collisionRegionMax, Acts::SeedfinderConfig< SpacePoint >::collisionRegionMin, Acts::SeedfinderConfig< SpacePoint >::cotThetaMax, Acts::SeedfinderConfig< SpacePoint >::deltaRMax, Acts::SeedfinderConfig< SpacePoint >::deltaRMin, Acts::SeedfinderConfig< SpacePoint >::impactMax, m_bField, m_cotThetaMax, m_deltaRMax, m_maxSeedsPerSpM, m_minSeedPt, m_rMax, m_rMin, m_zMax, m_zMin, Acts::SeedfinderConfig< SpacePoint >::maxSeedsPerSpM, Acts::SeedfinderConfig< SpacePoint >::minPt, Acts::SeedfinderConfig< SpacePoint >::radLengthPerSeed, Acts::SeedfinderConfig< SpacePoint >::rMax, Acts::SeedfinderConfig< SpacePoint >::rMin, Acts::SeedfinderConfig< SpacePoint >::sigmaScattering, Acts::SeedfinderConfig< SpacePoint >::zMax, and Acts::SeedfinderConfig< SpacePoint >::zMin.
Referenced by Init().
|
private |
Definition at line 1346 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1346 of file PHActsSiliconSeeding.cc
References Acts::SpacePointGridConfig::bFieldInZ, Acts::SpacePointGridConfig::cotThetaMax, Acts::SpacePointGridConfig::deltaRMax, m_bField, m_cotThetaMax, m_deltaRMax, m_gridFactor, m_minSeedPt, m_rMax, m_zMax, m_zMin, Acts::SpacePointGridConfig::minPt, Acts::SpacePointGridConfig::rMax, Acts::SpacePointGridConfig::zMax, and Acts::SpacePointGridConfig::zMin.
Referenced by Init().
|
inline |
Definition at line 113 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 113 of file PHActsSiliconSeeding.h
References cotThetaMax(), and m_cotThetaMax.
Referenced by cotThetaMax().
|
private |
Definition at line 1499 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1499 of file PHActsSiliconSeeding.cc
References h_hits, h_nActsSeeds, h_nHits, h_nInputInttMeas, h_nInputMeas, h_nInputMvtxMeas, h_nInttHits, h_nInttProj, h_nMvtxHits, h_nSeeds, h_nTotSeeds, h_projHits, h_resids, h_zhits, and h_zprojHits.
Referenced by Init().
|
private |
Definition at line 1443 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1443 of file PHActsSiliconSeeding.cc
References _track_map_name, PHCompositeNode::addNode(), Fun4AllReturnCodes::EVENT_OK, PHNodeIterator::findFirst(), and m_trackMap.
Referenced by InitRun().
|
private |
Make a track for every stub that was constructed We use the same xyz and pxpypz given by the mvtx circle fit since that is the "anchor" for the stub
Get a less rough estimate of R, and thus, p
0.3 conversion factor, 1.4=B field, 100 convert R from cm to m
Diagnostic
Definition at line 288 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 288 of file PHActsSiliconSeeding.cc
References charge, circleFitByTaubin(), TrkrDefs::getTrkrId(), h_nHits, h_nInttHits, h_nMvtxHits, h_nTotSeeds, identifyBestSeed(), SvtxTrackMap::insert(), TrkrDefs::inttId, m_cleanSeeds, m_seedAnalysis, m_trackMap, makePossibleStubs(), TrkrDefs::mvtxId, pt, Acts::IntegrationTest::R, SvtxTrackMap::size(), Fun4AllBase::Verbosity(), x, y, and z.
Referenced by makeSvtxTracks().
|
inline |
Definition at line 111 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 111 of file PHActsSiliconSeeding.h
References deltaRMax(), and m_deltaRMax.
Referenced by deltaRMax().
|
overridevirtual |
Called at the end of all processing.
Reimplemented from SubsysReco.
Definition at line 134 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 134 of file PHActsSiliconSeeding.cc
References Fun4AllReturnCodes::EVENT_OK, m_nBadInitialFits, m_nBadUpdates, m_seedAnalysis, Fun4AllBase::Verbosity(), and writeHistograms().
|
inline |
field map name for 3d map functionality
Definition at line 95 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 95 of file PHActsSiliconSeeding.h
References fieldmap, and m_fieldMapName.
|
private |
Projects circle fit to INTT radii to find possible INTT clusters belonging to MVTX track stub
Diagnostic
Project the seed to the INTT to find matches
If there are no real solutions to the intersection, skip
Figure out which solution is correct based on the position of the last layer in the mvtx seed
Definition at line 742 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 742 of file PHActsSiliconSeeding.cc
References B(), circleCircleIntersection(), h_hits, h_projHits, h_zhits, h_zprojHits, G4TTL::layer, m_nInttLayerRadii, m_nInttLayers, m_seedAnalysis, matchInttClusters(), and Fun4AllBase::Verbosity().
Referenced by circleFitSeed().
|
private |
We need to determine the closest point on the circle to the origin since we can't assume that the track originates from the origin The eqn for the circle is (x-X0)^2+(y-Y0)^2=R^2 and we want to minimize d = sqrt((0-x)^2+(0-y)^2), the distance between the origin and some (currently, unknown) point on the circle x,y.
Solving the circle eqn for x and substituting into d gives an eqn for y. Taking the derivative and setting equal to 0 gives the following two solutions. We take the smaller solution as the correct one, as usually one solution is wildly incorrect (e.g. 1000 cm)
Figure out which of the two roots is actually closer to the origin
Definition at line 970 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 970 of file PHActsSiliconSeeding.cc
References Fun4AllBase::Verbosity().
Referenced by circleFitSeed().
|
private |
If the circle center phi is positioned clockwise to the seed phi, the seed is positively charged. If the circle center phi is positioned counter clockwise, the seed is negatively charged
Get a crude estimate of the seed phi by taking the average of the measurements
if it is close to the periodic boundary normalize to two pi to avoid -pi and pi issues
normalize back
Shift the periodic boundary to make quadrants 0 and 3 away from boundary
Definition at line 1021 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1021 of file PHActsSiliconSeeding.cc
References charge, M_PI, normPhi2Pi(), pos(), and Fun4AllBase::Verbosity().
Referenced by circleFitSeed().
|
private |
Get all space points for the seeder.
Definition at line 1272 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1272 of file PHActsSiliconSeeding.cc
References _iteration_map, _n_iteration, Acts::UnitConstants::cm, Acts::UnitConstants::cm2, Acts::eBoundLoc0, Acts::eBoundLoc1, TrkrClusterContainer::getClusters(), TrkrDefs::getHitSetKeyFromClusKey(), TrkrHitSetContainer::getHitSets(), TrkrClusterIterationMapv1::getIteration(), getSurface(), h_nInputMvtxMeas, m_clusterMap, m_hitsets, m_seedAnalysis, makeSpacePoint(), TrkrDefs::mvtxId, G4InuclParticleNames::sp, surface(), and Fun4AllBase::Verbosity().
Referenced by runSeeder().
|
private |
Definition at line 1393 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1393 of file PHActsSiliconSeeding.cc
References Fun4AllReturnCodes::ABORTEVENT, Fun4AllReturnCodes::EVENT_OK, m_clusterMap, m_geomContainerIntt, m_hitsets, m_surfMaps, m_tGeometry, m_useTruthClusters, and PHWHERE.
Referenced by InitRun().
|
private |
Only seed with the MVTX, so there is a 1-1 mapping between hitsetkey and acts surface
If it can't be found, return nullptr
Definition at line 1331 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1331 of file PHActsSiliconSeeding.cc
References m_surfMaps, and ActsSurfaceMaps::siliconSurfaceMap.
Referenced by getMvtxSpacePoints().
|
inline |
Definition at line 115 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 115 of file PHActsSiliconSeeding.h
References gridFactor(), and m_gridFactor.
Referenced by gridFactor().
|
private |
Just need to fit the mvtx once since all seeds have the same mvtx hits
Circle fit the mvtx triplet only
If mvtx seed wasn't found, just return
Just make it the 0th entry since it is the only one
Definition at line 420 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 420 of file PHActsSiliconSeeding.cc
References circleFitByTaubin(), TrkrClusterContainer::findCluster(), TrkrDefs::getTrkrId(), TrkrDefs::inttId, m_clusterMap, m_nInttLayerRadii, max, TrkrDefs::mvtxId, r, Acts::IntegrationTest::R, and Fun4AllBase::Verbosity().
Referenced by createSvtxTrack().
|
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 46 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 46 of file PHActsSiliconSeeding.cc
References configureSeeder(), configureSPGrid(), createHistograms(), Fun4AllReturnCodes::EVENT_OK, m_bottomBinFinder, m_file, m_gridCfg, m_maxSeedsPerSpM, m_seedAnalysis, m_seedFinderCfg, m_topBinFinder, and Acts::SeedFilterConfig::maxSeedsPerSpM.
|
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 70 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 70 of file PHActsSiliconSeeding.cc
References Fun4AllReturnCodes::ABORTEVENT, createNodes(), Fun4AllReturnCodes::EVENT_OK, and getNodes().
void PHActsSiliconSeeding::largeGridSpacing | ( | const bool | spacing | ) |
A function to run the seeder with large (true) or small (false) grid spacing
Definition at line 1536 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1536 of file PHActsSiliconSeeding.cc
References m_cotThetaMax, m_gridFactor, m_maxSeedPCA, and m_rMax.
|
private |
calculate slope
calculate intercept
Definition at line 1097 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1097 of file PHActsSiliconSeeding.cc
References m_nInttLayerRadii, m_nInttLayers, pos(), r, Fun4AllBase::Verbosity(), and z.
Referenced by circleFitSeed().
|
private |
if we have no INTT matches, we can just return one track stub with the mvtx hits
If we have only one matched INTT hit, make a single stub and return
Otherwise we have 2 or more INTT matched hits Find combinations of INTT clusters that were within the nominal matching windows if each INTT layer group had at least one cluster
Start with the mvtx clusters
Definition at line 530 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 530 of file PHActsSiliconSeeding.cc
References TrkrDefs::getTrkrId(), TrkrDefs::mvtxId, and r.
Referenced by createSvtxTrack().
|
private |
Create a seeding space point out of an Acts::SourceLink.
Definition at line 1238 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1238 of file PHActsSiliconSeeding.cc
References ActsTrackingGeometry::geoContext, m_tGeometry, mom, r, Fun4AllBase::Verbosity(), x, y, and z.
Referenced by getMvtxSpacePoints().
Take final seeds and fill the SvtxTrackMap.
Loop over grid volumes
Loop over actual seeds in this grid volume
Performs circle fit and extrapolates to INTT layers to to get additional clusters in this track seed
Bad seed, if x is nan so are y and z
Definition at line 196 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 196 of file PHActsSiliconSeeding.cc
References charge, circleFitSeed(), Acts::UnitConstants::cm, createSvtxTrack(), TrkrClusterContainer::findCluster(), ActsTransformations::getGlobalPosition(), TrkrDefs::getTrkrId(), h_nActsSeeds, h_nSeeds, m_clusterMap, m_nBadInitialFits, m_seedAnalysis, m_surfMaps, m_tGeometry, seed, Fun4AllBase::Verbosity(), x, y, and z.
Referenced by process_event().
|
private |
Check that the projection is within some reasonable amount of the segment to reject e.g. looking at segments in the opposite hemisphere. This is about the size of one intt segment (256 * 80 micron strips in a segment)
Z strip spacing is the entire strip, so because we use fabs we divide by two
Cache INTT global positions with seed
Diagnostic
Definition at line 832 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 832 of file PHActsSiliconSeeding.cc
References CylinderGeomIntt::find_segment_center(), TrkrClusterContainer::getClusters(), ActsTransformations::getGlobalPosition(), TrkrHitSetContainer::getHitSets(), InttDefs::getLadderPhiId(), InttDefs::getLadderZId(), PHG4CylinderGeomContainer::GetLayerGeom(), h_hits, h_nInttProj, h_resids, h_zhits, TrkrDefs::inttId, m_clusterMap, m_geomContainerIntt, m_hitsets, m_nInttLayers, M_PI, m_rPhiSearchWin, m_seedAnalysis, m_surfMaps, m_tGeometry, Acts::Test::transform, and Fun4AllBase::Verbosity().
Referenced by findInttMatches().
|
private |
Definition at line 1527 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1527 of file PHActsSiliconSeeding.cc
Referenced by getCharge().
|
overridevirtual |
Called for each event. This is where you do the real work.
Reimplemented from SubsysReco.
Definition at line 81 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 81 of file PHActsSiliconSeeding.cc
References _iteration_map, _n_iteration, Fun4AllReturnCodes::ABORTEVENT, Fun4AllReturnCodes::EVENT_OK, m_event, makeSvtxTracks(), PHWHERE, runSeeder(), G4InuclParticleNames::sp, and Fun4AllBase::Verbosity().
|
inline |
Definition at line 103 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 103 of file PHActsSiliconSeeding.h
References m_rMax, and rMax().
Referenced by rMax().
|
inline |
Definition at line 105 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 105 of file PHActsSiliconSeeding.h
References m_rMin, and rMin().
Referenced by rMin().
|
private |
Covariance converter functor needed by seed finder
This is a vector of seeds inside of a vector which represents volume grids of the detector area. The seeds can be accessed by iterating over each area, and then collecting the seeds in that area
Definition at line 152 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 152 of file PHActsSiliconSeeding.cc
References Acts::BinnedSPGroup< external_spacepoint_t >::begin(), Acts::Seedfinder< external_spacepoint_t >::createSeedsForGroup(), getMvtxSpacePoints(), h_nInputMeas, m_bottomBinFinder, m_gridCfg, m_seedAnalysis, m_seedFinderCfg, m_topBinFinder, SpacePoint::m_varianceRphi, SpacePoint::m_varianceZ, and G4InuclParticleNames::sp.
Referenced by process_event().
|
inline |
Output some diagnostic histograms.
Definition at line 91 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 91 of file PHActsSiliconSeeding.h
References m_seedAnalysis, and seedAnalysis().
Referenced by seedAnalysis().
|
inline |
Definition at line 122 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 122 of file PHActsSiliconSeeding.h
References _track_map_name.
Definition at line 123 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 123 of file PHActsSiliconSeeding.h
References _n_iteration.
|
inline |
Set seeding with truth clusters.
Definition at line 87 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 87 of file PHActsSiliconSeeding.h
References m_useTruthClusters, and useTruthClusters().
Referenced by useTruthClusters().
|
private |
Definition at line 1477 of file PHActsSiliconSeeding.cc.
View newest version in sPHENIX GitHub at line 1477 of file PHActsSiliconSeeding.cc
References h_hits, h_nActsSeeds, h_nHits, h_nInputInttMeas, h_nInputMeas, h_nInputMvtxMeas, h_nInttHits, h_nInttProj, h_nMvtxHits, h_nSeeds, h_nTotSeeds, h_projHits, h_resids, h_zhits, h_zprojHits, and m_file.
Referenced by End().
|
inline |
Definition at line 107 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 107 of file PHActsSiliconSeeding.h
References m_zMax, and zMax().
Referenced by zMax().
|
inline |
Definition at line 109 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 109 of file PHActsSiliconSeeding.h
References m_zMin, and zMin().
Referenced by zMin().
|
private |
Definition at line 273 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 273 of file PHActsSiliconSeeding.h
Referenced by getMvtxSpacePoints(), and process_event().
|
private |
Definition at line 274 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 274 of file PHActsSiliconSeeding.h
Referenced by getMvtxSpacePoints(), process_event(), and SetIteration().
|
private |
Definition at line 275 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 275 of file PHActsSiliconSeeding.h
Referenced by createNodes(), and set_track_map_name().
|
private |
Definition at line 289 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 289 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), findInttMatches(), matchInttClusters(), and writeHistograms().
|
private |
Definition at line 284 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 284 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), makeSvtxTracks(), and writeHistograms().
|
private |
Definition at line 282 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 282 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), createSvtxTrack(), and writeHistograms().
|
private |
Definition at line 288 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 288 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), and writeHistograms().
|
private |
Definition at line 286 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 286 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), runSeeder(), and writeHistograms().
|
private |
Definition at line 287 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 287 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), getMvtxSpacePoints(), and writeHistograms().
|
private |
Definition at line 281 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 281 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), createSvtxTrack(), and writeHistograms().
|
private |
Definition at line 279 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 279 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), matchInttClusters(), and writeHistograms().
|
private |
Definition at line 280 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 280 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), createSvtxTrack(), and writeHistograms().
|
private |
Definition at line 283 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 283 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), makeSvtxTracks(), and writeHistograms().
|
private |
Definition at line 285 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 285 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), createSvtxTrack(), and writeHistograms().
|
private |
Definition at line 291 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 291 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), findInttMatches(), and writeHistograms().
|
private |
Definition at line 293 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 293 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), matchInttClusters(), and writeHistograms().
|
private |
Definition at line 290 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 290 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), findInttMatches(), matchInttClusters(), and writeHistograms().
|
private |
Definition at line 292 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 292 of file PHActsSiliconSeeding.h
Referenced by createHistograms(), findInttMatches(), and writeHistograms().
|
private |
B field value in z direction bfield for space point grid neds to be in kiloTesla
Definition at line 248 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 248 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), and configureSPGrid().
|
private |
Definition at line 251 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 251 of file PHActsSiliconSeeding.h
Referenced by Init(), and runSeeder().
|
private |
Definition at line 268 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 268 of file PHActsSiliconSeeding.h
Referenced by cleanSeeds(), and createSvtxTrack().
|
private |
Definition at line 212 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 212 of file PHActsSiliconSeeding.h
Referenced by circleFitSeed(), getMvtxSpacePoints(), getNodes(), identifyBestSeed(), makeSvtxTracks(), and matchInttClusters().
|
private |
Cot of maximum theta angle.
Definition at line 244 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 244 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), configureSPGrid(), cotThetaMax(), and largeGridSpacing().
|
private |
max distance between two measurements in one seed
Definition at line 241 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 241 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), configureSPGrid(), and deltaRMax().
|
private |
Definition at line 253 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 253 of file PHActsSiliconSeeding.h
Referenced by process_event().
|
private |
Definition at line 272 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 272 of file PHActsSiliconSeeding.h
Referenced by fieldMapName().
|
private |
Definition at line 278 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 278 of file PHActsSiliconSeeding.h
Referenced by Init(), and writeHistograms().
|
private |
Definition at line 214 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 214 of file PHActsSiliconSeeding.h
Referenced by getNodes(), and matchInttClusters().
|
private |
Definition at line 219 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 219 of file PHActsSiliconSeeding.h
Referenced by Init(), and runSeeder().
|
private |
Value tuned to provide as large of phi bins as possible. Increases the secondary finding efficiency
Definition at line 238 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 238 of file PHActsSiliconSeeding.h
Referenced by configureSPGrid(), gridFactor(), and largeGridSpacing().
|
private |
Definition at line 213 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 213 of file PHActsSiliconSeeding.h
Referenced by getMvtxSpacePoints(), getNodes(), and matchInttClusters().
|
private |
Maximum allowed transverse PCA for seed, cm.
Definition at line 256 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 256 of file PHActsSiliconSeeding.h
Referenced by circleFitSeed(), and largeGridSpacing().
|
private |
How many seeds a given hit can be the middle hit of the seed MVTX can only have the middle layer be the middle hit
Definition at line 227 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 227 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), and Init().
|
private |
Configurable parameters seed pt has to be in MeV
Definition at line 223 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 223 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), and configureSPGrid().
|
private |
Definition at line 271 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 271 of file PHActsSiliconSeeding.h
Referenced by End(), and makeSvtxTracks().
|
private |
Definition at line 270 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 270 of file PHActsSiliconSeeding.h
Referenced by End().
|
private |
Definition at line 259 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 259 of file PHActsSiliconSeeding.h
Referenced by findInttMatches(), identifyBestSeed(), and lineFit().
|
staticprivate |
Definition at line 258 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 258 of file PHActsSiliconSeeding.h
Referenced by findInttMatches(), lineFit(), and matchInttClusters().
|
private |
Limiting location of measurements (e.g. detector constraints) We limit to the MVTX
Definition at line 231 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 231 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), configureSPGrid(), largeGridSpacing(), and rMax().
|
private |
Definition at line 232 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 232 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), and rMin().
|
private |
cm
Search window for phi to match intt clusters in cm
Definition at line 263 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 263 of file PHActsSiliconSeeding.h
Referenced by matchInttClusters().
|
private |
Definition at line 277 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 277 of file PHActsSiliconSeeding.h
Referenced by createSvtxTrack(), End(), findInttMatches(), getMvtxSpacePoints(), Init(), makeSvtxTracks(), matchInttClusters(), runSeeder(), and seedAnalysis().
|
private |
Configuration classes for Acts seeding.
Definition at line 218 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 218 of file PHActsSiliconSeeding.h
Referenced by Init(), and runSeeder().
|
private |
Definition at line 215 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 215 of file PHActsSiliconSeeding.h
Referenced by getNodes(), getSurface(), makeSvtxTracks(), and matchInttClusters().
|
private |
Definition at line 210 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 210 of file PHActsSiliconSeeding.h
Referenced by getNodes(), makeSpacePoint(), makeSvtxTracks(), and matchInttClusters().
|
private |
Definition at line 251 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 251 of file PHActsSiliconSeeding.h
Referenced by Init(), and runSeeder().
|
private |
Definition at line 211 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 211 of file PHActsSiliconSeeding.h
Referenced by createNodes(), and createSvtxTrack().
|
private |
Whether or not to use truth clusters in hit lookup.
Definition at line 266 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 266 of file PHActsSiliconSeeding.h
Referenced by getNodes(), and useTruthClusters().
|
private |
Definition at line 233 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 233 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), configureSPGrid(), and zMax().
|
private |
Definition at line 234 of file PHActsSiliconSeeding.h.
View newest version in sPHENIX GitHub at line 234 of file PHActsSiliconSeeding.h
Referenced by configureSeeder(), configureSPGrid(), and zMin().