CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes
ticl::PatternRecognitionbyCA Class Referencefinal

#include <PatternRecognitionbyCA.h>

Inheritance diagram for ticl::PatternRecognitionbyCA:
ticl::PatternRecognitionAlgoBase

Public Member Functions

void emptyTrackstersFromSeedsTRK (std::vector< Trackster > &tracksters, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation, const edm::ProductID &collectionID) const
 
void energyRegressionAndID (const std::vector< reco::CaloCluster > &layerClusters, std::vector< Trackster > &result)
 
void makeTracksters (const PatternRecognitionAlgoBase::Inputs &input, std::vector< Trackster > &result, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation) override
 
 PatternRecognitionbyCA (const edm::ParameterSet &conf, const CacheBase *cache)
 
 ~PatternRecognitionbyCA () override
 
- Public Member Functions inherited from ticl::PatternRecognitionAlgoBase
 PatternRecognitionAlgoBase (const edm::ParameterSet &conf, const CacheBase *cache)
 
virtual ~PatternRecognitionAlgoBase ()
 

Private Member Functions

void mergeTrackstersTRK (const std::vector< Trackster > &, const std::vector< reco::CaloCluster > &, std::vector< Trackster > &, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation) const
 

Private Attributes

const std::string eidInputName_
 
const float eidMinClusterEnergy_
 
const int eidNClusters_
 
const int eidNLayers_
 
const std::string eidOutputNameEnergy_
 
const std::string eidOutputNameId_
 
tensorflow::Session * eidSession_
 
const float etaLimitIncreaseWindow_
 
const float max_delta_time_
 
const unsigned int max_out_in_hops_
 
const int min_clusters_per_ntuplet_
 
const float min_cos_pointing_
 
const float min_cos_theta_
 
const int missing_layers_
 
const bool oneTracksterPerTrackSeed_
 
const bool out_in_dfs_
 
const bool promoteEmptyRegionToTrackster_
 
hgcal::RecHitTools rhtools_
 
const std::unique_ptr< HGCGraphtheGraph_
 

Static Private Attributes

static const int eidNFeatures_ = 3
 

Additional Inherited Members

- Public Types inherited from ticl::PatternRecognitionAlgoBase
enum  VerbosityLevel {
  None = 0, Basic, Advanced, Expert,
  Guru
}
 
- Protected Attributes inherited from ticl::PatternRecognitionAlgoBase
int algo_verbosity_
 

Detailed Description

Definition at line 14 of file PatternRecognitionbyCA.h.

Constructor & Destructor Documentation

◆ PatternRecognitionbyCA()

PatternRecognitionbyCA::PatternRecognitionbyCA ( const edm::ParameterSet conf,
const CacheBase cache 
)

Definition at line 17 of file PatternRecognitionbyCA.cc.

19  theGraph_(std::make_unique<HGCGraph>()),
20  oneTracksterPerTrackSeed_(conf.getParameter<bool>("oneTracksterPerTrackSeed")),
21  promoteEmptyRegionToTrackster_(conf.getParameter<bool>("promoteEmptyRegionToTrackster")),
22  out_in_dfs_(conf.getParameter<bool>("out_in_dfs")),
23  max_out_in_hops_(conf.getParameter<int>("max_out_in_hops")),
24  min_cos_theta_(conf.getParameter<double>("min_cos_theta")),
25  min_cos_pointing_(conf.getParameter<double>("min_cos_pointing")),
26  etaLimitIncreaseWindow_(conf.getParameter<double>("etaLimitIncreaseWindow")),
27  missing_layers_(conf.getParameter<int>("missing_layers")),
28  min_clusters_per_ntuplet_(conf.getParameter<int>("min_clusters_per_ntuplet")),
29  max_delta_time_(conf.getParameter<double>("max_delta_time")),
30  eidInputName_(conf.getParameter<std::string>("eid_input_name")),
31  eidOutputNameEnergy_(conf.getParameter<std::string>("eid_output_name_energy")),
32  eidOutputNameId_(conf.getParameter<std::string>("eid_output_name_id")),
33  eidMinClusterEnergy_(conf.getParameter<double>("eid_min_cluster_energy")),
34  eidNLayers_(conf.getParameter<int>("eid_n_layers")),
35  eidNClusters_(conf.getParameter<int>("eid_n_clusters")),
36  eidSession_(nullptr) {
37  // mount the tensorflow graph onto the session when set
38  const TrackstersCache *trackstersCache = dynamic_cast<const TrackstersCache *>(cache);
39  if (trackstersCache == nullptr || trackstersCache->eidGraphDef == nullptr) {
40  throw cms::Exception("MissingGraphDef")
41  << "PatternRecognitionbyCA received an empty graph definition from the global cache";
42  }
44 }

