CMS 3D CMS Logo

List of all members | Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
CTPPSProtonProducer Class Reference
Inheritance diagram for CTPPSProtonProducer:
edm::stream::EDProducer<>

Classes

struct  AssociationCuts
 

Public Member Functions

 CTPPSProtonProducer (const edm::ParameterSet &)
 
 ~CTPPSProtonProducer () override=default
 
- Public Member Functions inherited from edm::stream::EDProducer<>
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 

Private Member Functions

void produce (edm::Event &, const edm::EventSetup &) override
 

Private Attributes

ProtonReconstructionAlgorithm algorithm_
 
std::map< unsigned int, AssociationCutsassociation_cuts_
 
double default_time_
 
bool doMultiRPReconstruction_
 
bool doSingleRPReconstruction_
 
edm::ESGetToken< CTPPSGeometry, VeryForwardRealGeometryRecordgeometryToken_
 
std::string lhcInfoLabel_
 
edm::ESGetToken< LHCInfo, LHCInfoRcdlhcInfoToken_
 
double localAngleXMax_
 
double localAngleXMin_
 
double localAngleYMax_
 
double localAngleYMin_
 
unsigned int max_n_timing_tracks_
 
std::string multiRPReconstructionLabel_
 
edm::ESGetToken< LHCInterpolatedOpticalFunctionsSetCollection, CTPPSInterpolatedOpticsRcdopticalFunctionsToken_
 
std::string opticsLabel_
 
bool opticsValid_
 
edm::ESWatcher< CTPPSInterpolatedOpticsRcdopticsWatcher_
 
bool pixelDiscardBXShiftedTracks_
 
std::string singleRPReconstructionLabel_
 
edm::EDGetTokenT< CTPPSLocalTrackLiteCollectiontracksToken_
 
unsigned int verbosity_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDProducer<>
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 

Detailed Description

Definition at line 37 of file CTPPSProtonProducer.cc.

Constructor & Destructor Documentation

◆ CTPPSProtonProducer()

CTPPSProtonProducer::CTPPSProtonProducer ( const edm::ParameterSet iConfig)
explicit

Definition at line 141 of file CTPPSProtonProducer.cc.

