CMS 3D CMS Logo

List of all members | Public Member Functions | Private Types | Private Member Functions | Private Attributes
CTPPSFastTrackingProducer Class Reference

#include <FastSimulation/CTPPSFastTrackingProducer/plugins/CTPPSFastTrackingProducer.cc>

Inheritance diagram for CTPPSFastTrackingProducer:
edm::stream::EDProducer<>

Public Member Functions

 CTPPSFastTrackingProducer (const edm::ParameterSet &)
 
 ~CTPPSFastTrackingProducer () override
 
- 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
 

Private Types

typedef std::vector< CTPPSFastRecHitCTPPSFastRecHitContainer
 

Private Member Functions

virtual void beginEvent (edm::Event &event, const edm::EventSetup &eventSetup)
 
void beginStream (edm::StreamID) override
 
virtual void endEvent (edm::Event &event, const edm::EventSetup &eventSetup)
 
void endStream () override
 
void FastReco (int Direction, H_RecRPObject *station)
 
void MatchCellId (int cellId, std::vector< int > vrecCellId, std::vector< double > vrecTof, bool &match, double &recTof)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
void ProjectToToF (const double x1, const double y1, const double x2, const double y2, double &xt, double &yt)
 
void ReadRecHits (edm::Handle< CTPPSFastRecHitContainer > &)
 
void ReconstructArm (H_RecRPObject *pps_station, double x1, double y1, double x2, double y2, double &tx, double &ty, double &eloss)
 
void Reconstruction ()
 
bool SearchTrack (int, int, int Direction, double &xi, double &t, double &partP, double &pt, double &thx, double &thy, double &x0, double &y0, double &xt, double &yt, double &X1d, double &Y1d, double &X2d, double &Y2d)
 
bool SetBeamLine ()
 
void TrackerStationClear ()
 
void TrackerStationStarting ()
 

Private Attributes

edm::EDGetTokenT< CTPPSFastRecHitContainer_recHitToken
 
std::string beam1filename
 
std::string beam2filename
 
std::unique_ptr< CTPPSTrkDetectordet1B
 
std::unique_ptr< CTPPSTrkDetectordet1F
 
std::unique_ptr< CTPPSTrkDetectordet2B
 
std::unique_ptr< CTPPSTrkDetectordet2F
 
std::unique_ptr< CTPPSToFDetectordetToF_B
 
std::unique_ptr< CTPPSToFDetectordetToF_F
 
double fBeamEnergy
 
double fBeamMomentum
 
double fBeamXRMS_ToF
 
double fBeamXRMS_Trk1
 
double fBeamXRMS_Trk2
 
bool fCrossAngleCorr
 
double fCrossingAngleBeam1
 
double fCrossingAngleBeam2
 
double fImpParcut
 
double fTimeSigma
 
double fToFCellHeight
 
std::vector< double > fToFCellWidth
 
double fToFInsertion
 
int fToFNCellX
 
int fToFNCellY
 
double fToFPitchX
 
double fToFPitchY
 
double fToFXOffset
 
double fTrackerHeight
 
double fTrackerInsertion
 
double fTrackerWidth
 
double fTrk1XOffset
 
double fTrk2XOffset
 
double fz_timing
 
double fz_tracker1
 
double fz_tracker2
 
double lengthctpps
 
std::unique_ptr< H_BeamLine > m_beamlineCTPPS1
 
std::unique_ptr< H_BeamLine > m_beamlineCTPPS2
 
std::map< unsigned int, H_BeamParticle * > m_beamPart
 
bool m_verbosity
 
std::unique_ptr< H_RecRPObject > pps_stationB
 
std::unique_ptr< H_RecRPObject > pps_stationF
 
std::vector< int > recCellId_B
 
std::vector< int > recCellId_F
 
std::vector< double > recTof_B
 
std::vector< double > recTof_F
 
std::vector< CTPPSFastTracktheCTPPSFastTrack
 
CTPPSFastTrack track
 
std::unique_ptr< CTPPSTrkStationTrkStation_B
 
std::unique_ptr< CTPPSTrkStationTrkStation_F
 

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

Description: [one line class summary]

Implementation: [Notes on implementation]

Definition at line 53 of file CTPPSFastTrackingProducer.h.

Member Typedef Documentation

◆ CTPPSFastRecHitContainer

Definition at line 68 of file CTPPSFastTrackingProducer.h.

Constructor & Destructor Documentation

◆ CTPPSFastTrackingProducer()

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

Definition at line 34 of file CTPPSFastTrackingProducer.cc.

