ATLAS Offline Software
Loading...
Searching...
No Matches
DerivationFramework::Reco_V0Finder Class Reference

#include <Reco_V0Finder.h>

Inheritance diagram for DerivationFramework::Reco_V0Finder:
Collaboration diagram for DerivationFramework::Reco_V0Finder:

Public Member Functions

 Reco_V0Finder (const std::string &t, const std::string &n, const IInterface *p)
StatusCode initialize () override
virtual StatusCode addBranches (const EventContext &ctx) const override

Private Attributes

std::vector< std::string > m_CollectionsToCheck
ToolHandle< InDet::InDetV0FinderToolm_v0FinderTool
SG::ReadHandleKey< xAOD::VertexContainerm_vertexKey
SG::WriteHandleKey< xAOD::VertexContainerm_v0Key { this, "V0ContainerName", "V0Candidates", "V0 container" }
SG::WriteHandleKey< xAOD::VertexContainerm_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container" }
SG::WriteHandleKey< xAOD::VertexContainerm_laKey
SG::WriteHandleKey< xAOD::VertexContainerm_lbKey
ToolHandle< InDet::V0MainDecoratorm_v0DecoTool {this, "Decorator", "InDet::V0MainDecorator"}

Detailed Description

Definition at line 22 of file Reco_V0Finder.h.

Constructor & Destructor Documentation

◆ Reco_V0Finder()

DerivationFramework::Reco_V0Finder::Reco_V0Finder ( const std::string & t,
const std::string & n,
const IInterface * p )

Definition at line 14 of file Reco_V0Finder.cxx.

16 :
17 base_class(t,n,p),
18 m_v0FinderTool("InDet::V0FinderTool", this)
19 {
20
21 // Declare user-defined properties
22 declareProperty("CheckVertexContainers", m_CollectionsToCheck);
23 declareProperty("V0FinderTool", m_v0FinderTool);
24 }
std::vector< std::string > m_CollectionsToCheck
ToolHandle< InDet::InDetV0FinderTool > m_v0FinderTool

Member Function Documentation

◆ addBranches()

StatusCode DerivationFramework::Reco_V0Finder::addBranches ( const EventContext & ctx) const
overridevirtual

Definition at line 49 of file Reco_V0Finder.cxx.

