.. _program_listing_file_xAODAnaHelpers_VertexContainer.h: Program Listing for File VertexContainer.h ========================================== |exhale_lsh| :ref:`Return to documentation for file ` (``xAODAnaHelpers/VertexContainer.h``) .. |exhale_lsh| unicode:: U+021B0 .. UPWARDS ARROW WITH TIP LEFTWARDS .. code-block:: cpp #ifndef xAODAnaHelpers_VertexContainer_H #define xAODAnaHelpers_VertexContainer_H #include #include #include #include #include #include #include "xAODTracking/VertexContainer.h" #include "xAODTruth/TruthVertexContainer.h" namespace xAH { class VertexContainer { public: VertexContainer(const std::string& detailStr, const std::string& name = "vertex"); virtual ~VertexContainer(); virtual void setTree (TTree *tree); virtual void setBranches(TTree *tree); virtual void clear(); virtual void FillVertices( const xAOD::VertexContainer* vertices); virtual void FillTruthVertices( const xAOD::TruthVertexContainer* truthVertices); std::string m_name; std::string branchName(const std::string& varName) { std::string name = m_name + "_" + varName; return name; } template void connectBranch(TTree *tree, const std::string& branch, std::vector **variable) { std::string name = branchName(branch); if(*variable) { delete (*variable); (*variable)=0; } if(tree->GetBranch(name.c_str())) { (*variable)=new std::vector(); tree->SetBranchStatus (name.c_str() , 1); tree->SetBranchAddress (name.c_str() , variable); } } template void setBranch(TTree* tree, std::string varName, std::vector* localVectorPtr){ std::string name = branchName(varName); tree->Branch(name.c_str(), localVectorPtr); } private: // Vector branches std::vector* m_vertex_x; std::vector* m_vertex_y; std::vector* m_vertex_z; std::string m_detailStr; }; } #endif // xAODAnaHelpers_VertexContainer_H