36  //register your products
37  produces<edm::CTPPSFastTrackContainer>("CTPPSFastTrack");
38  using namespace edm;
39  _recHitToken = consumes<CTPPSFastRecHitContainer>(iConfig.getParameter<edm::InputTag>("recHitTag"));
40  m_verbosity = iConfig.getParameter<bool>("Verbosity");
41  // User definitons
42 
43  // Read beam parameters needed for Hector reconstruction
44  lengthctpps = iConfig.getParameter<double>("BeamLineLengthCTPPS");
45  beam1filename = iConfig.getParameter<string>("Beam1");
46  beam2filename = iConfig.getParameter<string>("Beam2");
47  fBeamEnergy = iConfig.getParameter<double>("BeamEnergy"); // beam energy in GeV
49  fCrossingAngleBeam1 = iConfig.getParameter<double>("CrossingAngleBeam1");
50  fCrossingAngleBeam2 = iConfig.getParameter<double>("CrossingAngleBeam2");
51 
53  fCrossAngleCorr = true;
54  //Read detectors positions and parameters
55 
56  fz_tracker1 = iConfig.getParameter<double>("Z_Tracker1");
57  fz_tracker2 = iConfig.getParameter<double>("Z_Tracker2");
58  fz_timing = iConfig.getParameter<double>("Z_Timing");
59  //
60  fTrackerWidth = iConfig.getParameter<double>("TrackerWidth");
61  fTrackerHeight = iConfig.getParameter<double>("TrackerHeight");
62  fTrackerInsertion = iConfig.getParameter<double>("TrackerInsertion");
63  fBeamXRMS_Trk1 = iConfig.getParameter<double>("BeamXRMS_Trk1");
64  fBeamXRMS_Trk2 = iConfig.getParameter<double>("BeamXRMS_Trk2");
65  fTrk1XOffset = iConfig.getParameter<double>("Trk1XOffset");
66  fTrk2XOffset = iConfig.getParameter<double>("Trk2XOffset");
67  fToFCellWidth = iConfig.getUntrackedParameter<std::vector<double> >("ToFCellWidth");
68  fToFCellHeight = iConfig.getParameter<double>("ToFCellHeight");
69  fToFPitchX = iConfig.getParameter<double>("ToFPitchX");
70  fToFPitchY = iConfig.getParameter<double>("ToFPitchY");
71  fToFNCellX = iConfig.getParameter<int>("ToFNCellX");
72  fToFNCellY = iConfig.getParameter<int>("ToFNCellY");
73  fToFInsertion = iConfig.getParameter<double>("ToFInsertion");
74  fBeamXRMS_ToF = iConfig.getParameter<double>("BeamXRMS_ToF");
75  fToFXOffset = iConfig.getParameter<double>("ToFXOffset");
76  fTimeSigma = iConfig.getParameter<double>("TimeSigma");
77  fImpParcut = iConfig.getParameter<double>("ImpParcut");
78 
79  if (!SetBeamLine()) {
80  if (m_verbosity)
81  LogDebug("CTPPSFastTrackingProducer") << "CTPPSFastTrackingProducer: WARNING: lengthctpps= " << lengthctpps;
82  return;
83  }
84 
85  // Create a particle to get the beam energy from the beam file
86  // Take care: the z inside the station is in meters
87  //
88  //Tracker Detector Description
89  det1F = std::unique_ptr<CTPPSTrkDetector>(
91  det2F = std::unique_ptr<CTPPSTrkDetector>(
93  det1B = std::unique_ptr<CTPPSTrkDetector>(
95  det2B = std::unique_ptr<CTPPSTrkDetector>(
97 
98  //Timing Detector Description
99  std::vector<double> vToFCellWidth;
100  for (int i = 0; i < 8; i++) {
101  vToFCellWidth.push_back(fToFCellWidth[i]);
102  }
103  double pos_tof = fToFInsertion * fBeamXRMS_ToF + fToFXOffset;
104  detToF_F = std::unique_ptr<CTPPSToFDetector>(new CTPPSToFDetector(
105  fToFNCellX, fToFNCellY, vToFCellWidth, fToFCellHeight, fToFPitchX, fToFPitchY, pos_tof, fTimeSigma));
106  detToF_B = std::unique_ptr<CTPPSToFDetector>(new CTPPSToFDetector(
107  fToFNCellX, fToFNCellY, vToFCellWidth, fToFCellHeight, fToFPitchX, fToFPitchY, pos_tof, fTimeSigma));
108  //
109 }

References _recHitToken, beam1filename, beam2filename, det1B, det1F, det2B, det2F, detToF_B, detToF_F, fBeamEnergy, fBeamMomentum, fBeamXRMS_ToF, fBeamXRMS_Trk1, fBeamXRMS_Trk2, fCrossAngleCorr, fCrossingAngleBeam1, fCrossingAngleBeam2, fImpParcut, fTimeSigma, fToFCellHeight, fToFCellWidth, fToFInsertion, fToFNCellX, fToFNCellY, fToFPitchX, fToFPitchY, fToFXOffset, fTrackerHeight, fTrackerInsertion, fTrackerWidth, fTrk1XOffset, fTrk2XOffset, fz_timing, fz_tracker1, fz_tracker2, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), mps_fire::i, lengthctpps, LogDebug, m_verbosity, PPSTools::ProtonMassSQ, SetBeamLine(), and mathSSE::sqrt().

◆ ~CTPPSFastTrackingProducer()

CTPPSFastTrackingProducer::~CTPPSFastTrackingProducer ( )
override

Definition at line 110 of file CTPPSFastTrackingProducer.cc.

110  {
111  for (std::map<unsigned int, H_BeamParticle*>::iterator it = m_beamPart.begin(); it != m_beamPart.end(); ++it) {
112  delete (*it).second;
113  }
114 }

References m_beamPart.

Member Function Documentation

◆ beginEvent()

void CTPPSFastTrackingProducer::beginEvent ( edm::Event event,
const edm::EventSetup eventSetup 
)
privatevirtual

Definition at line 138 of file CTPPSFastTrackingProducer.cc.

138  {
140 }

References TrackerStationStarting().

◆ beginStream()

void CTPPSFastTrackingProducer::beginStream ( edm::StreamID  )
overrideprivate

Definition at line 424 of file CTPPSFastTrackingProducer.cc.

424 {}

◆ endEvent()

void CTPPSFastTrackingProducer::endEvent ( edm::Event event,
const edm::EventSetup eventSetup 
)
privatevirtual

Definition at line 142 of file CTPPSFastTrackingProducer.cc.

142  {
144 }

References TrackerStationClear().

◆ endStream()

void CTPPSFastTrackingProducer::endStream ( )
overrideprivate

Definition at line 428 of file CTPPSFastTrackingProducer.cc.

428 {}

◆ FastReco()

void CTPPSFastTrackingProducer::FastReco ( int  Direction,
H_RecRPObject *  station 
)
private

Definition at line 346 of file CTPPSFastTrackingProducer.cc.

346  {
347  double theta = 0.;
348  double xi, t, partP, pt, phi, x0, y0, thx, thy, xt, yt, X1d, Y1d, X2d, Y2d;
349  CTPPSTrkDetector* Trk1 = nullptr;
350  CTPPSTrkDetector* Trk2 = nullptr;
351  double pos_tof = fToFInsertion * fBeamXRMS_ToF + fToFXOffset;
352  int cellId = 0;
353  std::vector<double> vToFCellWidth;
354  for (int i = 0; i < 8; i++) {
355  vToFCellWidth.push_back(fToFCellWidth[i]);
356  }
358  fToFNCellX, fToFNCellY, vToFCellWidth, fToFCellHeight, fToFPitchX, fToFPitchY, pos_tof, fTimeSigma);
359  if (Direction > 0) {
360  Trk1 = &(TrkStation_F->first);
361  Trk2 = &(TrkStation_F->second);
362  } else {
363  Trk1 = &(TrkStation_B->first);
364  Trk2 = &(TrkStation_B->second);
365  }
366  // Make a track from EVERY pair of hits combining Tracker1 and Tracker2.
367  // The tracks may not be independent as 1 hit may belong to more than 1 track.
368  for (int i = 0; i < (int)Trk1->ppsNHits_; i++) {
369  for (int j = 0; j < (int)Trk2->ppsNHits_; j++) {
370  if (SearchTrack(i, j, Direction, xi, t, partP, pt, thx, thy, x0, y0, xt, yt, X1d, Y1d, X2d, Y2d)) {
371  // Check if the hitted timing cell matches the reconstructed track
372  cellId = ToF->findCellId(xt, yt);
373  double recTof = 0.;
374  bool matchCellId = false;
375  if (Direction > 0) {
376  theta = sqrt(thx * thx + thy * thy) * urad;
377  MatchCellId(cellId, recCellId_F, recTof_F, matchCellId, recTof);
378  } else if (Direction < 0) {
379  theta = TMath::Pi() - sqrt(thx * thx + thy * thy) * urad;
380  MatchCellId(cellId, recCellId_B, recTof_B, matchCellId, recTof);
381  }
382  phi = atan2(thy, thx); // at this point, thx is already in the cms ref. frame
383 
384  double px = partP * sin(theta) * cos(phi);
385  double py = partP * sin(theta) * sin(phi);
386  double pz = partP * cos(theta);
387  double e = sqrt(partP * partP + PPSTools::ProtonMassSQ);
388  TLorentzVector p(px, py, pz, e);
389  // Invert the Lorentz boost made to take into account the crossing angle during simulation
390  if (fCrossAngleCorr) {
392  }
393  //Getting the Xi and t (squared four momentum transferred) of the reconstructed track
394  PPSTools::Get_t_and_xi(const_cast<TLorentzVector*>(&p), t, xi, {fBeamMomentum, fBeamEnergy});
395  double pxx = p.Px();
396  double pyy = p.Py();
397  double pzz = p.Pz();
398  math::XYZVector momentum(pxx, pyy, pzz);
399  math::XYZPoint vertex(x0, y0, 0);
400 
401  track.setp(momentum);
403  track.sett(t);
404  track.setxi(xi);
405  track.setx1(X1d);
406  track.sety1(Y1d);
407  track.setx2(X2d);
408  track.sety2(Y2d);
409  if (matchCellId) {
410  track.setcellid(cellId);
411  track.settof(recTof);
412  } else {
413  track.setcellid(0);
414  track.settof(0.);
415  }
416  theCTPPSFastTrack.push_back(track);
417  }
418  }
419  }
420 } //end FastReco

References funct::cos(), MillePedeFileConverter_cfg::e, fBeamEnergy, fBeamMomentum, fBeamXRMS_ToF, fCrossAngleCorr, fCrossingAngleBeam1, fCrossingAngleBeam2, CTPPSToFDetector::findCellId(), fTimeSigma, fToFCellHeight, fToFCellWidth, fToFInsertion, fToFNCellX, fToFNCellY, fToFPitchX, fToFPitchY, fToFXOffset, PPSTools::Get_t_and_xi(), mps_fire::i, createfilelist::int, dqmiolumiharvest::j, PPSTools::LorentzBoost(), MatchCellId(), AlCaHLTBitMon_ParallelJobs::p, phi, Pi, CTPPSTrkDetector::ppsNHits_, PPSTools::ProtonMassSQ, DiDispStaMuonMonitor_cfi::pt, multPhiCorr_741_25nsDY_cfi::px, multPhiCorr_741_25nsDY_cfi::py, recCellId_B, recCellId_F, recTof_B, recTof_F, SearchTrack(), CTPPSFastTrack::setcellid(), CTPPSFastTrack::setp(), CTPPSFastTrack::sett(), CTPPSFastTrack::settof(), CTPPSFastTrack::setvertex(), CTPPSFastTrack::setx1(), CTPPSFastTrack::setx2(), CTPPSFastTrack::setxi(), CTPPSFastTrack::sety1(), CTPPSFastTrack::sety2(), funct::sin(), mathSSE::sqrt(), OrderedSet::t, theCTPPSFastTrack, theta(), track, TrkStation_B, TrkStation_F, urad, bphysicsOniaDQM_cfi::vertex, and hybridSuperClusters_cfi::xi.

Referenced by Reconstruction().

◆ MatchCellId()

void CTPPSFastTrackingProducer::MatchCellId ( int  cellId,
std::vector< int >  vrecCellId,
std::vector< double >  vrecTof,
bool &  match,
double &  recTof 
)
private

Definition at line 335 of file CTPPSFastTrackingProducer.cc.

336  {
337  for (unsigned int i = 0; i < vrecCellId.size(); i++) {
338  if (cellId == vrecCellId.at(i)) {
339  match = true;
340  recTof = vrecTof.at(i);
341  continue;
342  }
343  }
344 }

References mps_fire::i, and match().

Referenced by FastReco().

◆ produce()

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

Definition at line 116 of file CTPPSFastTrackingProducer.cc.

116  {
117  using namespace edm;
120  iEvent.getByToken(_recHitToken, recHits);
121  recCellId_F.clear();
122  recCellId_B.clear();
123  recTof_F.clear();
124  recTof_B.clear();
126  Reconstruction();
128 
129  std::unique_ptr<CTPPSFastTrackContainer> output_tracks(new CTPPSFastTrackContainer);
130  int n = 0;
131  for (std::vector<CTPPSFastTrack>::const_iterator i = theCTPPSFastTrack.begin(); i != theCTPPSFastTrack.end(); i++) {
132  output_tracks->push_back(*i);
133  n += 1;
134  }
135 
136  iEvent.put(std::move(output_tracks), "CTPPSFastTrack");
137 } //end

References _recHitToken, mps_fire::i, iEvent, eostools::move(), dqmiodumpmetadata::n, ReadRecHits(), recCellId_B, recCellId_F, FastTrackerRecHitMaskProducer_cfi::recHits, Reconstruction(), recTof_B, recTof_F, theCTPPSFastTrack, TrackerStationClear(), and TrackerStationStarting().

◆ ProjectToToF()

void CTPPSFastTrackingProducer::ProjectToToF ( const double  x1,
const double  y1,
const double  x2,
const double  y2,
double &  xt,
double &  yt 
)
inlineprivate

◆ ReadRecHits()

void CTPPSFastTrackingProducer::ReadRecHits ( edm::Handle< CTPPSFastRecHitContainer > &  recHits)
private

Definition at line 164 of file CTPPSFastTrackingProducer.cc.

164  {
165  // DetId codification for PSimHit taken from CTPPSPixel- It will be replaced by CTPPSDetId
166  // 2014314496 -> Tracker1 zPositive
167  // 2014838784 -> Tracker2 zPositive
168  // 2046820352 -> Timing zPositive
169  // 2031091712 -> Tracker1 zNegative
170  // 2031616000 -> Tracker2 zNegative
171  // 2063597568 -> Timing zNegative
172 
173  for (unsigned int irecHits = 0; irecHits < recHits->size(); ++irecHits) {
174  const CTPPSFastRecHit* recHitDet = &(*recHits)[irecHits];
175  unsigned int detlayerId = recHitDet->detUnitId();
176  double x = recHitDet->entryPoint().x();
177  double y = recHitDet->entryPoint().y();
178  double z = recHitDet->entryPoint().z();
179  float tof = recHitDet->tof();
180  if (detlayerId == 2014314496)
181  det1F->AddHit(detlayerId, x, y, z);
182  else if (detlayerId == 2014838784)
183  det2F->AddHit(detlayerId, x, y, z);
184  else if (detlayerId == 2031091712)
185  det1B->AddHit(detlayerId, x, y, z);
186  else if (detlayerId == 2031616000)
187  det2B->AddHit(detlayerId, x, y, z);
188  else if (detlayerId == 2046820352) {
189  detToF_F->AddHit(x, y, tof);
190  recCellId_F.push_back(detToF_F->findCellId(x, y));
191  recTof_F.push_back(tof);
192  } else if (detlayerId == 2063597568) {
193  detToF_B->AddHit(x, y, tof);
194  recCellId_B.push_back(detToF_B->findCellId(x, y));
195  recTof_B.push_back(tof);
196  }
197 
198  } //LOOP TRK
199  //creating Stations
200  TrkStation_F = std::unique_ptr<CTPPSTrkStation>(new std::pair<CTPPSTrkDetector, CTPPSTrkDetector>(*det1F, *det2F));
201  TrkStation_B = std::unique_ptr<CTPPSTrkStation>(new std::pair<CTPPSTrkDetector, CTPPSTrkDetector>(*det1B, *det2B));
202 } // end function

References det1B, det1F, det2B, det2F, detToF_B, detToF_F, recCellId_B, recCellId_F, recHitDet(), FastTrackerRecHitMaskProducer_cfi::recHits, recTof_B, recTof_F, TrkStation_B, TrkStation_F, x, y, and z.

Referenced by produce().

◆ ReconstructArm()

void CTPPSFastTrackingProducer::ReconstructArm ( H_RecRPObject *  pps_station,
double  x1,
double  y1,
double  x2,
double  y2,
double &  tx,
double &  ty,
double &  eloss 
)
private

Definition at line 315 of file CTPPSFastTrackingProducer.cc.

316  {
317  tx = 0.;
318  ty = 0.;
319  eloss = 0.;
320  if (!pps_station)
321  return;
322  x1 *= mm_to_um;
323  x2 *= mm_to_um;
324  y1 *= mm_to_um;
325  y2 *= mm_to_um;
326  pps_station->setPositions(x1, y1, x2, y2);
327  double energy = pps_station->getE(AM); // dummy call needed to calculate some Hector internal parameter
328  if (std::isnan(energy) || std::isinf(energy))
329  return;
330  tx = pps_station->getTXIP(); // change orientation to CMS
331  ty = pps_station->getTYIP();
332  eloss = pps_station->getE();
333 }

References HCALHighEnergyHPDFilter_cfi::energy, edm::detail::isnan(), mm_to_um, testProducerWithPsetDescEmpty_cfi::x1, testProducerWithPsetDescEmpty_cfi::x2, testProducerWithPsetDescEmpty_cfi::y1, and testProducerWithPsetDescEmpty_cfi::y2.

Referenced by SearchTrack().

◆ Reconstruction()

void CTPPSFastTrackingProducer::Reconstruction ( )
private

Definition at line 204 of file CTPPSFastTrackingProducer.cc.

204  {
205  theCTPPSFastTrack.clear();
206  int Direction;
207  Direction = 1; //cms positive Z / forward
209  Direction = -1; //cms negative Z / backward
211 } //end Reconstruction

References FastReco(), pps_stationB, pps_stationF, and theCTPPSFastTrack.

Referenced by produce().

◆ SearchTrack()

bool CTPPSFastTrackingProducer::SearchTrack ( int  i,
int  j,
int  Direction,
double &  xi,
double &  t,
double &  partP,
double &  pt,
double &  thx,
double &  thy,
double &  x0,
double &  y0,
double &  xt,
double &  yt,
double &  X1d,
double &  Y1d,
double &  X2d,
double &  Y2d 
)
private

Definition at line 213 of file CTPPSFastTrackingProducer.cc.

229  {
230  // Given 1 hit in Tracker1 and 1 hit in Tracker2 try to make a track with Hector
231  double theta = 0.;
232  xi = 0;
233  t = 0;
234  partP = 0;
235  pt = 0;
236  x0 = 0.;
237  y0 = 0.;
238  xt = 0.;
239  yt = 0.;
240  X1d = 0.;
241  Y1d = 0.;
242  X2d = 0.;
243  Y2d = 0.;
244  CTPPSTrkDetector* det1 = nullptr;
245  CTPPSTrkDetector* det2 = nullptr;
246  H_RecRPObject* station = nullptr;
247  // Separate in forward and backward stations according to direction
248  if (Direction > 0) {
249  det1 = &(TrkStation_F->first);
250  det2 = &(TrkStation_F->second);
251  station = &*pps_stationF;
252  } else {
253  det1 = &(TrkStation_B->first);
254  det2 = &(TrkStation_B->second);
255  station = &*pps_stationB;
256  }
257  if (det1->ppsNHits_ <= i || det2->ppsNHits_ <= j)
258  return false;
259  //
260  double x1 = det1->ppsX_.at(i);
261  double y1 = det1->ppsY_.at(i);
262  double x2 = det2->ppsX_.at(j);
263  double y2 = det2->ppsY_.at(j);
264  double eloss;
265 
266  //thx and thy are returned in microrad
268  station, Direction * x1, y1, Direction * x2, y2, thx, thy, eloss); // Pass the hits in the LHC ref. frame
269  thx *= -Direction; // invert to the CMS ref frame
270 
271  // Protect for unphysical results
272  if (std::isnan(eloss) || std::isinf(eloss) || std::isnan(thx) || std::isinf(thx) || std::isnan(thy) ||
273  std::isinf(thy))
274  return false;
275  //
276 
277  if (m_verbosity)
278  LogDebug("CTPPSFastTrackingProducer::SearchTrack:") << "thx " << thx << " thy " << thy << " eloss " << eloss;
279 
280  // Get the start point of the reconstructed track near the origin made by Hector in the CMS ref. frame
281  x0 = -Direction * station->getX0() * um_to_cm;
282  y0 = station->getY0() * um_to_cm;
283  double ImpPar = sqrt(x0 * x0 + y0 * y0);
284  if (ImpPar > fImpParcut)
285  return false;
286  if (eloss < 0. || eloss > fBeamEnergy)
287  return false;
288  //
289  // Calculate the reconstructed track parameters
290  theta = sqrt(thx * thx + thy * thy) * urad;
291  xi = eloss / fBeamEnergy;
292  double energy = fBeamEnergy * (1. - xi);
294  t = -2. * (PPSTools::ProtonMassSQ - fBeamEnergy * energy + fBeamMomentum * partP * cos(theta));
295  pt = sqrt(pow(partP * thx * urad, 2) + pow(partP * thy * urad, 2));
296  if (xi < 0. || xi > 1. || t < 0. || t > 10. || pt <= 0.) {
297  xi = 0.;
298  t = 0.;
299  partP = 0.;
300  pt = 0.;
301  theta = 0.;
302  x0 = 0.;
303  y0 = 0.;
304  return false; // unphysical values
305  }
306  //Try to include the timing detector in the track
307  ProjectToToF(x1, y1, x2, y2, xt, yt); // the projections is done in the CMS ref frame
308  X1d = x1;
309  Y1d = y1;
310  X2d = x2;
311  Y2d = y2;
312  return true;
313 } //end SearchTrack

