CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
OId.cc
Go to the documentation of this file.
2 //
3 #include <cstdio>
4 #include <cstring>
5 
6 static const char* fmtContId = "[CID=%08X]";
7 static const char* fmtItemId = "[OID=%08X]";
8 
10  m_containerId(-1),
11  m_itemId(-1){
12 }
13 
14 ora::OId::OId( int contId, int itemId ):
15  m_containerId( contId),
16  m_itemId( itemId ){
17 }
18 
19 ora::OId::OId( const OId& rhs ):
20  m_containerId( rhs.m_containerId),
21  m_itemId( rhs.m_itemId ){
22 }
23 
25  m_containerId = rhs.m_containerId;
26  m_itemId = rhs.m_itemId;
27  return *this;
28 }
29 
30 bool ora::OId::operator==( const OId& rhs ) const {
31  if(m_containerId != rhs.m_containerId ) return false;
32  if(m_itemId != rhs.m_itemId ) return false;
33  return true;
34 }
35 
36 bool ora::OId::operator!=( const OId& rhs ) const {
37  return !operator==(rhs);
38 }
39 
41  return m_containerId;
42 }
43 
44 int ora::OId::itemId() const{
45  return m_itemId;
46 }
47 
48 std::string ora::OId::toString(){
49  std::string str("");
50  char text[128];
51  ::sprintf(text, fmtContId, m_containerId);
52  str += text;
53  ::sprintf(text, fmtItemId, m_itemId);
54  str += text;
55  return str;
56 }
57 
58 void ora::OId::fromString( const std::string& source ){
59  std::string tmp = source;
60  for(char* p1 = (char*)tmp.c_str(); p1; p1 = ::strchr(++p1,'[')) {
61  char* p2 = ::strchr(p1, '=');
62  char* p3 = ::strchr(p1, ']');
63  if ( p2 && p3 ) {
64  if ( ::strncmp(fmtContId, p1, 4) == 0 ) {
65  ::sscanf(p1, fmtContId, &m_containerId );
66  }
67  else if ( ::strncmp(fmtItemId, p1, 4) == 0 ) {
68  ::sscanf(p1, fmtItemId, &m_itemId );
69  }
70  else {
71  *p3 = *p2 = 0;
72  }
73  *p3 = ']';
74  *p2 = '=';
75  }
76  }
77 }
78 
void fromString(const std::string &s)
Definition: OId.cc:58
static const char * fmtContId
Definition: OId.cc:6
Definition: OId.h:8
int m_containerId
Definition: OId.h:21
bool operator==(const CaloTower &t1, const CaloTower &t2)
Definition: CaloTower.h:211
OId()
Definition: OId.cc:9
bool operator==(const OId &rhs) const
Definition: OId.cc:30
OId & operator=(const OId &rhs)
Definition: OId.cc:24
int containerId() const
Definition: OId.cc:40
tuple text
Definition: runonSM.py:42
double p2[4]
Definition: TauolaWrapper.h:90
bool operator!=(const OId &rhs) const
Definition: OId.cc:36
int m_itemId
Definition: OId.h:22
std::vector< std::vector< double > > tmp
Definition: MVATrainer.cc:100
static const char * fmtItemId
Definition: OId.cc:7
double p1[4]
Definition: TauolaWrapper.h:89
std::string toString()
Definition: OId.cc:48
int itemId() const
Definition: OId.cc:44
double p3[4]
Definition: TauolaWrapper.h:91