CMS 3D CMS Logo

SeedingLayerSetsBuilder.cc
Go to the documentation of this file.
10 
14 
17 
19 
20 #include "HitExtractorPIX.h"
21 #include "HitExtractorSTRP.h"
22 
23 #include <iostream>
24 #include <sstream>
25 #include <ostream>
26 #include <fstream>
27 #include <map>
28 
29 using namespace ctfseeding;
30 using namespace std;
31 
35  int idLayer = 0;
36 
37  size_t index;
38  //
39  // BPIX
40  //
41  if ((index = name.find("BPix")) != string::npos) {
44  idLayer = atoi(name.substr(index + 4, 1).c_str());
45  }
46  //
47  // FPIX
48  //
49  else if ((index = name.find("FPix")) != string::npos) {
51  idLayer = atoi(name.substr(index + 4).c_str());
52  if (name.find("pos") != string::npos) {
54  } else {
56  }
57  }
58  //
59  // TIB
60  //
61  else if ((index = name.find("TIB")) != string::npos) {
62  subdet = GeomDetEnumerators::TIB;
64  idLayer = atoi(name.substr(index + 3, 1).c_str());
65  }
66  //
67  // TID
68  //
69  else if ((index = name.find("TID")) != string::npos) {
70  subdet = GeomDetEnumerators::TID;
71  idLayer = atoi(name.substr(index + 3, 1).c_str());
72  if (name.find("pos") != string::npos) {
74  } else {
76  }
77  }
78  //
79  // TOB
80  //
81  else if ((index = name.find("TOB")) != string::npos) {
82  subdet = GeomDetEnumerators::TOB;
84  idLayer = atoi(name.substr(index + 3, 1).c_str());
85  }
86  //
87  // TEC
88  //
89  else if ((index = name.find("TEC")) != string::npos) {
90  subdet = GeomDetEnumerators::TEC;
91  idLayer = atoi(name.substr(index + 3, 1).c_str());
92  if (name.find("pos") != string::npos) {
94  } else {
96  }
97  }
98  return std::make_tuple(subdet, side, idLayer);
99 }
100 
102  const std::string& layerName,
103  const edm::ParameterSet& cfgLayer,
105  : nameIndex(index), hitBuilder(cfgLayer.getParameter<string>("TTRHBuilder")) {
106  usePixelHitProducer = false;
107  if (cfgLayer.exists("HitProducer")) {
108  pixelHitProducer = cfgLayer.getParameter<string>("HitProducer");
109  usePixelHitProducer = true;
110  }
111 
112  bool skipClusters = cfgLayer.exists("skipClusters");
113  if (skipClusters) {
114  LogDebug("SeedingLayerSetsBuilder") << layerName << " ready for skipping";
115  } else {
116  LogDebug("SeedingLayerSetsBuilder") << layerName << " not skipping ";
117  }
118 
119  auto subdetData = nameToEnumId(layerName);
120  subdet = std::get<0>(subdetData);
121  side = std::get<1>(subdetData);
122  idLayer = std::get<2>(subdetData);
124  extractor = std::make_unique<HitExtractorPIX>(side, idLayer, pixelHitProducer, iC);
125  } else if (subdet != GeomDetEnumerators::invalidDet) { // strip
126  auto extr = std::make_unique<HitExtractorSTRP>(subdet, side, idLayer, clusterChargeCut(cfgLayer));
127  if (cfgLayer.exists("matchedRecHits")) {
128  extr->useMatchedHits(cfgLayer.getParameter<edm::InputTag>("matchedRecHits"), iC);
129  }
130  if (cfgLayer.exists("rphiRecHits")) {
131  extr->useRPhiHits(cfgLayer.getParameter<edm::InputTag>("rphiRecHits"), iC);
132  }
133  if (cfgLayer.exists("stereoRecHits")) {
134  extr->useStereoHits(cfgLayer.getParameter<edm::InputTag>("stereoRecHits"), iC);
135  }
136  if (cfgLayer.exists("vectorRecHits")) {
137  extr->useVectorHits(cfgLayer.getParameter<edm::InputTag>("vectorRecHits"), iC);
138  }
139  if (cfgLayer.exists("useRingSlector") && cfgLayer.getParameter<bool>("useRingSlector")) {
140  extr->useRingSelector(cfgLayer.getParameter<int>("minRing"), cfgLayer.getParameter<int>("maxRing"));
141  }
143  cfgLayer.exists("useSimpleRphiHitsCleaner") ? cfgLayer.getParameter<bool>("useSimpleRphiHitsCleaner") : true;
144  extr->useSimpleRphiHitsCleaner(useSimpleRphiHitsCleaner);
145 
146  double minAbsZ = cfgLayer.exists("MinAbsZ") ? cfgLayer.getParameter<double>("MinAbsZ") : 0.;
147  if (minAbsZ > 0.) {
148  extr->setMinAbsZ(minAbsZ);
149  }
150  if (skipClusters) {
151  bool useProjection = cfgLayer.exists("useProjection") ? cfgLayer.getParameter<bool>("useProjection") : false;
152  if (useProjection) {
153  LogDebug("SeedingLayerSetsBuilder") << layerName << " will project partially masked matched rechit";
154  } else {
155  extr->setNoProjection();
156  }
157  }
158  extractor = std::move(extr);
159  }
160  if (extractor && skipClusters) {
161  extractor->useSkipClusters(cfgLayer.getParameter<edm::InputTag>("skipClusters"), iC);
162  }
163 }
164 
165 std::string SeedingLayerSetsBuilder::LayerSpec::print(const std::vector<std::string>& names) const {
166  std::ostringstream str;
167  str << "Layer=" << names[nameIndex] << ", hitBldr: " << hitBuilder;
168 
169  str << ", useRingSelector: ";
170  HitExtractorSTRP* ext = nullptr;
171  if ((ext = dynamic_cast<HitExtractorSTRP*>(extractor.get())) && ext->useRingSelector()) {
172  auto minMaxRing = ext->getMinMaxRing();
173  str << "true,"
174  << " Rings: (" << std::get<0>(minMaxRing) << "," << std::get<1>(minMaxRing) << ")";
175  } else
176  str << "false";
177 
178  return str.str();
179 }
180 //FastSim specific constructor
183  const edm::InputTag& fastsimHitTag)
186 }
188  : SeedingLayerSetsBuilder(cfg, iC) {}
190  std::vector<std::string> namesPset = cfg.getParameter<std::vector<std::string> >("layerList");
191  std::vector<std::vector<std::string> > layerNamesInSets = this->layerNamesInSets(namesPset);
192  // debug printout of layers
193  typedef std::vector<std::string>::const_iterator IS;
194  typedef std::vector<std::vector<std::string> >::const_iterator IT;
195  std::ostringstream str;
196  // The following should not be set to cout
197  // for (IT it = layerNamesInSets.begin(); it != layerNamesInSets.end(); it++) {
198  // str << "SET: ";
199  // for (IS is = it->begin(); is != it->end(); is++) str << *is <<" ";
200  // str << std::endl;
201  // }
202  // std::cout << str.str() << std::endl;
203  if (layerNamesInSets.empty())
205  else
207 
208  for (IT it = layerNamesInSets.begin(); it != layerNamesInSets.end(); it++) {
209  if (it->size() != theNumberOfLayersInSet)
210  throw cms::Exception("Configuration")
211  << "Assuming all SeedingLayerSets to have same number of layers. LayerSet " << (it - layerNamesInSets.begin())
212  << " has " << it->size() << " while 0th has " << theNumberOfLayersInSet;
213  for (const std::string& layerName : *it) {
214  auto found = std::find(theLayerNames.begin(), theLayerNames.end(), layerName);
215  unsigned short layerIndex = 0;
216  if (found != theLayerNames.end()) {
217  layerIndex = found - theLayerNames.begin();
218  } else {
220  throw cms::Exception("Assert")
221  << "Too many layers in " << __FILE__ << ":" << __LINE__
222  << ", we may have to enlarge the index type from unsigned short to unsigned int";
223  }
224 
225  layerIndex = theLayers.size();
226  theLayers.emplace_back(theLayerNames.size(), layerName, layerConfig(layerName, cfg), iC);
227  theLayerNames.push_back(layerName);
228  }
229  theLayerSetIndices.push_back(layerIndex);
230  }
231  }
232  theLayerDets.resize(theLayers.size());
233  theTTRHBuilders.resize(theLayers.size());
234 
235  // debug printout
236  // The following should not be set to cout
237  //for(const LayerSpec& layer: theLayers) {
238  // std::cout << layer.print(theLayerNames) << std::endl;
239  //}
240 }
241 
243 
246  empty.setAllowAnything(); // for now accept any parameter in the PSets, consider improving later
247 
248  desc.add<std::vector<std::string> >("layerList", {});
259 }
260 
262  const edm::ParameterSet& cfg) const {
264 
265  for (string::size_type iEnd = nameLayer.size(); iEnd > 0; --iEnd) {
266  string name = nameLayer.substr(0, iEnd);
267  if (cfg.exists(name))
268  return cfg.getParameter<edm::ParameterSet>(name);
269  }
270  edm::LogError("SeedingLayerSetsBuilder")
271  << "configuration for layer: " << nameLayer << " not found, job will probably crash!";
272  return result;
273 }
274 
275 vector<vector<string> > SeedingLayerSetsBuilder::layerNamesInSets(const vector<string>& namesPSet) {
276  std::vector<std::vector<std::string> > result;
277  for (std::vector<std::string>::const_iterator is = namesPSet.begin(); is < namesPSet.end(); ++is) {
278  vector<std::string> layersInSet;
279  string line = *is;
281  while (pos != string::npos) {
282  pos = line.find('+');
283  string layer = line.substr(0, pos);
284  layersInSet.push_back(layer);
285  line = line.substr(pos + 1, string::npos);
286  }
287  result.push_back(layersInSet);
288  }
289  return result;
290 }
291 
293  // We want to evaluate both in the first invocation (to properly
294  // initialize ESWatcher), and this way we avoid one branch compared
295  // to || (should be tiny effect)
296  if (!(geometryWatcher_.check(es) | trhWatcher_.check(es)))
297  return;
298 
300  es.get<TrackerRecoGeometryRecord>().get(htracker);
301  const GeometricSearchTracker& tracker = *htracker;
302 
303  const std::vector<BarrelDetLayer const*>& bpx = tracker.barrelLayers();
304  const std::vector<BarrelDetLayer const*>& tib = tracker.tibLayers();
305  const std::vector<BarrelDetLayer const*>& tob = tracker.tobLayers();
306 
307  const std::vector<ForwardDetLayer const*>& fpx_pos = tracker.posForwardLayers();
308  const std::vector<ForwardDetLayer const*>& tid_pos = tracker.posTidLayers();
309  const std::vector<ForwardDetLayer const*>& tec_pos = tracker.posTecLayers();
310 
311  const std::vector<ForwardDetLayer const*>& fpx_neg = tracker.negForwardLayers();
312  const std::vector<ForwardDetLayer const*>& tid_neg = tracker.negTidLayers();
313  const std::vector<ForwardDetLayer const*>& tec_neg = tracker.negTecLayers();
314 
315  for (const auto& layer : theLayers) {
316  const DetLayer* detLayer = nullptr;
317  int index = layer.idLayer - 1;
318 
319  if (layer.subdet == GeomDetEnumerators::PixelBarrel) {
320  detLayer = bpx[index];
321  } else if (layer.subdet == GeomDetEnumerators::PixelEndcap) {
322  if (layer.side == TrackerDetSide::PosEndcap) {
323  detLayer = fpx_pos[index];
324  } else {
325  detLayer = fpx_neg[index];
326  }
327  } else if (layer.subdet == GeomDetEnumerators::TIB) {
328  detLayer = tib[index];
329  } else if (layer.subdet == GeomDetEnumerators::TID) {
330  if (layer.side == TrackerDetSide::PosEndcap) {
331  detLayer = tid_pos[index];
332  } else {
333  detLayer = tid_neg[index];
334  }
335  } else if (layer.subdet == GeomDetEnumerators::TOB) {
336  detLayer = tob[index];
337  } else if (layer.subdet == GeomDetEnumerators::TEC) {
338  if (layer.side == TrackerDetSide::PosEndcap) {
339  detLayer = tec_pos[index];
340  } else {
341  detLayer = tec_neg[index];
342  }
343  } else {
344  throw cms::Exception("Configuration") << "Did not find DetLayer for layer " << theLayerNames[layer.nameIndex];
345  }
346 
348  es.get<TransientRecHitRecord>().get(layer.hitBuilder, builder);
349 
350  theLayerDets[layer.nameIndex] = detLayer;
351  theTTRHBuilders[layer.nameIndex] = builder.product();
352  }
353 }
354 
355 std::vector<SeedingLayerSetsBuilder::SeedingLayerId> SeedingLayerSetsBuilder::layers() const {
356  std::vector<SeedingLayerId> ret;
357  ret.reserve(numberOfLayers());
358  for (const auto& layer : theLayers) {
359  ret.emplace_back(layer.subdet, layer.side, layer.idLayer);
360  }
361  return ret;
362 }
363 
364 std::unique_ptr<SeedingLayerSetsHits> SeedingLayerSetsBuilder::hits(const edm::Event& ev, const edm::EventSetup& es) {
365  updateEventSetup(es);
366 
367  auto ret = std::make_unique<SeedingLayerSetsHits>(
369 
370  for (auto& layer : theLayers) {
371  ret->addHits(
372  layer.nameIndex,
373  layer.extractor->hits((const TkTransientTrackingRecHitBuilder&)(*theTTRHBuilders[layer.nameIndex]), ev, es));
374  }
375  ret->shrink_to_fit();
376  return ret;
377 }
378 //new function for FastSim only
380  const edm::Event& ev, const edm::EventSetup& es) {
381  updateEventSetup(es);
382 
384  ev.getByToken(fastSimrecHitsToken_, fastSimrechits_); //using FastSim RecHits
385  edm::ESHandle<TrackerTopology> trackerTopology;
386  es.get<TrackerTopologyRcd>().get(trackerTopology);
387  const TrackerTopology* const tTopo = trackerTopology.product();
389 
390  auto ret = std::make_unique<SeedingLayerSetsHits>(
392 
393  for (auto& layer : theLayers) {
394  layerhits_.clear();
395  for (auto& rh : *fastSimrechits_) {
398  int idLayer = 0;
399  if ((rh.det()->geographicalId()).subdetId() == PixelSubdetector::PixelBarrel) {
401  side = TrackerDetSide::Barrel;
402  idLayer = tTopo->pxbLayer(rh.det()->geographicalId());
403  } else if ((rh.det()->geographicalId()).subdetId() == PixelSubdetector::PixelEndcap) {
405  idLayer = tTopo->pxfDisk(rh.det()->geographicalId());
406  if (tTopo->pxfSide(rh.det()->geographicalId()) == 1)
408  else
410  }
411 
412  if (layer.subdet == subdet && layer.side == side && layer.idLayer == idLayer) {
413  BaseTrackerRecHit const& b(rh);
414  auto ptrHit = (BaseTrackerRecHit*)(b.clone());
415  layerhits_.emplace_back(ptrHit);
416  } else
417  continue;
418  }
419  ret->addHits(layer.nameIndex, std::move(layerhits_));
420  }
421  ret->shrink_to_fit();
422  return ret;
423 }
runTheMatrix.ret
ret
prodAgent to be discontinued
Definition: runTheMatrix.py:373
edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
GeomDetEnumerators::SubDetector
SubDetector
Definition: GeomDetEnumerators.h:10
ext
Definition: memstream.h:15
SeedingLayerSetsBuilder::theLayers
std::vector< LayerSpec > theLayers
Definition: SeedingLayerSetsBuilder.h:98
PixelSubdetector.h
SeedingLayerSetsBuilder::geometryWatcher_
edm::ESWatcher< TrackerRecoGeometryRecord > geometryWatcher_
Definition: SeedingLayerSetsBuilder.h:68
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
GeomDetEnumerators::TID
Definition: GeomDetEnumerators.h:15
ESHandle.h
SeedingLayerSetsBuilder::theLayerDets
std::vector< const DetLayer * > theLayerDets
Definition: SeedingLayerSetsBuilder.h:96
DetLayer
Definition: DetLayer.h:21
HitExtractorPIX.h
TrackerTopology::pxfSide
unsigned int pxfSide(const DetId &id) const
Definition: TrackerTopology.h:192
GeomDetEnumerators::invalidDet
Definition: GeomDetEnumerators.h:31
SeedingLayerSetsBuilder::makeSeedingLayerSetsHitsforFastSim
std::unique_ptr< SeedingLayerSetsHits > makeSeedingLayerSetsHitsforFastSim(const edm::Event &ev, const edm::EventSetup &es)
Definition: SeedingLayerSetsBuilder.cc:379
TrackerTopology
Definition: TrackerTopology.h:16
TransientRecHitRecord.h
SeedingLayerSetsBuilder::LayerSpec::side
TrackerDetSide side
Definition: SeedingLayerSetsBuilder.h:87
pos
Definition: PixelAliasList.h:18
GeomDetEnumerators::TIB
Definition: GeomDetEnumerators.h:13
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
TransientRecHitRecord
Definition: TransientRecHitRecord.h:14
SeedingLayerSetsBuilder::~SeedingLayerSetsBuilder
~SeedingLayerSetsBuilder()
Definition: SeedingLayerSetsBuilder.cc:242
TrackerRecoGeometryRecord.h
GeomDetEnumerators::TOB
Definition: GeomDetEnumerators.h:14
TransientTrackingRecHit.h
TrackerRecoGeometryRecord
Definition: TrackerRecoGeometryRecord.h:11
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
newFWLiteAna.found
found
Definition: newFWLiteAna.py:118
edm::Handle
Definition: AssociativeIterator.h:50
SeedingLayerSetsBuilder::SeedingLayerSetsBuilder
SeedingLayerSetsBuilder()=default
SeedingLayerSetsBuilder::LayerSpec::LayerSpec
LayerSpec(unsigned short index, const std::string &layerName, const edm::ParameterSet &cfgLayer, edm::ConsumesCollector &iC)
Definition: SeedingLayerSetsBuilder.cc:101
SeedingLayerSetsBuilder::fastSimrecHitsToken_
edm::EDGetTokenT< FastTrackerRecHitCollection > fastSimrecHitsToken_
Definition: SeedingLayerSetsBuilder.h:70
TkTransientTrackingRecHitBuilder.h
TkTransientTrackingRecHitBuilder
Definition: TkTransientTrackingRecHitBuilder.h:15
TrackerTopology::pxbLayer
unsigned int pxbLayer(const DetId &id) const
Definition: TrackerTopology.h:144
SeedingLayerSetsBuilder::theLayerNames
std::vector< std::string > theLayerNames
Definition: SeedingLayerSetsBuilder.h:95
GeometricSearchTracker.h
GeomDetEnumerators::PixelBarrel
Definition: GeomDetEnumerators.h:11
SeedingLayerSetsBuilder::LayerSpec::subdet
GeomDetEnumerators::SubDetector subdet
Definition: SeedingLayerSetsBuilder.h:86
TrackerDetSide::Barrel
trigger::size_type
uint16_t size_type
Definition: TriggerTypeDefs.h:18
SeedingLayerSetsBuilder::hits
std::unique_ptr< SeedingLayerSetsHits > hits(const edm::Event &ev, const edm::EventSetup &es)
Definition: SeedingLayerSetsBuilder.cc:364
TrackerTopologyRcd.h
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
SeedingLayerSetsBuilder::theLayerSetIndices
std::vector< SeedingLayerSetsHits::LayerSetIndex > theLayerSetIndices
Definition: SeedingLayerSetsBuilder.h:94
HLTSiStripMonitoring_cff.skipClusters
skipClusters
Definition: HLTSiStripMonitoring_cff.py:177
names
const std::string names[nVars_]
Definition: PhotonIDValueMapProducer.cc:124
BaseTrackerRecHit
Definition: BaseTrackerRecHit.h:15
SeedingLayerSetsBuilder.h
SeedingLayerSetsBuilder::updateEventSetup
void updateEventSetup(const edm::EventSetup &es)
Definition: SeedingLayerSetsBuilder.cc:292
str
#define str(s)
Definition: TestProcessor.cc:51
edm::ESHandle< GeometricSearchTracker >
TrackerDetSide
TrackerDetSide
Definition: TrackerDetSide.h:4
TrackerDetSide::NegEndcap
SeedingLayerSetsBuilder::SeedingLayerId
std::tuple< GeomDetEnumerators::SubDetector, TrackerDetSide, int > SeedingLayerId
Definition: SeedingLayerSetsBuilder.h:33
edm::ConsumesCollector::consumes
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
Definition: ConsumesCollector.h:55
b
double b
Definition: hdecay.h:118
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ctfseeding::HitExtractorSTRP
Definition: HitExtractorSTRP.h:24
PbPb_ZMuSkimMuonDPG_cff.tracker
tracker
Definition: PbPb_ZMuSkimMuonDPG_cff.py:60
edm::ParameterSet::exists
bool exists(std::string const &parameterName) const
checks if a parameter exists
Definition: ParameterSet.cc:681
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
Event.h
SiStripPI::max
Definition: SiStripPayloadInspectorHelper.h:169
GeomDetEnumerators::TEC
Definition: GeomDetEnumerators.h:16
HitExtractorSTRP.h
SeedingLayerSetsBuilder::LayerSpec::pixelHitProducer
std::string pixelHitProducer
Definition: SeedingLayerSetsBuilder.h:82
TrackerTopology::pxfDisk
unsigned int pxfDisk(const DetId &id) const
Definition: TrackerTopology.h:446
BarrelDetLayer.h
edm::EventSetup
Definition: EventSetup.h:57
SeedingLayerSetsBuilder::trhWatcher_
edm::ESWatcher< TransientRecHitRecord > trhWatcher_
Definition: SeedingLayerSetsBuilder.h:69
ctfseeding
Definition: SeedingLayerSetsBuilder.h:23
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
get
#define get
IT
std::vector< LinkConnSpec >::const_iterator IT
Definition: TriggerBoardSpec.cc:5
SeedingLayerSetsBuilder::nameToEnumId
static SeedingLayerId nameToEnumId(const std::string &name)
Definition: SeedingLayerSetsBuilder.cc:32
looper.cfg
cfg
Definition: looper.py:297
TrackerDetSide::PosEndcap
SeedingLayerSetsBuilder::fillDescriptions
static void fillDescriptions(edm::ParameterSetDescription &desc)
Definition: SeedingLayerSetsBuilder.cc:244
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
SeedingLayerSetsHits::OwnedHits
std::vector< HitPointer > OwnedHits
Definition: SeedingLayerSetsHits.h:23
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
SeedingLayerSetsBuilder::LayerSpec::extractor
std::unique_ptr< ctfseeding::HitExtractor > extractor
Definition: SeedingLayerSetsBuilder.h:89
SeedingLayerSetsBuilder::theTTRHBuilders
std::vector< const TransientTrackingRecHitBuilder * > theTTRHBuilders
Definition: SeedingLayerSetsBuilder.h:97
SeedingLayerSetsBuilder::LayerSpec::idLayer
int idLayer
Definition: SeedingLayerSetsBuilder.h:88
SeedingLayerSetsBuilder::LayerSpec::usePixelHitProducer
bool usePixelHitProducer
Definition: SeedingLayerSetsBuilder.h:83
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
ev
bool ev
Definition: Hydjet2Hadronizer.cc:95
SeedingLayerSetsBuilder
Definition: SeedingLayerSetsBuilder.h:31
ForwardDetLayer.h
Exception
Definition: hltDiff.cc:246
GeometricSearchTracker
Definition: GeometricSearchTracker.h:14
SeedingLayerSetsBuilder::numberOfLayers
unsigned short numberOfLayers() const
Definition: SeedingLayerSetsBuilder.h:45
SeedingLayerSetsBuilder::LayerSpec::print
std::string print(const std::vector< std::string > &names) const
Definition: SeedingLayerSetsBuilder.cc:165
SeedingLayerSetsBuilder::layerNamesInSets
static std::vector< std::vector< std::string > > layerNamesInSets(const std::vector< std::string > &namesPSet)
Definition: SeedingLayerSetsBuilder.cc:275
SeedingLayerSetsBuilder::layers
std::vector< SeedingLayerId > layers() const
Definition: SeedingLayerSetsBuilder.cc:355
Skims_PA_cff.name
name
Definition: Skims_PA_cff.py:17
EventSetup.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
GeomDetEnumerators::PixelEndcap
Definition: GeomDetEnumerators.h:12
AlignmentPI::index
index
Definition: AlignmentPayloadInspectorHelper.h:46
mps_fire.result
result
Definition: mps_fire.py:311
cms::Exception
Definition: Exception.h:70
ClusterChargeCut.h
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
ParameterSet.h
SeedingLayerSetsBuilder::layerConfig
edm::ParameterSet layerConfig(const std::string &nameLayer, const edm::ParameterSet &cfg) const
Definition: SeedingLayerSetsBuilder.cc:261
clusterChargeCut
float clusterChargeCut(const edm::ParameterSet &conf, const char *name="clusterChargeCut")
Definition: ClusterChargeCut.h:7
SeedingLayerSetsBuilder::theNumberOfLayersInSet
unsigned short theNumberOfLayersInSet
Definition: SeedingLayerSetsBuilder.h:93
edm::Event
Definition: Event.h:73
mps_splice.line
line
Definition: mps_splice.py:76
edm::InputTag
Definition: InputTag.h:15
edm::ConsumesCollector
Definition: ConsumesCollector.h:45
ConversionStep2_cff.useSimpleRphiHitsCleaner
useSimpleRphiHitsCleaner
Definition: ConversionStep2_cff.py:121
edm::OwnVector
Definition: OwnVector.h:24