References funct::cos(), HCALHighEnergyHPDFilter_cfi::energy, fBeamEnergy, fBeamMomentum, fImpParcut, mps_fire::i, edm::detail::isnan(), dqmiolumiharvest::j, LogDebug, m_verbosity, funct::pow(), pps_stationB, pps_stationF, CTPPSTrkDetector::ppsNHits_, CTPPSTrkDetector::ppsX_, CTPPSTrkDetector::ppsY_, ProjectToToF(), PPSTools::ProtonMassSQ, DiDispStaMuonMonitor_cfi::pt, ReconstructArm(), mathSSE::sqrt(), relativeConstraints::station, OrderedSet::t, theta(), TrkStation_B, TrkStation_F, um_to_cm, urad, testProducerWithPsetDescEmpty_cfi::x1, testProducerWithPsetDescEmpty_cfi::x2, hybridSuperClusters_cfi::xi, testProducerWithPsetDescEmpty_cfi::y1, and testProducerWithPsetDescEmpty_cfi::y2.

Referenced by FastReco().

◆ SetBeamLine()

bool CTPPSFastTrackingProducer::SetBeamLine ( )
private

Definition at line 429 of file CTPPSFastTrackingProducer.cc.

429  {
432  if (lengthctpps <= 0)
433  return false;
434  m_beamlineCTPPS1 = std::unique_ptr<H_BeamLine>(new H_BeamLine(-1, lengthctpps + 0.1)); // (direction, length)
435  m_beamlineCTPPS1->fill(b2.fullPath(), 1, "IP5");
436  m_beamlineCTPPS2 = std::unique_ptr<H_BeamLine>(new H_BeamLine(1, lengthctpps + 0.1)); //
437  m_beamlineCTPPS2->fill(b1.fullPath(), 1, "IP5");
438  m_beamlineCTPPS1->offsetElements(120, 0.097);
439  m_beamlineCTPPS2->offsetElements(120, -0.097);
440  pps_stationF = std::unique_ptr<H_RecRPObject>(new H_RecRPObject(fz_tracker1, fz_tracker2, *m_beamlineCTPPS1));
441  pps_stationB = std::unique_ptr<H_RecRPObject>(new H_RecRPObject(fz_tracker1, fz_tracker2, *m_beamlineCTPPS2));
442  return true;
443 }