50 {
51
52 bool callV0Finder = false;
53 // Jpsi container and its auxilliary store
54 for(const auto &str : m_CollectionsToCheck){
55 const xAOD::VertexContainer* vertContainer = nullptr;
56 ATH_CHECK( evtStore()->retrieve(vertContainer, str) );
57 if(vertContainer->size() == 0) {
58 ATH_MSG_DEBUG("Container VertexContainer (" << str << ") is empty");
59 }else{
60 callV0Finder = true;
61 ATH_MSG_DEBUG("Container VertexContainer (" << str << ") has events N= " << vertContainer->size());
62 break;//No point checking other containers
63 }
64 }
65
66 // InDetV0 container and its auxilliary store
67 //---- Recording section: write the results to StoreGate ---//
68 SG::WriteHandle<xAOD::VertexContainer> h_V0( m_v0Key, ctx );
69 if ( h_V0.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
70 ATH_MSG_ERROR("Storegate record of v0Container failed.");
71 return StatusCode::FAILURE;
72 }
73
74 SG::WriteHandle<xAOD::VertexContainer> h_Ks( m_ksKey, ctx );
75 if ( h_Ks.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
76 ATH_MSG_ERROR("Storegate record of ksContainer failed.");
77 return StatusCode::FAILURE;
78 }
79
80 SG::WriteHandle<xAOD::VertexContainer> h_La( m_laKey, ctx );
81 if( h_La.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
82 ATH_MSG_ERROR("Storegate record of laContainer failed.");
83 return StatusCode::FAILURE;
84
85 }
86 SG::WriteHandle<xAOD::VertexContainer> h_Lb( m_lbKey, ctx );
87 if(h_Lb.record(std::make_unique<xAOD::VertexContainer>() ,std::make_unique<xAOD::VertexAuxContainer>()).isFailure()){
88 ATH_MSG_ERROR("Storegate record of lbContainer failed.");
89 return StatusCode::FAILURE;
90 }
91
92 xAOD::VertexContainer* v0Container(h_V0.ptr());
93 xAOD::VertexContainer* ksContainer(h_Ks.ptr());
94 xAOD::VertexContainer* laContainer(h_La.ptr());
95 xAOD::VertexContainer* lbContainer(h_Lb.ptr());
96 // Call V0Finder
97 if (callV0Finder) {
98 const xAOD::Vertex * primaryVertex(0);
99 SG::ReadHandle<xAOD::VertexContainer> importedVxContainer( m_vertexKey, ctx );
100 ATH_CHECK(importedVxContainer.isValid());
101
102 if (importedVxContainer->size()==0){
103 ATH_MSG_WARNING("You have no primary vertices: " << importedVxContainer->size());
104 } else {
105 primaryVertex = (*importedVxContainer)[0];
106 }
107 ATH_CHECK( m_v0FinderTool->performSearch(h_V0.ptr(),
108 h_Ks.ptr(),
109 h_La.ptr(),
110 h_Lb.ptr(),
111 primaryVertex, importedVxContainer.cptr(), ctx));
112
113 ATH_MSG_DEBUG("Reco_V0Finder v0Container->size() " << v0Container->size());
114 ATH_MSG_DEBUG("Reco_V0Finder ksContainer->size() " << ksContainer->size());
115 ATH_MSG_DEBUG("Reco_V0Finder laContainer->size() " << laContainer->size());
116 ATH_MSG_DEBUG("Reco_V0Finder lbContainer->size() " << lbContainer->size());
117
118
119 ATH_CHECK(m_v0DecoTool->decorateV0(h_V0.ptr(), ctx));
120 ATH_CHECK(m_v0DecoTool->decorateks(h_Ks.ptr() ,ctx));
121 ATH_CHECK(m_v0DecoTool->decoratela(h_La.ptr(), ctx));
122 ATH_CHECK(m_v0DecoTool->decoratelb(h_Lb.ptr(), ctx));
123 }
124
125 return StatusCode::SUCCESS;
126 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_ERROR(x)
#define ATH_MSG_WARNING(x)
#define ATH_MSG_DEBUG(x)
size_type size() const noexcept
Returns the number of elements in the collection.
SG::WriteHandleKey< xAOD::VertexContainer > m_v0Key
ToolHandle< InDet::V0MainDecorator > m_v0DecoTool
SG::WriteHandleKey< xAOD::VertexContainer > m_ksKey
SG::WriteHandleKey< xAOD::VertexContainer > m_lbKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
SG::WriteHandleKey< xAOD::VertexContainer > m_laKey
retrieve(aClass, aKey=None)
Definition PyKernel.py:110
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ initialize()

StatusCode DerivationFramework::Reco_V0Finder::initialize ( )
override

Definition at line 28 of file Reco_V0Finder.cxx.

29 {
30
31 ATH_MSG_DEBUG("in initialize()");
32 // get the V0Finder tool
33 ATH_CHECK( m_v0FinderTool.retrieve());
34 ATH_CHECK( m_v0DecoTool.retrieve());
35
36 ATH_CHECK(m_vertexKey.initialize());
37 ATH_CHECK(m_v0Key.initialize());
38 ATH_CHECK(m_ksKey.initialize());
39 ATH_CHECK(m_laKey.initialize());
40 ATH_CHECK(m_lbKey.initialize());
41
42 return StatusCode::SUCCESS;
43
44 }

Member Data Documentation

◆ m_CollectionsToCheck

std::vector<std::string> DerivationFramework::Reco_V0Finder::m_CollectionsToCheck
private

Definition at line 32 of file Reco_V0Finder.h.

◆ m_ksKey

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::Reco_V0Finder::m_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container" }
private

Definition at line 39 of file Reco_V0Finder.h.

39{ this, "KshortContainerName", "KshortCandidates", "Ks container" };

◆ m_laKey

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::Reco_V0Finder::m_laKey
private
Initial value:
{ this, "LambdaContainerName", "LambdaCandidates",
"Lambda container" }

Definition at line 40 of file Reco_V0Finder.h.

40 { this, "LambdaContainerName", "LambdaCandidates",
41 "Lambda container" };

◆ m_lbKey

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::Reco_V0Finder::m_lbKey
private
Initial value:
{ this, "LambdabarContainerName", "LambdabarCandidates",
"Lambdabar container" }

Definition at line 42 of file Reco_V0Finder.h.

42 { this, "LambdabarContainerName", "LambdabarCandidates",
43 "Lambdabar container" };

◆ m_v0DecoTool

ToolHandle<InDet::V0MainDecorator> DerivationFramework::Reco_V0Finder::m_v0DecoTool {this, "Decorator", "InDet::V0MainDecorator"}
private

Definition at line 45 of file Reco_V0Finder.h.

45{this, "Decorator", "InDet::V0MainDecorator"};

◆ m_v0FinderTool

ToolHandle<InDet::InDetV0FinderTool> DerivationFramework::Reco_V0Finder::m_v0FinderTool
private

Definition at line 33 of file Reco_V0Finder.h.

◆ m_v0Key

SG::WriteHandleKey<xAOD::VertexContainer> DerivationFramework::Reco_V0Finder::m_v0Key { this, "V0ContainerName", "V0Candidates", "V0 container" }
private

Definition at line 38 of file Reco_V0Finder.h.

38{ this, "V0ContainerName", "V0Candidates", "V0 container" };

◆ m_vertexKey

SG::ReadHandleKey<xAOD::VertexContainer> DerivationFramework::Reco_V0Finder::m_vertexKey
private
Initial value:
{ this, "VxPrimaryCandidateName", "PrimaryVertices",
"key for retrieving vertices" }

Definition at line 35 of file Reco_V0Finder.h.

35 { this, "VxPrimaryCandidateName", "PrimaryVertices",
36 "key for retrieving vertices" };

The documentation for this class was generated from the following files: