CMS 3D CMS Logo

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

#include <ProcessBase.h>

Inheritance diagram for trklet::ProcessBase:
trklet::FitTrack trklet::InputRouter trklet::MatchCalculator trklet::MatchEngine trklet::MatchProcessor trklet::ProjectionRouter trklet::PurgeDuplicate trklet::TrackletCalculatorBase trklet::TrackletCalculatorDisplaced trklet::TrackletEngine trklet::TrackletEngineDisplaced trklet::TripletEngine trklet::VMRouter trklet::VMRouterCM

Public Member Functions

virtual void addInput (MemoryBase *memory, std::string input)=0
 
virtual void addOutput (MemoryBase *memory, std::string output)=0
 
unsigned int getISeed (const std::string &name)
 
std::string const & getName () const
 
void initLayerDisk (unsigned int pos, int &layer, int &disk)
 
void initLayerDisk (unsigned int pos, int &layer, int &disk, int &layerdisk)
 
unsigned int initLayerDisk (unsigned int pos)
 
void initLayerDisksandISeed (unsigned int &layerdisk1, unsigned int &layerdisk2, unsigned int &iSeed)
 
void initLayerDisksandISeedDisp (unsigned int &layerdisk1, unsigned int &layerdisk2, unsigned int &layerdisk3, unsigned int &iSeed)
 
unsigned int nbits (unsigned int power)
 
 ProcessBase (std::string name, Settings const &settings, Globals *global)
 
virtual ~ProcessBase ()=default
 

Protected Attributes

Globalsglobals_
 
std::string name_
 
Settings const & settings_
 

Detailed Description

Definition at line 12 of file ProcessBase.h.

Constructor & Destructor Documentation

◆ ProcessBase()

ProcessBase::ProcessBase ( std::string  name,
Settings const &  settings,
Globals global 
)

Definition at line 14 of file ProcessBase.cc.

15  : name_(name), settings_(settings), globals_(global) {}
std::string name_
Definition: ProcessBase.h:42
Settings const & settings_
Definition: ProcessBase.h:44
Globals * globals_
Definition: ProcessBase.h:45

◆ ~ProcessBase()

virtual trklet::ProcessBase::~ProcessBase ( )
virtualdefault

Member Function Documentation

◆ addInput()

virtual void trklet::ProcessBase::addInput ( MemoryBase memory,
std::string  input 
)
pure virtual

◆ addOutput()

virtual void trklet::ProcessBase::addOutput ( MemoryBase memory,
std::string  output 
)
pure virtual

◆ getISeed()

unsigned int ProcessBase::getISeed ( const std::string &  name)

Definition at line 156 of file ProcessBase.cc.

References newFWLiteAna::found, getName(), mergeVDriftHistosByStation::name, hfnoseParametersInitialization_cfi::name2, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by trklet::MatchCalculator::addOutput(), and trklet::MatchProcessor::addOutput().

156  {
157  std::size_t pos = name.find('_');
158  std::string name1 = name.substr(pos + 1);
159  pos = name1.find('_');
160  std::string name2 = name1.substr(0, pos);
161 
162  unordered_map<string, unsigned int> seedmap = {
163  {"L1L2", 0}, {"L2L3", 1}, {"L3L4", 2}, {"L5L6", 3}, {"D1D2", 4}, {"D3D4", 5}, {"L1D1", 6},
164  {"L2D1", 7}, {"L1L2XX", 0}, {"L2L3XX", 1}, {"L3L4XX", 2}, {"L5L6XX", 3}, {"D1D2XX", 4}, {"D3D4XX", 5},
165  {"L1D1XX", 6}, {"L2D1XX", 7}, {"L3L4L2", 8}, {"L5L6L4", 9}, {"L2L3D1", 10}, {"D1D2L2", 11}};
166  auto found = seedmap.find(name2);
167  if (found != seedmap.end())
168  return found->second;
169 
170  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << " " << getName() << " name name1 name2 " << name
171  << " - " << name1 << " - " << name2;
172  return 0;
173 }
std::string const & getName() const
Definition: ProcessBase.h:22

