|
ATLAS Offline Software
|
#include <InDetConversionFinderTools.h>
|
| InDetConversionFinderTools (const std::string &t, const std::string &n, const IInterface *p) |
|
| ~InDetConversionFinderTools () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const EventContext &ctx, const TrackCollection *trk_coll) const override |
| < Conversion candidate reconstruction for Trk::Tracks. More...
|
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const EventContext &ctx, const xAOD::TrackParticleContainer *trk_coll) const override |
| Conversion candidate reconstruction for Trk::TrackParticle (default)
More...
|
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const EventContext &ctx, const TrackCollection *trackTES) const=0 |
| Find vertex from Trk::TrackCollection. More...
|
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const EventContext &ctx, const xAOD::TrackParticleContainer *trackParticles) const=0 |
| Find vertex from xAOD::TrackParticleContainer. More...
|
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const TrackCollection *trackTES) const |
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const xAOD::TrackParticleContainer *trackParticles) 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 |
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const TrackCollection *trackTES) const |
|
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > | findVertex (const xAOD::TrackParticleContainer *trackParticles) const |
|
|
BooleanProperty | m_removeTrt {this, "RemoveTrtTracks", false, "Remove standalone TRT tracks"} |
|
BooleanProperty | m_isConversion {this, "IsConversion", true, "Conversions or V0s"} |
|
BooleanProperty | m_decorateVertices {this, "DecorateVertices", true, "Decorate vertices with values used for vertex selection"} |
|
|
bool | passPreSelection (TrackPairsSelector::Cache &cache, const xAOD::TrackParticle *track_pos, const xAOD::TrackParticle *track_neg, std::vector< Amg::Vector3D > &trackList, Amg::Vector3D &initPos, int &flag, std::map< std::string, float > &intersectionDecors) const |
|
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...
|
|
◆ StoreGateSvc_t
◆ InDetConversionFinderTools()
InDet::InDetConversionFinderTools::InDetConversionFinderTools |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~InDetConversionFinderTools()
InDet::InDetConversionFinderTools::~InDetConversionFinderTools |
( |
| ) |
|
|
default |
◆ 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::InDetConversionFinderTools::finalize |
( |
| ) |
|
|
overridevirtual |
◆ findVertex() [1/8]
Find vertex from Trk::TrackCollection.
- Parameters
-
EventContext | |
input | track container |
- Returns
- a pair of newly created container and auxiliary store
◆ findVertex() [2/8]
◆ findVertex() [3/8]
Find vertex from xAOD::TrackParticleContainer.
- Parameters
-
EventContext | |
input | track particle container |
- Returns
- a pair of newly created container and auxiliary store
◆ findVertex() [4/8]
Conversion candidate reconstruction for Trk::TrackParticle (default)
Implements InDet::IVertexFinder.
Definition at line 118 of file InDetConversionFinderTools.cxx.
139 for (iter = (*trk_coll).begin(); iter != (*trk_coll).end(); ++iter) {
144 if ((*iter)->charge() < 0) {
145 negSelectedTracks.push_back(*iter);
146 negIndx.push_back(0);
148 posSelectedTracks.push_back(*iter);
149 posIndx.push_back(0);
156 std::vector<const xAOD::TrackParticle*>::const_iterator iter_pos;
157 std::vector<const xAOD::TrackParticle*>::const_iterator iter_neg;
158 std::vector<Amg::Vector3D> positionList;
159 positionList.clear();
160 std::vector<const xAOD::TrackParticle*> trackParticleList;
161 trackParticleList.clear();
162 std::vector<const xAOD::TrackParticle*> singleTrackConvList;
163 singleTrackConvList.clear();
167 for (iter_pos = posSelectedTracks.begin();
168 iter_pos != posSelectedTracks.end();
173 for (iter_neg = negSelectedTracks.begin();
174 iter_neg != negSelectedTracks.end();
179 std::map<std::string, float> intersectionDecors;
186 intersectionDecors)) {
187 positionList.clear();
192 if (positionList.size() < 2) {
194 positionList.clear();
198 trackParticleList.push_back(*iter_pos);
199 trackParticleList.push_back(*iter_neg);
201 std::unique_ptr<xAOD::Vertex> myVertex =
203 trackParticleList.clear();
210 myVertex.get(),
flag, positionList)) ||
213 myVertex.get(),
flag, positionList,
type))) {
230 "Decorating vertex with values used in track pair selector");
231 for (
const auto& kv :
234 acc (*myVertex) = kv.second;
236 ATH_MSG_DEBUG(
"Decorating vertex with values used in vertex "
238 for (
const auto& kv : intersectionDecors) {
240 acc (*myVertex) = kv.second;
255 InDetConversionContainer->push_back(std::move(myVertex));
259 InDetConversionContainer->push_back(std::move(myVertex));
268 ATH_MSG_DEBUG(
"VxCandidate failed the post selection cuts!");
274 positionList.clear();
277 ATH_MSG_DEBUG(
"Number of conversions found passing post selection cuts: "
282 for (
int ip = 0;
ip <
int(posIndx.size()); ++
ip) {
283 if (posIndx[
ip] == 0)
284 singleTrackConvList.push_back(posSelectedTracks[
ip]);
286 for (
int in = 0; in <
int(negIndx.size()); ++in) {
287 if (negIndx[in] == 0)
288 singleTrackConvList.push_back(negSelectedTracks[in]);
292 itke = singleTrackConvList.end();
294 for (itk = singleTrackConvList.begin(); itk != itke; ++itk) {
296 ATH_MSG_DEBUG(
"Track failed single track conversion selection");
300 (*itk), InDetConversionContainer);
302 sConver->clearTracks();
306 sConver->addTrackAtVertex(newLink);
311 ATH_MSG_DEBUG(
"Decorating single track vertex with dummy values "
312 "used in track pair selector");
318 ATH_MSG_DEBUG(
"Decorating single track vertex with dummy values "
319 "used in vertex point estimator");
325 ATH_MSG_DEBUG(
"Decorating single track vertex with dummy values "
326 "used in post selector");
332 ATH_MSG_DEBUG(
"Number successful reconstructed single track conversion: "
336 return std::make_pair(InDetConversionContainer,
337 InDetConversionContainerAux);
342 TrackPairsSelector::Cache& cache,
345 std::vector<Amg::Vector3D>& trackList,
◆ findVertex() [5/8]
◆ findVertex() [6/8]
◆ findVertex() [7/8]
◆ findVertex() [8/8]
◆ initialize()
StatusCode InDet::InDetConversionFinderTools::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 42 of file InDetConversionFinderTools.cxx.
45 return StatusCode::FAILURE;
52 return StatusCode::FAILURE;
59 return StatusCode::FAILURE;
66 return StatusCode::FAILURE;
73 return StatusCode::FAILURE;
80 return StatusCode::FAILURE;
85 return StatusCode::SUCCESS;
90 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& InDet::IVertexFinder::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.
◆ passPreSelection()
Definition at line 348 of file InDetConversionFinderTools.cxx.
370 if(nclusNeg>0 && nclusPos>0)
flag= 0;
371 if((nclusNeg>0 && nclusPos==0) || (nclusNeg==0 && nclusPos>0))
flag = 1;
372 if(nclusNeg==0 && nclusPos==0)
flag = 2;
382 &perPos, &perNeg,
flag, errorcode, intersectionDecors));
385 Amg::Vector3D v_direction = perPos.momentum() + perNeg.momentum();
386 double d_alpha = (startingPoint.adjoint()*v_direction)[0]/(startingPoint.mag()*v_direction.mag());
389 initPos = startingPoint;
390 double startingPointR = startingPoint.perp();
391 if(startingPointR<800.) {
408 ATH_MSG_WARNING(
"Track Particle does not contain first Measurement track parameters");
422 ATH_MSG_WARNING(
"Track Particle does not contain first Measurement track parameters");
428 double posR = trkPar_pos.
position().perp();
429 double negR = trkPar_neg.
position().perp();
430 double diffR = 1000.;
431 if((startingPointR-posR)<(startingPointR-negR)) diffR = startingPointR-posR;
432 else diffR = startingPointR-negR;
434 if(diffR<m_mindR || diffR>
m_maxdR)
return false;
441 trackList.push_back(trkPar_pos.
position());
442 trackList.push_back(trkPar_neg.
position());
◆ 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_decorateVertices
BooleanProperty InDet::InDetConversionFinderTools::m_decorateVertices {this, "DecorateVertices", true, "Decorate vertices with values used for vertex selection"} |
◆ m_detStore
◆ m_evtStore
◆ m_isConversion
BooleanProperty InDet::InDetConversionFinderTools::m_isConversion {this, "IsConversion", true, "Conversions or V0s"} |
◆ m_iVertexFitter
Initial value:{ this,
"VertexFitterTool",
"Trk::TrkVKalVrtFitter",
"Vertex fitter Tool" }
Vertex fitter interface.
Track pair selection tool.
Definition at line 83 of file InDetConversionFinderTools.h.
◆ m_maxdR
DoubleProperty InDet::InDetConversionFinderTools::m_maxdR |
|
protected |
Initial value:{this, "MaxDistVtxHit", 250.,
"Maximum allowed radial distance between guess vertex and closest 1st hit of participating track"}
Definition at line 135 of file InDetConversionFinderTools.h.
◆ m_mindR
DoubleProperty InDet::InDetConversionFinderTools::m_mindR |
|
protected |
Initial value:{this, "MinDistVtxHit", -350.,
"Minimum allowed radial distance beteeen guess vertex and closest 1st hit of participating track"}
Cuts.
Definition at line 133 of file InDetConversionFinderTools.h.
◆ m_MinFlightAngle
DoubleProperty InDet::InDetConversionFinderTools::m_MinFlightAngle |
|
protected |
Initial value:{this, "MinFlightAngle", 0.,
"Minimum allowed angular difference between V0 and children direction. Used only in V0 reconstruction."}
Definition at line 139 of file InDetConversionFinderTools.h.
◆ m_MinInitVtxR
DoubleProperty InDet::InDetConversionFinderTools::m_MinInitVtxR |
|
protected |
Initial value:{this, "MinInitVtxR", 0.,
"Minimum allowed radial position for initial guess vertex. Used only in V0 reconstruction."}
Definition at line 137 of file InDetConversionFinderTools.h.
◆ m_postSelector
Initial value:{
this,
"PostSelector",
"InDet::ConversionPostSelector",
"Tool for post selection of conversion candidates"
}
Conversion post-fit selector tool.
Definition at line 102 of file InDetConversionFinderTools.h.
◆ m_removeTrt
BooleanProperty InDet::InDetConversionFinderTools::m_removeTrt {this, "RemoveTrtTracks", false, "Remove standalone TRT tracks"} |
◆ m_singleTrkConvTool
Initial value:{
this,
"SingleTrackConversionTool",
"InDet::SingleTrackConversionTool",
"Tool for single track conversions"
}
Single track conversion tool.
Definition at line 109 of file InDetConversionFinderTools.h.
◆ m_trackPairsSelector
Initial value:{
this,
"TrackPairsSelector",
"InDet::TrackPairsSelector",
"Track Pair Selector Tool"
}
Initial conversion vertex estimator tool.
Definition at line 88 of file InDetConversionFinderTools.h.
◆ m_trkSelector
◆ m_varHandleArraysDeclared
◆ m_vertexEstimator
Initial value:{
this,
"VertexPointEstimator",
"InDet::VertexPointEstimator",
"Vertex point estimator"
}
Initial conversion vertex estimator tool.
Definition at line 95 of file InDetConversionFinderTools.h.
◆ m_vhka
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
const Trk::CurvilinearParameters curvilinearParameters(unsigned int index) const
Returns a curvilinear representation of the parameters at 'index'.
Const iterator class for DataVector/DataList.
bool toContainedElement(BaseConstReference data, ElementType element, IProxyDict *sg=0)
Set from element pointer and a reference to the container (storable)
const Amg::Vector3D & position() const
Access method for the position.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
@ V0Vtx
Vertex from V0 decay.
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
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].
virtual void setOwner(IDataHandleHolder *o)=0
void setVertexType(VxType::VertexType vType)
Set the type of the vertex.
void addTrackAtVertex(const ElementLink< TrackParticleContainer > &tr, float weight=1.0)
Add a new track to the vertex.
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
@ FirstMeasurement
Parameter defined at the position of the 1st measurement.
::StatusCode StatusCode
StatusCode definition for legacy code.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void clearTracks()
Remove all tracks from the vertex.
xAOD::ParameterPosition parameterPosition(unsigned int index) const
Return the ParameterPosition of the parameters at 'index'.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
size_t numberOfParameters() const
Returns the number of additional parameters stored in the TrackParticle.
Eigen::Matrix< double, 3, 1 > Vector3D
Class describing a Vertex.
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
@ ConvVtx
Conversion vertex.
Class describing a TrackParticle.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>