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 hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () 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_
 
std::string lhcInfoLabel_
 
double localAngleXMax_
 
double localAngleXMin_
 
double localAngleYMax_
 
double localAngleYMin_
 
unsigned int max_n_timing_tracks_
 
std::string multiRPReconstructionLabel_
 
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 35 of file CTPPSProtonProducer.cc.

Constructor & Destructor Documentation

◆ CTPPSProtonProducer()

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

Definition at line 135 of file CTPPSProtonProducer.cc.

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

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 175 of file CTPPSProtonProducer.cc.

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

References edm::ConfigurationDescriptions::add(), edm::ParameterSetDescription::add(), edm::ParameterSetDescription::addUntracked(), looper::config, CTPPSProtonProducer::AssociationCuts::getDefaultParameters(), HLT_2018_cff::InputTag, edm::ParameterDescriptionNode::setComment(), and AlCaHLTBitMon_QueryRunRegistry::string.

◆ produce()

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

Definition at line 231 of file CTPPSProtonProducer.cc.

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

References funct::abs(), algorithm_, allShiftedPlanes, association_cuts_, edm::ESWatcher< T >::check(), alignCSCRings::de_x, default_time_, doMultiRPReconstruction_, doSingleRPReconstruction_, edm::EventSetup::get(), get, mps_fire::i, training_settings::idx, iEvent, bTagCombinedSVVariables_cff::indices, ProtonReconstructionAlgorithm::init(), dqmiolumiharvest::j, lhcInfoLabel_, localAngleXMax_, localAngleXMin_, localAngleYMax_, localAngleYMin_, TtSemiLepJetCombMVATrainer_cfi::matching, max_n_timing_tracks_, mixedPlanes, eostools::move(), multiRPReconstructionLabel_, opticsLabel_, 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 130 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ association_cuts_

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

Definition at line 125 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ default_time_

double CTPPSProtonProducer::default_time_
private

Definition at line 128 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ doMultiRPReconstruction_

bool CTPPSProtonProducer::doMultiRPReconstruction_
private

Definition at line 58 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ doSingleRPReconstruction_

bool CTPPSProtonProducer::doSingleRPReconstruction_
private

Definition at line 57 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ lhcInfoLabel_

std::string CTPPSProtonProducer::lhcInfoLabel_
private

Definition at line 52 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleXMax_

double CTPPSProtonProducer::localAngleXMax_
private

Definition at line 63 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleXMin_

double CTPPSProtonProducer::localAngleXMin_
private

Definition at line 63 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleYMax_

double CTPPSProtonProducer::localAngleYMax_
private

Definition at line 63 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ localAngleYMin_

double CTPPSProtonProducer::localAngleYMin_
private

Definition at line 63 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ max_n_timing_tracks_

unsigned int CTPPSProtonProducer::max_n_timing_tracks_
private

Definition at line 127 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ multiRPReconstructionLabel_

std::string CTPPSProtonProducer::multiRPReconstructionLabel_
private

Definition at line 61 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ opticsLabel_

std::string CTPPSProtonProducer::opticsLabel_
private

Definition at line 53 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ opticsValid_

bool CTPPSProtonProducer::opticsValid_
private

Definition at line 132 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ opticsWatcher_

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

Definition at line 133 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ pixelDiscardBXShiftedTracks_

bool CTPPSProtonProducer::pixelDiscardBXShiftedTracks_
private

Definition at line 50 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ singleRPReconstructionLabel_

std::string CTPPSProtonProducer::singleRPReconstructionLabel_
private

Definition at line 60 of file CTPPSProtonProducer.cc.

Referenced by CTPPSProtonProducer(), and produce().

◆ tracksToken_

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

Definition at line 48 of file CTPPSProtonProducer.cc.

Referenced by produce().

◆ verbosity_

unsigned int CTPPSProtonProducer::verbosity_
private

Definition at line 55 of file CTPPSProtonProducer.cc.

Referenced by produce().