◆ getName()

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

Definition at line 22 of file ProcessBase.h.

References name_.

Referenced by trklet::TrackletProcessor::addInput(), trklet::VMRouter::addOutput(), trklet::VMRouterCM::addOutput(), trklet::TrackletCalculatorDisplaced::addProjection(), trklet::TrackletCalculatorBase::addProjection(), trklet::TrackletCalculatorDisplaced::addProjectionDisk(), trklet::TrackletCalculatorBase::addProjectionDisk(), trklet::TrackletCalculatorBase::barrelSeeding(), trklet::TrackletCalculatorDisplaced::DDLSeeding(), plotting.Plot::draw(), trklet::ProjectionRouter::execute(), trklet::MatchEngine::execute(), trklet::TripletEngine::execute(), trklet::TrackletEngine::execute(), trklet::TrackletEngineDisplaced::execute(), trklet::TrackletCalculator::execute(), trklet::TrackletCalculatorDisplaced::execute(), trklet::MatchCalculator::execute(), trklet::MatchProcessor::execute(), trklet::TrackletProcessor::execute(), trklet::TrackletProcessorDisplaced::execute(), trklet::VMRouter::execute(), trklet::FitTrack::execute(), trklet::VMRouterCM::execute(), getISeed(), trklet::TrackletCalculatorBase::goodTrackPars(), trklet::TrackletCalculatorBase::inSector(), trklet::TrackletCalculatorDisplaced::LLDSeeding(), trklet::TrackletCalculatorDisplaced::LLLSeeding(), trklet::MatchCalculator::MatchCalculator(), trklet::MatchProcessor::matchCalculator(), trklet::MatchProcessor::MatchProcessor(), trklet::MatchCalculator::mergeMatches(), trklet::FitTrack::orderedMatches(), trklet::TrackletCalculatorBase::overlapSeeding(), and trklet::FitTrack::trackFitChisq().

22 { return name_; }
std::string name_
Definition: ProcessBase.h:42

◆ initLayerDisk() [1/3]

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

Definition at line 33 of file ProcessBase.cc.

References Exception, and name_.

Referenced by initLayerDisk(), trklet::MatchCalculator::MatchCalculator(), trklet::MatchEngine::MatchEngine(), trklet::MatchProcessor::MatchProcessor(), trklet::ProjectionRouter::ProjectionRouter(), trklet::VMRouter::VMRouter(), and trklet::VMRouterCM::VMRouterCM().

33  {
34  string subname = name_.substr(pos, 2);
35  layer = 0;
36  disk = 0;
37  if (subname.substr(0, 1) == "L")
38  layer = stoi(subname.substr(1, 1));
39  else if (subname.substr(0, 1) == "D")
40  disk = stoi(subname.substr(1, 1));
41  else
42  throw cms::Exception("BadConfig") << __FILE__ << " " << __LINE__ << " " << name_ << " subname = " << subname << " "
43  << layer << " " << disk;
44 }
std::string name_
Definition: ProcessBase.h:42

◆ initLayerDisk() [2/3]

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

Definition at line 46 of file ProcessBase.cc.

References initLayerDisk(), and trklet::N_LAYER.

46  {
47  initLayerDisk(pos, layer, disk);
48 
49  layerdisk = layer - 1;
50  if (disk > 0)
51  layerdisk = N_LAYER + disk - 1;
52 }
void initLayerDisk(unsigned int pos, int &layer, int &disk)
Definition: ProcessBase.cc:33
constexpr int N_LAYER
Definition: Settings.h:25

◆ initLayerDisk() [3/3]

unsigned int ProcessBase::initLayerDisk ( unsigned int  pos)

Definition at line 54 of file ProcessBase.cc.

References initLayerDisk(), and trklet::N_LAYER.

