Jan's alignment algorithm. More...
#include <JanAlignmentAlgorithm.h>
Classes | |
struct | DetStat |
structure holding statistical information for one detector More... | |
struct | ScatterPlot |
a scatter plot, with graph and histogram representations More... | |
Public Member Functions | |
void | analyze () override |
analyzes the data collected More... | |
void | begin (const CTPPSGeometry *geometryReal, const CTPPSGeometry *geometryMisaligned) override |
prepare for processing More... | |
void | end () override |
cleans up after processing More... | |
void | feed (const HitCollection &, const LocalTrackFit &) override |
process one track More... | |
std::string | getName () override |
bool | hasErrorEstimate () override |
returns whether this algorithm is capable of estimating result uncertainties More... | |
JanAlignmentAlgorithm () | |
dummy constructor (not to be used) More... | |
JanAlignmentAlgorithm (const edm::ParameterSet &ps, AlignmentTask *_t) | |
normal constructor More... | |
void | saveDiagnostics (TDirectory *) override |
saves diagnostic histograms/plots More... | |
unsigned int | solve (const std::vector< AlignmentConstraint > &, std::map< unsigned int, AlignmentResult > &results, TDirectory *dir) override |
~JanAlignmentAlgorithm () override | |
Public Member Functions inherited from AlignmentAlgorithm | |
AlignmentAlgorithm () | |
dummy constructor (not to be used) More... | |
AlignmentAlgorithm (const edm::ParameterSet &ps, AlignmentTask *_t) | |
normal constructor More... | |
virtual | ~AlignmentAlgorithm () |
Private Attributes | |
bool | buildDiagnosticPlots |
flag whether to build statistical plots More... | |
unsigned int | events |
event count More... | |
TVectorD | M |
final M vector More... | |
TVectorD * | Mc |
TMatrixD | S |
final S matrix More... | |
TVectorD | S_eigVal |
eigen values of the S matrix More... | |
TMatrixD | S_eigVec |
matrix of S eigenvectors More... | |
TMatrixD ** | Sc |
std::vector< SingularMode > | singularModes |
a list of the singular modes of the S matrix More... | |
std::map< unsigned int, DetStat > | statistics |
statistical data collection More... | |
bool | stopOnSingularModes |
whether to stop when singular modes are identified More... | |
double | weakLimit |
normalized eigen value below which the (CS) eigen vectors are considered as weak More... | |
Additional Inherited Members | |
Protected Attributes inherited from AlignmentAlgorithm | |
double | singularLimit |
eigenvalues in (-singularLimit, singularLimit) are treated as singular More... | |
AlignmentTask * | task |
the tasked to be completed More... | |
unsigned int | verbosity |
Jan's alignment algorithm.
Definition at line 25 of file JanAlignmentAlgorithm.h.
|
inline |
JanAlignmentAlgorithm::JanAlignmentAlgorithm | ( | const edm::ParameterSet & | ps, |
AlignmentTask * | _t | ||
) |
normal constructor
Definition at line 28 of file JanAlignmentAlgorithm.cc.
References buildDiagnosticPlots, edm::ParameterSet::getParameter(), edm::ParameterSet::getParameterSet(), stopOnSingularModes, and weakLimit.
|
override |
Definition at line 38 of file JanAlignmentAlgorithm.cc.
|
overridevirtual |
analyzes the data collected
Implements AlignmentAlgorithm.
Definition at line 268 of file JanAlignmentAlgorithm.cc.
References change_name::diff, events, AlignmentTask::geometry, AlignmentGeometry::getNumberOfDetectors(), mps_fire::i, dqmiolumiharvest::j, M, reco::castor::maxDiff(), Mc, makeMEIFBenchmarkPlots::nev, hltrates_dqm_sourceclient-live_cfg::offset, gpuVertexFinder::printf(), AlignmentTask::quantityClasses, S_eigVal, S_eigVec, Sc, AlignmentAlgorithm::singularLimit, singularModes, AlignmentAlgorithm::task, hgcalPerformanceValidation::val, and AlignmentAlgorithm::verbosity.
|
overridevirtual |
prepare for processing
Implements AlignmentAlgorithm.
Definition at line 42 of file JanAlignmentAlgorithm.cc.
References visDQMUpload::buf, buildDiagnosticPlots, c, JanAlignmentAlgorithm::DetStat::coefHist, events, g, AlignmentTask::geometry, AlignmentGeometry::getSensorMap(), mps_fire::i, gpuClustering::id, dqmiolumiharvest::j, JanAlignmentAlgorithm::DetStat::m_dist, Mc, AlignmentTask::quantitiesOfClass(), AlignmentTask::quantityClasses, AlignmentTask::quantityClassTag(), JanAlignmentAlgorithm::DetStat::R_dist, JanAlignmentAlgorithm::DetStat::resVsCoef, postprocess-scan-build::rows, alignCSCRings::s, Sc, statistics, and AlignmentAlgorithm::task.
|
overridevirtual |
cleans up after processing
Implements AlignmentAlgorithm.
Definition at line 707 of file JanAlignmentAlgorithm.cc.
References mps_fire::i, Mc, AlignmentTask::quantityClasses, Sc, and AlignmentAlgorithm::task.
Referenced by Types.LuminosityBlockRange::cppID(), and Types.EventRange::cppID().
|
overridevirtual |
process one track
Implements AlignmentAlgorithm.
Definition at line 93 of file JanAlignmentAlgorithm.cc.
References A, CTPPSDetId::arm(), LocalTrackFit::ax, LocalTrackFit::ay, buildDiagnosticPlots, LocalTrackFit::bx, LocalTrackFit::by, c, gen::C, JanAlignmentAlgorithm::DetStat::coefHist, ztail::d, events, JanAlignmentAlgorithm::ScatterPlot::g, AlignmentTask::geometry, AlignmentGeometry::get(), DetGeometry::getDirectionData(), AlignmentTask::getMeasurementIndex(), AlignmentTask::getQuantityIndex(), JanAlignmentAlgorithm::ScatterPlot::h, mps_fire::i, gpuClustering::id, hit::id, dqmiolumiharvest::j, visualization-live-secondInstance_cfg::m, Mc, gpuVertexFinder::printf(), AlignmentTask::qcRotZ, AlignmentTask::qcShR1, AlignmentTask::qcShR2, AlignmentTask::qcShZ, AlignmentTask::quantityClasses, dttmaxenums::R, alignCSCRings::r, JanAlignmentAlgorithm::DetStat::resVsCoef, JanAlignmentAlgorithm::DetStat::resVsCoefRot_perRPSet, CTPPSDetId::rp(), S, alignCSCRings::s, Sc, mathSSE::sqrt(), CTPPSDetId::station(), statistics, DetGeometry::sx, DetGeometry::sy, submitPVValidationJobs::t, AlignmentAlgorithm::task, groupFilesInBlocks::tt, AlignmentAlgorithm::verbosity, DetGeometry::z, hit::z, LocalTrackFit::z0, and AlignmentGeometry::z0.
|
inlineoverridevirtual |
Reimplemented from AlignmentAlgorithm.
Definition at line 90 of file JanAlignmentAlgorithm.h.
Referenced by plotting.Plot::draw().
|
inlineoverridevirtual |
returns whether this algorithm is capable of estimating result uncertainties
Implements AlignmentAlgorithm.
Definition at line 92 of file JanAlignmentAlgorithm.h.
|
overridevirtual |
saves diagnostic histograms/plots
Implements AlignmentAlgorithm.
Definition at line 718 of file JanAlignmentAlgorithm.cc.
References visDQMUpload::buf, buildDiagnosticPlots, c, first, label, AlignmentTask::quantityClasses, statistics, and AlignmentAlgorithm::task.
|
overridevirtual |
solves the alignment problem with the given constraints
dir | a directory (in StraightTrackAlignment::taskDataFileName) where intermediate results can be stored |
Implements AlignmentAlgorithm.
Definition at line 381 of file JanAlignmentAlgorithm.cc.
References gen::C, mps_check::columns, cuy::cv, alignCSCRings::e, events, first, AlignmentTask::geometry, AlignmentTask::getQuantityIndex(), AlignmentGeometry::getSensorMap(), mps_fire::i, dqmiolumiharvest::j, isotrackApplyRegressor::k, dqmdumpme::last, M, SiStripPI::max, reco::castor::maxDiff(), Mc, mergeVDriftHistosByStation::name, hltrates_dqm_sourceclient-live_cfg::offset, upgradeWorkflowComponents::offsets, print(), ecalTPGAnalyzer_cfg::Print, gpuVertexFinder::printf(), AlignmentTask::qcRotZ, AlignmentTask::qcShR1, AlignmentTask::qcShR2, AlignmentTask::qcShZ, AlignmentTask::quantityClasses, alignCSCRings::r, S_eigVal, S_eigVec, AlignmentResult::setRotZ(), AlignmentResult::setRotZUnc(), AlignmentResult::setShR1(), AlignmentResult::setShR1Unc(), AlignmentResult::setShR2(), AlignmentResult::setShR2Unc(), AlignmentResult::setShZ(), AlignmentResult::setShZUnc(), AlignmentAlgorithm::singularLimit, singularModes, mathSSE::sqrt(), stopOnSingularModes, AlignmentAlgorithm::task, findQualityFiles::v, hgcalPerformanceValidation::val, AlignmentAlgorithm::verbosity, and weakLimit.
|
private |
flag whether to build statistical plots
Definition at line 79 of file JanAlignmentAlgorithm.h.
Referenced by begin(), feed(), JanAlignmentAlgorithm(), and saveDiagnostics().
|
private |
event count
Definition at line 73 of file JanAlignmentAlgorithm.h.
Referenced by eventsfwlite.Events::__getattr__(), analyze(), begin(), feed(), looper.Looper::loop(), looper.Looper::process(), and solve().
|
private |
final M vector
Definition at line 55 of file JanAlignmentAlgorithm.h.
|
private |
|
private |
|
private |
eigen values of the S matrix
Definition at line 58 of file JanAlignmentAlgorithm.h.
|
private |
matrix of S eigenvectors
Definition at line 61 of file JanAlignmentAlgorithm.h.
|
private |
|
private |
a list of the singular modes of the S matrix
Definition at line 64 of file JanAlignmentAlgorithm.h.
|
private |
statistical data collection
Definition at line 76 of file JanAlignmentAlgorithm.h.
Referenced by begin(), feed(), and saveDiagnostics().
|
private |
whether to stop when singular modes are identified
Definition at line 67 of file JanAlignmentAlgorithm.h.
Referenced by JanAlignmentAlgorithm(), and solve().
|
private |
normalized eigen value below which the (CS) eigen vectors are considered as weak
Definition at line 70 of file JanAlignmentAlgorithm.h.
Referenced by JanAlignmentAlgorithm(), and solve().