edm::ESWatcher::check
bool check(const edm::EventSetup &iSetup)
Definition: ESWatcher.h:52
VeryForwardRealGeometryRecord
Event setup record containing the real (actual) geometry information.
Definition: VeryForwardRealGeometryRecord.h:22
bTagCombinedSVVariables_cff.indices
indices
Definition: bTagCombinedSVVariables_cff.py:67
CTPPSGeometry::rpTranslation
Vector rpTranslation(unsigned int id) const
Definition: CTPPSGeometry.cc:189
CTPPSProtonProducer::default_time_
double default_time_
Definition: CTPPSProtonProducer.cc:128
mps_fire.i
i
Definition: mps_fire.py:355
edm::ParameterSetDescription::add
ParameterDescriptionBase * add(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:95
CTPPSProtonProducer::association_cuts_
std::map< unsigned int, AssociationCuts > association_cuts_
Definition: CTPPSProtonProducer.cc:125
CTPPSProtonProducer::tracksToken_
edm::EDGetTokenT< CTPPSLocalTrackLiteCollection > tracksToken_
Definition: CTPPSProtonProducer.cc:48
CTPPSProtonProducer::doMultiRPReconstruction_
bool doMultiRPReconstruction_
Definition: CTPPSProtonProducer.cc:58
CTPPSProtonProducer::localAngleYMin_
double localAngleYMin_
Definition: CTPPSProtonProducer.cc:63
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CTPPSProtonProducer::lhcInfoLabel_
std::string lhcInfoLabel_
Definition: CTPPSProtonProducer.cc:52
edm::LogInfo
Definition: MessageLogger.h:254
CTPPSProtonProducer::opticsWatcher_
edm::ESWatcher< CTPPSInterpolatedOpticsRcd > opticsWatcher_
Definition: CTPPSProtonProducer.cc:133
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
CTPPSProtonProducer::algorithm_
ProtonReconstructionAlgorithm algorithm_
Definition: CTPPSProtonProducer.cc:130
reco::ForwardProton
Definition: ForwardProton.h:22
ProtonReconstructionAlgorithm::init
void init(const LHCInterpolatedOpticalFunctionsSetCollection &opticalFunctions)
Definition: ProtonReconstructionAlgorithm.cc:53
CTPPSProtonProducer::AssociationCuts::getDefaultParameters
static edm::ParameterSetDescription getDefaultParameters()
Definition: CTPPSProtonProducer.cc:99
CTPPSProtonProducer::opticsLabel_
std::string opticsLabel_
Definition: CTPPSProtonProducer.cc:53
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 >
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:23
training_settings.idx
idx
Definition: training_settings.py:16
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:403
CTPPSDetId::sdTrackingStrip
Definition: CTPPSDetId.h:44
edm::EventSetup::get
T get() const
Definition: EventSetup.h:73
edm::ConfigurationDescriptions::add
void add(std::string const &label, ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:57
w
const double w
Definition: UKUtility.cc:23
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
edm::ESHandle< LHCInfo >
CTPPSProtonProducer::verbosity_
unsigned int verbosity_
Definition: CTPPSProtonProducer.cc:55
LHCInfoRcd
Definition: LHCInfoRcd.h:24
CTPPSProtonProducer::pixelDiscardBXShiftedTracks_
bool pixelDiscardBXShiftedTracks_
Definition: CTPPSProtonProducer.cc:50
looper.config
config
Definition: looper.py:291
CTPPSDetId::sdTrackingPixel
Definition: CTPPSDetId.h:44
CTPPSProtonProducer::doSingleRPReconstruction_
bool doSingleRPReconstruction_
Definition: CTPPSProtonProducer.cc:57
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
edm::ParameterSetDescription::addUntracked
ParameterDescriptionBase * addUntracked(U const &iLabel, T const &value)
Definition: ParameterSetDescription.h:100
CTPPSpixelLocalTrackReconstructionInfo::mixedPlanes
reco::ForwardProtonCollection
std::vector< ForwardProton > ForwardProtonCollection
Collection of ForwardProton objects.
Definition: ForwardProtonFwd.h:25
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
reco::ForwardProton::setTime
void setTime(float time)
Definition: ForwardProton.h:118
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
CTPPSpixelLocalTrackReconstructionInfo::allShiftedPlanes
iEvent
int iEvent
Definition: GenABIO.cc:224
CTPPSProtonProducer::opticsValid_
bool opticsValid_
Definition: CTPPSProtonProducer.cc:132
get
#define get
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
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
eostools.move
def move(src, dest)
Definition: eostools.py:511
alignCSCRings.de_x
de_x
Definition: alignCSCRings.py:85
reco::ForwardProton::setContributingLocalTracks
void setContributingLocalTracks(const CTPPSLocalTrackLiteRefVector &v)
store the list of RP tracks that contributed to this global track
Definition: ForwardProton.h:135
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
CTPPSProtonProducer::localAngleXMax_
double localAngleXMax_
Definition: CTPPSProtonProducer.cc:63
edm::ParameterDescriptionNode::setComment
void setComment(std::string const &value)
Definition: ParameterDescriptionNode.cc:106
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:60
CTPPSProtonProducer::max_n_timing_tracks_
unsigned int max_n_timing_tracks_
Definition: CTPPSProtonProducer.cc:127
reco::ForwardProton::setTimeError
void setTimeError(float time_err)
Definition: ForwardProton.h:122
CTPPSProtonProducer::localAngleYMax_
double localAngleYMax_
Definition: CTPPSProtonProducer.cc:63
CTPPSProtonProducer::multiRPReconstructionLabel_
std::string multiRPReconstructionLabel_
Definition: CTPPSProtonProducer.cc:61
edm::InputTag
Definition: InputTag.h:15
edm::ParameterSet::getParameterSet
ParameterSet const & getParameterSet(std::string const &) const
Definition: ParameterSet.cc:2121
CTPPSProtonProducer::localAngleXMin_
double localAngleXMin_
Definition: CTPPSProtonProducer.cc:63
CTPPSInterpolatedOpticsRcd
Definition: CTPPSInterpolatedOpticsRcd.h:13