References utilities::cache(), tensorflow::createSession(), ticl::TrackstersCache::eidGraphDef, eidSession_, and Exception.

◆ ~PatternRecognitionbyCA()

PatternRecognitionbyCA::~PatternRecognitionbyCA ( )
override

Definition at line 46 of file PatternRecognitionbyCA.cc.

46 {};

Member Function Documentation

◆ emptyTrackstersFromSeedsTRK()

void PatternRecognitionbyCA::emptyTrackstersFromSeedsTRK ( std::vector< Trackster > &  tracksters,
std::unordered_map< int, std::vector< int >> &  seedToTracksterAssociation,
const edm::ProductID collectionID 
) const

Definition at line 228 of file PatternRecognitionbyCA.cc.

231  {
232  for (auto &thisSeed : seedToTracksterAssociation) {
233  if (thisSeed.second.empty()) {
234  Trackster t;
235  t.setRegressedEnergy(0.f);
236  t.zeroProbabilities();
238  t.setSeed(collectionID, thisSeed.first);
239  tracksters.emplace_back(t);
240  thisSeed.second.emplace_back(tracksters.size() - 1);
241  }
242  }
243 }

References ticl::Trackster::charged_hadron, f, and OrderedSet::t.

Referenced by makeTracksters().

◆ energyRegressionAndID()

void PatternRecognitionbyCA::energyRegressionAndID ( const std::vector< reco::CaloCluster > &  layerClusters,
std::vector< Trackster > &  result 
)

Definition at line 245 of file PatternRecognitionbyCA.cc.

