#include <PMAlgVertexing.h>
Classes | |
struct | Config |
Public Member Functions | |
PMAlgVertexing (const Config &config) | |
PMAlgVertexing (const fhicl::ParameterSet &pset) | |
~PMAlgVertexing () | |
void | reset () |
size_t | run (const detinfo::DetectorPropertiesData &detProp, pma::TrkCandidateColl &trk_input) |
size_t | run (pma::TrkCandidateColl &trk_input, const std::vector< TVector3 > &vtx_input) |
std::vector< std::pair< TVector3, std::vector< std::pair< size_t, bool > > > > | getVertices (const pma::TrkCandidateColl &tracks, bool onlyBranching=false) const |
std::vector< std::pair< TVector3, size_t > > | getKinks (const pma::TrkCandidateColl &tracks) const |
Private Member Functions | |
bool | has (const std::vector< size_t > &v, size_t idx) const |
std::vector< pma::VtxCandidate > | firstPassCandidates () const |
std::vector< pma::VtxCandidate > | secondPassCandidates () const |
size_t | makeVertices (detinfo::DetectorPropertiesData const &detProp, std::vector< pma::VtxCandidate > &candidates) |
std::vector< std::pair< double, double > > | getdQdx (const pma::Track3D &trk) const |
Get dQ/dx sequence to detect various features. More... | |
double | convolute (size_t idx, size_t len, double *adc, double const *shape) const |
Get convolution value. More... | |
bool | isSingleParticle (pma::Track3D *trk1, pma::Track3D *trk2) const |
Check if colinear in 3D and dQ/dx with no significant step. More... | |
void | mergeBrokenTracks (pma::TrkCandidateColl &trk_input) const |
void | splitMergedTracks (pma::TrkCandidateColl &trk_input) const |
Split track and add vertex and reoptimize when dQ/dx step detected. More... | |
void | findKinksOnTracks (const detinfo::DetectorPropertiesData &detProp, pma::TrkCandidateColl &trk_input) const |
Remove penalty on the angle if kink detected and reopt track. More... | |
void | cleanTracks () |
void | sortTracks (const pma::TrkCandidateColl &trk_input) |
void | collectTracks (pma::TrkCandidateColl &result) |
Private Attributes | |
pma::TrkCandidateColl | fOutTracks |
pma::TrkCandidateColl | fShortTracks |
pma::TrkCandidateColl | fEmTracks |
pma::TrkCandidateColl | fExcludedTracks |
double | fMinTrackLength |
bool | fFindKinks |
double | fKinkMinDeg |
double | fKinkMinStd |
Definition at line 32 of file PMAlgVertexing.h.
pma::PMAlgVertexing::PMAlgVertexing | ( | const Config & | config | ) |
Definition at line 15 of file PMAlgVertexing.cxx.
|
inline |
Definition at line 54 of file PMAlgVertexing.h.
pma::PMAlgVertexing::~PMAlgVertexing | ( | ) |
Definition at line 25 of file PMAlgVertexing.cxx.
|
private |
Definition at line 32 of file PMAlgVertexing.cxx.
|
private |
Definition at line 53 of file PMAlgVertexing.cxx.
|
private |
Get convolution value.
Definition at line 390 of file PMAlgVertexing.cxx.
|
private |
Remove penalty on the angle if kink detected and reopt track.
Definition at line 542 of file PMAlgVertexing.cxx.
|
private |
Definition at line 127 of file PMAlgVertexing.cxx.
|
private |
Get dQ/dx sequence to detect various features.
Definition at line 349 of file PMAlgVertexing.cxx.
std::vector< std::pair< TVector3, size_t > > pma::PMAlgVertexing::getKinks | ( | const pma::TrkCandidateColl & | tracks | ) | const |
Definition at line 652 of file PMAlgVertexing.cxx.
std::vector< std::pair< TVector3, std::vector< std::pair< size_t, bool > > > > pma::PMAlgVertexing::getVertices | ( | const pma::TrkCandidateColl & | tracks, |
bool | onlyBranching = false |
||
) | const |
Definition at line 611 of file PMAlgVertexing.cxx.
|
inlineprivate |
Definition at line 86 of file PMAlgVertexing.h.
|
private |
Check if colinear in 3D and dQ/dx with no significant step.
Definition at line 411 of file PMAlgVertexing.cxx.
|
private |
Definition at line 167 of file PMAlgVertexing.cxx.
|
private |
Find elastic scattering vertices on tracks, merge back tracks that were split during vertex finding. 3D angle between two tracks and dQ/dx is checked.
Definition at line 478 of file PMAlgVertexing.cxx.
|
inline |
Definition at line 60 of file PMAlgVertexing.h.
size_t pma::PMAlgVertexing::run | ( | const detinfo::DetectorPropertiesData & | detProp, |
pma::TrkCandidateColl & | trk_input | ||
) |
Copy input tracks, find 3D vertices, connect tracks, break them or flip if needed, reoptimize track structures. Result is returned as a collection of new tracks, that replaces content of trk_input (old tracks are deleted). Vertices can be accessed with getVertices function.
Definition at line 276 of file PMAlgVertexing.cxx.
size_t pma::PMAlgVertexing::run | ( | pma::TrkCandidateColl & | trk_input, |
const std::vector< TVector3 > & | vtx_input | ||
) |
Copy input tracks, use provided 3D vertices to connect tracks, break tracks or flip if needed, reoptimize track structures. Result is returned as a collection of new tracks, that replaces content of trk_input (old tracks are deleted). Input vertices that were actually associated to tracks are copied to the output collection (use getVertices function).
Definition at line 336 of file PMAlgVertexing.cxx.
|
private |
Definition at line 147 of file PMAlgVertexing.cxx.
|
private |
Definition at line 86 of file PMAlgVertexing.cxx.
|
private |
Split track and add vertex and reoptimize when dQ/dx step detected.
Definition at line 528 of file PMAlgVertexing.cxx.
|
private |
Definition at line 118 of file PMAlgVertexing.h.
|
private |
Definition at line 119 of file PMAlgVertexing.h.
|
private |
Definition at line 130 of file PMAlgVertexing.h.
|
private |
Definition at line 132 of file PMAlgVertexing.h.
|
private |
Definition at line 133 of file PMAlgVertexing.h.
|
private |
Definition at line 127 of file PMAlgVertexing.h.
|
private |
Definition at line 118 of file PMAlgVertexing.h.
|
private |
Definition at line 118 of file PMAlgVertexing.h.