CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
CDFRunInfo Class Reference

Per-run or per-file information. More...

#include <CDFRunInfo.h>

Public Member Functions

 CDFRunInfo ()
 
 CDFRunInfo (TFile *fromFile)
 
const char * get (const char *key) const
 Get some run info by name. More...
 
double getDouble (const char *key) const
 Get a run info item by name and convert it to a double. More...
 
int getInt (const char *key) const
 Get a run info item by name and convert it to an integer. More...
 
int getKeys (const char **buffer, int nbufs)
 fill the given array with key name pointers More...
 
int getSize () const
 get the number of items More...
 
bool hasKey (const char *key) const
 test for thr presence of given key More...
 
void print () const
 print all information to the terminal More...
 
void setInfo (const char *key, const char *value)
 add some information to the run info More...
 
void store (TFile *toFile)
 

Private Member Functions

bool load (TFile *fromFile)
 

Private Attributes

std::map< std::string, std::string > m_mapData
 

Static Private Attributes

static const char * RootVariableName = "CDFRunInfo"
 

Detailed Description

Per-run or per-file information.

This class allows access to per-run or per-file information as opposed to per-event information such as CDFEventInfo. The information is stored in the form of string -> string pairs. There are utility methods for decoding string values as integers and doubles.

Definition at line 15 of file CDFRunInfo.h.

Constructor & Destructor Documentation

◆ CDFRunInfo() [1/2]

CDFRunInfo::CDFRunInfo ( )

Definition at line 8 of file CDFRunInfo.cc.

8 {}

◆ CDFRunInfo() [2/2]

CDFRunInfo::CDFRunInfo ( TFile *  fromFile)

Definition at line 10 of file CDFRunInfo.cc.

10 { load(file); }

References FrontierConditions_GlobalTag_cff::file, and load().

Member Function Documentation

◆ get()

const char * CDFRunInfo::get ( const char *  key) const

◆ getDouble()

double CDFRunInfo::getDouble ( const char *  key) const

Get a run info item by name and convert it to a double.

Definition at line 26 of file CDFRunInfo.cc.

26  {
27  const char* k = get(key);
28  if (k == nullptr)
29  return 0;
30  return atof(k);
31 }

References get(), dqmdumpme::k, and crabWrapper::key.

◆ getInt()

int CDFRunInfo::getInt ( const char *  key) const

Get a run info item by name and convert it to an integer.

Definition at line 19 of file CDFRunInfo.cc.

19  {
20  const char* k = get(key);
21  if (k == nullptr)
22  return 0;
23  return atoi(k);
24 }

References get(), dqmdumpme::k, and crabWrapper::key.

◆ getKeys()

int CDFRunInfo::getKeys ( const char **  buffer,
int  nbufs 
)

fill the given array with key name pointers

Definition at line 33 of file CDFRunInfo.cc.

33  {
34  int j = 0;
35  for (std::map<std::string, std::string>::const_iterator i = m_mapData.begin(); i != m_mapData.end() && j < nbufs;
36  i++, j++) {
37  buffer[j] = i->first.c_str();
38  }
39  return j;
40 }

References edmScanValgrind::buffer, mps_fire::i, dqmiolumiharvest::j, and m_mapData.

◆ getSize()

int CDFRunInfo::getSize ( ) const
inline

get the number of items

Definition at line 27 of file CDFRunInfo.h.

27 { return m_mapData.size(); }

References m_mapData.

◆ hasKey()

bool CDFRunInfo::hasKey ( const char *  key) const

test for thr presence of given key

Definition at line 42 of file CDFRunInfo.cc.

42  {
43  std::map<std::string, std::string>::const_iterator i = m_mapData.find(key);
44  return (i != m_mapData.end());
45 }

References mps_fire::i, crabWrapper::key, and m_mapData.

◆ load()

bool CDFRunInfo::load ( TFile *  fromFile)
private

Definition at line 49 of file CDFRunInfo.cc.

49  {
50  m_mapData.clear();
51  if (f == nullptr)
52  return false;
53  TMap* pMap = (TMap*)f->Get(RootVariableName);
54  if (pMap == nullptr)
55  return false;
56  TIterator* i = pMap->MakeIterator();
57  TObject* o;
58 
59  while ((o = i->Next()) != nullptr) {
60  std::string a(o->GetName());
61  std::string b(pMap->GetValue(o)->GetName());
62  m_mapData.insert(std::pair<std::string, std::string>(a, b));
63  }
64  return true;
65 }

References a, b, f, mps_fire::i, m_mapData, EcalTangentSkim_cfg::o, RootVariableName, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by CDFRunInfo().

◆ print()

void CDFRunInfo::print ( void  ) const

print all information to the terminal

Definition at line 77 of file CDFRunInfo.cc.

77  {
78  for (std::map<std::string, std::string>::const_iterator i = m_mapData.begin(); i != m_mapData.end(); i++)
79  printf(" '%s' => '%s' \n", i->first.c_str(), i->second.c_str());
80 }

References mps_fire::i, and m_mapData.

◆ setInfo()

void CDFRunInfo::setInfo ( const char *  key,
const char *  value 
)

add some information to the run info

Definition at line 47 of file CDFRunInfo.cc.

47 { m_mapData[key] = value; }

References crabWrapper::key, m_mapData, and relativeConstraints::value.

Referenced by HcalTBWriter::analyze(), and HcalTBWriter::endJob().

◆ store()

void CDFRunInfo::store ( TFile *  toFile)

Definition at line 67 of file CDFRunInfo.cc.

67  {
68  f->cd();
69  TMap* myMap = new TMap();
70  for (std::map<std::string, std::string>::iterator i = m_mapData.begin(); i != m_mapData.end(); i++) {
71  myMap->Add(new TObjString(i->first.c_str()), new TObjString(i->second.c_str()));
72  }
73  myMap->SetName(RootVariableName);
74  myMap->Write(RootVariableName, TObject::kSingleKey);
75 }

References f, mps_fire::i, m_mapData, and RootVariableName.

Referenced by HcalTBWriter::endJob().

Member Data Documentation

◆ m_mapData

std::map<std::string, std::string> CDFRunInfo::m_mapData
private

Definition at line 43 of file CDFRunInfo.h.

Referenced by get(), getKeys(), getSize(), hasKey(), load(), print(), setInfo(), and store().

◆ RootVariableName

const char * CDFRunInfo::RootVariableName = "CDFRunInfo"
staticprivate

Definition at line 42 of file CDFRunInfo.h.

Referenced by load(), and store().

mps_fire.i
i
Definition: mps_fire.py:428
CDFRunInfo::get
const char * get(const char *key) const
Get some run info by name.
Definition: CDFRunInfo.cc:12
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
EcalTangentSkim_cfg.o
o
Definition: EcalTangentSkim_cfg.py:42
edmScanValgrind.buffer
buffer
Definition: edmScanValgrind.py:171
dqmdumpme.k
k
Definition: dqmdumpme.py:60
b
double b
Definition: hdecay.h:118
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CDFRunInfo::RootVariableName
static const char * RootVariableName
Definition: CDFRunInfo.h:42
a
double a
Definition: hdecay.h:119
CDFRunInfo::load
bool load(TFile *fromFile)
Definition: CDFRunInfo.cc:49
CDFRunInfo::m_mapData
std::map< std::string, std::string > m_mapData
Definition: CDFRunInfo.h:43
FrontierConditions_GlobalTag_cff.file
file
Definition: FrontierConditions_GlobalTag_cff.py:13
relativeConstraints.value
value
Definition: relativeConstraints.py:53
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
crabWrapper.key
key
Definition: crabWrapper.py:19