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 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 =
415  -hGeometry->rpTranslation(tr_ti.rpId()).z(); // the minus sign fixes a bug in the diamond geometry
416  const double f_i = (z_ti - z_j) / (z_i - z_j), f_j = (z_i - z_ti) / (z_i - z_j);
417  const double x_inter = f_i * tr_i.x() + f_j * tr_j.x();
418  const double x_inter_unc_sq =
419  f_i * f_i * tr_i.xUnc() * tr_i.xUnc() + f_j * f_j * tr_j.xUnc() * tr_j.xUnc();
420 
421  const double de_x = tr_ti.x() - x_inter;
422  const double de_x_unc = sqrt(tr_ti.xUnc() * tr_ti.xUnc() + x_inter_unc_sq);
423  const double r = (de_x_unc > 0.) ? de_x / de_x_unc : 1E100;
424 
425  const bool matching = (ac.ti_tr_min < r && r < ac.ti_tr_max);
426 
427  if (verbosity_)
428  ssLog << "ti=" << ti << ", i=" << i << ", j=" << j << " | z_ti=" << z_ti << ", z_i=" << z_i
429  << ", z_j=" << z_j << " | x_ti=" << tr_ti.x() << ", x_inter=" << x_inter << ", de_x=" << de_x
430  << ", de_x_unc=" << de_x_unc << ", matching=" << matching << std::endl;
431 
432  if (!matching)
433  continue;
434 
435  matched_timing_track_indices[pr_idx].push_back(ti);
436  matched_timing_track_multiplicity[ti]++;
437  }
438  }
439 
440  // process associated tracks
441  for (unsigned int pr_idx = 0; pr_idx < idx_pairs.size(); ++pr_idx) {
442  const auto &i = idx_pairs[pr_idx].first;
443  const auto &j = idx_pairs[pr_idx].second;
444 
445  // skip non-unique associations of tracking-RP tracks
446  if (idx_pair_multiplicity[i] > 1 || idx_pair_multiplicity[j] > 1)
447  continue;
448 
449  if (verbosity_)
450  ssLog << std::endl
451  << "* reconstruction from tracking-RP tracks: " << i << ", " << j << " and timing-RP tracks: ";
452 
453  // buffer contributing tracks
454  CTPPSLocalTrackLiteRefVector sel_tracks;
455  sel_tracks.push_back(CTPPSLocalTrackLiteRef(hTracks, i));
456  sel_tracks.push_back(CTPPSLocalTrackLiteRef(hTracks, j));
457 
458  CTPPSLocalTrackLiteRefVector sel_track_for_kin_reco = sel_tracks;
459 
460  // process timing-RP data
461  double sw = 0., swt = 0.;
462  for (const auto &ti : matched_timing_track_indices[pr_idx]) {
463  // skip non-unique associations of timing-RP tracks
464  if (matched_timing_track_multiplicity[ti] > 1)
465  continue;
466 
467  sel_tracks.push_back(CTPPSLocalTrackLiteRef(hTracks, ti));
468 
469  if (verbosity_)
470  ssLog << ti << ", ";
471 
472  const auto &tr = hTracks->at(ti);
473  const double t_unc = tr.timeUnc();
474  const double w = (t_unc > 0.) ? 1. / t_unc / t_unc : 1.;
475  sw += w;
476  swt += w * tr.time();
477  }
478 
479  float time = default_time_, time_unc = 0.;
480  if (sw > 0.) {
481  time = swt / sw;
482  time_unc = 1. / sqrt(sw);
483  }
484 
485  if (verbosity_)
486  ssLog << std::endl << " time = " << time << " +- " << time_unc << std::endl;
487 
488  // process tracking-RP data
489  reco::ForwardProton proton = algorithm_.reconstructFromMultiRP(sel_track_for_kin_reco, *hLHCInfo, ssLog);
490 
491  // save combined output
492  proton.setContributingLocalTracks(sel_tracks);
493  proton.setTime(time);
494  proton.setTimeError(time_unc);
495 
496  pOutMultiRP->emplace_back(proton);
497  }
498  }
499 
500  // save single-RP results (un-indexed)
501  for (const auto &p : singleRPResultsIndexed)
502  pOutSingleRP->emplace_back(std::move(p.second));
503  }
504 
505  // dump log
506  if (verbosity_)
507  edm::LogInfo("CTPPSProtonProducer") << ssLog.str();
508  }
509  }
510 
511  // save output
513  iEvent.put(std::move(pOutSingleRP), singleRPReconstructionLabel_);
514 
516  iEvent.put(std::move(pOutMultiRP), multiRPReconstructionLabel_);
517 }

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(), year_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(), ntuplemaker::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:89287
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
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
year_2016_postTS2_cff.rpId
rpId
Definition: year_2016_postTS2_cff.py:23
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:19
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:148
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
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
ntuplemaker.time
time
Definition: ntuplemaker.py:310
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