54  {
55  int layer, disk;
56  initLayerDisk(pos, layer, disk);
57 
58  if (disk > 0)
59  return N_LAYER + disk - 1;
60  return layer - 1;
61 }
void initLayerDisk(unsigned int pos, int &layer, int &disk)
Definition: ProcessBase.cc:33
constexpr int N_LAYER
Definition: Settings.h:25

◆ initLayerDisksandISeed()

void ProcessBase::initLayerDisksandISeed ( unsigned int &  layerdisk1,
unsigned int &  layerdisk2,
unsigned int &  iSeed 
)

Definition at line 63 of file ProcessBase.cc.

References trklet::D1D2, trklet::D3, trklet::D3D4, trklet::D4, Exception, PixelRegions::L1, trklet::L1D1, trklet::L1L2, PixelRegions::L2, trklet::L2D1, trklet::L2L3, PixelRegions::L3, trklet::L3L4, PixelRegions::L4, trklet::L5, trklet::L5L6, trklet::L6, trklet::N_LAYER, and name_.

Referenced by trklet::TrackletCalculator::TrackletCalculator(), trklet::TrackletEngine::TrackletEngine(), and trklet::TrackletProcessor::TrackletProcessor().

63  {
64  layerdisk1 = 99;
65  layerdisk2 = 99;
66 
67  if (name_.substr(0, 3) == "TE_") {
68  if (name_[3] == 'L') {
69  layerdisk1 = name_[4] - '1';
70  } else if (name_[3] == 'D') {
71  layerdisk1 = N_LAYER + name_[4] - '1';
72  }
73  if (name_[11] == 'L') {
74  layerdisk2 = name_[12] - '1';
75  } else if (name_[11] == 'D') {
76  layerdisk2 = N_LAYER + name_[12] - '1';
77  } else if (name_[12] == 'L') {
78  layerdisk2 = name_[13] - '1';
79  } else if (name_[12] == 'D') {
80  layerdisk2 = N_LAYER + name_[13] - '1';
81  }
82  }
83 
84  if ((name_.substr(0, 3) == "TC_") || (name_.substr(0, 3) == "TP_")) {
85  if (name_[3] == 'L') {
86  layerdisk1 = name_[4] - '1';
87  } else if (name_[3] == 'D') {
88  layerdisk1 = N_LAYER + name_[4] - '1';
89  }
90  if (name_[5] == 'L') {
91  layerdisk2 = name_[6] - '1';
92  } else if (name_[5] == 'D') {
93  layerdisk2 = N_LAYER + name_[6] - '1';
94  }
95  }
96 
97  if (layerdisk1 == LayerDisk::L1 && layerdisk2 == LayerDisk::L2)
98  iSeed = Seed::L1L2;
99  else if (layerdisk1 == LayerDisk::L2 && layerdisk2 == LayerDisk::L3)
100  iSeed = Seed::L2L3;
101  else if (layerdisk1 == LayerDisk::L3 && layerdisk2 == LayerDisk::L4)
102  iSeed = Seed::L3L4;
103  else if (layerdisk1 == LayerDisk::L5 && layerdisk2 == LayerDisk::L6)
104  iSeed = Seed::L5L6;
105  else if (layerdisk1 == LayerDisk::D1 && layerdisk2 == LayerDisk::D2)
106  iSeed = Seed::D1D2;
107  else if (layerdisk1 == LayerDisk::D3 && layerdisk2 == LayerDisk::D4)
108  iSeed = Seed::D3D4;
109  else if (layerdisk1 == LayerDisk::L1 && layerdisk2 == LayerDisk::D1)
110  iSeed = Seed::L1D1;
111  else if (layerdisk1 == LayerDisk::L2 && layerdisk2 == LayerDisk::D1)
112  iSeed = Seed::L2D1;
113  else {
114  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << " layerdisk1 " << layerdisk1 << " layerdisk2 "
115  << layerdisk2;
116  }
117 }
Divides< B, C > D2
Definition: Factorize.h:137
std::string name_
Definition: ProcessBase.h:42
Divides< A, C > D1
Definition: Factorize.h:136
constexpr int N_LAYER
Definition: Settings.h:25

