ATLAS Offline Software
EMDatabaseID.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2021 CERN for the benefit of the ATLAS collaboration
3 */
4 
6 
14 
16 
17 #ifndef EMDATABASEID_H
18 #define EMDATABASEID_H
19 
20 #include <string>
21 #include <utility>
22 
24 {
25  std::string Object;
26  std::string Container;
27  std::string Type;
28  std::string Channel;
29  std::string Author;
30  std::string RecoSWV;
31  std::string Tag;
32  long runStart;
33  long runEnd;
34  std::string SimSWV;
35 };
36 
37 
39 {
40 public:
42  EMDatabaseID();
44  EMDatabaseID(const EMDatabaseID& ob);
46  EMDatabaseID(const std::string& id);
50  EMDatabaseID(const std::string& Object, const std::string& Container, const std::string& Type, const std::string& Channel, const std::string& Author, const std::string& RecoSWV, const std::string& Tag, long start, long end);
52  EMDatabaseID(const std::string& Object, const std::string& Container, const std::string& Type, const std::string& Channel, const std::string& Author, const std::string& RecoSWV, const std::string& Tag, const std::string& SimSWV);
53 
54  // this constructor is used for object retrieval; it only contains the subset that is needed
55  EMDatabaseID(const std::string& Object, const std::string& Type, const std::string& Tag);
56 
58  ~EMDatabaseID();
59 
63  bool operator == (const EMDatabaseID& ob) const;
66  bool isInSubgroup(const EMDatabaseID& ob) const;
68  void set(const EMDatabaseID& ob);
70  void set(const std::string& Object, const std::string& Container, const std::string& Type, const std::string& Channel, const std::string& Author, const std::string& RecoSWV, const std::string& Tag, long start, long end);
72  void set(const std::string& Object, const std::string& Container, const std::string& Type, const std::string& Channel, const std::string& Author, const std::string& RecoSWV, const std::string& Tag, const std::string& SimSWV);
73 
74  // this constructor is used for object retrieval; it only contains the subset that is needed
75  void set(const std::string& Object, const std::string& Type, const std::string& Tag);
76 
78  void clear();
79 
81  void object(std::string s) { m_idDes.Object = beautify(std::move(s));}
83  void container(std::string s) { m_idDes.Container = beautify(std::move(s));}
85  void type(std::string s) { m_idDes.Type = beautify(std::move(s));}
87  void channel(std::string s) { m_idDes.Channel = beautify(std::move(s));}
89  void author(std::string s) { m_idDes.Author = beautify(std::move(s));}
91  void recoSWV(std::string s) { m_idDes.RecoSWV = beautify(std::move(s));}
93  void tag(std::string s) { m_idDes.Tag = beautify(std::move(s));}
96  void run(long start, long end) { m_idDes.runStart = start; m_idDes.runEnd = end; m_idDes.SimSWV=""; }
99  void simSWV(std::string s) { m_idDes.SimSWV = beautify(std::move(s)); m_idDes.runStart = 0; m_idDes.runEnd = 0;}
100 
102  int setRunOrMCSWV(std::string s);
103 
105  std::string object() const { return m_idDes.Object;}
107  std::string container() const { return m_idDes.Container;}
109  std::string type() const { return m_idDes.Type;}
111  std::string channel() const { return m_idDes.Channel;}
113  std::string author() const { return m_idDes.Author;}
115  std::string recoSWV() const { return m_idDes.RecoSWV;}
117  std::string tag() const { return m_idDes.Tag;}
119  long runStart() const { return m_idDes.runStart; }
121  long runEnd() const { return m_idDes.runEnd; }
123  std::string simSWV() { return m_idDes.SimSWV; }
124 
126  bool isMCData() const;
128  bool isComplete() const;
130  std::string getUniqueID() const;
133  bool setUniqueID(const std::string& s); // note that this is an "init"-like operation
134 
135  // the functions below are to simplify the storage and retrieval
136 
137  // these must use only the variables set in the read-out version of the constructor
138  // get the ROOT (not COOL) directory name
139  std::string getRootDirectory() const { return object(); };
140  std::string getCoolChannel() const; // get the COOL channel name
141  std::string getTreeName() const { return type(); };
142  std::string getBranchName() const { return tag(); };
143 
145 
146 private:
148  static std::string beautify(const std::string& s) ;
150  static std::string intToString(long l) ;
151 
153 };
154 
155 #endif
EMDatabaseIDDescriptor::runStart
long runStart
Additonal User Information, ...; in egamma used for parametrization: "ClusterEta ClusterE".
Definition: EMDatabaseID.h:32
EMDatabaseID::type
std::string type() const
Access to single identifier.
Definition: EMDatabaseID.h:109
EMDatabaseID
Definition: EMDatabaseID.h:39
EMDatabaseID::m_idDes
EMDatabaseIDDescriptor m_idDes
Definition: EMDatabaseID.h:152
athena_checkUpload.Tag
string Tag
Definition: athena_checkUpload.py:189
EMDatabaseIDDescriptor::Container
std::string Container
Object: Muon, IDTrack, Electron, Tau, Jet, ...
Definition: EMDatabaseID.h:26
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
EMDatabaseID::getBranchName
std::string getBranchName() const
Definition: EMDatabaseID.h:142
EMDatabaseID::getCoolChannel
std::string getCoolChannel() const
Definition: EMDatabaseID.cxx:252
EMDatabaseID::getIDDescriptor
EMDatabaseIDDescriptor getIDDescriptor() const
Definition: EMDatabaseID.h:144
LArBadChanBlobUtils::Channel
Identifier32::value_type Channel
Definition: LArBadChanBlobUtils.h:24
EMDatabaseID::getRootDirectory
std::string getRootDirectory() const
Definition: EMDatabaseID.h:139
EMDatabaseIDDescriptor::SimSWV
std::string SimSWV
Run Number, where the data analysis has stopped.
Definition: EMDatabaseID.h:34
mergePhysValFiles.start
start
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:14
EMDatabaseID::clear
void clear()
Clear all ID-informations.
Definition: EMDatabaseID.cxx:131
EMDatabaseID::recoSWV
std::string recoSWV() const
Access to single identifier.
Definition: EMDatabaseID.h:115
EMDatabaseIDDescriptor::Type
std::string Type
Container: StacoMuonCollection, Trigger_MU20, ElectronAODCollection.
Definition: EMDatabaseID.h:27
EMDatabaseID::getUniqueID
std::string getUniqueID() const
Returns the unique ID-String of this Object.
Definition: EMDatabaseID.cxx:163
UploadAMITag.l
list l
Definition: UploadAMITag.larcaf.py:158
EMDatabaseID::isInSubgroup
bool isInSubgroup(const EMDatabaseID &ob) const
Returns true if the given Identifiers in the parameter ob agree with the given object.
Definition: EMDatabaseID.cxx:80
EMDatabaseID::isComplete
bool isComplete() const
Return true, if all 7/8 Identifiers have been initialized.
Definition: EMDatabaseID.cxx:150
EMDatabaseID::~EMDatabaseID
~EMDatabaseID()
Destructor.
Definition: EMDatabaseID.cxx:54
EMDatabaseID::simSWV
void simSWV(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:99
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
EMDatabaseID::recoSWV
void recoSWV(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:91
EMDatabaseID::isMCData
bool isMCData() const
Returns true, if this is an identifier for a MC-determined Performance Quantaty.
Definition: EMDatabaseID.cxx:145
Container
storage of the time histories of all the cells
EMDatabaseID::channel
std::string channel() const
Access to single identifier.
Definition: EMDatabaseID.h:111
EMDatabaseID::runEnd
long runEnd() const
Access to single identifier.
Definition: EMDatabaseID.h:121
EMDatabaseID::getTreeName
std::string getTreeName() const
Definition: EMDatabaseID.h:141
EMDatabaseID::type
void type(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:85
EMDatabaseID::operator=
EMDatabaseID & operator=(const EMDatabaseID &ob)
= operator
Definition: EMDatabaseID.cxx:59
EMDatabaseID::channel
void channel(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:87
EMDatabaseID::operator==
bool operator==(const EMDatabaseID &ob) const
== operator: returns true if all Identifiers of the two objects coincide.
Definition: EMDatabaseID.cxx:65
EMDatabaseIDDescriptor::Object
std::string Object
Definition: EMDatabaseID.h:25
EMDatabaseID::object
std::string object() const
Access to single identifier.
Definition: EMDatabaseID.h:105
xAODType
Definition: ObjectType.h:13
EMDatabaseID::set
void set(const EMDatabaseID &ob)
Set given ID to this object.
Definition: EMDatabaseID.cxx:92
EMDatabaseID::author
void author(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:89
EMDatabaseID::author
std::string author() const
Access to single identifier.
Definition: EMDatabaseID.h:113
EMDatabaseIDDescriptor::runEnd
long runEnd
Run Number, where the data analysis has started.
Definition: EMDatabaseID.h:33
EMDatabaseID::tag
void tag(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:93
EMDatabaseIDDescriptor::Tag
std::string Tag
SoftwareVersionForReconstruction: 14.0.12, ...
Definition: EMDatabaseID.h:31
EMDatabaseID::EMDatabaseID
EMDatabaseID()
Default constructor.
Definition: EMDatabaseID.cxx:12
EMDatabaseID::beautify
static std::string beautify(const std::string &s)
deletes characters '_',' ','/' and '\' out of the string
Definition: EMDatabaseID.cxx:237
EMDatabaseID::runStart
long runStart() const
Access to single identifier.
Definition: EMDatabaseID.h:119
EMDatabaseID::container
std::string container() const
Access to single identifier.
Definition: EMDatabaseID.h:107
EMDatabaseIDDescriptor::Author
std::string Author
Channel: Zmumu, Zee, JPsi, TTbarSemiLeptonic.
Definition: EMDatabaseID.h:29
EMDatabaseID::simSWV
std::string simSWV()
Access to single identifier.
Definition: EMDatabaseID.h:123
EMDatabaseID::run
void run(long start, long end)
Access to single identifier.
Definition: EMDatabaseID.h:96
EMDatabaseIDDescriptor::Channel
std::string Channel
Type: Efficiency, Scale/Resolution, Fake, ...
Definition: EMDatabaseID.h:28
EMDatabaseID::intToString
static std::string intToString(long l)
converts int to string
Definition: EMDatabaseID.cxx:244
EMDatabaseID::object
void object(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:81
EMDatabaseIDDescriptor
Definition: EMDatabaseID.h:24
EMDatabaseID::container
void container(std::string s)
Access to single identifier.
Definition: EMDatabaseID.h:83
EMDatabaseID::setUniqueID
bool setUniqueID(const std::string &s)
Set the unique ID-String and initialize the object.
Definition: EMDatabaseID.cxx:177
ParticleJetParams::Author
Author
Definition: ParticleJetParamDefs.h:33
EMDatabaseID::tag
std::string tag() const
Access to single identifier.
Definition: EMDatabaseID.h:117
EMDatabaseID::setRunOrMCSWV
int setRunOrMCSWV(std::string s)
converts the given string to runNumbers or Softwareversion.
Definition: EMDatabaseID.cxx:209
EMDatabaseIDDescriptor::RecoSWV
std::string RecoSWV
Author: PerformanceGroup, PrivateMSchott, ....
Definition: EMDatabaseID.h:30