142  : tracksToken_(consumes<CTPPSLocalTrackLiteCollection>(iConfig.getParameter<edm::InputTag>("tagLocalTrackLite"))),
143 
144  pixelDiscardBXShiftedTracks_(iConfig.getParameter<bool>("pixelDiscardBXShiftedTracks")),
145 
146  lhcInfoLabel_(iConfig.getParameter<std::string>("lhcInfoLabel")),
147  opticsLabel_(iConfig.getParameter<std::string>("opticsLabel")),
148  verbosity_(iConfig.getUntrackedParameter<unsigned int>("verbosity", 0)),
149  doSingleRPReconstruction_(iConfig.getParameter<bool>("doSingleRPReconstruction")),
150  doMultiRPReconstruction_(iConfig.getParameter<bool>("doMultiRPReconstruction")),
151  singleRPReconstructionLabel_(iConfig.getParameter<std::string>("singleRPReconstructionLabel")),
152  multiRPReconstructionLabel_(iConfig.getParameter<std::string>("multiRPReconstructionLabel")),
153 
154  localAngleXMin_(iConfig.getParameter<double>("localAngleXMin")),
155  localAngleXMax_(iConfig.getParameter<double>("localAngleXMax")),
156  localAngleYMin_(iConfig.getParameter<double>("localAngleYMin")),
157  localAngleYMax_(iConfig.getParameter<double>("localAngleYMax")),
158 
159  max_n_timing_tracks_(iConfig.getParameter<unsigned int>("max_n_timing_tracks")),
160  default_time_(iConfig.getParameter<double>("default_time")),
161 
162  algorithm_(iConfig.getParameter<bool>("fitVtxY"),
163  iConfig.getParameter<bool>("useImprovedInitialEstimate"),
164  iConfig.getParameter<std::string>("multiRPAlgorithm"),
165  verbosity_),
166  opticsValid_(false),
167  lhcInfoToken_(esConsumes<LHCInfo, LHCInfoRcd>(edm::ESInputTag("", lhcInfoLabel_))),
168  opticalFunctionsToken_(esConsumes<LHCInterpolatedOpticalFunctionsSetCollection, CTPPSInterpolatedOpticsRcd>(
170  geometryToken_(esConsumes<CTPPSGeometry, VeryForwardRealGeometryRecord>()) {
171  for (const std::string &sector : {"45", "56"}) {
172  const unsigned int arm = (sector == "45") ? 0 : 1;
173  association_cuts_[arm].load(iConfig.getParameterSet("association_cuts_" + sector));
174  }
175 
177  produces<reco::ForwardProtonCollection>(singleRPReconstructionLabel_);
178 
180  produces<reco::ForwardProtonCollection>(multiRPReconstructionLabel_);
181 }

References protons_cff::arm, association_cuts_, doMultiRPReconstruction_, doSingleRPReconstruction_, edm::ParameterSet::getParameterSet(), multiRPReconstructionLabel_, singleRPReconstructionLabel_, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ ~CTPPSProtonProducer()

CTPPSProtonProducer::~CTPPSProtonProducer ( )
overridedefault

Member Function Documentation

◆ fillDescriptions()

void CTPPSProtonProducer::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 185 of file CTPPSProtonProducer.cc.

185  {
187 
188  desc.add<edm::InputTag>("tagLocalTrackLite", edm::InputTag("ctppsLocalTrackLiteProducer"))
189  ->setComment("specification of the input lite-track collection");
190 
191  desc.add<bool>("pixelDiscardBXShiftedTracks", false)
192  ->setComment("whether to discard pixel tracks built from BX-shifted planes");
193 
194  desc.add<std::string>("lhcInfoLabel", "")->setComment("label of the LHCInfo record");
195  desc.add<std::string>("opticsLabel", "")->setComment("label of the optics record");
196 
197  desc.addUntracked<unsigned int>("verbosity", 0)->setComment("verbosity level");
198 
199  desc.add<bool>("doSingleRPReconstruction", true)
200  ->setComment("flag whether to apply single-RP reconstruction strategy");
201 
202  desc.add<bool>("doMultiRPReconstruction", true)->setComment("flag whether to apply multi-RP reconstruction strategy");
203 
204  desc.add<std::string>("singleRPReconstructionLabel", "singleRP")
205  ->setComment("output label for single-RP reconstruction products");
206 
207  desc.add<std::string>("multiRPReconstructionLabel", "multiRP")
208  ->setComment("output label for multi-RP reconstruction products");
209 
210  desc.add<double>("localAngleXMin", -0.03)->setComment("minimal accepted value of local horizontal angle (rad)");
211  desc.add<double>("localAngleXMax", +0.03)->setComment("maximal accepted value of local horizontal angle (rad)");
212  desc.add<double>("localAngleYMin", -0.04)->setComment("minimal accepted value of local vertical angle (rad)");
213  desc.add<double>("localAngleYMax", +0.04)->setComment("maximal accepted value of local vertical angle (rad)");
214 
215  for (const std::string &sector : {"45", "56"}) {
216  desc.add<edm::ParameterSetDescription>("association_cuts_" + sector, AssociationCuts::getDefaultParameters())
217  ->setComment("track-association cuts for sector " + sector);
218  }
219 
220  std::vector<edm::ParameterSet> config;
221 
222  desc.add<unsigned int>("max_n_timing_tracks", 5)->setComment("maximum number of timing tracks per RP");
223 
224  desc.add<double>("default_time", 0.)->setComment("proton time to be used when no timing information available");
225 
226  desc.add<bool>("fitVtxY", true)
227  ->setComment("for multi-RP reconstruction, flag whether y* should be free fit parameter");
228 
229  desc.add<bool>("useImprovedInitialEstimate", true)
230  ->setComment(
231  "for multi-RP reconstruction, flag whether a quadratic estimate of the initial point should be used");
232 
233  desc.add<std::string>("multiRPAlgorithm", "chi2")
234  ->setComment("algorithm for multi-RP reco, options include chi2, newton, anal-iter");
235 
236  descriptions.add("ctppsProtons", desc);
237 }

References edm::ConfigurationDescriptions::add(), submitPVResolutionJobs::config, submitPVResolutionJobs::desc, CTPPSProtonProducer::AssociationCuts::getDefaultParameters(), HLT_FULL_cff::InputTag, and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

void CTPPSProtonProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 241 of file CTPPSProtonProducer.cc.

241  {
242  // get input
244  iEvent.getByToken(tracksToken_, hTracks);
245 
246  // book output
247  std::unique_ptr<reco::ForwardProtonCollection> pOutSingleRP(new reco::ForwardProtonCollection);
248  std::unique_ptr<reco::ForwardProtonCollection> pOutMultiRP(new reco::ForwardProtonCollection);
249 
250  // continue only if there is something to process
251  // NB: this avoids loading (possibly non-existing) conditions in workflows without proton data
252  if (!hTracks->empty()) {
253  // get conditions
255 
258 
260 
261  // re-initialise algorithm upon crossing-angle change
262  if (opticsWatcher_.check(iSetup)) {
263  if (hOpticalFunctions->empty()) {
264  edm::LogInfo("CTPPSProtonProducer") << "No optical functions available, reconstruction disabled.";
266  opticsValid_ = false;
267  } else {
268  algorithm_.init(*hOpticalFunctions);
269  opticsValid_ = true;
270  }
271  }
272 
273  // do reconstruction only if optics is valid
274  if (opticsValid_) {
275  // prepare log
276  std::ostringstream ssLog;
277  if (verbosity_)
278  ssLog << "* input tracks:" << std::endl;
279 
280  // select tracks with small local angles, split them by LHC sector and tracker/timing RPs
281  std::map<unsigned int, std::vector<unsigned int>> trackingSelection, timingSelection;
282 
283  for (unsigned int idx = 0; idx < hTracks->size(); ++idx) {
284  const auto &tr = hTracks->at(idx);
285 
286  if (tr.tx() < localAngleXMin_ || tr.tx() > localAngleXMax_ || tr.ty() < localAngleYMin_ ||
287  tr.ty() > localAngleYMax_)
288  continue;
289 
291  if (tr.pixelTrackRecoInfo() == CTPPSpixelLocalTrackReconstructionInfo::allShiftedPlanes ||
292  tr.pixelTrackRecoInfo() == CTPPSpixelLocalTrackReconstructionInfo::mixedPlanes)
293  continue;
294  }
295 
296  const CTPPSDetId rpId(tr.rpId());
297 
298  if (verbosity_)
299  ssLog << "\t"
300  << "[" << idx << "] " << tr.rpId() << " (" << (rpId.arm() * 100 + rpId.station() * 10 + rpId.rp())
301  << "): "
302  << "x=" << tr.x() << " +- " << tr.xUnc() << " mm, "
303  << "y=" << tr.y() << " +- " << tr.yUnc() << " mm" << std::endl;
304 
305  const bool trackerRP =
306  (rpId.subdetId() == CTPPSDetId::sdTrackingStrip || rpId.subdetId() == CTPPSDetId::sdTrackingPixel);
307 
308  if (trackerRP)
309  trackingSelection[rpId.arm()].push_back(idx);
310  else
311  timingSelection[rpId.arm()].push_back(idx);
312  }
313 
314  // process each arm
315  for (const auto &arm_it : trackingSelection) {
316  const auto &indices = arm_it.second;
317 
318  const auto &ac = association_cuts_[arm_it.first];
319 
320  // do single-RP reco if needed
321  std::map<unsigned int, reco::ForwardProton> singleRPResultsIndexed;
322  if (doSingleRPReconstruction_ || ac.xi_cut_apply || ac.th_y_cut_apply) {
323  for (const auto &idx : indices) {
324  if (verbosity_)
325  ssLog << std::endl << "* reconstruction from track " << idx << std::endl;
326 
327  singleRPResultsIndexed[idx] =
328  algorithm_.reconstructFromSingleRP(CTPPSLocalTrackLiteRef(hTracks, idx), *hLHCInfo, ssLog);
329  }
330  }
331 
332  // check that exactly two tracking RPs are involved
333  // - 1 is insufficient for multi-RP reconstruction
334  // - PPS did not use more than 2 tracking RPs per arm -> algorithms are tuned to this
335  std::set<unsigned int> rpIds;
336  for (const auto &idx : indices)
337  rpIds.insert(hTracks->at(idx).rpId());
338 
339  // do multi-RP reco if chosen
340  if (doMultiRPReconstruction_ && rpIds.size() == 2) {
341  // find matching track pairs from different tracking RPs, ordered: i=near, j=far RP
342  std::vector<std::pair<unsigned int, unsigned int>> idx_pairs;
343  std::map<unsigned int, unsigned int> idx_pair_multiplicity;
344  for (const auto &i : indices) {
345  for (const auto &j : indices) {
346  const auto &tr_i = hTracks->at(i);
347  const auto &tr_j = hTracks->at(j);
348 
349  const double z_i = hGeometry->rpTranslation(tr_i.rpId()).z();
350  const double z_j = hGeometry->rpTranslation(tr_j.rpId()).z();
351 
352  const auto &pr_i = singleRPResultsIndexed[i];
353  const auto &pr_j = singleRPResultsIndexed[j];
354 
355  if (tr_i.rpId() == tr_j.rpId())
356  continue;
357 
358  if (std::abs(z_i) >= std::abs(z_j))
359  continue;
360 
361  bool matching = true;
362 
363  if (ac.x_cut_apply && std::abs(tr_i.x() - tr_j.x() - ac.x_cut_mean) > ac.x_cut_value)
364  matching = false;
365  else if (ac.y_cut_apply && std::abs(tr_i.y() - tr_j.y() - ac.y_cut_mean) > ac.y_cut_value)
366  matching = false;
367  else if (ac.xi_cut_apply && std::abs(pr_i.xi() - pr_j.xi() - ac.xi_cut_mean) > ac.xi_cut_value)
368  matching = false;
369  else if (ac.th_y_cut_apply &&
370  std::abs(pr_i.thetaY() - pr_j.thetaY() - ac.th_y_cut_mean) > ac.th_y_cut_value)
371  matching = false;
372 
373  if (!matching)
374  continue;
375 
376  idx_pairs.emplace_back(i, j);
377  idx_pair_multiplicity[i]++;
378  idx_pair_multiplicity[j]++;
379  }
380  }
381 
382  // evaluate track multiplicity in each timing RP
383  std::map<unsigned int, unsigned int> timing_RP_track_multiplicity;
384  for (const auto &ti : timingSelection[arm_it.first]) {
385  const auto &tr = hTracks->at(ti);
386  timing_RP_track_multiplicity[tr.rpId()]++;
387  }
388 
389  // associate tracking-RP pairs with timing-RP tracks
390  std::map<unsigned int, std::vector<unsigned int>> matched_timing_track_indices;
391  std::map<unsigned int, unsigned int> matched_timing_track_multiplicity;
392  for (unsigned int pr_idx = 0; pr_idx < idx_pairs.size(); ++pr_idx) {
393  const auto &i = idx_pairs[pr_idx].first;
394  const auto &j = idx_pairs[pr_idx].second;
395 
396  // skip non-unique associations
397  if (idx_pair_multiplicity[i] > 1 || idx_pair_multiplicity[j] > 1)
398  continue;
399 
400  const auto &tr_i = hTracks->at(i);
401  const auto &tr_j = hTracks->at(j);
402 
403  const double z_i = hGeometry->rpTranslation(tr_i.rpId()).z();
404  const double z_j = hGeometry->rpTranslation(tr_j.rpId()).z();
405 
406  for (const auto &ti : timingSelection[arm_it.first]) {
407  const auto &tr_ti = hTracks->at(ti);
408 
409  // skip if timing RP saturated (high track multiplicity)
410  if (timing_RP_track_multiplicity[tr_ti.rpId()] > max_n_timing_tracks_)
411  continue;
412 
413  // interpolation from tracking RPs
414  const double z_ti = hGeometry->rpTranslation(tr_ti.rpId()).z();
415  const double f_i = (z_ti - z_j) / (z_i - z_j), f_j = (z_i - z_ti) / (z_i - z_j);
416  const double x_inter = f_i * tr_i.x() + f_j * tr_j.x();
417  const double x_inter_unc_sq =
418  f_i * f_i * tr_i.xUnc() * tr_i.xUnc() + f_j * f_j * tr_j.xUnc() * tr_j.xUnc();
419 
420  const double de_x = tr_ti.x() - x_inter;
421  const double de_x_unc = sqrt(tr_ti.xUnc() * tr_ti.xUnc() + x_inter_unc_sq);
422  const double r = (de_x_unc > 0.) ? de_x / de_x_unc : 1E100;
423 
424  const bool matching = (ac.ti_tr_min < r && r < ac.ti_tr_max);
425 
426  if (verbosity_)
427  ssLog << "ti=" << ti << ", i=" << i << ", j=" << j << " | z_ti=" << z_ti << ", z_i=" << z_i
428  << ", z_j=" << z_j << " | x_ti=" << tr_ti.x() << ", x_inter=" << x_inter << ", de_x=" << de_x
429  << ", de_x_unc=" << de_x_unc << ", matching=" << matching << std::endl;
430 
431  if (!matching)
432  continue;
433 
434  matched_timing_track_indices[pr_idx].push_back(ti);
435  matched_timing_track_multiplicity[ti]++;
436  }
437  }
438 
439  // process associated tracks
440  for (unsigned int pr_idx = 0; pr_idx < idx_pairs.size(); ++pr_idx) {
441  const auto &i = idx_pairs[pr_idx].first;
442  const auto &j = idx_pairs[pr_idx].second;
443 
444  // skip non-unique associations of tracking-RP tracks
445  if (idx_pair_multiplicity[i] > 1 || idx_pair_multiplicity[j] > 1)
446  continue;
447 
448  if (verbosity_)
449  ssLog << std::endl
450  << "* reconstruction from tracking-RP tracks: " << i << ", " << j << " and timing-RP tracks: ";
451 
452  // buffer contributing tracks
453  CTPPSLocalTrackLiteRefVector sel_tracks;
454  sel_tracks.push_back(CTPPSLocalTrackLiteRef(hTracks, i));
455  sel_tracks.push_back(CTPPSLocalTrackLiteRef(hTracks, j));
456 
457  CTPPSLocalTrackLiteRefVector sel_track_for_kin_reco = sel_tracks;
458 
459  // process timing-RP data
460  double sw = 0., swt = 0.;
461  for (const auto &ti : matched_timing_track_indices[pr_idx]) {
462  // skip non-unique associations of timing-RP tracks
463  if (matched_timing_track_multiplicity[ti] > 1)
464  continue;
465 
466  sel_tracks.push_back(CTPPSLocalTrackLiteRef(hTracks, ti));
467 
468  if (verbosity_)
469  ssLog << ti << ", ";
470 
471  const auto &tr = hTracks->at(ti);
472  const double t_unc = tr.timeUnc();
473  const double w = (t_unc > 0.) ? 1. / t_unc / t_unc : 1.;
474  sw += w;
475  swt += w * tr.time();
476  }
477 
478  float time = default_time_, time_unc = 0.;
479  if (sw > 0.) {
480  time = swt / sw;
481  time_unc = 1. / sqrt(sw);
482  }
483 
484  if (verbosity_)
485  ssLog << std::endl << " time = " << time << " +- " << time_unc << std::endl;
486 
487  // process tracking-RP data
488  reco::ForwardProton proton = algorithm_.reconstructFromMultiRP(sel_track_for_kin_reco, *hLHCInfo, ssLog);
489 
490  // save combined output
491  proton.setContributingLocalTracks(sel_tracks);
492  proton.setTime(time);
493  proton.setTimeError(time_unc);
494 
495  pOutMultiRP->emplace_back(proton);
496  }
497  }
498 
499  // save single-RP results (un-indexed)
500  for (const auto &p : singleRPResultsIndexed)
501  pOutSingleRP->emplace_back(p.second);
502  }
503 
504  // dump log
505  if (verbosity_)
506  edm::LogInfo("CTPPSProtonProducer") << ssLog.str();
507  }
508  }
509 
510  // save output
512  iEvent.put(std::move(pOutSingleRP), singleRPReconstructionLabel_);
513 
515  iEvent.put(std::move(pOutMultiRP), multiRPReconstructionLabel_);
516 }

References funct::abs(), algorithm_, allShiftedPlanes, association_cuts_, edm::ESWatcher< T >::check(), alignCSCRings::de_x, default_time_, doMultiRPReconstruction_, doSingleRPReconstruction_, geometryToken_, edm::EventSetup::getHandle(), mps_fire::i, heavyIonCSV_trainingSettings::idx, iEvent, bTagCombinedSVVariables_cff::indices, ProtonReconstructionAlgorithm::init(), dqmiolumiharvest::j, lhcInfoToken_, localAngleXMax_, localAngleXMin_, localAngleYMax_, localAngleYMin_, TtSemiLepJetCombMVATrainer_cfi::matching, max_n_timing_tracks_, mixedPlanes, eostools::move(), multiRPReconstructionLabel_, opticalFunctionsToken_, opticsValid_, opticsWatcher_, AlCaHLTBitMon_ParallelJobs::p, pixelDiscardBXShiftedTracks_, edm::RefVector< C, T, F >::push_back(), alignCSCRings::r, ProtonReconstructionAlgorithm::reconstructFromMultiRP(), ProtonReconstructionAlgorithm::reconstructFromSingleRP(), ProtonReconstructionAlgorithm::release(), profile_2016_postTS2_cff::rpId, year_2016_cff::rpIds, CTPPSGeometry::rpTranslation(), CTPPSDetId::sdTrackingPixel, CTPPSDetId::sdTrackingStrip, reco::ForwardProton::setContributingLocalTracks(), reco::ForwardProton::setTime(), reco::ForwardProton::setTimeError(), singleRPReconstructionLabel_, mathSSE::sqrt(), protons_cff::time, tracksToken_, verbosity_, w, and z.

Member Data Documentation

◆ algorithm_

ProtonReconstructionAlgorithm CTPPSProtonProducer::algorithm_
private

Definition at line 132 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ association_cuts_

std::map<unsigned int, AssociationCuts> CTPPSProtonProducer::association_cuts_
private

Definition at line 127 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ default_time_

double CTPPSProtonProducer::default_time_
private

Definition at line 130 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ doMultiRPReconstruction_

bool CTPPSProtonProducer::doMultiRPReconstruction_
private

Definition at line 60 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ doSingleRPReconstruction_

bool CTPPSProtonProducer::doSingleRPReconstruction_
private

Definition at line 59 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ geometryToken_

edm::ESGetToken<CTPPSGeometry, VeryForwardRealGeometryRecord> CTPPSProtonProducer::geometryToken_
private

Definition at line 139 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ lhcInfoLabel_

std::string CTPPSProtonProducer::lhcInfoLabel_
private

Definition at line 54 of file CTPPSProtonProducer.cc.

◆ lhcInfoToken_

edm::ESGetToken<LHCInfo, LHCInfoRcd> CTPPSProtonProducer::lhcInfoToken_
private

Definition at line 137 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleXMax_

double CTPPSProtonProducer::localAngleXMax_
private

Definition at line 65 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleXMin_

double CTPPSProtonProducer::localAngleXMin_
private

Definition at line 65 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleYMax_

double CTPPSProtonProducer::localAngleYMax_
private

Definition at line 65 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleYMin_

double CTPPSProtonProducer::localAngleYMin_
private

Definition at line 65 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ max_n_timing_tracks_

unsigned int CTPPSProtonProducer::max_n_timing_tracks_
private

Definition at line 129 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ multiRPReconstructionLabel_

std::string CTPPSProtonProducer::multiRPReconstructionLabel_
private

Definition at line 63 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ opticalFunctionsToken_

edm::ESGetToken<LHCInterpolatedOpticalFunctionsSetCollection, CTPPSInterpolatedOpticsRcd> CTPPSProtonProducer::opticalFunctionsToken_
private

Definition at line 138 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ opticsLabel_

std::string CTPPSProtonProducer::opticsLabel_
private

Definition at line 55 of file CTPPSProtonProducer.cc.

◆ opticsValid_

bool CTPPSProtonProducer::opticsValid_
private

Definition at line 134 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ opticsWatcher_

edm::ESWatcher<CTPPSInterpolatedOpticsRcd> CTPPSProtonProducer::opticsWatcher_
private

Definition at line 135 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ pixelDiscardBXShiftedTracks_

bool CTPPSProtonProducer::pixelDiscardBXShiftedTracks_
private

Definition at line 52 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ singleRPReconstructionLabel_

std::string CTPPSProtonProducer::singleRPReconstructionLabel_
private

Definition at line 62 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ tracksToken_

edm::EDGetTokenT<CTPPSLocalTrackLiteCollection> CTPPSProtonProducer::tracksToken_
private

Definition at line 50 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ verbosity_

unsigned int CTPPSProtonProducer::verbosity_
private

Definition at line 57 of file CTPPSProtonProducer.cc.

Referenced by produce().

edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
bTagCombinedSVVariables_cff.indices
indices
Definition: bTagCombinedSVVariables_cff.py:67
CTPPSGeometry::rpTranslation
Vector rpTranslation(unsigned int id) const
Definition: CTPPSGeometry.cc:201
CTPPSProtonProducer::default_time_
double default_time_
Definition: CTPPSProtonProducer.cc:130
mps_fire.i
i
Definition: mps_fire.py:428
edm::ESInputTag
Definition: ESInputTag.h:87
CTPPSProtonProducer::association_cuts_
std::map< unsigned int, AssociationCuts > association_cuts_
Definition: CTPPSProtonProducer.cc:127
CTPPSProtonProducer::tracksToken_
edm::EDGetTokenT< CTPPSLocalTrackLiteCollection > tracksToken_
Definition: CTPPSProtonProducer.cc:50
CTPPSProtonProducer::doMultiRPReconstruction_
bool doMultiRPReconstruction_
Definition: CTPPSProtonProducer.cc:60
CTPPSProtonProducer::localAngleYMin_
double localAngleYMin_
Definition: CTPPSProtonProducer.cc:65
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CTPPSProtonProducer::lhcInfoLabel_
std::string lhcInfoLabel_
Definition: CTPPSProtonProducer.cc:54
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89285
CTPPSProtonProducer::opticsWatcher_
edm::ESWatcher< CTPPSInterpolatedOpticsRcd > opticsWatcher_
Definition: CTPPSProtonProducer.cc:135
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
CTPPSProtonProducer::algorithm_
ProtonReconstructionAlgorithm algorithm_
Definition: CTPPSProtonProducer.cc:132
reco::ForwardProton
Definition: ForwardProton.h:21
protons_cff.time
time
Definition: protons_cff.py:39
ProtonReconstructionAlgorithm::init
void init(const LHCInterpolatedOpticalFunctionsSetCollection &opticalFunctions)
Definition: ProtonReconstructionAlgorithm.cc:53
CTPPSProtonProducer::AssociationCuts::getDefaultParameters
static edm::ParameterSetDescription getDefaultParameters()
Definition: CTPPSProtonProducer.cc:101
CTPPSProtonProducer::opticsLabel_
std::string opticsLabel_
Definition: CTPPSProtonProducer.cc:55
CTPPSLocalTrackLiteRef
edm::Ref< CTPPSLocalTrackLiteCollection > CTPPSLocalTrackLiteRef
Persistent reference to a CTPPSLocalTrackLite.
Definition: CTPPSLocalTrackLiteFwd.h:22
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
edm::RefVector< CTPPSLocalTrackLiteCollection >
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
ProtonReconstructionAlgorithm::reconstructFromMultiRP
reco::ForwardProton reconstructFromMultiRP(const CTPPSLocalTrackLiteRefVector &tracks, const LHCInfo &lhcInfo, std::ostream &os) const
run proton reconstruction using multiple-RP strategy
Definition: ProtonReconstructionAlgorithm.cc:170
TtSemiLepJetCombMVATrainer_cfi.matching
matching
Definition: TtSemiLepJetCombMVATrainer_cfi.py:13
edm::Handle
Definition: AssociativeIterator.h:50
year_2016_cff.rpIds
rpIds
Definition: year_2016_cff.py:30
CTPPSProtonProducer::opticalFunctionsToken_
edm::ESGetToken< LHCInterpolatedOpticalFunctionsSetCollection, CTPPSInterpolatedOpticsRcd > opticalFunctionsToken_
Definition: CTPPSProtonProducer.cc:138
ProtonReconstructionAlgorithm::reconstructFromSingleRP
reco::ForwardProton reconstructFromSingleRP(const CTPPSLocalTrackLiteRef &track, const LHCInfo &lhcInfo, std::ostream &os) const
run proton reconstruction using single-RP strategy
Definition: ProtonReconstructionAlgorithm.cc:404
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
CTPPSDetId::sdTrackingStrip
Definition: CTPPSDetId.h:44
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
w
const double w
Definition: UKUtility.cc:23
submitPVResolutionJobs.config
config
parse the configuration file
Definition: submitPVResolutionJobs.py:281
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
edm::ESHandle< LHCInfo >
CTPPSProtonProducer::verbosity_
unsigned int verbosity_
Definition: CTPPSProtonProducer.cc:57
CTPPSProtonProducer::geometryToken_
edm::ESGetToken< CTPPSGeometry, VeryForwardRealGeometryRecord > geometryToken_
Definition: CTPPSProtonProducer.cc:139
CTPPSProtonProducer::pixelDiscardBXShiftedTracks_
bool pixelDiscardBXShiftedTracks_
Definition: CTPPSProtonProducer.cc:52
CTPPSDetId::sdTrackingPixel
Definition: CTPPSDetId.h:44
CTPPSProtonProducer::doSingleRPReconstruction_
bool doSingleRPReconstruction_
Definition: CTPPSProtonProducer.cc:59
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
CTPPSpixelLocalTrackReconstructionInfo::mixedPlanes
reco::ForwardProtonCollection
std::vector< ForwardProton > ForwardProtonCollection
Collection of ForwardProton objects.
Definition: ForwardProtonFwd.h:25
reco::ForwardProton::setTime
void setTime(float time)
Definition: ForwardProton.h:117
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
CTPPSpixelLocalTrackReconstructionInfo::allShiftedPlanes
iEvent
int iEvent
Definition: GenABIO.cc:224
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
CTPPSProtonProducer::opticsValid_
bool opticsValid_
Definition: CTPPSProtonProducer.cc:134
edm::RefVector::push_back
void push_back(value_type const &ref)
Add a Ref<C, T> to the RefVector.
Definition: RefVector.h:67
alignCSCRings.r
r
Definition: alignCSCRings.py:93
protons_cff.arm
arm
Definition: protons_cff.py:43
profile_2016_postTS2_cff.rpId
rpId
Definition: profile_2016_postTS2_cff.py:21
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
eostools.move
def move(src, dest)
Definition: eostools.py:511
CTPPSProtonProducer::lhcInfoToken_
edm::ESGetToken< LHCInfo, LHCInfoRcd > lhcInfoToken_
Definition: CTPPSProtonProducer.cc:137
alignCSCRings.de_x
de_x
Definition: alignCSCRings.py:85
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
reco::ForwardProton::setContributingLocalTracks
void setContributingLocalTracks(const CTPPSLocalTrackLiteRefVector &v)
store the list of RP tracks that contributed to this global track
Definition: ForwardProton.h:134
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
CTPPSProtonProducer::localAngleXMax_
double localAngleXMax_
Definition: CTPPSProtonProducer.cc:65
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
ProtonReconstructionAlgorithm::release
void release()
Definition: ProtonReconstructionAlgorithm.cc:118
CTPPSProtonProducer::singleRPReconstructionLabel_
std::string singleRPReconstructionLabel_
Definition: CTPPSProtonProducer.cc:62
CTPPSProtonProducer::max_n_timing_tracks_
unsigned int max_n_timing_tracks_
Definition: CTPPSProtonProducer.cc:129
reco::ForwardProton::setTimeError
void setTimeError(float time_err)
Definition: ForwardProton.h:121
CTPPSProtonProducer::localAngleYMax_
double localAngleYMax_
Definition: CTPPSProtonProducer.cc:65
CTPPSProtonProducer::multiRPReconstructionLabel_
std::string multiRPReconstructionLabel_
Definition: CTPPSProtonProducer.cc:63
edm::InputTag
Definition: InputTag.h:15
edm::ParameterSet::getParameterSet
ParameterSet const & getParameterSet(std::string const &) const
Definition: ParameterSet.cc:2128
CTPPSProtonProducer::localAngleXMin_
double localAngleXMin_
Definition: CTPPSProtonProducer.cc:65