References b1, b2, beam1filename, beam2filename, fz_tracker1, fz_tracker2, lengthctpps, m_beamlineCTPPS1, m_beamlineCTPPS2, pps_stationB, and pps_stationF.

Referenced by CTPPSFastTrackingProducer().

◆ TrackerStationClear()

void CTPPSFastTrackingProducer::TrackerStationClear ( )
private

Definition at line 147 of file CTPPSFastTrackingProducer.cc.

147  {
148  TrkStation_F->first.clear();
149  TrkStation_F->second.clear();
150  TrkStation_B->first.clear();
151  TrkStation_B->second.clear();
152 }

References TrkStation_B, and TrkStation_F.

Referenced by endEvent(), and produce().

◆ TrackerStationStarting()

void CTPPSFastTrackingProducer::TrackerStationStarting ( )
private

Definition at line 154 of file CTPPSFastTrackingProducer.cc.

154  {
155  det1F->clear();
156  det1B->clear();
157  det2F->clear();
158  det2B->clear();
159  detToF_F->clear();
160  detToF_B->clear();
161 }

References det1B, det1F, det2B, det2F, detToF_B, and detToF_F.

Referenced by beginEvent(), and produce().

Member Data Documentation

◆ _recHitToken

edm::EDGetTokenT<CTPPSFastRecHitContainer> CTPPSFastTrackingProducer::_recHitToken
private