246  {
247  // Energy regression and particle identification strategy:
248  //
249  // 1. Set default values for regressed energy and particle id for each trackster.
250  // 2. Store indices of tracksters whose total sum of cluster energies is above the
251  // eidMinClusterEnergy_ (GeV) treshold. Inference is not applied for soft tracksters.
252  // 3. When no trackster passes the selection, return.
253  // 4. Create input and output tensors. The batch dimension is determined by the number of
254  // selected tracksters.
255  // 5. Fill input tensors with layer cluster features. Per layer, clusters are ordered descending
256  // by energy. Given that tensor data is contiguous in memory, we can use pointer arithmetic to
257  // fill values, even with batching.
258  // 6. Zero-fill features for empty clusters in each layer.
259  // 7. Batched inference.
260  // 8. Assign the regressed energy and id probabilities to each trackster.
261  //
262  // Indices used throughout this method:
263  // i -> batch element / trackster
264  // j -> layer
265  // k -> cluster
266  // l -> feature
267 
268  // set default values per trackster, determine if the cluster energy threshold is passed,
269  // and store indices of hard tracksters
270  std::vector<int> tracksterIndices;
271  for (int i = 0; i < (int)tracksters.size(); i++) {
272  // calculate the cluster energy sum (2)
273  // note: after the loop, sumClusterEnergy might be just above the threshold which is enough to
274  // decide whether to run inference for the trackster or not
275  float sumClusterEnergy = 0.;
276  for (const unsigned int &vertex : tracksters[i].vertices()) {
277  sumClusterEnergy += (float)layerClusters[vertex].energy();
278  // there might be many clusters, so try to stop early
279  if (sumClusterEnergy >= eidMinClusterEnergy_) {
280  // set default values (1)
281  tracksters[i].setRegressedEnergy(0.f);
282  tracksters[i].zeroProbabilities();
283  tracksterIndices.push_back(i);
284  break;
285  }
286  }
287  }
288 
289  // do nothing when no trackster passes the selection (3)
290  int batchSize = (int)tracksterIndices.size();
291  if (batchSize == 0) {
292  return;
293  }
294 
295  // create input and output tensors (4)
296  tensorflow::TensorShape shape({batchSize, eidNLayers_, eidNClusters_, eidNFeatures_});
297  tensorflow::Tensor input(tensorflow::DT_FLOAT, shape);
299 
300  std::vector<tensorflow::Tensor> outputs;
301  std::vector<std::string> outputNames;
302  if (!eidOutputNameEnergy_.empty()) {
304  }
305  if (!eidOutputNameId_.empty()) {
306  outputNames.push_back(eidOutputNameId_);
307  }
308 
309  // fill input tensor (5)
310  for (int i = 0; i < batchSize; i++) {
311  const Trackster &trackster = tracksters[tracksterIndices[i]];
312 
313  // per layer, we only consider the first eidNClusters_ clusters in terms of energy, so in order
314  // to avoid creating large / nested structures to do the sorting for an unknown number of total
315  // clusters, create a sorted list of layer cluster indices to keep track of the filled clusters
316  std::vector<int> clusterIndices(trackster.vertices().size());
317  for (int k = 0; k < (int)trackster.vertices().size(); k++) {
318  clusterIndices[k] = k;
319  }
320  sort(clusterIndices.begin(), clusterIndices.end(), [&layerClusters, &trackster](const int &a, const int &b) {
321  return layerClusters[trackster.vertices(a)].energy() > layerClusters[trackster.vertices(b)].energy();
322  });
323 
324  // keep track of the number of seen clusters per layer
325  std::vector<int> seenClusters(eidNLayers_);
326 
327  // loop through clusters by descending energy
328  for (const int &k : clusterIndices) {
329  // get features per layer and cluster and store the values directly in the input tensor
330  const reco::CaloCluster &cluster = layerClusters[trackster.vertices(k)];
331  int j = rhtools_.getLayerWithOffset(cluster.hitsAndFractions()[0].first) - 1;
332  if (j < eidNLayers_ && seenClusters[j] < eidNClusters_) {
333  // get the pointer to the first feature value for the current batch, layer and cluster
334  float *features = &input.tensor<float, 4>()(i, j, seenClusters[j], 0);
335 
336  // fill features
337  *(features++) = float(cluster.energy() / float(trackster.vertex_multiplicity(k)));
338  *(features++) = float(std::abs(cluster.eta()));
339  *(features) = float(cluster.phi());
340 
341  // increment seen clusters
342  seenClusters[j]++;
343  }
344  }
345 
346  // zero-fill features of empty clusters in each layer (6)
347  for (int j = 0; j < eidNLayers_; j++) {
348  for (int k = seenClusters[j]; k < eidNClusters_; k++) {
349  float *features = &input.tensor<float, 4>()(i, j, k, 0);
350  for (int l = 0; l < eidNFeatures_; l++) {
351  *(features++) = 0.f;
352  }
353  }
354  }
355  }
356 
357  // run the inference (7)
359 
360  // store regressed energy per trackster (8)
361  if (!eidOutputNameEnergy_.empty()) {
362  // get the pointer to the energy tensor, dimension is batch x 1
363  float *energy = outputs[0].flat<float>().data();
364 
365  for (const int &i : tracksterIndices) {
366  tracksters[i].setRegressedEnergy(*(energy++));
367  }
368  }
369 
370  // store id probabilities per trackster (8)
371  if (!eidOutputNameId_.empty()) {
372  // get the pointer to the id probability tensor, dimension is batch x id_probabilities.size()
373  int probsIdx = eidOutputNameEnergy_.empty() ? 0 : 1;
374  float *probs = outputs[probsIdx].flat<float>().data();
375 
376  for (const int &i : tracksterIndices) {
377  tracksters[i].setProbabilities(probs);
378  probs += tracksters[i].id_probabilities().size();
379  }
380  }
381 }

References a, funct::abs(), b, data, eidInputName_, eidMinClusterEnergy_, eidNClusters_, eidNFeatures_, eidNLayers_, eidOutputNameEnergy_, eidOutputNameId_, eidSession_, HCALHighEnergyHPDFilter_cfi::energy, reco::CaloCluster::energy(), reco::CaloCluster::eta(), f, postprocess-scan-build::features, dqmMemoryStats::float, hgcal::RecHitTools::getLayerWithOffset(), reco::CaloCluster::hitsAndFractions(), mps_fire::i, input, createfilelist::int, dqmiolumiharvest::j, dqmdumpme::k, cmsLHEtoEOSManager::l, jets_cff::outputNames, PatBasicFWLiteJetAnalyzer_Selector_cfg::outputs, reco::CaloCluster::phi(), rhtools_, tensorflow::run(), bphysicsOniaDQM_cfi::vertex, ticl::Trackster::vertex_multiplicity(), pwdgSkimBPark_cfi::vertices, and ticl::Trackster::vertices().

Referenced by makeTracksters().

◆ makeTracksters()

void PatternRecognitionbyCA::makeTracksters ( const PatternRecognitionAlgoBase::Inputs input,
std::vector< Trackster > &  result,
std::unordered_map< int, std::vector< int >> &  seedToTracksterAssociation 
)
overridevirtual

Implements ticl::PatternRecognitionAlgoBase.

