CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Protected Attributes
trklet::MemoryBase Class Referenceabstract

#include <MemoryBase.h>

Inheritance diagram for trklet::MemoryBase:
trklet::AllProjectionsMemory trklet::AllStubsMemory trklet::CandidateMatchMemory trklet::CleanTrackMemory trklet::FullMatchMemory trklet::InputLinkMemory trklet::StubPairsMemory trklet::StubTripletsMemory trklet::TrackFitMemory trklet::TrackletParametersMemory trklet::TrackletProjectionsMemory trklet::VMProjectionsMemory trklet::VMStubsMEMemory trklet::VMStubsTEMemory

Public Member Functions

virtual void clean ()=0
 
void findAndReplaceAll (std::string &data, std::string toSearch, std::string replaceStr)
 
std::string getLastPartOfName () const
 
std::string const & getName () const
 
unsigned int initLayerDisk (unsigned int pos)
 
void initLayerDisk (unsigned int pos, int &layer, int &disk)
 
void initSpecialSeeding (unsigned int pos, bool &overlap, bool &extra, bool &extended)
 
 MemoryBase (std::string name, Settings const &settings, unsigned int iSector)
 
void openFile (bool first, std::string filebase)
 
virtual ~MemoryBase ()=default
 

Static Public Member Functions

static size_t find_nth (const std::string &haystack, size_t pos, const std::string &needle, size_t nth)
 

Protected Attributes

int bx_
 
int event_
 
unsigned int iSector_
 
std::string name_
 
std::ofstream out_
 
Settings const & settings_
 

Detailed Description

Definition at line 13 of file MemoryBase.h.

Constructor & Destructor Documentation

◆ MemoryBase()

MemoryBase::MemoryBase ( std::string  name,
Settings const &  settings,
unsigned int  iSector 
)

Definition at line 11 of file MemoryBase.cc.

11  : name_(name), settings_(settings) {
12  iSector_ = iSector;
13  bx_ = 0;
14  event_ = 0;
15 }

References bx_, event_, and iSector_.

◆ ~MemoryBase()

virtual trklet::MemoryBase::~MemoryBase ( )
virtualdefault

Member Function Documentation

◆ clean()

virtual void trklet::MemoryBase::clean ( )
pure virtual

◆ find_nth()

size_t MemoryBase::find_nth ( const std::string &  haystack,
size_t  pos,
const std::string &  needle,
size_t  nth 
)
static

Definition at line 108 of file MemoryBase.cc.

108  {
109  size_t found_pos = haystack.find(needle, pos);
110  if (0 == nth || string::npos == found_pos)
111  return found_pos;
112  return find_nth(haystack, found_pos + 1, needle, nth - 1);
113 }

Referenced by trklet::FullMatchMemory::FullMatchMemory(), and trklet::TrackletProjectionsMemory::TrackletProjectionsMemory().

◆ findAndReplaceAll()

void MemoryBase::findAndReplaceAll ( std::string &  data,
std::string  toSearch,
std::string  replaceStr 
)

Definition at line 59 of file MemoryBase.cc.

59  {
60  // Get the first occurrence
61  size_t pos = data.find(toSearch);
62 
63  // Repeat till end is reached
64  while (pos != std::string::npos) {
65  // Replace this occurrence of Sub String
66  data.replace(pos, toSearch.size(), replaceStr);
67  // Get the next occurrence from the current position
68  pos = data.find(toSearch, pos + replaceStr.size());
69  }
70 }

References data.

Referenced by openFile().

◆ getLastPartOfName()

std::string trklet::MemoryBase::getLastPartOfName ( ) const
inline

Definition at line 20 of file MemoryBase.h.

20 { return name_.substr(name_.find_last_of('_') + 1); }

References name_.

◆ getName()

std::string const& trklet::MemoryBase::getName ( void  ) const
inline

◆ initLayerDisk() [1/2]

unsigned int MemoryBase::initLayerDisk ( unsigned int  pos)

Definition at line 31 of file MemoryBase.cc.

31  {
32  int layer, disk;
33  initLayerDisk(pos, layer, disk);
34 
35  if (disk > 0)
36  return N_DISK + disk;
37  return layer - 1;
38 }

References initLayerDisk(), and trklet::N_DISK.

◆ initLayerDisk() [2/2]

void MemoryBase::initLayerDisk ( unsigned int  pos,
int &  layer,
int &  disk 
)

Definition at line 17 of file MemoryBase.cc.

17  {
18  string subname = name_.substr(pos, 2);
19  layer = 0;
20  disk = 0;
21 
22  if (subname.substr(0, 1) == "L")
23  layer = stoi(subname.substr(1, 1));
24  else if (subname.substr(0, 1) == "D")
25  disk = stoi(subname.substr(1, 1));
26  else
27  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " name = " << name_ << " subname = " << subname
28  << " " << layer << " " << disk;
29 }

References Exception, and name_.

Referenced by trklet::AllProjectionsMemory::AllProjectionsMemory(), trklet::FullMatchMemory::FullMatchMemory(), initLayerDisk(), trklet::InputLinkMemory::InputLinkMemory(), trklet::TrackletProjectionsMemory::TrackletProjectionsMemory(), trklet::VMProjectionsMemory::VMProjectionsMemory(), trklet::VMStubsMEMemory::VMStubsMEMemory(), and trklet::VMStubsTEMemory::VMStubsTEMemory().

