|
ATLAS Offline Software
|
#include <InDetDetailedTrackSelectorTool.h>
|
StatusCode | initialize () |
|
StatusCode | finalize () |
|
| InDetDetailedTrackSelectorTool (const std::string &t, const std::string &n, const IInterface *p) |
|
| ~InDetDetailedTrackSelectorTool () |
|
bool | decision (const Trk::Track &track, const Trk::Vertex *vertex) const |
|
bool | decision (const Trk::TrackParticleBase &track, const Trk::Vertex *vertex) const |
|
bool | decision (const xAOD::TrackParticle &track, const xAOD::Vertex *vertex) const |
|
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 |
|
|
int | getCount (const xAOD::TrackParticle &tp, xAOD::SummaryType type) const |
|
bool | decision (const Trk::Perigee *track, const AmgSymMatrix(3) *covariancePosition) const |
|
bool | decision (const Trk::FitQuality *TrkQuality) const |
|
bool | decision (double chi2, int ndf) const |
|
bool | decision (const Trk::TrackSummary *summary, const xAOD::TrackParticle *tp, bool useSharedHitInfo, bool useTrtHitInfo, const Trk::Perigee *track, const int nHitTrt, const int nHitTrtPlusOutliers) const |
|
bool | preselectionBeforeExtrapolation (const Trk::Perigee &myPerigee) const |
|
Amg::Vector3D | getPosOrBeamSpot (const xAOD::Vertex *) const |
|
Trk::Vertex * | getBeamSpot (const EventContext &) const |
|
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...
|
|
|
DoubleProperty | m_pTMin {this, "pTMin", 1.*CLHEP::GeV, "min. pT: |pT|>pTMin"} |
|
DoubleProperty | m_pMin {this, "pMin", 0., "min. p = pT/cos(theta): |p| > pMin"} |
|
DoubleProperty | m_IPd0Max {this, "IPd0Max", 2.*CLHEP::mm, "max. d0: |d0|<d0Max"} |
|
DoubleProperty | m_IPz0Max {this, "IPz0Max", 1.5*CLHEP::mm, "max. z0: |z0*sin(theta)|<z0Max"} |
|
DoubleProperty | m_z0Max {this, "z0Max", 9999.*CLHEP::mm, "max. z0: |z0|<z0Max"} |
|
DoubleProperty | m_sigIPd0Max {this, "sigIPd0Max", 999.*CLHEP::mm, "max d0 error"} |
|
DoubleProperty | m_sigIPz0Max {this, "sigIPz0Max", 999.*CLHEP::mm, "max (error only due to z0)*sin(theta)"} |
|
DoubleProperty | m_d0significanceMax {this, "d0significanceMax", -1., "max IP significance d0 (-1 switches it off)"} |
|
DoubleProperty | m_z0significanceMax {this, "z0significanceMax", -1., "max IP significance z0 (-1 switches it off)"} |
|
DoubleProperty | m_etaMax {this, "etaMax", 9999., "max. pseudo-rapidity"} |
|
BooleanProperty | m_useTrackSummaryInfo {this, "useTrackSummaryInfo", true} |
|
IntegerProperty | m_nHitBLayer {this, "nHitBLayer", 1, "at least n hits in Blayer"} |
|
IntegerProperty | m_nHitPix {this, "nHitPix", 2, "at least n hits in pixels"} |
|
IntegerProperty | m_nHitSct {this, "nHitSct", 0, "at least n hits in SCT"} |
|
IntegerProperty | m_nHitSi {this, "nHitSi", 7, "at least n hits in pixels+SCT"} |
|
IntegerProperty | m_nHitPixPhysical {this, "nHitPixPhysical", 0, "at least n physical hits in pixel"} |
|
IntegerProperty | m_nHitSiPhysical {this, "nHitSiPhysical", 3, "at least n physical hits in pixel+SCT"} |
|
IntegerProperty | m_nHitTrt {this, "nHitTrt", 0, "at least n hits in TRT"} |
|
IntegerProperty | m_nHitTrtPlusOutliers |
|
IntegerProperty | m_nHitTrtHighE {this, "nHitTrtHighE", 0, "at least n high threshold hits in TRT"} |
|
IntegerProperty | m_nHitTrtPlusOutliersHighE |
|
DoubleProperty | m_nHitTrtHighEFraction {this, "nHitTrtHighEFractionMax", 999., "maximum x fraction of transition hits in TRT"} |
|
DoubleProperty | m_nHitTrtHighEFractionWithOutliers |
|
DoubleProperty | m_TrtMaxEtaAcceptance |
|
BooleanProperty | m_useSharedHitInfo {this, "useSharedHitInfo", false} |
|
IntegerProperty | m_nSharedBLayer {this, "nSharedBLayer", 0, "max. number of shared hits in B layer"} |
|
IntegerProperty | m_nSharedPix {this, "nSharedPix", 0, "max. number of shared hits in pixels"} |
|
IntegerProperty | m_nSharedSct {this, "nSharedSct", 1, "max. number of shared hits in SCT"} |
|
IntegerProperty | m_nSharedSi {this, "nSharedSi", 999, "max. number of shared hits in pixels+SCT"} |
|
IntegerProperty | m_nHoles {this, "nHoles", 999, "max. number of holes in pixel+SCT"} |
|
IntegerProperty | m_nDoubleHoles {this, "nDoubleHoles", 999, "max number of double-holes in SCT"} |
|
IntegerProperty | m_nHolesPix {this, "nHolesPixel", 999, "max. number of holes in pixels"} |
|
IntegerProperty | m_nHolesSct {this, "nHolesSct", 999, "max. number of holes in SCT"} |
|
BooleanProperty | m_useTrackQualityInfo {this, "useTrackQualityInfo", true} |
|
DoubleProperty | m_fitChi2 {this, "fitChi2", 99999., "max. fit chi2"} |
|
DoubleProperty | m_fitProb {this, "fitProb", -1., "min. fit chi2 probability"} |
|
DoubleProperty | m_fitChi2OnNdfMax {this, "fitChi2OnNdfMax", 999., "max. fitchi2/ndf"} |
|
DoubleProperty | m_scaleMinHitTrt |
|
IntegerProperty | m_addToMinHitTrt |
|
DoubleProperty | m_scaleMinHitTrtWithOutliers |
|
IntegerProperty | m_addToMinHitTrtWithOutliers |
|
BooleanProperty | m_usePreselectionCuts {this, "usePreselectionCuts", false} |
|
DoubleProperty | m_d0MaxPreselection {this, "d0MaxPreselection", 10.} |
|
BooleanProperty | m_useEtaDepententMinHitTrt {this, "useEtaDepententMinHitTrt", false} |
|
BooleanProperty | m_useEtaDepententMinHitTrtWithOutliers {this, "useEtaDepententMinHitTrtWithOutliers", false} |
|
ToolHandle< Trk::ITrackSummaryTool > | m_trackSumTool {this, "TrackSummaryTool", "Trk::TrackSummaryTool"} |
|
ToolHandle< Trk::ITrackParticleCreatorTool > | m_particleCreator {this, "TrackParticleCreatorTool", ""} |
|
ToolHandle< Trk::IExtrapolator > | m_extrapolator {this, "Extrapolator", "Trk::Extrapolator"} |
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"} |
|
ToolHandle< ITrtDriftCircleCutTool > | m_trtDCTool |
|
ToolHandle< InDet::IInDetTestPixelLayerTool > | m_inDetTestPixelLayerTool |
|
SG::ReadCondHandleKey< AtlasFieldCacheCondObj > | m_fieldCacheCondObjInputKey |
|
bool | m_trackSumToolAvailable = true |
|
bool | m_partCreatorToolAvailable = false |
|
BooleanProperty | m_usePtDependentCuts {this, "UsePtDependentCuts", false} |
|
FloatArrayProperty | m_ptBenchmarks {this, "PtBenchmarks", {}} |
|
IntegerArrayProperty | m_nSCTValues {this, "SCTCutValues", {}} |
|
SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfo_key {this, "EventInfo", "EventInfo", "Input event information"} |
|
BooleanProperty | m_useEventInfoBs {this, "UseEventInfoBS", false, "Access beamspot via the EvenInfo object"} |
|
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 |
|
◆ StoreGateSvc_t
◆ Grade
◆ InDetDetailedTrackSelectorTool()
InDet::InDetDetailedTrackSelectorTool::InDetDetailedTrackSelectorTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~InDetDetailedTrackSelectorTool()
InDet::InDetDetailedTrackSelectorTool::~InDetDetailedTrackSelectorTool |
( |
| ) |
|
|
default |
◆ decision() [1/7]
◆ decision() [2/7]
Definition at line 652 of file InDetDetailedTrackSelectorTool.cxx.
656 ATH_MSG_WARNING(
"Decision on measured perigee: Zero pointer to measured perigee passed. Selection failed." );
663 const EventContext& ctx = Gaudi::Hive::currentContext();
666 if (fieldCondObj ==
nullptr) {
671 fieldCondObj->getInitializedCache (fieldCache);
719 double d0wrtPriVtx = perigeeParms[
Trk::d0];
721 double z0wrtPriVtx =
deltaZ*sinTheta;
729 double DD0 = testtrackSigD0*testtrackSigD0;
731 if (covariancePosition) {
732 double DXX = dIPdx*dIPdx* (*covariancePosition)(0,0);
733 double DYY = dIPdy*dIPdy* (*covariancePosition)(1,1);
734 double DXY = 2.*dIPdx*dIPdy* (*covariancePosition)(0,1);
735 newD0Err = DD0 + DXX + DYY + DXY;
740 double d0ErrwrtPriVtx = (newD0Err>0 ? sqrt(newD0Err) : -10
e-9);
742 if (d0ErrwrtPriVtx<0) {
743 ATH_MSG_WARNING(
" error on d0 is negative: numeric error... (not expected. please report!)" );
756 double dZIPdTheta =
deltaZ*cosTheta;
757 double dZIPdz0 = sinTheta;
758 double dZIPdzV = -sinTheta;
759 double DTheta2 = dZIPdTheta*dZIPdTheta*testtrackSigTh*testtrackSigTh;
760 double DZ02 = dZIPdz0*dZIPdz0*testtrackSigZ0*testtrackSigZ0;
763 if (covariancePosition) {
764 double DZV2 = dZIPdzV*dZIPdzV* (*covariancePosition)(2,2);
765 newZ0Err = DTheta2 + DZ02 + DZV2 + DThetaZ0;
767 newZ0Err = DTheta2 + DZ02 + DThetaZ0;
770 double z0ErrwrtPriVtx = (newZ0Err>0 ? sqrt(newZ0Err) : -10
e-9);
772 if (z0ErrwrtPriVtx<0) {
773 ATH_MSG_WARNING(
" error on z0 is negative: numeric error... (not expected. please report!)" );
◆ decision() [3/7]
Implements Trk::ITrackSelectorTool.
Definition at line 129 of file InDetDetailedTrackSelectorTool.cxx.
135 if (!preselectionDecision) {
136 ATH_MSG_DEBUG(
"Track rejected because of preselection decision!");
140 ATH_MSG_DEBUG(
" Preselection was requested but cannot be made since no Perigee in Track is available. This is not an error." );
144 if (myVertex==
nullptr) {
145 myVertex =
getBeamSpot(Gaudi::Hive::currentContext());
149 for (
const auto *
i : *
track.trackParameters()){
158 firstmeaspar=
track.perigeeParameters();
160 ATH_MSG_WARNING(
" First measurment on track is missing. Using perigee Parameters, but they are missing: 0 pointer! Track selection failed " );
174 track.info().particleHypothesis() ).release();
175 const Trk::Perigee* extrapolatedPerigee = extrapolatedParameters ?
dynamic_cast<const Trk::Perigee*
>(extrapolatedParameters) :
nullptr;
176 if (!extrapolatedPerigee || !extrapolatedPerigee->covariance() ) {
178 if (extrapolatedParameters) {
179 ATH_MSG_WARNING(
"The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
180 delete extrapolatedParameters;
181 extrapolatedParameters=
nullptr;
187 bool dec =
decision(extrapolatedPerigee, recVertex ? &recVertex->covariancePosition() :
nullptr );
192 bool isInTrtAcceptance=
true;
193 if (!extrapolatedPerigee || std::fabs(extrapolatedPerigee->momentum().eta())>
m_TrtMaxEtaAcceptance) {
194 isInTrtAcceptance=
false;
196 if (extrapolatedPerigee!=
track.perigeeParameters()) {
197 delete extrapolatedPerigee;
198 extrapolatedPerigee=
nullptr;
201 ATH_MSG_DEBUG(
"Track rejected because of perigee parameters!");
206 if (TrkQuality==
nullptr) {
207 ATH_MSG_WARNING(
"Requested cut on track quality was not possible. Track has no FitQuality object attached. Selection failed." );
217 std::unique_ptr<Trk::TrackSummary> summaryUniquePtr;
221 summary = summaryUniquePtr.get();
224 ATH_MSG_FATAL(
"Track preselection: cannot create a track summary (but useTrackSummary is true). Selection failed." );
231 ATH_MSG_FATAL(
"Track preselection: cannot create a track particle (but useSharedHitInfo is true). Selection failed." );
247 nHitTrtPlusOutliers =
m_trtDCTool->minNumberDCs( (*
track.trackParameters())[0] );
256 nHitTrt, nHitTrtPlusOutliers)) {
◆ decision() [4/7]
Implements Trk::ITrackSelectorTool.
Definition at line 265 of file InDetDetailedTrackSelectorTool.cxx.
272 if (!preselectionDecision) {
273 ATH_MSG_DEBUG(
"Track rejected because of preselection decision!");
277 ATH_MSG_WARNING(
" Preselection was requested but cannot be made since the Perigee is not the defining Parameter of the TrackParticle. This is not an error." );
279 bool isInTrtAcceptance=
true;
280 if (!perigeeBeforeExtrapolation || std::fabs(perigeeBeforeExtrapolation->momentum().eta())>
m_TrtMaxEtaAcceptance) {
281 isInTrtAcceptance=
false;
285 if (TrkQuality==
nullptr) {
286 ATH_MSG_WARNING(
"Requested cut on track quality was not possible. TrackParticleBase has no FitQuality object attached. Selection failed." );
297 ATH_MSG_WARNING(
"Track preselection: cannot create a track summary (but useTrackSummary is true). Selection failed." );
303 ATH_MSG_ERROR(
"Use of InDetDetailedTrackSelectorTool with Trk::TrackParticleBase and useSharedHitInfo is not supported");
318 nHitTrtPlusOutliers =
m_trtDCTool->minNumberDCs( (
track.trackParameters())[0] );
326 if ((!perigeeBeforeExtrapolation) or
328 nHitTrt, nHitTrtPlusOutliers))) {
335 myVertex =
getBeamSpot(Gaudi::Hive::currentContext());
339 for (
const auto *
i :
track.trackParameters()) {
340 if (
i->covariance() &&
347 if (!extrapolatedPerigee || !extrapolatedPerigee->covariance() ) {
348 ATH_MSG_DEBUG(
" Track Paraemters at first measurement not found. Perigee not found. Cannot do TrackSelection..." );
356 firstmeaspar=&(
track.definingParameters());
368 extrapolatedPerigee = extrapolatedParameters ?
dynamic_cast<const Trk::Perigee*
>(extrapolatedParameters) :
nullptr;
369 if (extrapolatedPerigee==
nullptr || !extrapolatedPerigee->covariance()) {
371 if (extrapolatedParameters) {
372 ATH_MSG_WARNING(
"The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
373 delete extrapolatedParameters;
374 extrapolatedParameters =
nullptr;
377 if (extrapolatedParameters)
ATH_MSG_VERBOSE (
"Result: " << *extrapolatedParameters);
379 bool dec =
decision(extrapolatedPerigee, recVertex ? &recVertex->covariancePosition() :
nullptr );
384 if (extrapolatedPerigee!=&(
track.definingParameters())) {
385 delete extrapolatedPerigee;
386 extrapolatedPerigee=
nullptr;
389 ATH_MSG_DEBUG(
"Track rejected because of perigee parameters!");
◆ decision() [5/7]
Definition at line 834 of file InDetDetailedTrackSelectorTool.cxx.
843 ATH_MSG_WARNING(
"Null TrackSummary pointer passed. Selection failed." );
861 if (nhp < 0) nhp = 0;
864 if (nhs < 0) nhs = 0;
867 if (ndhs < 0) ndhs = 0;
882 ATH_MSG_DEBUG(
"Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
889 ATH_MSG_DEBUG(
"Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
902 ATH_MSG_DEBUG(
"and no blayer tool configured, so will not try to recover track");
905 ATH_MSG_DEBUG(
"and track rejected because at least one hit is expected in the innermost pixel layer") ;
907 }
else ATH_MSG_DEBUG(
"recovered track as no b-layer expected") ;
973 ATH_MSG_DEBUG(
"Track rejected because of nHitTrt "<<nh<<
" < "<<nHitTrt);
979 if (nhh<nHitTrtPlusOutliers) {
980 ATH_MSG_DEBUG(
"Track rejected because of nHitTrtPlusOutliers "<<nhh<<
" < "<<nHitTrtPlusOutliers);
985 if (nhthits<0) nhthits=0;
992 if (nhthitsWithOutliers<0) nhthitsWithOutliers=0;
1010 if(nheh<0.) nheh=0.;
1011 if (nheh>1.) nheh=1.;
1019 if (useSharedHitInfo) {
1021 ATH_MSG_DEBUG(
"Track rejected because xAOD::TrackParticle not available");
1026 if(nbs < 0) nbs = 0;
1034 if(nps < 0) nps = 0;
1041 if(nss < 0) nss = 0;
1047 int nst = nps + nss;
◆ decision() [6/7]
Implements Trk::ITrackSelectorTool.
Definition at line 422 of file InDetDetailedTrackSelectorTool.cxx.
429 ATH_MSG_DEBUG(
"Track rejected because of preselection decision!");
450 nHitTrtPlusOutliers =
m_trtDCTool->minNumberDCs( &perigee );
472 ATH_MSG_DEBUG(
"Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
479 ATH_MSG_DEBUG(
"Track rejected because of Pt-Dependent SCT Hit cut (CAREFUL! Excludes dead modules)") ;
491 ATH_MSG_DEBUG(
"and track rejected because at least one hit is expected in the innermost pixel layer") ;
493 }
else ATH_MSG_DEBUG(
"recovered track as no b-layer expected") ;
546 ATH_MSG_DEBUG(
"Track rejected because of nHitTrt "<<nh<<
" < "<<nHitTrt);
551 if (nhh<nHitTrtPlusOutliers) {
552 ATH_MSG_DEBUG(
"Track rejected because of nHitTrtPlusOutliers "<<nhh<<
" < "<<nHitTrtPlusOutliers);
581 if (nheh>1.) nheh=1.;
618 Gaudi::Hive::currentContext(),
619 perigee,perigeeSurface,
621 const Trk::Perigee* extrapolatedPerigee = extrapolatedParameters ?
dynamic_cast<const Trk::Perigee*
>(extrapolatedParameters) :
nullptr;
622 if (extrapolatedPerigee==
nullptr) {
623 ATH_MSG_WARNING(
"Extrapolation to the vertex failed: " << perigeeSurface << std::endl << perigee );
624 if (extrapolatedParameters!=
nullptr) {
625 ATH_MSG_WARNING(
"The return object of the extrapolator was not a perigee even if a perigeeSurface was used!" );
626 delete extrapolatedParameters;
627 extrapolatedParameters=
nullptr;
635 dec =
decision(extrapolatedPerigee,&vertexError);
637 dec =
decision(extrapolatedPerigee,
nullptr);
640 delete extrapolatedPerigee;
643 ATH_MSG_DEBUG(
"Track rejected because of perigee parameters!");
◆ decision() [7/7]
bool InDet::InDetDetailedTrackSelectorTool::decision |
( |
double |
chi2, |
|
|
int |
ndf |
|
) |
| const |
|
private |
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
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.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
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.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
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
◆ finalize()
StatusCode InDet::InDetDetailedTrackSelectorTool::finalize |
( |
| ) |
|
◆ getBeamSpot()
Trk::Vertex * InDet::InDetDetailedTrackSelectorTool::getBeamSpot |
( |
const EventContext & |
ctx | ) |
const |
|
private |
◆ getCount()
◆ getPosOrBeamSpot()
Definition at line 395 of file InDetDetailedTrackSelectorTool.cxx.
402 evt->beamPosSigmaX(),
evt->beamPosSigmaY(),
evt->beamPosSigmaZ(),
403 evt->beamTiltXZ(),
evt->beamTiltYZ(),
evt->beamPosSigmaXY());
404 return temp.beamVtx().position();
406 ATH_MSG_WARNING(
" Cannot get beamSpot center from xAOD::EventInfo. Using (0,0,0)... " );
411 if (beamSpotHandle.isValid()) {
412 return beamSpotHandle->beamVtx().position();
414 ATH_MSG_WARNING(
" Cannot get beamSpot center from BeamSpotData. Using (0,0,0)... " );
◆ initialize()
StatusCode InDet::InDetDetailedTrackSelectorTool::initialize |
( |
| ) |
|
Definition at line 68 of file InDetDetailedTrackSelectorTool.cxx.
70 ATH_MSG_DEBUG(
"No TrackSummaryTool set. OK if running on AOD.");
76 ATH_MSG_DEBUG(
"No TrackParticleCreatorTool set but shared hit selection used. OK if running on AOD.");
86 ATH_MSG_ERROR(
" Eta dependent cut on number of TRT hits requested but TrtDCCutTool not specified. ");
87 return StatusCode::FAILURE;
90 return StatusCode::FAILURE;
94 ATH_MSG_DEBUG(
"Using eta dependent cut on number of TRT hits.");
97 ATH_MSG_DEBUG(
"Using eta dependent cut on number of TRT hits + outliers.");
110 ATH_MSG_ERROR(
"Number of cuts DOES NOT match the number of intervals to apply. Please check jobOptions. ");
111 return StatusCode::FAILURE;
113 ATH_MSG_ERROR(
"Zero vectors for number of cuts and pt intervals. Please check jobOptions. ");
114 return StatusCode::FAILURE;
117 return StatusCode::SUCCESS;
◆ inputHandles()
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.
◆ interfaceID()
static const InterfaceID& Trk::ITrackSelectorTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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.
◆ preselectionBeforeExtrapolation()
bool InDet::InDetDetailedTrackSelectorTool::preselectionBeforeExtrapolation |
( |
const Trk::Perigee & |
myPerigee | ) |
const |
|
private |
Definition at line 1059 of file InDetDetailedTrackSelectorTool.cxx.
1061 const AmgVector(5)& perigeeParms = myPerigee.parameters();
1064 const EventContext& ctx = Gaudi::Hive::currentContext();
1067 if (fieldCondObj ==
nullptr) {
1072 fieldCondObj->getInitializedCache (fieldCache);
1076 ATH_MSG_DEBUG(
"Track rejected because of perigee qOverP == 0.");
◆ renounce()
◆ renounceArray()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_addToMinHitTrt
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_addToMinHitTrt |
|
private |
◆ m_addToMinHitTrtWithOutliers
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_addToMinHitTrtWithOutliers |
|
private |
Initial value:{this, "addToMinHitTrtWithOutliers", 0,
"add to/subtract from eta dependent minimum nimber of TRT hits + outliers"}
Definition at line 183 of file InDetDetailedTrackSelectorTool.h.
◆ m_beamSpotKey
◆ m_d0MaxPreselection
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_d0MaxPreselection {this, "d0MaxPreselection", 10.} |
|
private |
◆ m_d0significanceMax
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_d0significanceMax {this, "d0significanceMax", -1., "max IP significance d0 (-1 switches it off)"} |
|
private |
◆ m_detStore
◆ m_etaMax
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_etaMax {this, "etaMax", 9999., "max. pseudo-rapidity"} |
|
private |
◆ m_eventInfo_key
◆ m_evtStore
◆ m_extrapolator
◆ m_fieldCacheCondObjInputKey
Initial value:{this, "AtlasFieldCacheCondObj", "fieldCondObj",
"Name of the Magnetic Field conditions object key"}
Definition at line 211 of file InDetDetailedTrackSelectorTool.h.
◆ m_fitChi2
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_fitChi2 {this, "fitChi2", 99999., "max. fit chi2"} |
|
private |
◆ m_fitChi2OnNdfMax
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_fitChi2OnNdfMax {this, "fitChi2OnNdfMax", 999., "max. fitchi2/ndf"} |
|
private |
◆ m_fitProb
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_fitProb {this, "fitProb", -1., "min. fit chi2 probability"} |
|
private |
◆ m_inDetTestPixelLayerTool
Initial value:{this, "InDetTestPixelLayerTool", "",
"Tool to test if the track crosses a dead module on the b-layer"}
Definition at line 207 of file InDetDetailedTrackSelectorTool.h.
◆ m_IPd0Max
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_IPd0Max {this, "IPd0Max", 2.*CLHEP::mm, "max. d0: |d0|<d0Max"} |
|
private |
◆ m_IPz0Max
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_IPz0Max {this, "IPz0Max", 1.5*CLHEP::mm, "max. z0: |z0*sin(theta)|<z0Max"} |
|
private |
◆ m_nDoubleHoles
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nDoubleHoles {this, "nDoubleHoles", 999, "max number of double-holes in SCT"} |
|
private |
◆ m_nHitBLayer
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitBLayer {this, "nHitBLayer", 1, "at least n hits in Blayer"} |
|
private |
◆ m_nHitPix
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitPix {this, "nHitPix", 2, "at least n hits in pixels"} |
|
private |
◆ m_nHitPixPhysical
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitPixPhysical {this, "nHitPixPhysical", 0, "at least n physical hits in pixel"} |
|
private |
◆ m_nHitSct
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitSct {this, "nHitSct", 0, "at least n hits in SCT"} |
|
private |
◆ m_nHitSi
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitSi {this, "nHitSi", 7, "at least n hits in pixels+SCT"} |
|
private |
◆ m_nHitSiPhysical
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitSiPhysical {this, "nHitSiPhysical", 3, "at least n physical hits in pixel+SCT"} |
|
private |
◆ m_nHitTrt
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitTrt {this, "nHitTrt", 0, "at least n hits in TRT"} |
|
private |
◆ m_nHitTrtHighE
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitTrtHighE {this, "nHitTrtHighE", 0, "at least n high threshold hits in TRT"} |
|
private |
◆ m_nHitTrtHighEFraction
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_nHitTrtHighEFraction {this, "nHitTrtHighEFractionMax", 999., "maximum x fraction of transition hits in TRT"} |
|
private |
◆ m_nHitTrtHighEFractionWithOutliers
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_nHitTrtHighEFractionWithOutliers |
|
private |
Initial value:{this, "nHitTrtHighEFractionWithOutliersMax", 999.,
"maximum x fraction of transition hits in TRT (including outliers)"}
Definition at line 140 of file InDetDetailedTrackSelectorTool.h.
◆ m_nHitTrtPlusOutliers
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitTrtPlusOutliers |
|
private |
◆ m_nHitTrtPlusOutliersHighE
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHitTrtPlusOutliersHighE |
|
private |
Initial value:{this, "nHitTrtPlusOutliersHighE", 0,
"at least n high threshold hits in TRT (including outliers)"}
Definition at line 134 of file InDetDetailedTrackSelectorTool.h.
◆ m_nHoles
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHoles {this, "nHoles", 999, "max. number of holes in pixel+SCT"} |
|
private |
◆ m_nHolesPix
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHolesPix {this, "nHolesPixel", 999, "max. number of holes in pixels"} |
|
private |
◆ m_nHolesSct
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nHolesSct {this, "nHolesSct", 999, "max. number of holes in SCT"} |
|
private |
◆ m_nSCTValues
IntegerArrayProperty InDet::InDetDetailedTrackSelectorTool::m_nSCTValues {this, "SCTCutValues", {}} |
|
private |
◆ m_nSharedBLayer
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nSharedBLayer {this, "nSharedBLayer", 0, "max. number of shared hits in B layer"} |
|
private |
◆ m_nSharedPix
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nSharedPix {this, "nSharedPix", 0, "max. number of shared hits in pixels"} |
|
private |
◆ m_nSharedSct
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nSharedSct {this, "nSharedSct", 1, "max. number of shared hits in SCT"} |
|
private |
◆ m_nSharedSi
IntegerProperty InDet::InDetDetailedTrackSelectorTool::m_nSharedSi {this, "nSharedSi", 999, "max. number of shared hits in pixels+SCT"} |
|
private |
◆ m_partCreatorToolAvailable
bool InDet::InDetDetailedTrackSelectorTool::m_partCreatorToolAvailable = false |
|
private |
◆ m_particleCreator
◆ m_pMin
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_pMin {this, "pMin", 0., "min. p = pT/cos(theta): |p| > pMin"} |
|
private |
◆ m_ptBenchmarks
FloatArrayProperty InDet::InDetDetailedTrackSelectorTool::m_ptBenchmarks {this, "PtBenchmarks", {}} |
|
private |
◆ m_pTMin
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_pTMin {this, "pTMin", 1.*CLHEP::GeV, "min. pT: |pT|>pTMin"} |
|
private |
◆ m_scaleMinHitTrt
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_scaleMinHitTrt |
|
private |
Initial value:{this, "scaleMinHitTrt", 1.,
"scale the eta dependent minimum number of TRT hits; scaling is only applied if m_addToMinHitTrt==0"}
Definition at line 174 of file InDetDetailedTrackSelectorTool.h.
◆ m_scaleMinHitTrtWithOutliers
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_scaleMinHitTrtWithOutliers |
|
private |
Initial value:{this, "scaleMinHitTrtWithOutliers", 1.,
"scale the eta dependent minimum number of TRT hits + outliers; scaling is only applied if m_addToMinHitTrtWithOutliers==0"}
Definition at line 180 of file InDetDetailedTrackSelectorTool.h.
◆ m_sigIPd0Max
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_sigIPd0Max {this, "sigIPd0Max", 999.*CLHEP::mm, "max d0 error"} |
|
private |
◆ m_sigIPz0Max
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_sigIPz0Max {this, "sigIPz0Max", 999.*CLHEP::mm, "max (error only due to z0)*sin(theta)"} |
|
private |
◆ m_trackSumTool
◆ m_trackSumToolAvailable
bool InDet::InDetDetailedTrackSelectorTool::m_trackSumToolAvailable = true |
|
private |
◆ m_trtDCTool
Initial value:{this, "TrtDCCutTool", "InDet::InDetTrtDriftCircleCutTool",
"Tool to get eta dependent cut on number of TRT hits"}
Definition at line 203 of file InDetDetailedTrackSelectorTool.h.
◆ m_TrtMaxEtaAcceptance
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_TrtMaxEtaAcceptance |
|
private |
◆ m_useEtaDepententMinHitTrt
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_useEtaDepententMinHitTrt {this, "useEtaDepententMinHitTrt", false} |
|
private |
◆ m_useEtaDepententMinHitTrtWithOutliers
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_useEtaDepententMinHitTrtWithOutliers {this, "useEtaDepententMinHitTrtWithOutliers", false} |
|
private |
◆ m_useEventInfoBs
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_useEventInfoBs {this, "UseEventInfoBS", false, "Access beamspot via the EvenInfo object"} |
|
private |
◆ m_usePreselectionCuts
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_usePreselectionCuts {this, "usePreselectionCuts", false} |
|
private |
◆ m_usePtDependentCuts
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_usePtDependentCuts {this, "UsePtDependentCuts", false} |
|
private |
◆ m_useSharedHitInfo
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_useSharedHitInfo {this, "useSharedHitInfo", false} |
|
private |
◆ m_useTrackQualityInfo
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_useTrackQualityInfo {this, "useTrackQualityInfo", true} |
|
private |
◆ m_useTrackSummaryInfo
BooleanProperty InDet::InDetDetailedTrackSelectorTool::m_useTrackSummaryInfo {this, "useTrackSummaryInfo", true} |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
◆ m_z0Max
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_z0Max {this, "z0Max", 9999.*CLHEP::mm, "max. z0: |z0|<z0Max"} |
|
private |
◆ m_z0significanceMax
DoubleProperty InDet::InDetDetailedTrackSelectorTool::m_z0significanceMax {this, "z0significanceMax", -1., "max IP significance z0 (-1 switches it off)"} |
|
private |
The documentation for this class was generated from the following files:
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfPixelHoles
number of pixel layers on track with absence of hits [unit8_t].
@ numberOfTRTHighThresholdHits
total number of TRT hits which pass the high threshold
@ numberOfTRTHighThresholdOutliers
number of dead TRT straws crossed
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
@ numberOfSCTSharedHits
number of SCT hits shared by several tracks [unit8_t].
Vertex_v1 Vertex
Define the latest version of the vertex class.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
@ numberOfSCTDeadSensors
number of TRT hits
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
@ expectInnermostPixelLayerHit
Do we expect a 0th-layer barrel hit for this track?
@ numberOfTRTHits
number of TRT hits [unit8_t].
#define ATH_MSG_VERBOSE(x)
const std::string & key() const
Return the StoreGate ID for the referenced object.
@ numberOfSCTHoles
number of Holes in both sides of a SCT module
#define AmgSymMatrix(dim)
Trk::RecVertex inherits from Trk::Vertex.
@ numberOfTRTHighThresholdHits
number of TRT hits which pass the high threshold (only xenon counted) [unit8_t].
virtual void setOwner(IDataHandleHolder *o)=0
@ numberOfTRTHighThresholdOutliers
number of TRT high threshold outliers (only xenon counted) [unit8_t].
@ numberOfPixelSharedHits
number of Pixel all-layer hits shared by several tracks [unit8_t].
@ numberOfTRTOutliers
number of TRT holes
@ numberOfSCTHits
number of SCT holes
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
double chi2(TH1 *h0, TH1 *h1)
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
const Amg::Vector3D & position() const
return position of vertex
@ numberOfSCTHoles
number of SCT holes [unit8_t].
bool solenoidOn() const
status of the magnets
@ numberOfPixelHoles
number of pixels which have a ganged ambiguity.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
@ numberOfTRTHits
number of TRT outliers
A summary of the information contained by a track.
StatusCode initialize(bool used=true)
Eigen::Matrix< double, 3, 1 > Vector3D
@ numberOfTRTOutliers
number of TRT outliers [unit8_t].
#define ATH_MSG_WARNING(x)
@ numberOfSCTDeadSensors
number of dead SCT sensors crossed [unit8_t].
Local cache for magnetic field (based on MagFieldServices/AtlasFieldSvcTLS.h)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ numberOfInnermostPixelLayerSharedHits
number of Pixel 0th layer barrel hits shared by several tracks.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
bool trackPhi(const xAOD::TauJet &, const xAOD::TauTrack &track, double &out)
@ numberOfPixelDeadSensors
number of dead pixel sensors crossed [unit8_t].
Class describing a TrackParticle.
@ numberOfSCTDoubleHoles
number of Holes in both sides of a SCT module [unit8_t].
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
@ numberOfInnermostPixelLayerHits
these are the hits in the 0th pixel barrel layer