Definition at line 48 of file PatternRecognitionbyCA.cc.

50  {
51  // Protect from events with no seeding regions
52  if (input.regions.empty())
53  return;
54 
56 
57  theGraph_->setVerbosity(algo_verbosity_);
58  theGraph_->clear();
59  if (algo_verbosity_ > None) {
60  LogDebug("HGCPatternRecoByCA") << "Making Tracksters with CA" << std::endl;
61  }
62 
63  bool isRegionalIter = (input.regions[0].index != -1);
64  std::vector<HGCDoublet::HGCntuplet> foundNtuplets;
65  std::vector<int> seedIndices;
66  std::vector<uint8_t> layer_cluster_usage(input.layerClusters.size(), 0);
67  theGraph_->makeAndConnectDoublets(input.tiles,
68  input.regions,
71  input.layerClusters,
72  input.mask,
73  input.layerClustersTime,
74  1,
75  1,
82 
83  theGraph_->findNtuplets(foundNtuplets, seedIndices, min_clusters_per_ntuplet_, out_in_dfs_, max_out_in_hops_);
84  //#ifdef FP_DEBUG
85  const auto &doublets = theGraph_->getAllDoublets();
86  int tracksterId = 0;
87 
88  for (auto const &ntuplet : foundNtuplets) {
89  std::set<unsigned int> effective_cluster_idx;
90  std::pair<std::set<unsigned int>::iterator, bool> retVal;
91 
92  std::vector<float> times;
93  std::vector<float> timeErrors;
94 
95  for (auto const &doublet : ntuplet) {
96  auto innerCluster = doublets[doublet].innerClusterId();
97  auto outerCluster = doublets[doublet].outerClusterId();
98 
99  retVal = effective_cluster_idx.insert(innerCluster);
100  if (retVal.second) {
101  float time = input.layerClustersTime.get(innerCluster).first;
102  if (time > -99) {
103  times.push_back(time);
104  timeErrors.push_back(1. / pow(input.layerClustersTime.get(innerCluster).second, 2));
105  }
106  }
107 
108  retVal = effective_cluster_idx.insert(outerCluster);
109  if (retVal.second) {
110  float time = input.layerClustersTime.get(outerCluster).first;
111  if (time > -99) {
112  times.push_back(time);
113  timeErrors.push_back(1. / pow(input.layerClustersTime.get(outerCluster).second, 2));
114  }
115  }
116 
117  if (algo_verbosity_ > Advanced) {
118  LogDebug("HGCPatternRecoByCA") << " New doublet " << doublet << " for trackster: " << result.size()
119  << " InnerCl " << innerCluster << " " << input.layerClusters[innerCluster].x()
120  << " " << input.layerClusters[innerCluster].y() << " "
121  << input.layerClusters[innerCluster].z() << " OuterCl " << outerCluster << " "
122  << input.layerClusters[outerCluster].x() << " "
123  << input.layerClusters[outerCluster].y() << " "
124  << input.layerClusters[outerCluster].z() << " " << tracksterId << std::endl;
125  }
126  }
127  for (auto const i : effective_cluster_idx) {
128  layer_cluster_usage[i]++;
129  if (algo_verbosity_ > Basic)
130  LogDebug("HGCPatternRecoByCA") << "LayerID: " << i << " count: " << (int)layer_cluster_usage[i] << std::endl;
131  }
132  // Put back indices, in the form of a Trackster, into the results vector
133  Trackster tmp;
134  tmp.vertices().reserve(effective_cluster_idx.size());
135  tmp.vertex_multiplicity().resize(effective_cluster_idx.size(), 0);
136  //regions and seedIndices can have different size
137  //if a seeding region does not lead to any trackster
138  tmp.setSeed(input.regions[0].collectionID, seedIndices[tracksterId]);
139  if (isRegionalIter) {
140  seedToTracksterAssociation[tmp.seedIndex()].push_back(tracksterId);
141  }
142 
143  std::pair<float, float> timeTrackster(-99., -1.);
145  timeTrackster = timeEstimator.fixSizeHighestDensity(times, timeErrors);
146  tmp.setTimeAndError(timeTrackster.first, timeTrackster.second);
147  std::copy(std::begin(effective_cluster_idx), std::end(effective_cluster_idx), std::back_inserter(tmp.vertices()));
148  result.push_back(tmp);
149  tracksterId++;
150  }
151 
152  for (auto &trackster : result) {
153  assert(trackster.vertices().size() <= trackster.vertex_multiplicity().size());
154  for (size_t i = 0; i < trackster.vertices().size(); ++i) {
155  trackster.vertex_multiplicity()[i] = layer_cluster_usage[trackster.vertices(i)];
156  if (algo_verbosity_ > Basic)
157  LogDebug("HGCPatternRecoByCA") << "LayerID: " << trackster.vertices(i)
158  << " count: " << (int)trackster.vertex_multiplicity(i) << std::endl;
159  }
160  }
161 
162  // Now decide if the tracksters from the track-based iterations have to be merged
164  std::vector<Trackster> tmp;
165  mergeTrackstersTRK(result, input.layerClusters, tmp, seedToTracksterAssociation);
166  tmp.swap(result);
167  }
168 
170 
171  // run energy regression and ID
172  energyRegressionAndID(input.layerClusters, result);
173 
174  // now adding dummy tracksters from seeds not connected to any shower in the result collection
175  // these are marked as charged hadrons with probability 1.
177  emptyTrackstersFromSeedsTRK(result, seedToTracksterAssociation, input.regions[0].collectionID);
178  }
179 
180  if (algo_verbosity_ > Advanced) {
181  for (auto &trackster : result) {
182  LogDebug("HGCPatternRecoByCA") << "Trackster characteristics: " << std::endl;
183  LogDebug("HGCPatternRecoByCA") << "Size: " << trackster.vertices().size() << std::endl;
184  auto counter = 0;
185  for (auto const &p : trackster.id_probabilities()) {
186  LogDebug("HGCPatternRecoByCA") << counter++ << ": " << p << std::endl;
187  }
188  }
189  }
190  theGraph_->clear();
191 }