◆ initLayerDisksandISeedDisp()

void ProcessBase::initLayerDisksandISeedDisp ( unsigned int &  layerdisk1,
unsigned int &  layerdisk2,
unsigned int &  layerdisk3,
unsigned int &  iSeed 
)

Definition at line 119 of file ProcessBase.cc.

References trklet::D1D2L2, Exception, PixelRegions::L2, trklet::L2L3D1, trklet::L2L3L4, PixelRegions::L3, PixelRegions::L4, trklet::L4L5L6, trklet::L5, trklet::L6, trklet::N_LAYER, and name_.

Referenced by trklet::TrackletProcessorDisplaced::TrackletProcessorDisplaced().

122  {
123  layerdisk1 = 99;
124  layerdisk2 = 99;
125  layerdisk3 = 99;
126 
127  if (name_.substr(0, 4) == "TPD_") {
128  if (name_[4] == 'L')
129  layerdisk1 = name_[5] - '1';
130  else if (name_[4] == 'D')
131  layerdisk1 = N_LAYER + name_[5] - '1';
132  if (name_[6] == 'L')
133  layerdisk2 = name_[7] - '1';
134  else if (name_[6] == 'D')
135  layerdisk2 = N_LAYER + name_[7] - '1';
136  if (name_[8] == 'L')
137  layerdisk3 = name_[9] - '1';
138  else if (name_[8] == 'D')
139  layerdisk3 = N_LAYER + name_[9] - '1';
140  }
141 
142  if (layerdisk1 == LayerDisk::L3 && layerdisk2 == LayerDisk::L4 && layerdisk3 == LayerDisk::L2)
143  iSeed = Seed::L2L3L4;
144  else if (layerdisk1 == LayerDisk::L5 && layerdisk2 == LayerDisk::L6 && layerdisk3 == LayerDisk::L4)
145  iSeed = Seed::L4L5L6;
146  else if (layerdisk1 == LayerDisk::L2 && layerdisk2 == LayerDisk::L3 && layerdisk3 == LayerDisk::D1)
147  iSeed = Seed::L2L3D1;
148  else if (layerdisk1 == LayerDisk::D1 && layerdisk2 == LayerDisk::D2 && layerdisk3 == LayerDisk::L2)
149  iSeed = Seed::D1D2L2;
150  else {
151  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << " layerdisk1 " << layerdisk1 << " layerdisk2 "
152  << layerdisk2 << " layerdisk3 " << layerdisk3;
153  }
154 }
Divides< B, C > D2
Definition: Factorize.h:137
std::string name_
Definition: ProcessBase.h:42
Divides< A, C > D1
Definition: Factorize.h:136
constexpr int N_LAYER
Definition: Settings.h:25

◆ nbits()

unsigned int ProcessBase::nbits ( unsigned int  power)

Definition at line 17 of file ProcessBase.cc.

References Exception, and cms::alpakatools::detail::power().

Referenced by trklet::MatchEngine::execute(), trklet::TripletEngine::execute(), and trklet::TrackletEngine::execute().

17  {
18  if (power == 2)
19  return 1;
20  if (power == 4)
21  return 2;
22  if (power == 8)
23  return 3;
24  if (power == 16)
25  return 4;
26  if (power == 32)
27  return 5;
28 
29  throw cms::Exception("LogicError") << __FILE__ << " " << __LINE__ << "nbits: power = " << power;
30  return 0;
31 }
constexpr unsigned int power(unsigned int base, unsigned int exponent)

Member Data Documentation

◆ globals_

Globals* trklet::ProcessBase::globals_
protected

◆ name_

std::string trklet::ProcessBase::name_
protected

Definition at line 42 of file ProcessBase.h.