◆ initSpecialSeeding()

void MemoryBase::initSpecialSeeding ( unsigned int  pos,
bool &  overlap,
bool &  extra,
bool &  extended 
)

Definition at line 40 of file MemoryBase.cc.

40  {
41  overlap = false;
42  extra = false;
43  extended = false;
44 
45  char subname = name_[pos];
46 
47  static const std::set<char> overlapset = {
48  'X', 'Y', 'W', 'Q', 'R', 'S', 'T', 'Z', 'x', 'y', 'w', 'q', 'r', 's', 't', 'z'};
49  overlap = overlapset.find(subname) != overlapset.end();
50 
51  static const std::set<char> extraset = {'I', 'J', 'K', 'L'};
52  extra = extraset.find(subname) != extraset.end();
53 
54  static const std::set<char> extendedset = {
55  'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'x', 'y', 'z', 'w', 'q', 'r', 's', 't'};
56  extended = extendedset.find(subname) != extendedset.end();
57 }

References name_, and goodZToMuMu_cfi::overlap.

Referenced by trklet::VMStubsTEMemory::VMStubsTEMemory().

◆ openFile()

void MemoryBase::openFile ( bool  first,
std::string  filebase 
)

Definition at line 72 of file MemoryBase.cc.

72  {
73  std::string fname = filebase;
74  fname += getName();
75 
76  findAndReplaceAll(fname, "PHIa", "PHIaa");
77  findAndReplaceAll(fname, "PHIb", "PHIbb");
78  findAndReplaceAll(fname, "PHIc", "PHIcc");
79  findAndReplaceAll(fname, "PHId", "PHIdd");
80 
81  findAndReplaceAll(fname, "PHIx", "PHIxx");
82  findAndReplaceAll(fname, "PHIy", "PHIyy");
83  findAndReplaceAll(fname, "PHIz", "PHIzz");
84  findAndReplaceAll(fname, "PHIw", "PHIww");
85 
86  fname += "_";
87  if (iSector_ + 1 < 10)
88  fname += "0";
89  fname += std::to_string(iSector_ + 1);
90  fname += ".dat";
91 
92  if (first) {
93  bx_ = 0;
94  event_ = 1;
95  out_.open(fname.c_str());
96  } else {
97  out_.open(fname.c_str(), std::ofstream::app);
98  }
99 
100  out_ << "BX = " << (bitset<3>)bx_ << " Event : " << event_ << endl;
101 
102  bx_++;
103  event_++;
104  if (bx_ > 7)
105  bx_ = 0;
106 }

References bx_, event_, findAndReplaceAll(), dqmdumpme::first, alignmentValidation::fname, getName(), iSector_, out_, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by trklet::AllStubsMemory::writeStubs(), trklet::InputLinkMemory::writeStubs(), and trklet::VMStubsTEMemory::writeStubs().

Member Data Documentation

◆ bx_

int trklet::MemoryBase::bx_
protected

◆ event_

int trklet::MemoryBase::event_
protected

◆ iSector_

unsigned int trklet::MemoryBase::iSector_
protected

◆ name_

std::string trklet::MemoryBase::name_
protected

Definition at line 43 of file MemoryBase.h.

Referenced by getLastPartOfName(), getName(), initLayerDisk(), and initSpecialSeeding().

◆ out_

std::ofstream trklet::MemoryBase::out_
protected

◆ settings_

Settings const& trklet::MemoryBase::settings_
protected
trklet::MemoryBase::settings_
Settings const & settings_
Definition: MemoryBase.h:50
trklet::MemoryBase::find_nth
static size_t find_nth(const std::string &haystack, size_t pos, const std::string &needle, size_t nth)
Definition: MemoryBase.cc:108
pos
Definition: PixelAliasList.h:18
trklet::MemoryBase::findAndReplaceAll
void findAndReplaceAll(std::string &data, std::string toSearch, std::string replaceStr)
Definition: MemoryBase.cc:59
trklet::MemoryBase::event_
int event_
Definition: MemoryBase.h:48
trklet::MemoryBase::out_
std::ofstream out_
Definition: MemoryBase.h:46
trklet::N_DISK
constexpr int N_DISK
Definition: Settings.h:20
trklet::MemoryBase::initLayerDisk
void initLayerDisk(unsigned int pos, int &layer, int &disk)
Definition: MemoryBase.cc:17
trklet::MemoryBase::bx_
int bx_
Definition: MemoryBase.h:47
dqmdumpme.first
first
Definition: dqmdumpme.py:55
trklet::MemoryBase::getName
std::string const & getName() const
Definition: MemoryBase.h:19
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
trklet::MemoryBase::name_
std::string name_
Definition: MemoryBase.h:43
goodZToMuMu_cfi.overlap
overlap
Definition: goodZToMuMu_cfi.py:108
alignmentValidation.fname
string fname
main script
Definition: alignmentValidation.py:959
Exception
Definition: hltDiff.cc:246
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
trklet::MemoryBase::iSector_
unsigned int iSector_
Definition: MemoryBase.h:44