References ticl::PatternRecognitionAlgoBase::Advanced, ticl::PatternRecognitionAlgoBase::algo_verbosity_, cms::cuda::assert(), ticl::assignPCAtoTracksters(), ticl::PatternRecognitionAlgoBase::Basic, begin, filterCSVwithJSON::copy, HLT_2018_cff::doublets, emptyTrackstersFromSeedsTRK(), end, energyRegressionAndID(), etaLimitIncreaseWindow_, hgcalsimclustertime::ComputeClusterTime::fixSizeHighestDensity(), hgcal::RecHitTools::getEventSetup(), hgcal::RecHitTools::getPositionLayer(), mps_fire::i, input, createfilelist::int, hgcal::RecHitTools::lastLayerEE(), hgcal::RecHitTools::lastLayerFH(), LogDebug, max_delta_time_, max_out_in_hops_, mergeTrackstersTRK(), min_clusters_per_ntuplet_, min_cos_pointing_, min_cos_theta_, missing_layers_, ticl::TileConstants::nEtaBins, ticl::PatternRecognitionAlgoBase::None, ticl::TileConstants::nPhiBins, oneTracksterPerTrackSeed_, out_in_dfs_, AlCaHLTBitMon_ParallelJobs::p, funct::pow(), promoteEmptyRegionToTrackster_, mps_fire::result, rhtools_, theGraph_, ntuplemaker::time, and createJobs::tmp.

◆ mergeTrackstersTRK()

void PatternRecognitionbyCA::mergeTrackstersTRK ( const std::vector< Trackster > &  input,
const std::vector< reco::CaloCluster > &  layerClusters,
std::vector< Trackster > &  output,
std::unordered_map< int, std::vector< int >> &  seedToTracksterAssociation 
) const
private

Definition at line 193 of file PatternRecognitionbyCA.cc.

197  {
198  output.reserve(input.size());
199  for (auto &thisSeed : seedToTracksterAssociation) {
200  auto &tracksters = thisSeed.second;
201  if (!tracksters.empty()) {
202  auto numberOfTrackstersInSeed = tracksters.size();
203  output.emplace_back(input[tracksters[0]]);
204  auto &outTrackster = output.back();
205  tracksters[0] = output.size() - 1;
206  auto updated_size = outTrackster.vertices().size();
207  for (unsigned int j = 1; j < numberOfTrackstersInSeed; ++j) {
208  auto &thisTrackster = input[tracksters[j]];
209  updated_size += thisTrackster.vertices().size();
210  if (algo_verbosity_ > Basic) {
211  LogDebug("HGCPatternRecoByCA") << "Updated size: " << updated_size << std::endl;
212  }
213  outTrackster.vertices().reserve(updated_size);
214  outTrackster.vertex_multiplicity().reserve(updated_size);
215  std::copy(std::begin(thisTrackster.vertices()),
216  std::end(thisTrackster.vertices()),
217  std::back_inserter(outTrackster.vertices()));
218  std::copy(std::begin(thisTrackster.vertex_multiplicity()),
219  std::end(thisTrackster.vertex_multiplicity()),
220  std::back_inserter(outTrackster.vertex_multiplicity()));
221  }
222  tracksters.resize(1);
223  }
224  }
225  output.shrink_to_fit();
226 }

References ticl::PatternRecognitionAlgoBase::algo_verbosity_, ticl::PatternRecognitionAlgoBase::Basic, begin, filterCSVwithJSON::copy, end, input, dqmiolumiharvest::j, LogDebug, and convertSQLitetoXML_cfg::output.

Referenced by makeTracksters().

Member Data Documentation

◆ eidInputName_

const std::string ticl::PatternRecognitionbyCA::eidInputName_
private

Definition at line 44 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidMinClusterEnergy_

const float ticl::PatternRecognitionbyCA::eidMinClusterEnergy_
private

Definition at line 47 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidNClusters_

const int ticl::PatternRecognitionbyCA::eidNClusters_
private

Definition at line 49 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidNFeatures_

const int ticl::PatternRecognitionbyCA::eidNFeatures_ = 3
staticprivate

Definition at line 54 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidNLayers_

const int ticl::PatternRecognitionbyCA::eidNLayers_
private

Definition at line 48 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidOutputNameEnergy_

const std::string ticl::PatternRecognitionbyCA::eidOutputNameEnergy_
private

Definition at line 45 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidOutputNameId_

const std::string ticl::PatternRecognitionbyCA::eidOutputNameId_
private

Definition at line 46 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID().

◆ eidSession_

tensorflow::Session* ticl::PatternRecognitionbyCA::eidSession_
private

Definition at line 52 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID(), and PatternRecognitionbyCA().

◆ etaLimitIncreaseWindow_

const float ticl::PatternRecognitionbyCA::etaLimitIncreaseWindow_
private

Definition at line 40 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ max_delta_time_

const float ticl::PatternRecognitionbyCA::max_delta_time_
private

Definition at line 43 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ max_out_in_hops_

const unsigned int ticl::PatternRecognitionbyCA::max_out_in_hops_
private

Definition at line 37 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ min_clusters_per_ntuplet_

const int ticl::PatternRecognitionbyCA::min_clusters_per_ntuplet_
private

Definition at line 42 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ min_cos_pointing_

const float ticl::PatternRecognitionbyCA::min_cos_pointing_
private

Definition at line 39 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ min_cos_theta_

const float ticl::PatternRecognitionbyCA::min_cos_theta_
private

Definition at line 38 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ missing_layers_

const int ticl::PatternRecognitionbyCA::missing_layers_
private

Definition at line 41 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ oneTracksterPerTrackSeed_

const bool ticl::PatternRecognitionbyCA::oneTracksterPerTrackSeed_
private

Definition at line 34 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ out_in_dfs_

const bool ticl::PatternRecognitionbyCA::out_in_dfs_
private

Definition at line 36 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ promoteEmptyRegionToTrackster_

const bool ticl::PatternRecognitionbyCA::promoteEmptyRegionToTrackster_
private

Definition at line 35 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

◆ rhtools_

hgcal::RecHitTools ticl::PatternRecognitionbyCA::rhtools_
private

Definition at line 51 of file PatternRecognitionbyCA.h.

Referenced by energyRegressionAndID(), and makeTracksters().

◆ theGraph_

const std::unique_ptr<HGCGraph> ticl::PatternRecognitionbyCA::theGraph_
private

Definition at line 33 of file PatternRecognitionbyCA.h.

Referenced by makeTracksters().