Referenced by trklet::ProjectionRouter::addInput(), trklet::MatchEngine::addInput(), trklet::TrackletEngine::addInput(), trklet::TripletEngine::addInput(), trklet::TrackletEngineDisplaced::addInput(), trklet::FitTrack::addInput(), trklet::InputRouter::addInput(), trklet::TrackletCalculator::addInput(), trklet::MatchCalculator::addInput(), trklet::TrackletCalculatorDisplaced::addInput(), trklet::MatchProcessor::addInput(), trklet::TrackletProcessor::addInput(), trklet::PurgeDuplicate::addInput(), trklet::TrackletProcessorDisplaced::addInput(), trklet::VMRouter::addInput(), trklet::VMRouterCM::addInput(), trklet::ProjectionRouter::addOutput(), trklet::MatchEngine::addOutput(), trklet::TrackletEngine::addOutput(), trklet::TripletEngine::addOutput(), trklet::FitTrack::addOutput(), trklet::InputRouter::addOutput(), trklet::TrackletEngineDisplaced::addOutput(), trklet::TrackletCalculator::addOutput(), trklet::MatchCalculator::addOutput(), trklet::TrackletCalculatorDisplaced::addOutput(), trklet::MatchProcessor::addOutput(), trklet::TrackletProcessor::addOutput(), trklet::PurgeDuplicate::addOutput(), trklet::TrackletProcessorDisplaced::addOutput(), trklet::VMRouter::addOutput(), trklet::VMRouterCM::addOutput(), trklet::TrackletCalculatorBase::barrelSeeding(), trklet::TrackletCalculatorDisplaced::DDLSeeding(), trklet::TrackletCalculatorBase::diskSeeding(), trklet::MatchEngine::execute(), trklet::TripletEngine::execute(), trklet::TrackletEngineDisplaced::execute(), trklet::MatchCalculator::execute(), trklet::PurgeDuplicate::execute(), trklet::FitTrack::execute(), getName(), initLayerDisk(), initLayerDisksandISeed(), initLayerDisksandISeedDisp(), trklet::TrackletCalculatorDisplaced::LLDSeeding(), trklet::TrackletCalculatorDisplaced::LLLSeeding(), trklet::MatchProcessor::matchCalculator(), trklet::TrackletCalculatorBase::overlapSeeding(), trklet::TripletEngine::readTables(), trklet::TrackletEngineDisplaced::readTables(), trklet::TrackletCalculator::TrackletCalculator(), trklet::TrackletProcessor::TrackletProcessor(), trklet::TripletEngine::TripletEngine(), and trklet::TripletEngine::writeTables().

◆ settings_

Settings const& trklet::ProcessBase::settings_
protected

Definition at line 44 of file ProcessBase.h.

Referenced by trklet::TrackletCalculatorDisplaced::addDiskProj(), trklet::TrackletCalculatorBase::addDiskProj(), trklet::ProjectionRouter::addInput(), trklet::MatchEngine::addInput(), trklet::TrackletEngine::addInput(), trklet::TripletEngine::addInput(), trklet::TrackletEngineDisplaced::addInput(), trklet::FitTrack::addInput(), trklet::InputRouter::addInput(), trklet::TrackletCalculator::addInput(), trklet::MatchCalculator::addInput(), trklet::TrackletCalculatorDisplaced::addInput(), trklet::MatchProcessor::addInput(), trklet::TrackletProcessor::addInput(), trklet::PurgeDuplicate::addInput(), trklet::TrackletProcessorDisplaced::addInput(), trklet::VMRouter::addInput(), trklet::VMRouterCM::addInput(), trklet::TrackletCalculatorDisplaced::addLayerProj(), trklet::TrackletCalculatorBase::addLayerProj(), trklet::ProjectionRouter::addOutput(), trklet::MatchEngine::addOutput(), trklet::TrackletEngine::addOutput(), trklet::TripletEngine::addOutput(), trklet::FitTrack::addOutput(), trklet::TrackletEngineDisplaced::addOutput(), trklet::InputRouter::addOutput(), trklet::TrackletCalculator::addOutput(), trklet::MatchCalculator::addOutput(), trklet::TrackletCalculatorDisplaced::addOutput(), trklet::MatchProcessor::addOutput(), trklet::TrackletProcessor::addOutput(), trklet::PurgeDuplicate::addOutput(), trklet::TrackletProcessorDisplaced::addOutput(), trklet::VMRouter::addOutput(), trklet::VMRouterCM::addOutput(), trklet::TrackletCalculatorDisplaced::addProjection(), trklet::TrackletCalculatorBase::addProjection(), trklet::TrackletCalculatorDisplaced::addProjectionDisk(), trklet::TrackletCalculatorBase::addProjectionDisk(), trklet::TrackletCalculatorDisplaced::approxproj(), trklet::TrackletCalculatorDisplaced::approxprojdisk(), trklet::TrackletCalculatorDisplaced::approxtracklet(), trklet::TrackletCalculatorBase::barrelSeeding(), trklet::TrackletCalculatorDisplaced::DDLSeeding(), trklet::TrackletCalculatorBase::diskSeeding(), trklet::TrackletCalculatorDisplaced::exactproj(), trklet::TrackletCalculatorDisplaced::exactprojdisk(), trklet::TrackletCalculatorBase::exacttracklet(), trklet::TrackletCalculatorDisplaced::exacttracklet(), trklet::TrackletCalculatorBase::exacttrackletdisk(), trklet::TrackletCalculatorBase::exacttrackletOverlap(), trklet::ProjectionRouter::execute(), trklet::MatchEngine::execute(), trklet::TripletEngine::execute(), trklet::TrackletEngine::execute(), trklet::InputRouter::execute(), trklet::TrackletEngineDisplaced::execute(), trklet::TrackletCalculator::execute(), trklet::MatchCalculator::execute(), trklet::TrackletCalculatorDisplaced::execute(), trklet::MatchProcessor::execute(), trklet::TrackletProcessor::execute(), trklet::PurgeDuplicate::execute(), trklet::TrackletProcessorDisplaced::execute(), trklet::VMRouter::execute(), trklet::FitTrack::execute(), trklet::VMRouterCM::execute(), trklet::PurgeDuplicate::findOverlapPhiBins(), trklet::PurgeDuplicate::findOverlapRinvBins(), trklet::PurgeDuplicate::findPhiBin(), trklet::PurgeDuplicate::findRinvBin(), trklet::PurgeDuplicate::getInventedCoords(), trklet::PurgeDuplicate::getInventedCoordsExtended(), trklet::PurgeDuplicate::getInventedSeedingStub(), trklet::TrackletCalculatorBase::goodTrackPars(), trklet::TrackletCalculatorBase::inSector(), trklet::TrackletCalculatorDisplaced::LLDSeeding(), trklet::TrackletCalculatorDisplaced::LLLSeeding(), trklet::MatchCalculator::MatchCalculator(), trklet::MatchProcessor::matchCalculator(), trklet::MatchProcessor::MatchProcessor(), trklet::FitTrack::orderedMatches(), trklet::TrackletCalculatorBase::overlapSeeding(), trklet::ProjectionRouter::ProjectionRouter(), trklet::TripletEngine::readTables(), trklet::TrackletEngineDisplaced::readTables(), trklet::TrackletEngine::setVMPhiBin(), trklet::FitTrack::trackFitChisq(), trklet::TrackletCalculator::TrackletCalculator(), trklet::TrackletCalculatorDisplaced::TrackletCalculatorDisplaced(), trklet::TrackletEngineDisplaced::TrackletEngineDisplaced(), trklet::TrackletProcessor::TrackletProcessor(), trklet::TrackletProcessorDisplaced::TrackletProcessorDisplaced(), trklet::TripletEngine::TripletEngine(), trklet::VMRouter::VMRouter(), trklet::VMRouterCM::VMRouterCM(), trklet::TrackletCalculator::writeInvTable(), and trklet::TripletEngine::~TripletEngine().