Definition at line 69 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and produce().

◆ beam1filename

std::string CTPPSFastTrackingProducer::beam1filename
private

Definition at line 108 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and SetBeamLine().

◆ beam2filename

std::string CTPPSFastTrackingProducer::beam2filename
private

Definition at line 109 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and SetBeamLine().

◆ det1B

std::unique_ptr<CTPPSTrkDetector> CTPPSFastTrackingProducer::det1B
private

◆ det1F

std::unique_ptr<CTPPSTrkDetector> CTPPSFastTrackingProducer::det1F
private

◆ det2B

std::unique_ptr<CTPPSTrkDetector> CTPPSFastTrackingProducer::det2B
private

◆ det2F

std::unique_ptr<CTPPSTrkDetector> CTPPSFastTrackingProducer::det2F
private

◆ detToF_B

std::unique_ptr<CTPPSToFDetector> CTPPSFastTrackingProducer::detToF_B
private

◆ detToF_F

std::unique_ptr<CTPPSToFDetector> CTPPSFastTrackingProducer::detToF_F
private

◆ fBeamEnergy

double CTPPSFastTrackingProducer::fBeamEnergy
private

Definition at line 114 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), FastReco(), and SearchTrack().

◆ fBeamMomentum

double CTPPSFastTrackingProducer::fBeamMomentum
private

Definition at line 115 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), FastReco(), and SearchTrack().

◆ fBeamXRMS_ToF

double CTPPSFastTrackingProducer::fBeamXRMS_ToF
private

Definition at line 141 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fBeamXRMS_Trk1

double CTPPSFastTrackingProducer::fBeamXRMS_Trk1
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fBeamXRMS_Trk2

double CTPPSFastTrackingProducer::fBeamXRMS_Trk2
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fCrossAngleCorr

bool CTPPSFastTrackingProducer::fCrossAngleCorr
private

Definition at line 116 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fCrossingAngleBeam1

double CTPPSFastTrackingProducer::fCrossingAngleBeam1
private

Definition at line 117 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fCrossingAngleBeam2

double CTPPSFastTrackingProducer::fCrossingAngleBeam2
private

Definition at line 118 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fImpParcut

double CTPPSFastTrackingProducer::fImpParcut
private

Definition at line 141 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and SearchTrack().

◆ fTimeSigma

double CTPPSFastTrackingProducer::fTimeSigma
private

Definition at line 141 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFCellHeight

double CTPPSFastTrackingProducer::fToFCellHeight
private

Definition at line 139 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFCellWidth

std::vector<double> CTPPSFastTrackingProducer::fToFCellWidth
private

Definition at line 138 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFInsertion

double CTPPSFastTrackingProducer::fToFInsertion
private

Definition at line 141 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFNCellX

int CTPPSFastTrackingProducer::fToFNCellX
private

