|
ATLAS Offline Software
|
#include <InDetV0FinderTool.h>
|
| InDetV0FinderTool (const std::string &t, const std::string &n, const IInterface *p) |
|
| ~InDetV0FinderTool () |
|
StatusCode | initialize () |
|
StatusCode | finalize () |
|
StatusCode | performSearch (xAOD::VertexContainer *v0Container, xAOD::VertexContainer *ksContainer, xAOD::VertexContainer *laContainer, xAOD::VertexContainer *lbContainer, const xAOD::Vertex *vertex, const xAOD::VertexContainer *vertColl, const EventContext &ctx) 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 |
|
|
void | SGError (const std::string &errService) const |
|
bool | doFit (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, Amg::Vector3D &startingPoint, const EventContext &ctx) const |
|
bool | d0Pass (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const xAOD::VertexContainer *vertColl, const EventContext &ctx) const |
|
bool | d0Pass (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const xAOD::Vertex *vertex, const EventContext &ctx) const |
|
bool | d0Pass (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const Amg::Vector3D &vertex, const EventContext &ctx) const |
|
bool | pointAtVertex (const xAOD::Vertex *v0, const xAOD::Vertex *PV) const |
|
bool | pointAtVertexColl (xAOD::Vertex *v0, const xAOD::VertexContainer *vertColl) const |
|
bool | doMassFit (xAOD::Vertex *vxCandidate, int pdgID) const |
|
xAOD::Vertex * | massFit (int pdgID, const std::vector< const xAOD::TrackParticle * > &pairV0, const Amg::Vector3D &vertex) const |
|
ElementLink< xAOD::TrackParticleContainer > | makeLink (const xAOD::TrackParticle *, const std::vector< const xAOD::TrackParticleContainer * > &) 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...
|
|
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_trackParticleKey |
|
ToolHandle< Trk::IVertexFitter > | m_iVertexFitter |
|
ToolHandle< Trk::IVertexFitter > | m_iVKVertexFitter |
|
ToolHandle< Trk::IVertexFitter > | m_iKshortFitter |
|
ToolHandle< Trk::IVertexFitter > | m_iLambdaFitter |
|
ToolHandle< Trk::IVertexFitter > | m_iLambdabarFitter |
|
ToolHandle< Trk::IVertexFitter > | m_iGammaFitter |
|
ToolHandle< Trk::V0Tools > | m_V0Tools |
|
ToolHandle< Reco::ITrackToVertex > | m_trackToVertexTool |
|
ToolHandle< Trk::ITrackSelectorTool > | m_trkSelector |
|
ToolHandle< InDet::VertexPointEstimator > | m_vertexEstimator |
|
ToolHandle< Trk::IExtrapolator > | m_extrapolator |
|
const HepPDT::ParticleDataTable * | m_particleDataTable |
|
bool | m_doSimpleV0 |
| = true equivalent to the old InDetSimpleV0Finder (false) More...
|
|
bool | m_useorigin |
| = true only using tracks that have no vertex association (true) More...
|
|
bool | m_samesign |
| = true select tracks with same sign (false) More...
|
|
bool | m_pv |
| = true select tracks wrt primary vertex (false) More...
|
|
bool | m_use_vertColl |
| = true select tracks wrt a vertex collection (false) More...
|
|
bool | m_useTRTplusTRT |
| = use TRT+TRT pairs (true) More...
|
|
bool | m_useTRTplusSi |
| = use TRT+Si pairs (true) More...
|
|
bool | m_useV0Fitter |
| = true if using TrkV0Fitter, = false if using VKalVert (true) More...
|
|
int | m_masses |
| = 1 if using PDG values, = 2 if user set (1) More...
|
|
double | m_masspi |
| pion mass (139.57 MeV) More...
|
|
double | m_massp |
| proton mass (938.272 MeV) More...
|
|
double | m_masse |
| electron mass (0.510999 MeV) More...
|
|
double | m_massK0S |
| Kshort mass (497.672 MeV) More...
|
|
double | m_massLambda |
| Lambda mass (1115.68 MeV) More...
|
|
double | m_ptTRT |
| Minimum pT for TRT tracks (700. More...
|
|
double | m_maxsxy |
| Maximum Rxy of starting point (1000. More...
|
|
double | m_uksmin |
| min Kshort mass, unconstrained fit (400. More...
|
|
double | m_uksmax |
| max Kshort mass, unconstrained fit (600. More...
|
|
double | m_ulamin |
| min Lambda mass, unconstrained fit (1000. More...
|
|
double | m_ulamax |
| max Lambda mass, unconstrained fit (1200. More...
|
|
double | m_ksmin |
| min Kshort mass (400. More...
|
|
double | m_ksmax |
| max Kshort mass (600. More...
|
|
double | m_lamin |
| min Lambda mass (1000. More...
|
|
double | m_lamax |
| max Lambda mass (1200. More...
|
|
double | m_errmass |
| Maximum mass error (100. More...
|
|
double | m_minVertProb |
| Minimum vertex probability (0.0001) More...
|
|
double | m_minConstrVertProb |
| Minimum vertex probability for constrained fit (0.0001) More...
|
|
double | m_d0_cut |
| track d0 significance wrt a vertex (>2.) More...
|
|
double | m_vert_lxy_sig |
| V0 lxy significance wrt a vertex (>2.) More...
|
|
double | m_vert_lxy_cut |
| V0 lxy V0 lxy (<500.) More...
|
|
double | m_vert_a0xy_cut |
| V0 |a0xy| wrt a vertex (<3.) More...
|
|
double | m_vert_a0z_cut |
| V0 |a0z| wrt a vertex (<15.) More...
|
|
std::atomic< unsigned int > | m_events_processed {} |
|
std::atomic< unsigned int > | m_V0s_stored {} |
|
std::atomic< unsigned int > | m_Kshort_stored {} |
|
std::atomic< unsigned int > | m_Lambda_stored {} |
|
std::atomic< unsigned int > | m_Lambdabar_stored {} |
|
std::atomic< unsigned int > | m_Gamma_stored {} |
|
const Trk::TrkV0VertexFitter * | m_concreteVertexFitter = nullptr |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_vertexKey |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_v0LinksDecorkeyks |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_v0LinksDecorkeylb |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_v0LinksDecorkeylbb |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_v0_ksLinksDecorkey |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_v0_laLinksDecorkey |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_v0_lbLinksDecorkey |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_mDecor_gfit |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_mDecor_gmass |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_mDecor_gmasserr |
|
SG::WriteDecorHandleKey< xAOD::VertexContainer > | m_mDecor_gprob |
|
SG::ReadHandleKey< xAOD::EventInfo > | m_eventInfo_key {this, "EventInfo", "EventInfo", "Input event information"} |
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" } |
|
SG::ReadDecorHandleKeyArray< xAOD::EventInfo > | m_beamSpotDecoKey {this, "BeamSpotDecoKeys" ,{}, "Add the scheduler dependencies on the beamspot information"} |
|
Gaudi::Property< bool > | m_useBeamSpotCond { this, "UseBeamSpotCond", false } |
|
Gaudi::Property< std::string > | m_v0Key { this, "V0ContainerName", "V0Candidates", "V0 container name (same calling alg)" } |
|
Gaudi::Property< std::string > | m_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container name (same calling alg)" } |
|
Gaudi::Property< std::string > | m_laKey |
|
Gaudi::Property< std::string > | m_lbKey |
|
Gaudi::Property< int > | m_maxPV { this, "MaxPV", 999999 } |
|
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > | m_RelinkContainers {this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" } |
|
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 99 of file InDetV0FinderTool.h.
◆ StoreGateSvc_t
◆ InDetV0FinderTool()
InDet::InDetV0FinderTool::InDetV0FinderTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~InDetV0FinderTool()
InDet::InDetV0FinderTool::~InDetV0FinderTool |
( |
| ) |
|
|
default |
◆ d0Pass() [1/3]
◆ d0Pass() [2/3]
Definition at line 758 of file InDetV0FinderTool.cxx.
769 if (per1 ==
nullptr)
return pass;
771 if (per2 ==
nullptr) {
774 double d0_1 = per1->parameters()[
Trk::d0];
◆ d0Pass() [3/3]
Definition at line 736 of file InDetV0FinderTool.cxx.
751 if (per1 ==
nullptr)
return pass;
753 if (per2 ==
nullptr) {
756 double d0_1 = per1->parameters()[
Trk::d0];
◆ 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);
◆ 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.
◆ 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.
◆ 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()
◆ doFit()
◆ doMassFit()
bool InDet::InDetV0FinderTool::doMassFit |
( |
xAOD::Vertex * |
vxCandidate, |
|
|
int |
pdgID |
|
) |
| const |
|
private |
Definition at line 827 of file InDetV0FinderTool.cxx.
836 }
else if (pdgID == -3122) {
842 if (in_mass_window) pass =
true;
850 std::vector<double>
masses;
854 }
else if (pdgID == 3122) {
◆ 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::InDetV0FinderTool::finalize |
( |
| ) |
|
◆ initialize()
StatusCode InDet::InDetV0FinderTool::initialize |
( |
| ) |
|
Definition at line 163 of file InDetV0FinderTool.cxx.
228 for (
const std::string
beam : {
"beamPosX",
"beamPosY",
"beamPosZ"}) {
267 ATH_MSG_FATAL(
"The vertex fitter passed is not a V0 Vertex Fitter");
268 return StatusCode::FAILURE;
276 return StatusCode::SUCCESS;
285 const EventContext& ctx
◆ 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::InDetV0FinderTool::interfaceID |
( |
| ) |
|
|
inlinestatic |
◆ invariantMass()
Definition at line 815 of file InDetV0FinderTool.cxx.
819 double mass = 1000000000.;
820 double error = 1000000001.;
821 bool in_mass_window =
false;
822 double winmass_min = 0., winmass_max = 0.;
◆ makeLink()
◆ massFit()
Definition at line 858 of file InDetV0FinderTool.cxx.
882 if (pdgID == -3122) {
894 const std::vector<const xAOD::TrackParticleContainer*>& trackcols)
const
898 bool elementSet =
false;
899 if(trackcols.empty()){
◆ 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.
◆ performSearch()
Definition at line 290 of file InDetV0FinderTool.cxx.
293 trackCols.push_back(handle.cptr());
300 if ( !TPC.isValid() )
303 return StatusCode::SUCCESS;
305 ATH_MSG_DEBUG(
"Track particle container size " << TPC->size());
313 beamspot = beamSpotHandle->beamPos();
318 beamspot =
Amg::Vector3D(beamPosX(0), beamPosY(0), beamPosZ(0));
321 std::vector<const xAOD::TrackParticle*> posTracks; posTracks.clear();
322 std::vector<const xAOD::TrackParticle*> negTracks; negTracks.clear();
324 if (
m_pv && primaryVertex) vx = primaryVertex;
326 if (TPC->size() > 1) {
328 for ( tpIt=TPC->begin(); tpIt!=TPC->end(); ++tpIt )
336 posTracks.push_back(TP);
337 negTracks.push_back(TP);
340 posTracks.push_back(*tpIt);
342 negTracks.push_back(*tpIt);
348 ATH_MSG_DEBUG(
"number of tracks passing preselection, positive " << posTracks.size() <<
" negative " << negTracks.size());
350 if (!posTracks.empty() && !negTracks.empty())
353 if (!vertices.isValid())
356 return StatusCode::SUCCESS;
370 std::vector<const xAOD::TrackParticle*>::const_iterator tpIt1;
371 std::vector<const xAOD::TrackParticle*>::const_iterator tpIt2;
373 for (tpIt1 = posTracks.begin(); tpIt1 != posTracks.end(); ++tpIt1)
380 double pt1 = TP1->
pt();
385 for (
const auto *
const vx : *vertices)
395 if (foundVertex1)
break;
399 for (tpIt2 = negTracks.begin(); tpIt2 != negTracks.end(); ++tpIt2)
401 if (*tpIt1 == *tpIt2)
continue;
409 ATH_MSG_DEBUG(
"nclus1 " << (
int)nclus1 <<
" nclus2 " << (
int)nclus2);
414 double pt2 = TP2->
pt();
419 for (
const auto *
const vx : *vertices)
429 if (foundVertex2)
break;
432 bool usepair =
false;
434 if (
m_useorigin && foundVertex1 ==
nullptr && foundVertex2 ==
nullptr) usepair =
true;
435 if (!usepair)
continue;
437 bool trk_cut1 =
false;
438 bool trk_cut2 =
false;
439 if (nclus1 != 0) trk_cut1 =
true;
440 if (nclus1 == 0 && pt1 >=
m_ptTRT) trk_cut1 =
true;
441 if (!trk_cut1)
continue;
442 if (nclus2 != 0) trk_cut2 =
true;
443 if (nclus2 == 0 && pt2 >=
m_ptTRT) trk_cut2 =
true;
444 if (!trk_cut2)
continue;
452 if (errorcode != 0) {startingPoint(0) = 0.0; startingPoint(1) = 0.0; startingPoint(2) = 0.0;}
453 bool errorCode =
false;
454 if (errorcode == 0 || errorcode == 5 || errorcode == 6 || errorcode == 8) errorCode =
true;
455 if (!errorCode)
continue;
457 bool d0wrtVertex =
true;
459 if ( !
d0Pass(TP1,TP2,vertColl, ctx) ) d0wrtVertex =
false;
463 if ( !
d0Pass(TP1,TP2,primaryVertex, ctx) ) d0wrtVertex =
false;
465 if ( !
d0Pass(TP1,TP2,beamspot, ctx) ) d0wrtVertex =
false;
468 if (!d0wrtVertex)
continue;
472 if (
doFit(TP1,TP2,startingPoint, ctx) )
474 std::vector<const xAOD::TrackParticle*> pairV0;
476 pairV0.push_back(TP1);
477 pairV0.push_back(TP2);
482 std::unique_ptr<xAOD::Vertex> myVxCandidate;
486 myVxCandidate = std::unique_ptr<xAOD::Vertex>(
m_iVKVertexFitter->fit(pairV0, startingPoint) );
494 bool doKshortFit =
false;
495 doKshortFit =
doMassFit(myVxCandidate.get(),310);
496 bool doLambdaFit =
false;
497 doLambdaFit =
doMassFit(myVxCandidate.get(),3122);
498 bool doLambdabarFit =
false;
499 doLambdabarFit =
doMassFit(myVxCandidate.get(),-3122);
500 if (doKshortFit || doLambdaFit || doLambdabarFit)
502 bool pointAtVert =
true;
507 if ( !
pointAtVertex(myVxCandidate.get(),primaryVertex) ) pointAtVert =
false;
514 std::unique_ptr<xAOD::Vertex> myKshort;
515 std::unique_ptr<xAOD::Vertex> myLambda;
516 std::unique_ptr<xAOD::Vertex> myLambdabar;
517 std::unique_ptr<xAOD::Vertex> myGamma;
518 bool foundKshort =
false;
519 bool foundLambda =
false;
520 bool foundLambdabar =
false;
523 myKshort = std::unique_ptr<xAOD::Vertex>(
massFit(310, pairV0,
vertex) );
533 myLambda = std::unique_ptr<xAOD::Vertex>(
massFit(3122, pairV0,
vertex) );
543 myLambdabar = std::unique_ptr<xAOD::Vertex>(
massFit(-3122, pairV0,
vertex));
547 foundLambdabar =
true;
552 bool doGamma =
false;
554 double gamma_prob = -1., gamma_mass = -1., gamma_massErr = -1.;
555 if (foundKshort || foundLambda || foundLambdabar) doGamma =
true;
569 v0Container->
push_back(myVxCandidate.release());
578 ksContainer->
push_back(myKshort.release());
582 v0LinksDecorks(*(ksContainer->
back())) = v0Link;
586 v0_ksLinksDecor(*(v0Container->
back())) = ksLink;
588 v0_ksLinksDecor(*(v0Container->
back())) = ksLink;
597 laContainer->
push_back(myLambda.release());
601 v0LinksDecorlb(*(laContainer->
back())) = v0Link;
605 v0_laLinksDecor(*(v0Container->
back())) = laLink;
607 v0_laLinksDecor(*(v0Container->
back())) = laLink;
616 lbContainer->
push_back(myLambdabar.release());
620 v0LinksDecorlbb(*(lbContainer->
back())) = v0Link;
624 v0_lbLinksDecor(*(v0Container->
back())) = lbLink;
626 v0_lbLinksDecor(*(v0Container->
back())) = lbLink;
629 myGamma = std::unique_ptr<xAOD::Vertex>(
massFit(22, pairV0,
vertex) );
632 gamma_prob =
m_V0Tools->vertexProbability(myGamma.get());
637 mDecor_gfit( *(v0Container->
back()) ) = gamma_fit;
638 mDecor_gmass( *(v0Container->
back()) ) = gamma_mass;
639 mDecor_gmasserr( *(v0Container->
back()) ) = gamma_massErr;
640 mDecor_gprob( *(v0Container->
back()) ) = gamma_prob;
662 if (v0Container->
empty())
ATH_MSG_DEBUG(
"No Candidates found. Empty container returned");
663 if (ksContainer->
empty())
ATH_MSG_DEBUG(
"No Kshort Candidates found. Empty container returned");
664 if (laContainer->
empty())
ATH_MSG_DEBUG(
"No Lambda Candidates found. Empty container returned");
665 if (lbContainer->
empty())
ATH_MSG_DEBUG(
"No Lambdabar Candidates found. Empty container returned");
667 return StatusCode::SUCCESS;
673 <<
"----------------------------------------------------------------------------------------------------------------------------------------------" <<
endmsg
◆ pointAtVertex()
◆ pointAtVertexColl()
Definition at line 807 of file InDetV0FinderTool.cxx.
808 double e2sq = per2->momentum().mag2() +
m2*
m2;
809 double e2 = (e2sq>0.) ? sqrt(e2sq) : 0.;
810 double p = (per1->momentum()+per2->momentum()).
mag();
812 double mass = (msq>0.) ? sqrt(msq) : 0.;
◆ renounce()
◆ renounceArray()
◆ SGError()
void InDet::InDetV0FinderTool::SGError |
( |
const std::string & |
errService | ) |
const |
|
private |
Definition at line 696 of file InDetV0FinderTool.cxx.
698 double massKshort_i=2000001., massLambda_i=2000001., massLambdabar_i=2000001.;
◆ 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_beamSpotDecoKey
◆ m_beamSpotKey
◆ m_concreteVertexFitter
◆ m_d0_cut
double InDet::InDetV0FinderTool::m_d0_cut |
|
private |
◆ m_detStore
◆ m_doSimpleV0
bool InDet::InDetV0FinderTool::m_doSimpleV0 |
|
private |
◆ m_errmass
double InDet::InDetV0FinderTool::m_errmass |
|
private |
◆ m_eventInfo_key
◆ m_events_processed
std::atomic<unsigned int> InDet::InDetV0FinderTool::m_events_processed {} |
|
mutableprivate |
◆ m_evtStore
◆ m_extrapolator
◆ m_Gamma_stored
std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Gamma_stored {} |
|
mutableprivate |
◆ m_iGammaFitter
◆ m_iKshortFitter
◆ m_iLambdabarFitter
◆ m_iLambdaFitter
◆ m_iVertexFitter
◆ m_iVKVertexFitter
◆ m_Kshort_stored
std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Kshort_stored {} |
|
mutableprivate |
◆ m_ksKey
Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container name (same calling alg)" } |
|
private |
◆ m_ksmax
double InDet::InDetV0FinderTool::m_ksmax |
|
private |
◆ m_ksmin
double InDet::InDetV0FinderTool::m_ksmin |
|
private |
◆ m_laKey
Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_laKey |
|
private |
Initial value:{ this, "LambdaContainerName", "LambdaCandidates",
"Lambda container name (same calling alg)" }
Definition at line 217 of file InDetV0FinderTool.h.
◆ m_lamax
double InDet::InDetV0FinderTool::m_lamax |
|
private |
◆ m_Lambda_stored
std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Lambda_stored {} |
|
mutableprivate |
◆ m_Lambdabar_stored
std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Lambdabar_stored {} |
|
mutableprivate |
◆ m_lamin
double InDet::InDetV0FinderTool::m_lamin |
|
private |
◆ m_lbKey
Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_lbKey |
|
private |
Initial value:{ this, "LambdabarContainerName", "LambdabarCandidates",
"Lambdabar container name (same calling alg)" }
Definition at line 219 of file InDetV0FinderTool.h.
◆ m_masse
double InDet::InDetV0FinderTool::m_masse |
|
private |
◆ m_masses
int InDet::InDetV0FinderTool::m_masses |
|
private |
◆ m_massK0S
double InDet::InDetV0FinderTool::m_massK0S |
|
private |
◆ m_massLambda
double InDet::InDetV0FinderTool::m_massLambda |
|
private |
◆ m_massp
double InDet::InDetV0FinderTool::m_massp |
|
private |
◆ m_masspi
double InDet::InDetV0FinderTool::m_masspi |
|
private |
◆ m_maxPV
Gaudi::Property<int> InDet::InDetV0FinderTool::m_maxPV { this, "MaxPV", 999999 } |
|
private |
◆ m_maxsxy
double InDet::InDetV0FinderTool::m_maxsxy |
|
private |
◆ m_mDecor_gfit
◆ m_mDecor_gmass
◆ m_mDecor_gmasserr
◆ m_mDecor_gprob
◆ m_minConstrVertProb
double InDet::InDetV0FinderTool::m_minConstrVertProb |
|
private |
◆ m_minVertProb
double InDet::InDetV0FinderTool::m_minVertProb |
|
private |
◆ m_particleDataTable
const HepPDT::ParticleDataTable* InDet::InDetV0FinderTool::m_particleDataTable |
|
private |
◆ m_ptTRT
double InDet::InDetV0FinderTool::m_ptTRT |
|
private |
◆ m_pv
bool InDet::InDetV0FinderTool::m_pv |
|
private |
◆ m_RelinkContainers
◆ m_samesign
bool InDet::InDetV0FinderTool::m_samesign |
|
private |
◆ m_trackParticleKey
Initial value:{ this, "TrackParticleCollection", "InDetTrackParticles",
"key for retrieval of TrackParticles" }
Definition at line 119 of file InDetV0FinderTool.h.
◆ m_trackToVertexTool
◆ m_trkSelector
◆ m_uksmax
double InDet::InDetV0FinderTool::m_uksmax |
|
private |
◆ m_uksmin
double InDet::InDetV0FinderTool::m_uksmin |
|
private |
◆ m_ulamax
double InDet::InDetV0FinderTool::m_ulamax |
|
private |
◆ m_ulamin
double InDet::InDetV0FinderTool::m_ulamin |
|
private |
◆ m_use_vertColl
bool InDet::InDetV0FinderTool::m_use_vertColl |
|
private |
◆ m_useBeamSpotCond
Gaudi::Property<bool> InDet::InDetV0FinderTool::m_useBeamSpotCond { this, "UseBeamSpotCond", false } |
|
private |
◆ m_useorigin
bool InDet::InDetV0FinderTool::m_useorigin |
|
private |
= true only using tracks that have no vertex association (true)
Definition at line 137 of file InDetV0FinderTool.h.
◆ m_useTRTplusSi
bool InDet::InDetV0FinderTool::m_useTRTplusSi |
|
private |
◆ m_useTRTplusTRT
bool InDet::InDetV0FinderTool::m_useTRTplusTRT |
|
private |
◆ m_useV0Fitter
bool InDet::InDetV0FinderTool::m_useV0Fitter |
|
private |
= true if using TrkV0Fitter, = false if using VKalVert (true)
Definition at line 143 of file InDetV0FinderTool.h.
◆ m_v0_ksLinksDecorkey
◆ m_v0_laLinksDecorkey
◆ m_v0_lbLinksDecorkey
◆ m_v0Key
Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_v0Key { this, "V0ContainerName", "V0Candidates", "V0 container name (same calling alg)" } |
|
private |
◆ m_v0LinksDecorkeyks
◆ m_v0LinksDecorkeylb
◆ m_v0LinksDecorkeylbb
◆ m_V0s_stored
std::atomic<unsigned int> InDet::InDetV0FinderTool::m_V0s_stored {} |
|
mutableprivate |
◆ m_V0Tools
ToolHandle< Trk::V0Tools > InDet::InDetV0FinderTool::m_V0Tools |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vert_a0xy_cut
double InDet::InDetV0FinderTool::m_vert_a0xy_cut |
|
private |
◆ m_vert_a0z_cut
double InDet::InDetV0FinderTool::m_vert_a0z_cut |
|
private |
◆ m_vert_lxy_cut
double InDet::InDetV0FinderTool::m_vert_lxy_cut |
|
private |
◆ m_vert_lxy_sig
double InDet::InDetV0FinderTool::m_vert_lxy_sig |
|
private |
◆ m_vertexEstimator
◆ m_vertexKey
Initial value:{ this, "VertexContainer", "PrimaryVertices",
"primary vertex container" }
Definition at line 196 of file InDetV0FinderTool.h.
◆ m_vhka
The documentation for this class was generated from the following files:
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Const iterator class for DataVector/DataList.
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
float charge() const
Returns the charge.
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.
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
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].
const Amg::Vector3D & position() const
Returns the 3-pos.
const std::string & key() const
Return the StoreGate ID for the referenced object.
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.
Handle class for reading a decoration on an object.
::StatusCode StatusCode
StatusCode definition for legacy code.
Handle class for adding a decoration to an object.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
void clearTracks()
Remove all tracks from the vertex.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
const T * back() const
Access the last element in the collection as an rvalue.
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
bool setElement(ElementType element)
Set to point to an element.
bool setStorableObject(BaseConstReference data, bool replace=false, IProxyDict *sg=0)
Set link to point to a new container (storable).
double charge(const T &p)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Eigen::Matrix< double, 3, 1 > Vector3D
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with Amg::Vector3D starting point.
Class describing a Vertex.
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
#define ATH_MSG_WARNING(x)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ numberOfSCTHits
number of hits in SCT [unit8_t].
This class implements a vertex fitting algorithm optimised for V0 finding.
Class describing a TrackParticle.
size_type size() const noexcept
Returns the number of elements in the collection.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Scalar mag() const
mag method
bool empty() const noexcept
Returns true if the collection is empty.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.