reco::CaloCluster::phi
double phi() const
azimuthal angle of cluster centroid
Definition: CaloCluster.h:184
tensorflow::createSession
Session * createSession(SessionOptions &sessionOptions)
Definition: TensorFlow.cc:85
ticl::PatternRecognitionbyCA::eidMinClusterEnergy_
const float eidMinClusterEnergy_
Definition: PatternRecognitionbyCA.h:47
counter
Definition: counter.py:1
ticl::assignPCAtoTracksters
void assignPCAtoTracksters(std::vector< Trackster > &, const std::vector< reco::CaloCluster > &, double, bool energyWeight=true)
Definition: TrackstersPCA.cc:10
mps_fire.i
i
Definition: mps_fire.py:355
ticl::TileConstants::nEtaBins
static constexpr int nEtaBins
Definition: Common.h:12
input
static const std::string input
Definition: EdmProvDump.cc:48
dqmMemoryStats.float
float
Definition: dqmMemoryStats.py:127
ticl::PatternRecognitionbyCA::eidInputName_
const std::string eidInputName_
Definition: PatternRecognitionbyCA.h:44
filterCSVwithJSON.copy
copy
Definition: filterCSVwithJSON.py:36
ticl::PatternRecognitionbyCA::missing_layers_
const int missing_layers_
Definition: PatternRecognitionbyCA.h:41
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
detailsBasic3DVector::z
float float float z
Definition: extBasic3DVector.h:14
convertSQLitetoXML_cfg.output
output
Definition: convertSQLitetoXML_cfg.py:32
postprocess-scan-build.features
features
Definition: postprocess-scan-build.py:8
ticl::PatternRecognitionbyCA::eidOutputNameEnergy_
const std::string eidOutputNameEnergy_
Definition: PatternRecognitionbyCA.h:45
ticl::Trackster::ParticleType::charged_hadron
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
PatBasicFWLiteJetAnalyzer_Selector_cfg.outputs
outputs
Definition: PatBasicFWLiteJetAnalyzer_Selector_cfg.py:48
cms::cuda::assert
assert(be >=bs)
ticl::PatternRecognitionbyCA::min_cos_theta_
const float min_cos_theta_
Definition: PatternRecognitionbyCA.h:38
ticl::PatternRecognitionbyCA::theGraph_
const std::unique_ptr< HGCGraph > theGraph_
Definition: PatternRecognitionbyCA.h:33
ticl::PatternRecognitionbyCA::eidSession_
tensorflow::Session * eidSession_
Definition: PatternRecognitionbyCA.h:52
ticl::TileConstants::nPhiBins
static constexpr int nPhiBins
Definition: Common.h:13
ticl::PatternRecognitionbyCA::oneTracksterPerTrackSeed_
const bool oneTracksterPerTrackSeed_
Definition: PatternRecognitionbyCA.h:34
createJobs.tmp
tmp
align.sh
Definition: createJobs.py:716
ticl::PatternRecognitionbyCA::max_delta_time_
const float max_delta_time_
Definition: PatternRecognitionbyCA.h:43
end
#define end
Definition: vmac.h:39
ticl::PatternRecognitionbyCA::etaLimitIncreaseWindow_
const float etaLimitIncreaseWindow_
Definition: PatternRecognitionbyCA.h:40
hgcalsimclustertime::ComputeClusterTime::fixSizeHighestDensity
std::pair< float, float > fixSizeHighestDensity(std::vector< float > &time, std::vector< float > weight=std::vector< float >(), unsigned int minNhits=3, float deltaT=0.210, float timeWidthBy=0.5)
Definition: ComputeClusterTime.cc:64
hgcal::RecHitTools::lastLayerFH
unsigned int lastLayerFH() const
Definition: RecHitTools.h:64
HLT_2018_cff.doublets
doublets
Definition: HLT_2018_cff.py:8544
ticl::TrackstersCache
Definition: GlobalCache.h:19
ticl::PatternRecognitionbyCA::max_out_in_hops_
const unsigned int max_out_in_hops_
Definition: PatternRecognitionbyCA.h:37
ticl::PatternRecognitionbyCA::min_cos_pointing_
const float min_cos_pointing_
Definition: PatternRecognitionbyCA.h:39
ticl::PatternRecognitionAlgoBase::Advanced
Definition: PatternRecognitionAlgoBase.h:53
reco::CaloCluster
Definition: CaloCluster.h:31
ticl::Trackster::vertex_multiplicity
std::vector< uint8_t > & vertex_multiplicity()
Definition: Trackster.h:54
ticl::PatternRecognitionbyCA::rhtools_
hgcal::RecHitTools rhtools_
Definition: PatternRecognitionbyCA.h:51
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
dqmdumpme.k
k
Definition: dqmdumpme.py:60
OrderedSet.t
t
Definition: OrderedSet.py:90
ticl::PatternRecognitionbyCA::emptyTrackstersFromSeedsTRK
void emptyTrackstersFromSeedsTRK(std::vector< Trackster > &tracksters, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation, const edm::ProductID &collectionID) const
Definition: PatternRecognitionbyCA.cc:228
b
double b
Definition: hdecay.h:118
utilities.cache
def cache(function)
Definition: utilities.py:3
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
ticl::PatternRecognitionbyCA::out_in_dfs_
const bool out_in_dfs_
Definition: PatternRecognitionbyCA.h:36
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
ticl::PatternRecognitionAlgoBase::PatternRecognitionAlgoBase
PatternRecognitionAlgoBase(const edm::ParameterSet &conf, const CacheBase *cache)
Definition: PatternRecognitionAlgoBase.h:26
a
double a
Definition: hdecay.h:119
reco::CaloCluster::eta
double eta() const
pseudorapidity of cluster centroid
Definition: CaloCluster.h:181
ticl::PatternRecognitionbyCA::min_clusters_per_ntuplet_
const int min_clusters_per_ntuplet_
Definition: PatternRecognitionbyCA.h:42
reco::CaloCluster::hitsAndFractions
const std::vector< std::pair< DetId, float > > & hitsAndFractions() const
Definition: CaloCluster.h:210
hgcal::RecHitTools::getLayerWithOffset
unsigned int getLayerWithOffset(const DetId &) const
Definition: RecHitTools.cc:357
ticl::PatternRecognitionbyCA::promoteEmptyRegionToTrackster_
const bool promoteEmptyRegionToTrackster_
Definition: PatternRecognitionbyCA.h:35
hgcal::RecHitTools::lastLayerEE
unsigned int lastLayerEE(bool nose=false) const
Definition: RecHitTools.h:63
tensorflow::NamedTensorList
std::vector< NamedTensor > NamedTensorList
Definition: TensorFlow.h:30
ticl::PatternRecognitionAlgoBase::None
Definition: PatternRecognitionAlgoBase.h:53
createfilelist.int
int
Definition: createfilelist.py:10
hgcal::RecHitTools::getPositionLayer
GlobalPoint getPositionLayer(int layer, bool nose=false) const
Definition: RecHitTools.cc:143
hgcal::RecHitTools::getEventSetup
void getEventSetup(const edm::EventSetup &)
Definition: RecHitTools.cc:70
ticl::TrackstersCache::eidGraphDef
std::atomic< tensorflow::GraphDef * > eidGraphDef
Definition: GlobalCache.h:25
cmsLHEtoEOSManager.l
l
Definition: cmsLHEtoEOSManager.py:193
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
ticl::PatternRecognitionbyCA::eidNFeatures_
static const int eidNFeatures_
Definition: PatternRecognitionbyCA.h:54
ticl::Trackster::vertices
std::vector< unsigned int > & vertices()
Definition: Trackster.h:53
Exception
Definition: hltDiff.cc:246
tensorflow::run
void run(Session *session, const NamedTensorList &inputs, const std::vector< std::string > &outputNames, std::vector< Tensor > *outputs, const thread::ThreadPoolOptions &threadPoolOptions)
Definition: TensorFlow.cc:211
hgcalsimclustertime::ComputeClusterTime
Definition: ComputeClusterTime.h:23
data
char data[epos_bytes_allocation]
Definition: EPOS_Wrapper.h:79
ticl::PatternRecognitionbyCA::energyRegressionAndID
void energyRegressionAndID(const std::vector< reco::CaloCluster > &layerClusters, std::vector< Trackster > &result)
Definition: PatternRecognitionbyCA.cc:245
ticl::PatternRecognitionAlgoBase::Basic
Definition: PatternRecognitionAlgoBase.h:53
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
mps_fire.result
result
Definition: mps_fire.py:303
ticl::PatternRecognitionbyCA::eidNClusters_
const int eidNClusters_
Definition: PatternRecognitionbyCA.h:49
ticl::PatternRecognitionAlgoBase::algo_verbosity_
int algo_verbosity_
Definition: PatternRecognitionAlgoBase.h:56
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
ntuplemaker.time
time
Definition: ntuplemaker.py:310
ticl::PatternRecognitionbyCA::eidNLayers_
const int eidNLayers_
Definition: PatternRecognitionbyCA.h:48
ticl::PatternRecognitionbyCA::mergeTrackstersTRK
void mergeTrackstersTRK(const std::vector< Trackster > &, const std::vector< reco::CaloCluster > &, std::vector< Trackster > &, std::unordered_map< int, std::vector< int >> &seedToTracksterAssociation) const
Definition: PatternRecognitionbyCA.cc:193
ticl::PatternRecognitionbyCA::eidOutputNameId_
const std::string eidOutputNameId_
Definition: PatternRecognitionbyCA.h:46
reco::CaloCluster::energy
double energy() const
cluster energy
Definition: CaloCluster.h:149
begin
#define begin
Definition: vmac.h:32
ticl::Trackster
Definition: Trackster.h:19
jets_cff.outputNames
outputNames
Definition: jets_cff.py:294
pwdgSkimBPark_cfi.vertices
vertices
Definition: pwdgSkimBPark_cfi.py:7