Definition at line 140 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFNCellY

int CTPPSFastTrackingProducer::fToFNCellY
private

Definition at line 140 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFPitchX

double CTPPSFastTrackingProducer::fToFPitchX
private

Definition at line 139 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFPitchY

double CTPPSFastTrackingProducer::fToFPitchY
private

Definition at line 139 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fToFXOffset

double CTPPSFastTrackingProducer::fToFXOffset
private

Definition at line 141 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and FastReco().

◆ fTrackerHeight

double CTPPSFastTrackingProducer::fTrackerHeight
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fTrackerInsertion

double CTPPSFastTrackingProducer::fTrackerInsertion
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fTrackerWidth

double CTPPSFastTrackingProducer::fTrackerWidth
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fTrk1XOffset

double CTPPSFastTrackingProducer::fTrk1XOffset
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fTrk2XOffset

double CTPPSFastTrackingProducer::fTrk2XOffset
private

Definition at line 137 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer().

◆ fz_timing

double CTPPSFastTrackingProducer::fz_timing
private

Definition at line 136 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and ProjectToToF().

◆ fz_tracker1

double CTPPSFastTrackingProducer::fz_tracker1
private

◆ fz_tracker2

double CTPPSFastTrackingProducer::fz_tracker2
private

◆ lengthctpps

double CTPPSFastTrackingProducer::lengthctpps
private

Definition at line 112 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and SetBeamLine().

◆ m_beamlineCTPPS1

std::unique_ptr<H_BeamLine> CTPPSFastTrackingProducer::m_beamlineCTPPS1
private

Definition at line 103 of file CTPPSFastTrackingProducer.h.

Referenced by SetBeamLine().

◆ m_beamlineCTPPS2

std::unique_ptr<H_BeamLine> CTPPSFastTrackingProducer::m_beamlineCTPPS2
private

Definition at line 104 of file CTPPSFastTrackingProducer.h.

Referenced by SetBeamLine().

◆ m_beamPart

std::map<unsigned int, H_BeamParticle*> CTPPSFastTrackingProducer::m_beamPart
private

Definition at line 102 of file CTPPSFastTrackingProducer.h.

Referenced by ~CTPPSFastTrackingProducer().

◆ m_verbosity

bool CTPPSFastTrackingProducer::m_verbosity
private

Definition at line 113 of file CTPPSFastTrackingProducer.h.

Referenced by CTPPSFastTrackingProducer(), and SearchTrack().

◆ pps_stationB

std::unique_ptr<H_RecRPObject> CTPPSFastTrackingProducer::pps_stationB
private

Definition at line 106 of file CTPPSFastTrackingProducer.h.

Referenced by Reconstruction(), SearchTrack(), and SetBeamLine().

◆ pps_stationF

std::unique_ptr<H_RecRPObject> CTPPSFastTrackingProducer::pps_stationF
private

Definition at line 105 of file CTPPSFastTrackingProducer.h.

Referenced by Reconstruction(), SearchTrack(), and SetBeamLine().

◆ recCellId_B

std::vector<int> CTPPSFastTrackingProducer::recCellId_B
private

Definition at line 133 of file CTPPSFastTrackingProducer.h.

Referenced by FastReco(), produce(), and ReadRecHits().

◆ recCellId_F

std::vector<int> CTPPSFastTrackingProducer::recCellId_F
private

Definition at line 133 of file CTPPSFastTrackingProducer.h.

Referenced by FastReco(), produce(), and ReadRecHits().

◆ recTof_B

std::vector<double> CTPPSFastTrackingProducer::recTof_B
private

Definition at line 134 of file CTPPSFastTrackingProducer.h.

Referenced by FastReco(), produce(), and ReadRecHits().

◆ recTof_F

std::vector<double> CTPPSFastTrackingProducer::recTof_F
private

Definition at line 134 of file CTPPSFastTrackingProducer.h.

Referenced by FastReco(), produce(), and ReadRecHits().

◆ theCTPPSFastTrack

std::vector<CTPPSFastTrack> CTPPSFastTrackingProducer::theCTPPSFastTrack
private

Definition at line 129 of file CTPPSFastTrackingProducer.h.

Referenced by FastReco(), produce(), and Reconstruction().

◆ track

CTPPSFastTrack CTPPSFastTrackingProducer::track
private

Definition at line 131 of file CTPPSFastTrackingProducer.h.

Referenced by FastReco().

◆ TrkStation_B

std::unique_ptr<CTPPSTrkStation> CTPPSFastTrackingProducer::TrkStation_B
private

◆ TrkStation_F

