CMS 3D CMS Logo

List of all members | Public Member Functions | Protected Attributes
memory Class Reference

#include <vlib.h>

Public Member Functions

 memory ()
 
Signaloperator[] (Signal)
 
void reg (int nup, int ndown, const char *rname)
 
void reg (int, int, int, int, const char *)
 
 ~memory ()
 

Protected Attributes

int down
 
Signalr
 
int up
 

Detailed Description

Definition at line 178 of file vlib.h.

Constructor & Destructor Documentation

◆ memory()

memory::memory ( )
inline

Definition at line 180 of file vlib.h.

180 { r = nullptr; };

References r.

◆ ~memory()

memory::~memory ( )

Definition at line 874 of file vlib.cc.

874  {
875  if (r != nullptr)
876  delete[] r;
877  r = nullptr;
878 }

References r.

Member Function Documentation

◆ operator[]()

Signal & memory::operator[] ( Signal  i)

Definition at line 883 of file vlib.cc.

885 {
886 #ifdef VGEN
887  string ln;
888  ln = name + "[" + i.getname() + "]";
889  r[0].setname(ln);
890  r[0].setorname(ln);
891  return r[0];
892 #else
893  rval ind = i.getval();
894 #ifdef _VDEBUG
895  if (ind < down || ind > up) {
896  dbgmsg("Memory index out of range: index: " << ind << ", range: [" << up << ":" << down << "]. ");
897  return r[down];
898  } else
899 #endif
900  return r[ind - down];
901 #endif
902 }

References dbgmsg, down, mps_fire::i, Skims_PA_cff::name, alignCSCRings::r, and up.

◆ reg() [1/2]

void memory::reg ( int  nup,
int  ndown,
const char *  rname 
)
inline

Definition at line 183 of file vlib.h.

183 { reg(0, 0, nup, ndown, rname); };

References reg(), and rname.

Referenced by reg().

◆ reg() [2/2]

void memory::reg ( int  high,
int  low,
int  nup,
int  ndown,
const char *  rname 
)

Definition at line 840 of file vlib.cc.

840  {
841  int i;
842  if (nup > ndown) {
843  up = nup;
844  down = ndown;
845  } else {
846  up = ndown;
847  down = nup;
848  }
849  if (r == nullptr) {
850  r = new Signal[up - down + 1];
851  for (i = 0; i <= up - down; ++i) {
852  r[i].initreg(high, low, "");
853  r[i].setr(0);
854  }
855  } else {
856  for (i = 0; i <= up - down; ++i) {
857  r[i].initreg(high, low, "");
858  }
859  }
860 #ifdef VGEN
861  name = rname;
862  if (high == low)
863  std::cout << glc.getmargin() << "reg " << name << " [" << dec << up << ":" << down << "]"
864  << ";\n"
865  << flush;
866  else
867  std::cout << glc.getmargin() << "reg "
868  << "[" << dec << high << ":" << low << "] " << name << " [" << dec << up << ":" << down << "]"
869  << ";\n"
870  << flush;
871 #endif
872 }

References gather_cfg::cout, TauDecayModes::dec, down, glc, LaserClient_cfi::high, mps_fire::i, Signal::initreg(), LaserClient_cfi::low, Skims_PA_cff::name, r, rname, Signal::setr(), and up.

Member Data Documentation

◆ down

int memory::down
protected

Definition at line 195 of file vlib.h.

Referenced by reg().

◆ r

Signal* memory::r
protected

Definition at line 194 of file vlib.h.

Referenced by memory(), reg(), and ~memory().

◆ up

int memory::up
protected

Definition at line 195 of file vlib.h.

Referenced by reg().

mps_fire.i
i
Definition: mps_fire.py:355
Signal::setr
void setr(rval rv)
Definition: vlib.h:57
memory::down
int down
Definition: vlib.h:195
gather_cfg.cout
cout
Definition: gather_cfg.py:144
memory::reg
void reg(int, int, int, int, const char *)
Definition: vlib.cc:840
memory::up
int up
Definition: vlib.h:195
Signal
Definition: vlib.h:28
rval
unsigned long long int rval
Definition: vlib.h:21
rname
const G4String rname[NREG]
Definition: ParametrisedEMPhysics.cc:46
glc
globcontrol glc
Definition: vlib.cc:5
Signal::initreg
void initreg(int, int, const char *)
Definition: vlib.cc:766
memory::r
Signal * r
Definition: vlib.h:194
LaserClient_cfi.high
high
Definition: LaserClient_cfi.py:50
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
dbgmsg
#define dbgmsg(a)
Definition: vlib.cc:9
TauDecayModes.dec
dec
Definition: TauDecayModes.py:143
LaserClient_cfi.low
low
Definition: LaserClient_cfi.py:52