ATLAS Offline Software
Loading...
Searching...
No Matches
BPhysMetadataBase.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
5//============================================================================
6// BPhysMetadataBase.h
7//============================================================================
8//
9// Author : Wolfgang Walkowiak <Wolfgang.Walkowiak@cern.ch.>
10// Changes:
11// - w.w., 2017-01-22: Added use of BPhysMetaDataTool.
12// - w.w., 2019-12-05: Added long and vector<long> types
13//
14// Store JO metadata in the output file.
15//
16// It uses the BPhysMetaDataTool (default) or the IOVDbMetaDataTool to
17// store job option information as metadata in a specific branch whose
18// name needs to prefixed by the deriviation format name.
19// Note: Metadata stored by the IOVDbMetaDataTool is not readable on
20// 'RootCore' level.
21//
22// This is a base class. Inherit from it to add the job options you want
23// to store. For a usage example, see
24// Bmumu_metadata.h / Bmumu_metadata.cxx
25// and
26// BPHY8.py .
27//
28//============================================================================
29//
30#ifndef DERIVATIONFRAMEWORK_BPhysMetadataBase_H
31#define DERIVATIONFRAMEWORK_BPhysMetadataBase_H
32
33#include <string>
34#include <map>
35#include <vector>
36
39#include "GaudiKernel/ToolHandle.h"
40
41namespace DerivationFramework {
42
43 class BPhysMetadataBase : public extends<AthAlgTool, IAugmentationTool> {
44 public:
45 BPhysMetadataBase(const std::string& t, const std::string& n,
46 const IInterface* p);
47
48 virtual StatusCode initialize();
49 virtual StatusCode finalize();
50
51 virtual StatusCode addBranches(const EventContext& ctx) const;
52
53 protected:
54 virtual void recordPropertyI(const std::string& name, int val);
55 virtual void recordPropertyL(const std::string& name, long val);
56 virtual void recordPropertyD(const std::string& name, double val);
57 virtual void recordPropertyB(const std::string& name, bool val);
58 virtual void recordPropertyS(const std::string& name, const std::string& val);
59
60 virtual void recordPropertyVI(const std::string& name, const std::vector<int>& val);
61 virtual void recordPropertyVL(const std::string& name, const std::vector<long>& val);
62 virtual void recordPropertyVD(const std::string& name, const std::vector<double>& val);
63 virtual void recordPropertyVB(const std::string& name, const std::vector<bool>& val);
64 virtual void recordPropertyVS(const std::string& name,
65 const std::vector<std::string>& val);
66
67 private:
68 virtual StatusCode saveMetaDataBPhys() const;
69 virtual std::string buildFolderName(const std::string& fname="") const;
70 virtual std::string vecToString(const std::vector<int>& v) const;
71 virtual std::string vecToString(const std::vector<long>& v) const;
72 virtual std::string vecToString(const std::vector<double>& v) const;
73 virtual std::string vecToString(const std::vector<bool>& v) const;
74 virtual std::string vecToString(const std::vector<std::string>& v) const;
75
76 private:
79
80 // job options
81 std::string m_derivationName;
82 std::string m_mdFolderName;
83 std::string m_prefix;
84
85 // maps for different types of JOs
86 std::map<std::string, int> m_propInt;
87 std::map<std::string, long> m_propLong;
88 std::map<std::string, double> m_propDouble;
89 std::map<std::string, bool> m_propBool;
90 std::map<std::string, std::string> m_propString;
91 std::map<std::string, std::vector<int> > m_propVInt;
92 std::map<std::string, std::vector<long> > m_propVLong;
93 std::map<std::string, std::vector<double> > m_propVDouble;
94 std::map<std::string, std::vector<bool> > m_propVBool;
95 std::map<std::string, std::vector<std::string> > m_propVString;
96 }; // class
97} // namespace
98
99#endif // DERIVATIONFRAMEWORK_BPhysMetadataBase_H
std::map< std::string, std::vector< int > > m_propVInt
ServiceHandle< StoreGateSvc > m_outputMetaStore
Object accessing the output metadata store.
std::map< std::string, double > m_propDouble
virtual void recordPropertyB(const std::string &name, bool val)
std::map< std::string, long > m_propLong
virtual void recordPropertyD(const std::string &name, double val)
virtual void recordPropertyVD(const std::string &name, const std::vector< double > &val)
std::map< std::string, std::vector< long > > m_propVLong
virtual std::string buildFolderName(const std::string &fname="") const
virtual void recordPropertyS(const std::string &name, const std::string &val)
virtual std::string vecToString(const std::vector< int > &v) const
std::map< std::string, std::string > m_propString
virtual void recordPropertyVI(const std::string &name, const std::vector< int > &val)
std::map< std::string, bool > m_propBool
virtual StatusCode addBranches(const EventContext &ctx) const
std::map< std::string, std::vector< std::string > > m_propVString
BPhysMetadataBase(const std::string &t, const std::string &n, const IInterface *p)
virtual void recordPropertyL(const std::string &name, long val)
std::map< std::string, std::vector< double > > m_propVDouble
virtual void recordPropertyVB(const std::string &name, const std::vector< bool > &val)
std::map< std::string, int > m_propInt
virtual void recordPropertyVS(const std::string &name, const std::vector< std::string > &val)
std::map< std::string, std::vector< bool > > m_propVBool
virtual void recordPropertyVL(const std::string &name, const std::vector< long > &val)
virtual void recordPropertyI(const std::string &name, int val)
virtual StatusCode saveMetaDataBPhys() const
THE reconstruction tool.