std::unique_ptr<CTPPSTrkStation> CTPPSFastTrackingProducer::TrkStation_F
private
CTPPSFastTrackingProducer::fTrackerWidth
double fTrackerWidth
Definition: CTPPSFastTrackingProducer.h:137
DDAxes::y
recHitDet
const GeomDet * recHitDet(const TrackingRecHit &hit, const TrackingGeometry *geom)
Definition: ConversionProducer.h:184
mps_fire.i
i
Definition: mps_fire.py:355
CTPPSFastTrackingProducer::ProjectToToF
void ProjectToToF(const double x1, const double y1, const double x2, const double y2, double &xt, double &yt)
Definition: CTPPSFastTrackingProducer.h:95
CTPPSTrkDetector::ppsX_
std::vector< double > ppsX_
Definition: CTPPSTrkDetector.h:16
CTPPSFastTrackingProducer::fToFPitchY
double fToFPitchY
Definition: CTPPSFastTrackingProducer.h:139
CTPPSFastTrackingProducer::m_beamlineCTPPS1
std::unique_ptr< H_BeamLine > m_beamlineCTPPS1
Definition: CTPPSFastTrackingProducer.h:103
dqmiodumpmetadata.n
n
Definition: dqmiodumpmetadata.py:28
CTPPSFastTrackingProducer::fBeamMomentum
double fBeamMomentum
Definition: CTPPSFastTrackingProducer.h:115
CTPPSFastTrack::setx1
void setx1(float x1)
Definition: CTPPSFastTrack.h:93
CTPPSFastTrackingProducer::fBeamXRMS_Trk2
double fBeamXRMS_Trk2
Definition: CTPPSFastTrackingProducer.h:137
DiDispStaMuonMonitor_cfi.pt
pt
Definition: DiDispStaMuonMonitor_cfi.py:39
relativeConstraints.station
station
Definition: relativeConstraints.py:67
multPhiCorr_741_25nsDY_cfi.py
py
Definition: multPhiCorr_741_25nsDY_cfi.py:12
edm
HLT enums.
Definition: AlignableModifier.h:19
testProducerWithPsetDescEmpty_cfi.x2
x2
Definition: testProducerWithPsetDescEmpty_cfi.py:28
AlCaHLTBitMon_ParallelJobs.p
p
Definition: AlCaHLTBitMon_ParallelJobs.py:153
CTPPSFastTrackingProducer::det1B
std::unique_ptr< CTPPSTrkDetector > det1B
Definition: CTPPSFastTrackingProducer.h:123
CTPPSFastTrackingProducer::recTof_F
std::vector< double > recTof_F
Definition: CTPPSFastTrackingProducer.h:134
hybridSuperClusters_cfi.xi
xi
Definition: hybridSuperClusters_cfi.py:10
CTPPSFastTrack::setvertex
void setvertex(const Point &vertex)
Definition: CTPPSFastTrack.h:85
CTPPSFastTrack::setp
void setp(const Vector &momentum)
Definition: CTPPSFastTrack.h:83
CTPPSFastTrack::sety2
void sety2(float y2)
Definition: CTPPSFastTrack.h:99
CTPPSFastTrackingProducer::det2F
std::unique_ptr< CTPPSTrkDetector > det2F
Definition: CTPPSFastTrackingProducer.h:124
CTPPSFastTrackingProducer::fTrackerInsertion
double fTrackerInsertion
Definition: CTPPSFastTrackingProducer.h:137
CTPPSFastTrackingProducer::TrackerStationClear
void TrackerStationClear()
Definition: CTPPSFastTrackingProducer.cc:147
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
CTPPSFastTrackingProducer::fToFNCellX
int fToFNCellX
Definition: CTPPSFastTrackingProducer.h:140
CTPPSFastTrackingProducer::fToFNCellY
int fToFNCellY
Definition: CTPPSFastTrackingProducer.h:140
DDAxes::x
CTPPSFastTrackingProducer::fTimeSigma
double fTimeSigma
Definition: CTPPSFastTrackingProducer.h:141
CTPPSFastTrackingProducer::fCrossingAngleBeam2
double fCrossingAngleBeam2
Definition: CTPPSFastTrackingProducer.h:118
b2
static constexpr float b2
Definition: L1EGammaCrystalsEmulatorProducer.cc:83
CTPPSFastTrackingProducer::fToFInsertion
double fToFInsertion
Definition: CTPPSFastTrackingProducer.h:141
edm::Handle
Definition: AssociativeIterator.h:50
CTPPSFastTrack::setx2
void setx2(float x2)
Definition: CTPPSFastTrack.h:97
PPSTools::LorentzBoost
void LorentzBoost(H_BeamParticle &h_p, int dir, const std::string &frame, FullBeamInfo const &bi)
CTPPSToFDetector
Definition: CTPPSToFDetector.h:8
CTPPSFastTrackingProducer::TrackerStationStarting
void TrackerStationStarting()
Definition: CTPPSFastTrackingProducer.cc:154
CTPPSFastTrackingProducer::fToFCellWidth
std::vector< double > fToFCellWidth
Definition: CTPPSFastTrackingProducer.h:138
CTPPSFastTrackingProducer::fImpParcut
double fImpParcut
Definition: CTPPSFastTrackingProducer.h:141
CTPPSFastTrackingProducer::FastReco
void FastReco(int Direction, H_RecRPObject *station)
Definition: CTPPSFastTrackingProducer.cc:346
funct::sin
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
CTPPSFastTrackingProducer::TrkStation_F
std::unique_ptr< CTPPSTrkStation > TrkStation_F
Definition: CTPPSFastTrackingProducer.h:120
CTPPSFastTrack::setxi
void setxi(float xi)
Definition: CTPPSFastTrack.h:91
um_to_cm
static const double um_to_cm
Definition: PPSUnitConversion.h:12
b1
static constexpr float b1
Definition: L1EGammaCrystalsEmulatorProducer.cc:83
edm::FileInPath
Definition: FileInPath.h:64
testProducerWithPsetDescEmpty_cfi.x1
x1
Definition: testProducerWithPsetDescEmpty_cfi.py:33
testProducerWithPsetDescEmpty_cfi.y1
y1
Definition: testProducerWithPsetDescEmpty_cfi.py:29
CTPPSFastTrackingProducer::fToFCellHeight
double fToFCellHeight
Definition: CTPPSFastTrackingProducer.h:139
funct::cos
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
CTPPSFastTrackingProducer::fTrk1XOffset
double fTrk1XOffset
Definition: CTPPSFastTrackingProducer.h:137
mm_to_um
static const double mm_to_um
Definition: PPSUnitConversion.h:13
edm::detail::isnan
bool isnan(float x)
Definition: math.h:13
CTPPSFastTrackingProducer::detToF_F
std::unique_ptr< CTPPSToFDetector > detToF_F
Definition: CTPPSFastTrackingProducer.h:126
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
DDAxes::z
CTPPSFastTrackingProducer::recTof_B
std::vector< double > recTof_B
Definition: CTPPSFastTrackingProducer.h:134
CTPPSFastTrackingProducer::SetBeamLine
bool SetBeamLine()
Definition: CTPPSFastTrackingProducer.cc:429
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
HCALHighEnergyHPDFilter_cfi.energy
energy
Definition: HCALHighEnergyHPDFilter_cfi.py:5
CTPPSFastTrackingProducer::_recHitToken
edm::EDGetTokenT< CTPPSFastRecHitContainer > _recHitToken
Definition: CTPPSFastTrackingProducer.h:69
CTPPSFastTrackingProducer::beam1filename
std::string beam1filename
Definition: CTPPSFastTrackingProducer.h:108
OrderedSet.t
t
Definition: OrderedSet.py:90
edm::CTPPSFastTrackContainer
std::vector< CTPPSFastTrack > CTPPSFastTrackContainer
Definition: CTPPSFastTrackContainer.h:11
FastTrackerRecHitMaskProducer_cfi.recHits
recHits
Definition: FastTrackerRecHitMaskProducer_cfi.py:8
testProducerWithPsetDescEmpty_cfi.y2
y2
Definition: testProducerWithPsetDescEmpty_cfi.py:30
CTPPSFastTrackingProducer::TrkStation_B
std::unique_ptr< CTPPSTrkStation > TrkStation_B
Definition: CTPPSFastTrackingProducer.h:121
CTPPSFastTrackingProducer::recCellId_F
std::vector< int > recCellId_F
Definition: CTPPSFastTrackingProducer.h:133
bphysicsOniaDQM_cfi.vertex
vertex
Definition: bphysicsOniaDQM_cfi.py:7
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
math::XYZPoint
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
CTPPSTrkDetector::ppsY_
std::vector< double > ppsY_
Definition: CTPPSTrkDetector.h:17
CTPPSFastTrackingProducer::theCTPPSFastTrack
std::vector< CTPPSFastTrack > theCTPPSFastTrack
Definition: CTPPSFastTrackingProducer.h:129
CTPPSFastTrackingProducer::fz_tracker2
double fz_tracker2
Definition: CTPPSFastTrackingProducer.h:136
match
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
CTPPSFastTrackingProducer::fBeamXRMS_ToF
double fBeamXRMS_ToF
Definition: CTPPSFastTrackingProducer.h:141
CTPPSFastTrackingProducer::fToFPitchX
double fToFPitchX
Definition: CTPPSFastTrackingProducer.h:139
math::XYZVector
XYZVectorD XYZVector
spatial vector with cartesian internal representation
Definition: Vector3D.h:31
CTPPSTrkDetector
Definition: CTPPSTrkDetector.h:5
CTPPSFastTrackingProducer::fTrk2XOffset
double fTrk2XOffset
Definition: CTPPSFastTrackingProducer.h:137
createfilelist.int
int
Definition: createfilelist.py:10
urad
static const double urad
Definition: PPSUnitConversion.h:10
iEvent
int iEvent
Definition: GenABIO.cc:224
CTPPSFastTrackingProducer::det1F
std::unique_ptr< CTPPSTrkDetector > det1F
Definition: CTPPSFastTrackingProducer.h:122
CTPPSFastTrack::settof
void settof(float tof)
Definition: CTPPSFastTrack.h:87
CTPPSFastTrackingProducer::m_beamlineCTPPS2
std::unique_ptr< H_BeamLine > m_beamlineCTPPS2
Definition: CTPPSFastTrackingProducer.h:104
CTPPSFastTrack::sety1
void sety1(float y1)
Definition: CTPPSFastTrack.h:95
CTPPSFastTrackingProducer::beam2filename
std::string beam2filename
Definition: CTPPSFastTrackingProducer.h:109
CTPPSFastTrackingProducer::det2B
std::unique_ptr< CTPPSTrkDetector > det2B
Definition: CTPPSFastTrackingProducer.h:125
Direction
CTPPSToFDetector::findCellId
int findCellId(double x, double y)
Definition: CTPPSToFDetector.cc:83
CTPPSFastTrackingProducer::track
CTPPSFastTrack track
Definition: CTPPSFastTrackingProducer.h:131
DDAxes::phi
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
multPhiCorr_741_25nsDY_cfi.px
px
Definition: multPhiCorr_741_25nsDY_cfi.py:10
CTPPSFastTrackingProducer::ReconstructArm
void ReconstructArm(H_RecRPObject *pps_station, double x1, double y1, double x2, double y2, double &tx, double &ty, double &eloss)
Definition: CTPPSFastTrackingProducer.cc:315
CTPPSFastTrack::sett
void sett(float t)
Definition: CTPPSFastTrack.h:89
CTPPSFastTrackingProducer::pps_stationB
std::unique_ptr< H_RecRPObject > pps_stationB
Definition: CTPPSFastTrackingProducer.h:106
eostools.move
def move(src, dest)
Definition: eostools.py:511
CTPPSFastTrackingProducer::recCellId_B
std::vector< int > recCellId_B
Definition: CTPPSFastTrackingProducer.h:133
CTPPSFastTrackingProducer::fTrackerHeight
double fTrackerHeight
Definition: CTPPSFastTrackingProducer.h:137
CTPPSFastTrackingProducer::ReadRecHits
void ReadRecHits(edm::Handle< CTPPSFastRecHitContainer > &)
Definition: CTPPSFastTrackingProducer.cc:164
CTPPSFastTrackingProducer::detToF_B
std::unique_ptr< CTPPSToFDetector > detToF_B
Definition: CTPPSFastTrackingProducer.h:127
CTPPSTrkDetector::ppsNHits_
int ppsNHits_
Definition: CTPPSTrkDetector.h:15
CTPPSFastTrackingProducer::fBeamXRMS_Trk1
double fBeamXRMS_Trk1
Definition: CTPPSFastTrackingProducer.h:137
PPSTools::Get_t_and_xi
void Get_t_and_xi(const TLorentzVector *proton, double &t, double &xi, LimitedBeamInfo const &bi)
Definition: PPSUtilities.cc:72
CTPPSFastTrackingProducer::lengthctpps
double lengthctpps
Definition: CTPPSFastTrackingProducer.h:112
CTPPSFastTrackingProducer::m_verbosity
bool m_verbosity
Definition: CTPPSFastTrackingProducer.h:113
CTPPSFastTrack::setcellid
void setcellid(unsigned int cellid)
Definition: CTPPSFastTrack.h:101
CTPPSFastTrackingProducer::fToFXOffset
double fToFXOffset
Definition: CTPPSFastTrackingProducer.h:141
Pi
const double Pi
Definition: CosmicMuonParameters.h:18
CTPPSFastTrackingProducer::m_beamPart
std::map< unsigned int, H_BeamParticle * > m_beamPart
Definition: CTPPSFastTrackingProducer.h:102
funct::pow
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:30
CTPPSFastTrackingProducer::fBeamEnergy
double fBeamEnergy
Definition: CTPPSFastTrackingProducer.h:114
CTPPSFastTrackingProducer::fz_timing
double fz_timing
Definition: CTPPSFastTrackingProducer.h:136
CTPPSFastTrackingProducer::SearchTrack
bool SearchTrack(int, int, int Direction, double &xi, double &t, double &partP, double &pt, double &thx, double &thy, double &x0, double &y0, double &xt, double &yt, double &X1d, double &Y1d, double &X2d, double &Y2d)
Definition: CTPPSFastTrackingProducer.cc:213
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
CTPPSFastTrackingProducer::MatchCellId
void MatchCellId(int cellId, std::vector< int > vrecCellId, std::vector< double > vrecTof, bool &match, double &recTof)
Definition: CTPPSFastTrackingProducer.cc:335
CTPPSFastTrackingProducer::fCrossingAngleBeam1
double fCrossingAngleBeam1
Definition: CTPPSFastTrackingProducer.h:117
CTPPSFastTrackingProducer::Reconstruction
void Reconstruction()
Definition: CTPPSFastTrackingProducer.cc:204
PPSTools::ProtonMassSQ
const double ProtonMassSQ
Definition: PPSUtilities.h:31
CTPPSFastRecHit
Definition: CTPPSFastRecHit.h:9
CTPPSFastTrackingProducer::fCrossAngleCorr
bool fCrossAngleCorr
Definition: CTPPSFastTrackingProducer.h:116
edm::InputTag
Definition: InputTag.h:15
CTPPSFastTrackingProducer::fz_tracker1
double fz_tracker1
Definition: CTPPSFastTrackingProducer.h:136
CTPPSFastTrackingProducer::pps_stationF
std::unique_ptr< H_RecRPObject > pps_stationF
Definition: CTPPSFastTrackingProducer.h:105
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37