Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
FlagSavev1.h
Go to the documentation of this file. Or view the newest version in sPHENIX GitHub for file FlagSavev1.h
1 // Tell emacs that this is a C++ source
2 // -*- C++ -*-.
3 #ifndef FFAOBJECTS_FLAGSAVEV1_H
4 #define FFAOBJECTS_FLAGSAVEV1_H
5 
6 #include "FlagSave.h"
7 
8 #include <cstdint> // for uint64_t
9 #include <iostream>
10 #include <map>
11 #include <string>
12 
13 class PHFlag;
14 class PHObject;
15 
17 class FlagSavev1 : public FlagSave
18 {
19  public:
21  FlagSavev1() = default;
23  ~FlagSavev1() override = default;
24 
25  PHObject *CloneMe() const override;
26 
28  void Reset() override {}
29  int isValid() const override;
30 
34  void identify(std::ostream &os = std::cout) const override;
35 
36  int FillFromPHFlag(const PHFlag *flags, const bool clearold) override;
37  int PutFlagsBack(PHFlag *flags, const bool overwrite) override;
38 
39  private:
40  void ClearAll();
41  int FillIntFromPHFlag(const PHFlag *flags);
42  int Filluint64FromPHFlag(const PHFlag *flags);
43  int FillDoubleFromPHFlag(const PHFlag *flags);
44  int FillFloatFromPHFlag(const PHFlag *flags);
45  int FillStringFromPHFlag(const PHFlag *flags);
46 
47  int PutIntToPHFlag(PHFlag *flags, const bool overwrite);
48  int Putuint64ToPHFlag(PHFlag *flags, const bool overwrite);
49  int PutDoubleToPHFlag(PHFlag *flags, const bool overwrite);
50  int PutFloatToPHFlag(PHFlag *flags, const bool overwrite);
51  int PutStringToPHFlag(PHFlag *flags, const bool overwrite);
52 
53  void PrintIntFlag(std::ostream &os) const;
54  void Printuint64Flag(std::ostream &os) const;
55  void PrintDoubleFlag(std::ostream &os) const;
56  void PrintFloatFlag(std::ostream &os) const;
57  void PrintStringFlag(std::ostream &os) const;
58 
59  std::map<std::string, int> intflag;
60  std::map<std::string, double> doubleflag;
61  std::map<std::string, float> floatflag;
62  std::map<std::string, std::string> stringflag;
63  std::map<std::string, uint64_t> m_uint64flag_map;
64 
65  ClassDefOverride(FlagSavev1, 2)
66 };
67 
68 #endif