![]() |
ATLAS Offline Software
|
#include <ShiftingDerivCalcTool.h>
Public Types | |
enum | SolveOption { NONE = 0, SOLVE = 1, SOLVE_FAST = 2, DIRECT_SOLVE = 3, DIRECT_SOLVE_FAST = 4, DIRECT_SOLVE_CLUSTER = 5 } |
enum of different solving options More... | |
Public Member Functions | |
ShiftingDerivCalcTool (const std::string &type, const std::string &name, const IInterface *parent) | |
virtual | ~ShiftingDerivCalcTool () |
StatusCode | initialize () |
StatusCode | finalize () |
bool | setDerivatives (AlignTrack *track) |
sets derivatives of residuals w.r.t. More... | |
void | showStatistics () |
write statistics to log file More... | |
bool | setResidualCovMatrix (AlignTrack *alignTrack) const |
sets residual covariance matrix More... | |
void | setSolveOption (int solveOption) |
solving option (see enum above) More... | |
virtual void | setLogStream (std::ostream *os) |
sets the output stream for the logfile More... | |
ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | evtStore () const |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More... | |
virtual StatusCode | sysInitialize () override |
Perform system initialization for an algorithm. More... | |
virtual StatusCode | sysStart () override |
Handle START transition. More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
Return this algorithm's input handles. More... | |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
Return this algorithm's output handles. More... | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
Declare a new Gaudi property. More... | |
void | updateVHKA (Gaudi::Details::PropertyBase &) |
MsgStream & | msg () const |
MsgStream & | msg (const MSG::Level lvl) const |
bool | msgLvl (const MSG::Level lvl) const |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
Retrieve interface ID. More... | |
Protected Types | |
typedef std::vector< Amg::VectorX > | HitDerivative |
typedef std::map< const TrackStateOnSurface *, HitDerivative * > | DerivativeMap |
typedef DerivativeMap::value_type | DerivativePair |
Protected Member Functions | |
Amg::VectorX | getDerivatives (AlignTrack *alignTrack, int ipar, AlignPar *alignPar, Amg::VectorX &derivativeErr, bool &resetIPar, double &actualSecondDerivative) |
void | setChi2VAlignParam (const AlignTrack *alignTrack, const AlignModule *module, int nshifts=0) |
void | deleteChi2VAlignParam () |
double | shiftSize (const AlignPar *alignPar) const |
bool | setUnshiftedResiduals (AlignTrack *alignTrack) |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Protected Attributes | |
std::ostream * | m_logStream |
logfile output stream More... | |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
const Trk::Track * | bestPerigeeTrack (const Track *track) const |
bool | scanShifts (const AlignTrack *alignTrack, const std::vector< AlignModule * > &alignModules) |
bool | getAllDerivatives (AlignTrack *alignTrack, const AlignModule *alignModule, std::vector< Amg::VectorX > &deriv_vec, std::vector< Amg::VectorX > &derivErr_vec, std::vector< double > &actualsecderiv_vec, bool &resetIPar) |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
specialization for handling Gaudi::Property<SG::VarHandleKey> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
specialization for handling Gaudi::Property<SG::VarHandleBase> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More... | |
Private Attributes | |
ToolHandle< IGlobalTrackFitter > | m_trackFitterTool |
ToolHandle< IGlobalTrackFitter > | m_SLTrackFitterTool |
ToolHandle< IGlobalTrackFitter > | m_fitter |
ToolHandle< IAlignResidualCalculator > | m_residualCalculator |
ToolHandle< IAlignModuleTool > | m_alignModuleTool |
double | m_traSize |
double | m_rotSize |
bool | m_runOutlierRemoval |
ParticleHypothesis | m_particleHypothesis |
int | m_particleNumber |
DerivativeMap | m_derivative_map |
bool | m_doFits |
int | m_nFits |
bool | m_doChi2VAlignParamMeasType |
int | m_nChamberShifts |
bool | m_doResidualPlots |
int | m_nIterations |
Amg::VectorX * | m_unshiftedResiduals |
Amg::VectorX * | m_unshiftedResErrors |
std::vector< double ** > | m_chi2VAlignParamVec |
track chi2[idof][ichambershift] More... | |
std::vector< double ** > | m_chi2VAlignParamXVec |
chamber shift[idof][ichambershift] More... | |
double ** | m_tmpChi2VAlignParam |
double ** | m_tmpChi2VAlignParamX |
double *** | m_tmpChi2VAlignParamMeasType |
std::vector< double *** > | m_chi2VAlignParamVecMeasType |
track chi2[idof][imeastype][ichambershift] More... | |
double | m_unshiftedTrackChi2 |
double * | m_unshiftedTrackChi2MeasType |
double | m_trackAlignParamCut |
cut on value of track alignment parameter, determined from fit of chi2 vs. More... | |
bool | m_setMinIterations |
fit track with AlignModules shifted up and down in each extreme, find the number of iterations fitter uses to converge. More... | |
int | m_maxIter |
reject track if exceed maximum number of iterations More... | |
int | m_minIter |
set minimum number of iterations for first track fits More... | |
bool | m_removeScatteringBeforeRefit |
flag to remove scattering before refitting track More... | |
int | m_ntracksProcessed |
number tracks processed More... | |
int | m_ntracksPassInitScan |
number tracks pass initial scan More... | |
int | m_ntracksPassSetUnshiftedRes |
number tracks pass setting unshifted residuals More... | |
int | m_ntracksPassDerivatives |
number tracks pass setting derivatives More... | |
int | m_ntracksPassGetDeriv |
number tracks pass getting derivatives More... | |
int | m_ntracksPassGetDerivSecPass |
number tracks pass 2nd pass of getting derivatives More... | |
int | m_ntracksPassGetDerivLastPass |
number tracks pass 2nd pass of getting derivatives More... | |
int | m_ntracksFailMaxIter |
int | m_ntracksFailTrackRefit |
int | m_ntracksFailAlignParamCut |
int | m_ntracksFailFinalAttempt |
bool | m_secPass |
int | m_solveOption = 0 |
StoreGateSvc_t | m_evtStore |
Pointer to StoreGate (event store by default) More... | |
StoreGateSvc_t | m_detStore |
Pointer to StoreGate (detector store by default) More... | |
std::vector< SG::VarHandleKeyArray * > | m_vhka |
bool | m_varHandleArraysDeclared |
Definition at line 47 of file ShiftingDerivCalcTool.h.
|
protected |
Definition at line 69 of file ShiftingDerivCalcTool.h.
|
protected |
Definition at line 70 of file ShiftingDerivCalcTool.h.
|
protected |
Definition at line 68 of file ShiftingDerivCalcTool.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
|
inherited |
enum of different solving options
Definition at line 41 of file IDerivCalcTool.h.
ShiftingDerivCalcTool::ShiftingDerivCalcTool | ( | const std::string & | type, |
const std::string & | name, | ||
const IInterface * | parent | ||
) |
Definition at line 39 of file ShiftingDerivCalcTool.cxx.
|
virtual |
Definition at line 110 of file ShiftingDerivCalcTool.cxx.
|
private |
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
protected |
Definition at line 920 of file ShiftingDerivCalcTool.cxx.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
StatusCode ShiftingDerivCalcTool::finalize | ( | ) |
Definition at line 146 of file ShiftingDerivCalcTool.cxx.
|
private |
Definition at line 936 of file ShiftingDerivCalcTool.cxx.
|
protected |
Definition at line 496 of file ShiftingDerivCalcTool.cxx.
StatusCode ShiftingDerivCalcTool::initialize | ( | ) |
Definition at line 117 of file ShiftingDerivCalcTool.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlinestaticinherited |
Retrieve interface ID.
Definition at line 84 of file IDerivCalcTool.h.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
private |
Definition at line 164 of file ShiftingDerivCalcTool.cxx.
|
protected |
|
virtual |
sets derivatives of residuals w.r.t.
alignment parameters for hits on track.
Implements Trk::IDerivCalcTool.
Definition at line 328 of file ShiftingDerivCalcTool.cxx.
|
inlinevirtualinherited |
|
virtual |
sets residual covariance matrix
Implements Trk::IDerivCalcTool.
Definition at line 880 of file ShiftingDerivCalcTool.cxx.
|
inlineinherited |
|
protected |
Definition at line 246 of file ShiftingDerivCalcTool.cxx.
Definition at line 866 of file ShiftingDerivCalcTool.cxx.
|
inlinevirtual |
write statistics to log file
Implements Trk::IDerivCalcTool.
Definition at line 60 of file ShiftingDerivCalcTool.h.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
Definition at line 107 of file ShiftingDerivCalcTool.h.
|
private |
track chi2[idof][ichambershift]
Definition at line 130 of file ShiftingDerivCalcTool.h.
|
private |
track chi2[idof][imeastype][ichambershift]
Definition at line 139 of file ShiftingDerivCalcTool.h.
|
private |
chamber shift[idof][ichambershift]
Definition at line 131 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 117 of file ShiftingDerivCalcTool.h.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
private |
Definition at line 121 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 119 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 123 of file ShiftingDerivCalcTool.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Definition at line 101 of file ShiftingDerivCalcTool.h.
|
protectedinherited |
logfile output stream
Definition at line 76 of file IDerivCalcTool.h.
|
private |
reject track if exceed maximum number of iterations
Definition at line 148 of file ShiftingDerivCalcTool.h.
|
private |
set minimum number of iterations for first track fits
Definition at line 150 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 122 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 120 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 124 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 163 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 164 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 161 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 162 of file ShiftingDerivCalcTool.h.
|
private |
number tracks pass setting derivatives
Definition at line 157 of file ShiftingDerivCalcTool.h.
|
private |
number tracks pass getting derivatives
Definition at line 158 of file ShiftingDerivCalcTool.h.
|
private |
number tracks pass 2nd pass of getting derivatives
Definition at line 160 of file ShiftingDerivCalcTool.h.
|
private |
number tracks pass 2nd pass of getting derivatives
Definition at line 159 of file ShiftingDerivCalcTool.h.
|
private |
number tracks pass initial scan
Definition at line 155 of file ShiftingDerivCalcTool.h.
|
private |
number tracks pass setting unshifted residuals
Definition at line 156 of file ShiftingDerivCalcTool.h.
|
private |
number tracks processed
Definition at line 154 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 113 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 115 of file ShiftingDerivCalcTool.h.
|
private |
flag to remove scattering before refitting track
Definition at line 152 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 106 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 110 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 112 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 166 of file ShiftingDerivCalcTool.h.
|
private |
fit track with AlignModules shifted up and down in each extreme, find the number of iterations fitter uses to converge.
Set this number for all subsequent track refits.
Definition at line 146 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 100 of file ShiftingDerivCalcTool.h.
|
privateinherited |
Definition at line 80 of file IDerivCalcTool.h.
|
private |
Definition at line 133 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 135 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 134 of file ShiftingDerivCalcTool.h.
|
private |
cut on value of track alignment parameter, determined from fit of chi2 vs.
align parameters to a quadratic
Definition at line 144 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 99 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 109 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 127 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 126 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 141 of file ShiftingDerivCalcTool.h.
|
private |
Definition at line 142 of file ShiftingDerivCalcTool.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.