CMS 3D CMS Logo

PPSFastLocalSimulation.cc
Go to the documentation of this file.
1 /****************************************************************************
2 * Authors:
3 * Jan Kašpar (jan.kaspar@gmail.com)
4 ****************************************************************************/
5 
15 
16 #include "CLHEP/Random/RandomEngine.h"
17 #include "CLHEP/Random/RandGauss.h"
18 #include "CLHEP/Random/RandExponential.h"
19 
21 
24 
29 
33 
35 
36 #include "TMath.h"
37 #include "TMatrixD.h"
38 #include "TVectorD.h"
39 
45 public:
47  ~PPSFastLocalSimulation() override;
48 
49 protected:
51  unsigned int verbosity_;
52 
54  bool makeHepMC_;
55 
57  bool makeHits_;
58 
60  std::vector<unsigned int> RPs_;
61 
63  unsigned int particlesPerEvent_;
64 
66  double particle_E_, particle_p_;
67 
69  double z0_;
70 
72  bool roundToPitch_;
73 
76 
79 
80  struct Distribution {
81  enum Type { dtBox, dtGauss, dtGaussLimit } type_;
84 
86 
87  void Generate(CLHEP::HepRandomEngine &rndEng, double &x, double &y);
88  };
89 
92 
95 
96  //---------- internal parameters ----------
97 
99  double stripZeroPosition_;
100 
102 
103  void GenerateTrack(unsigned int pi,
104  CLHEP::HepRandomEngine &rndEng,
105  HepMC::GenEvent *gEv,
109  const CTPPSGeometry &geometry);
110 
111  //---------- framework methods ----------
112 
113  void produce(edm::Event &, const edm::EventSetup &) override;
114 };
115 
116 //----------------------------------------------------------------------------------------------------
117 
118 using namespace edm;
119 using namespace std;
120 using namespace CLHEP;
121 using namespace HepMC;
122 
123 //----------------------------------------------------------------------------------------------------
124 
126  // get type
127  string typeName = ps.getParameter<string>("type");
128  if (!typeName.compare("box"))
129  type_ = dtBox;
130  else if (!typeName.compare("gauss"))
131  type_ = dtGauss;
132  else if (!typeName.compare("gauss-limit"))
133  type_ = dtGaussLimit;
134  else
135  throw cms::Exception("PPS") << "Unknown distribution type `" << typeName << "'.";
136 
137  x_mean_ = ps.getParameter<double>("x_mean");
138  x_width_ = ps.getParameter<double>("x_width");
139  x_min_ = ps.getParameter<double>("x_min");
140  x_max_ = ps.getParameter<double>("x_max");
141 
142  y_mean_ = ps.getParameter<double>("y_mean");
143  y_width_ = ps.getParameter<double>("y_width");
144  y_min_ = ps.getParameter<double>("y_min");
145  y_max_ = ps.getParameter<double>("y_max");
146 }
147 
148 //----------------------------------------------------------------------------------------------------
149 
150 void PPSFastLocalSimulation::Distribution::Generate(CLHEP::HepRandomEngine &rndEng, double &x, double &y) {
151  switch (type_) {
152  case dtBox:
153  x = x_mean_ + x_width_ * (rndEng.flat() - 0.5);
154  y = y_mean_ + y_width_ * (rndEng.flat() - 0.5);
155  break;
156 
157  case dtGauss:
158  x = x_mean_ + RandGauss::shoot(&rndEng) * x_width_;
159  y = y_mean_ + RandGauss::shoot(&rndEng) * y_width_;
160  break;
161 
162  case dtGaussLimit: {
163  const double u_x = rndEng.flat(), u_y = rndEng.flat();
164 
165  const double cdf_x_min = (1. + TMath::Erf((x_min_ - x_mean_) / x_width_ / sqrt(2.))) / 2.;
166  const double cdf_x_max = (1. + TMath::Erf((x_max_ - x_mean_) / x_width_ / sqrt(2.))) / 2.;
167  const double a_x = cdf_x_max - cdf_x_min, b_x = cdf_x_min;
168 
169  const double cdf_y_min = (1. + TMath::Erf((y_min_ - y_mean_) / y_width_ / sqrt(2.))) / 2.;
170  const double cdf_y_max = (1. + TMath::Erf((y_max_ - y_mean_) / y_width_ / sqrt(2.))) / 2.;
171  const double a_y = cdf_y_max - cdf_y_min, b_y = cdf_y_min;
172 
173  x = x_mean_ + x_width_ * sqrt(2.) * TMath::ErfInverse(2. * (a_x * u_x + b_x) - 1.);
174  y = y_mean_ + y_width_ * sqrt(2.) * TMath::ErfInverse(2. * (a_y * u_y + b_y) - 1.);
175  }
176 
177  break;
178 
179  default:
180  x = y = 0.;
181  }
182 }
183 
184 //----------------------------------------------------------------------------------------------------
185 
187  : verbosity_(ps.getUntrackedParameter<unsigned int>("verbosity", 0)),
188 
189  makeHepMC_(ps.getParameter<bool>("makeHepMC")),
190  makeHits_(ps.getParameter<bool>("makeHits")),
191 
192  RPs_(ps.getParameter<vector<unsigned int>>("RPs")),
193 
194  particlesPerEvent_(ps.getParameter<unsigned int>("particlesPerEvent")),
195  particle_E_(ps.getParameter<double>("particle_E")),
196  particle_p_(ps.getParameter<double>("particle_p")),
197  z0_(ps.getParameter<double>("z0")),
198 
199  roundToPitch_(ps.getParameter<bool>("roundToPitch")),
200  pitchStrips_(ps.getParameter<double>("pitchStrips")),
201  pitchDiamonds_(ps.getParameter<double>("pitchDiamonds")),
202  pitchPixels_(ps.getParameter<double>("pitchPixels")),
203 
204  insensitiveMarginStrips_(ps.getParameter<double>("insensitiveMarginStrips")),
205 
206  position_dist_(ps.getParameterSet("position_distribution")),
207  angular_dist_(ps.getParameterSet("angular_distribution")),
208 
209  esTokenGeometry_(esConsumes()) {
210  // v position of strip 0
213 
214  // register the output
215  if (makeHepMC_)
216  produces<HepMCProduct>();
217 
218  if (makeHits_) {
219  produces<DetSetVector<TotemRPRecHit>>();
220  produces<DetSetVector<CTPPSDiamondRecHit>>();
221  produces<DetSetVector<CTPPSPixelRecHit>>();
222  }
223 }
224 
225 //----------------------------------------------------------------------------------------------------
226 
228 
229 //----------------------------------------------------------------------------------------------------
230 
232  CLHEP::HepRandomEngine &rndEng,
233  HepMC::GenEvent *gEv,
237  const CTPPSGeometry &geometry) {
238  // generate track
239  double bx = 0., by = 0., ax = 0., ay = 0.;
240  position_dist_.Generate(rndEng, bx, by);
241  angular_dist_.Generate(rndEng, ax, ay);
242 
243  if (verbosity_ > 5)
244  printf("\tax = %.3f mrad, bx = %.3f mm, ay = %.3f mrad, by = %.3f mm, z0 = %.3f m\n",
245  ax * 1E3,
246  bx,
247  ay * 1E3,
248  by,
249  z0_ * 1E-3);
250 
251  // add HepMC track description
252  if (makeHepMC_) {
253  GenVertex *gVx = new GenVertex(HepMC::FourVector(bx, by, z0_, 0.));
254  gEv->add_vertex(gVx);
255 
256  GenParticle *gPe;
257  double az = sqrt(1. - ax * ax - ay * ay);
258  gPe = new GenParticle(HepMC::FourVector(particle_p_ * ax, particle_p_ * ay, particle_p_ * az, particle_E_),
259  2212,
260  1); // add a proton in final state
261  gPe->suggest_barcode(idx + 1);
262  gVx->add_particle_out(gPe);
263  }
264 
265  if (makeHits_) {
266  // check all sensors known to geometry
267  for (CTPPSGeometry::mapType::const_iterator it = geometry.beginSensor(); it != geometry.endSensor(); ++it) {
268  // get RP decimal id
269  CTPPSDetId detId(it->first);
270  unsigned int decRPId = detId.arm() * 100 + detId.station() * 10 + detId.rp();
271 
272  // stop if the RP is not selected
273  if (find(RPs_.begin(), RPs_.end(), decRPId) == RPs_.end())
274  continue;
275 
276  // keep only 1 diamond channel to represent 1 plane
277  if (detId.subdetId() == CTPPSDetId::sdTimingDiamond) {
278  CTPPSDiamondDetId channelId(it->first);
279  if (channelId.channel() != 0)
280  continue;
281  }
282 
283  if (verbosity_ > 5) {
284  printf(" ");
285  printId(it->first);
286  printf(": ");
287  }
288 
289  // determine the track impact point (in global coordinates)
290  // !! this assumes that local axes (1, 0, 0) and (0, 1, 0) describe the sensor surface
291  const auto gl_o = geometry.localToGlobal(detId, CTPPSGeometry::Vector(0, 0, 0));
292  const auto gl_a1 = geometry.localToGlobal(detId, CTPPSGeometry::Vector(1, 0, 0)) - gl_o;
293  const auto gl_a2 = geometry.localToGlobal(detId, CTPPSGeometry::Vector(0, 1, 0)) - gl_o;
294 
295  TMatrixD A(3, 3);
296  TVectorD B(3);
297  A(0, 0) = ax;
298  A(0, 1) = -gl_a1.x();
299  A(0, 2) = -gl_a2.x();
300  B(0) = gl_o.x() - bx;
301  A(1, 0) = ay;
302  A(1, 1) = -gl_a1.y();
303  A(1, 2) = -gl_a2.y();
304  B(1) = gl_o.y() - by;
305  A(2, 0) = 1.;
306  A(2, 1) = -gl_a1.z();
307  A(2, 2) = -gl_a2.z();
308  B(2) = gl_o.z() - z0_;
309  TMatrixD Ai(3, 3);
310  Ai = A.Invert();
311  TVectorD P(3);
312  P = Ai * B;
313 
314  double de_z = P(0);
315  CTPPSGeometry::Vector h_glo(ax * de_z + bx, ay * de_z + by, de_z + z0_);
316 
317  // hit in local coordinates
318  CTPPSGeometry::Vector h_loc = geometry.globalToLocal(detId, h_glo);
319 
320  // strips
321  if (detId.subdetId() == CTPPSDetId::sdTrackingStrip) {
322  double u = h_loc.x();
323  double v = h_loc.y();
324 
325  if (verbosity_ > 5)
326  printf(" u=%+8.4f, v=%+8.4f", u, v);
327 
328  // is it within detector?
330  if (verbosity_ > 5)
331  printf(" | no hit\n");
332  continue;
333  }
334 
335  // round the measurement
336  if (roundToPitch_) {
337  double m = stripZeroPosition_ - v;
338  signed int strip = (int)floor(m / pitchStrips_ + 0.5);
339 
341 
342  if (verbosity_ > 5)
343  printf(" | strip=%+4i", strip);
344  }
345 
346  double sigma = pitchStrips_ / sqrt(12.);
347 
348  if (verbosity_ > 5)
349  printf(" | m=%+8.4f, sigma=%+8.4f\n", v, sigma);
350 
351  DetSet<TotemRPRecHit> &hits = stripHitColl->find_or_insert(detId);
352  hits.emplace_back(v, sigma);
353  }
354 
355  // diamonds
356  if (detId.subdetId() == CTPPSDetId::sdTimingDiamond) {
357  if (roundToPitch_) {
358  h_loc.SetX(pitchDiamonds_ * floor(h_loc.x() / pitchDiamonds_ + 0.5));
359  }
360 
361  if (verbosity_ > 5)
362  printf(" m = %.3f\n", h_loc.x());
363 
364  const double width = pitchDiamonds_;
365 
366  DetSet<CTPPSDiamondRecHit> &hits = diamondHitColl->find_or_insert(detId);
367  hits.emplace_back(h_loc.x(), width, 0., 0., 0., 0., 0., 0., 0., 0, HPTDCErrorFlags(), false);
368  }
369 
370  // pixels
371  if (detId.subdetId() == CTPPSDetId::sdTrackingPixel) {
372  if (roundToPitch_) {
373  h_loc.SetX(pitchPixels_ * floor(h_loc.x() / pitchPixels_ + 0.5));
374  h_loc.SetY(pitchPixels_ * floor(h_loc.y() / pitchPixels_ + 0.5));
375  }
376 
377  if (verbosity_ > 5)
378  printf(" m1 = %.3f, m2 = %.3f\n", h_loc.x(), h_loc.y());
379 
380  const double sigma = pitchPixels_ / sqrt(12.);
381 
382  const LocalPoint lp(h_loc.x(), h_loc.y(), h_loc.z());
383  const LocalError le(sigma, 0., sigma);
384 
385  DetSet<CTPPSPixelRecHit> &hits = pixelHitColl->find_or_insert(detId);
386  hits.emplace_back(lp, le);
387  }
388  }
389  }
390 }
391 
392 //----------------------------------------------------------------------------------------------------
393 
395  if (verbosity_ > 2)
396  printf(">> PPSFastLocalSimulation::produce > event %llu\n", event.id().event());
397 
399  HepRandomEngine &rndEng = rng->getEngine(event.streamID());
400 
401  if (verbosity_ > 5)
402  printf("\tseed = %li\n", rndEng.getSeed());
403 
404  // get geometry
405  auto const &geometry = es.getData(esTokenGeometry_);
406 
407  // initialize products
408  GenEvent *gEv = new GenEvent();
409  gEv->set_event_number(event.id().event());
410 
411  unique_ptr<DetSetVector<TotemRPRecHit>> stripHitColl(new DetSetVector<TotemRPRecHit>());
412  unique_ptr<DetSetVector<CTPPSDiamondRecHit>> diamondHitColl(new DetSetVector<CTPPSDiamondRecHit>());
413  unique_ptr<DetSetVector<CTPPSPixelRecHit>> pixelHitColl(new DetSetVector<CTPPSPixelRecHit>());
414 
415  // run particle loop
416  for (unsigned int pi = 0; pi < particlesPerEvent_; pi++) {
417  if (verbosity_ > 5)
418  printf(" generating track %u\n", pi);
419 
420  GenerateTrack(pi, rndEng, gEv, stripHitColl, diamondHitColl, pixelHitColl, geometry);
421  }
422 
423  // save products
424  if (makeHepMC_) {
425  unique_ptr<HepMCProduct> hepMCoutput(new HepMCProduct());
426  hepMCoutput->addHepMCData(gEv);
427  event.put(move(hepMCoutput));
428  }
429 
430  if (makeHits_) {
431  event.put(move(stripHitColl));
432  event.put(move(diamondHitColl));
433  event.put(move(pixelHitColl));
434  }
435 }
436 
437 //----------------------------------------------------------------------------------------------------
438 
PPSFastLocalSimulation::particlesPerEvent_
unsigned int particlesPerEvent_
number of particles to generate per event
Definition: PPSFastLocalSimulation.cc:65
PPSFastLocalSimulation::makeHits_
bool makeHits_
whether the hits of the proton shall be calculated and saved
Definition: PPSFastLocalSimulation.cc:59
edm::DetSetVector< TotemRPRecHit >
DDAxes::y
ApeEstimator_cff.width
width
Definition: ApeEstimator_cff.py:24
PPSFastLocalSimulation::Distribution::Distribution
Distribution(const edm::ParameterSet &)
Definition: PPSFastLocalSimulation.cc:125
CTPPSDetId::rp
uint32_t rp() const
Definition: CTPPSDetId.h:69
RPTopology::y_width_
static const double y_width_
Definition: RPTopology.h:60
edm::RandomNumberGenerator::getEngine
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
electrons_cff.bool
bool
Definition: electrons_cff.py:366
PPSFastLocalSimulation::particle_E_
double particle_E_
particle energy and momentum
Definition: PPSFastLocalSimulation.cc:68
PPSFastLocalSimulation::stripZeroPosition_
double stripZeroPosition_
v position of strip 0, in mm
Definition: PPSFastLocalSimulation.cc:101
PPSFastLocalSimulation::Distribution::x_width_
double x_width_
Definition: PPSFastLocalSimulation.cc:84
CTPPSGeometry
The manager class for TOTEM RP geometry.
Definition: CTPPSGeometry.h:29
PPSFastLocalSimulation::Distribution::y_max_
double y_max_
Definition: PPSFastLocalSimulation.cc:85
PPSFastLocalSimulation::z0_
double z0_
the "origin" of tracks, in mm
Definition: PPSFastLocalSimulation.cc:71
hfClusterShapes_cfi.hits
hits
Definition: hfClusterShapes_cfi.py:5
ESHandle.h
edm::DetSet
Definition: DetSet.h:23
edm
HLT enums.
Definition: AlignableModifier.h:19
RandomNumberGenerator.h
digitizers_cfi.strip
strip
Definition: digitizers_cfi.py:19
ZgammaFilter_cfi.HepMCProduct
HepMCProduct
Definition: ZgammaFilter_cfi.py:9
geometry
Definition: geometry.py:1
PPSFastLocalSimulation::Distribution::dtGaussLimit
Definition: PPSFastLocalSimulation.cc:83
l1GtPatternGenerator_cfi.bx
bx
Definition: l1GtPatternGenerator_cfi.py:18
PPSFastLocalSimulation::insensitiveMarginStrips_
double insensitiveMarginStrips_
size of insensitive margin at sensor's edge facing the beam, in mm
Definition: PPSFastLocalSimulation.cc:80
EDProducer.h
PPSFastLocalSimulation::Distribution::x_max_
double x_max_
Definition: PPSFastLocalSimulation.cc:84
TotemRPRecHit.h
DDAxes::x
findQualityFiles.v
v
Definition: findQualityFiles.py:179
spr::find
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:19
PPSFastLocalSimulation::PPSFastLocalSimulation
PPSFastLocalSimulation(const edm::ParameterSet &)
Definition: PPSFastLocalSimulation.cc:186
GenParticle
Definition: GenParticle.py:1
CTPPSPixelRecHit.h
ESGetToken.h
PPSFastLocalSimulation::Distribution::y_min_
double y_min_
Definition: PPSFastLocalSimulation.cc:85
VeryForwardMisalignedGeometryRecord.h
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
PPSFastLocalSimulation::roundToPitch_
bool roundToPitch_
whether measurement values shall be rounded to the nearest strip
Definition: PPSFastLocalSimulation.cc:74
heavyIonCSV_trainingSettings.idx
idx
Definition: heavyIonCSV_trainingSettings.py:5
PPSFastLocalSimulation::Distribution::type_
enum PPSFastLocalSimulation::Distribution::Type type_
PPSFastLocalSimulation::GenerateTrack
void GenerateTrack(unsigned int pi, CLHEP::HepRandomEngine &rndEng, HepMC::GenEvent *gEv, std::unique_ptr< edm::DetSetVector< TotemRPRecHit >> &stripHitColl, std::unique_ptr< edm::DetSetVector< CTPPSDiamondRecHit >> &diamondHitColl, std::unique_ptr< edm::DetSetVector< CTPPSPixelRecHit >> &pixelHitColl, const CTPPSGeometry &geometry)
Definition: PPSFastLocalSimulation.cc:231
PPSFastLocalSimulation::Distribution::Type
Type
Definition: PPSFastLocalSimulation.cc:83
CTPPSDetId::sdTrackingStrip
Definition: CTPPSDetId.h:44
CTPPSGeometry.h
MakerMacros.h
HPTDCErrorFlags
Definition: HPTDCErrorFlags.h:15
PPSFastLocalSimulation::particle_p_
double particle_p_
Definition: PPSFastLocalSimulation.cc:68
CTPPSDetId::station
uint32_t station() const
Definition: CTPPSDetId.h:62
PPSFastLocalSimulation::esTokenGeometry_
edm::ESGetToken< CTPPSGeometry, VeryForwardMisalignedGeometryRecord > esTokenGeometry_
Definition: PPSFastLocalSimulation.cc:103
PPSFastLocalSimulation::RPs_
std::vector< unsigned int > RPs_
the list of RPs to simulate
Definition: PPSFastLocalSimulation.cc:62
DEFINE_FWK_MODULE
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:16
PPSFastLocalSimulation::Distribution::x_min_
double x_min_
Definition: PPSFastLocalSimulation.cc:84
RPTopology::last_strip_to_border_dist_
static const double last_strip_to_border_dist_
Definition: RPTopology.h:62
Service.h
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:79
CTPPSDiamondRecHit.h
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
PPSFastLocalSimulation::Distribution::x_mean_
double x_mean_
Definition: PPSFastLocalSimulation.cc:84
PPSFastLocalSimulation::position_dist_
Distribution position_dist_
position parameters in mm
Definition: PPSFastLocalSimulation.cc:93
CTPPSDiamondDetId::channel
uint32_t channel() const
Definition: CTPPSDiamondDetId.h:53
CTPPSDetId::sdTimingDiamond
Definition: CTPPSDetId.h:44
Point3DBase< float, LocalTag >
CTPPSDetId::sdTrackingPixel
Definition: CTPPSDetId.h:44
PPSFastLocalSimulation
Fast (no G4) proton simulation in within one station. Uses misaligned geometry.
Definition: PPSFastLocalSimulation.cc:44
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
CLHEP
Definition: CocoaGlobals.h:27
CTPPSDetId::arm
uint32_t arm() const
Definition: CTPPSDetId.h:55
CTPPSDiamondDetId.h
dqmiodumpindices.typeName
typeName
Definition: dqmiodumpindices.py:33
CTPPSDiamondDetId
Detector ID class for CTPPS Timing Diamond detectors. Bits [19:31] : Assigend in CTPPSDetId Calss Bit...
Definition: CTPPSDiamondDetId.h:24
edm::ParameterSet
Definition: ParameterSet.h:47
PPSFastLocalSimulation::pitchStrips_
double pitchStrips_
in mm
Definition: PPSFastLocalSimulation.cc:77
Event.h
RPTopology::pitch_
static const double pitch_
Definition: RPTopology.h:56
LocalError
Definition: LocalError.h:12
PPSFastLocalSimulation::Distribution::dtGauss
Definition: PPSFastLocalSimulation.cc:83
PPSFastLocalSimulation::pitchPixels_
double pitchPixels_
Definition: PPSFastLocalSimulation.cc:77
CTPPSDetId
Base class for CTPPS detector IDs.
Definition: CTPPSDetId.h:31
edm::Service< edm::RandomNumberGenerator >
createfilelist.int
int
Definition: createfilelist.py:10
trackerHitRTTI::vector
Definition: trackerHitRTTI.h:21
RPTopology::IsHit
static bool IsHit(double u, double v, double insensitiveMargin=0)
Definition: RPTopology.cc:28
edm::stream::EDProducer
Definition: EDProducer.h:36
RPTopology::no_of_strips_
static const unsigned short no_of_strips_
Definition: RPTopology.h:58
edm::EventSetup
Definition: EventSetup.h:58
PPSFastLocalSimulation::pitchDiamonds_
double pitchDiamonds_
Definition: PPSFastLocalSimulation.cc:77
DetSetVector.h
Utilities.h
PPSFastLocalSimulation::Distribution::y_mean_
double y_mean_
Definition: PPSFastLocalSimulation.cc:85
edm::ESGetToken< CTPPSGeometry, VeryForwardMisalignedGeometryRecord >
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
cms::cuda::device::unique_ptr
std::unique_ptr< T, impl::DeviceDeleter > unique_ptr
Definition: device_unique_ptr.h:33
PPSFastLocalSimulation::Distribution::Generate
void Generate(CLHEP::HepRandomEngine &rndEng, double &x, double &y)
Definition: PPSFastLocalSimulation.cc:150
TtFullHadDaughter::B
static const std::string B
Definition: TtFullHadronicEvent.h:9
MaterialEffects_cfi.A
A
Definition: MaterialEffects_cfi.py:11
edm::getParameterSet
ParameterSet const & getParameterSet(ParameterSetID const &id)
Definition: ParameterSet.cc:862
GenParticle.GenParticle
GenParticle
Definition: GenParticle.py:18
eostools.move
def move(src, dest)
Definition: eostools.py:511
std
Definition: JetResolutionObject.h:76
PPSFastLocalSimulation::makeHepMC_
bool makeHepMC_
whether a HepMC description of the proton shall be saved in the event
Definition: PPSFastLocalSimulation.cc:56
printId
void printId(unsigned int id)
Definition: Utilities.cc:25
PPSFastLocalSimulation::Distribution
Definition: PPSFastLocalSimulation.cc:82
HepMC
Definition: GenParticle.h:15
Exception
Definition: hltDiff.cc:245
protons_cff.decRPId
decRPId
Definition: protons_cff.py:56
EventSetup.h
PPSFastLocalSimulation::produce
void produce(edm::Event &, const edm::EventSetup &) override
Definition: PPSFastLocalSimulation.cc:394
PPSFastLocalSimulation::Distribution::dtBox
Definition: PPSFastLocalSimulation.cc:83
RPTopology.h
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
CTPPSDetId.h
PPSFastLocalSimulation::angular_dist_
Distribution angular_dist_
angular parameters in rad
Definition: PPSFastLocalSimulation.cc:96
pi
const Double_t pi
Definition: trackSplitPlot.h:36
ParameterSet.h
PPSFastLocalSimulation::verbosity_
unsigned int verbosity_
verbosity level
Definition: PPSFastLocalSimulation.cc:53
HepMCProduct.h
PPSFastLocalSimulation::Distribution::y_width_
double y_width_
Definition: PPSFastLocalSimulation.cc:85
P
std::pair< OmniClusterRef, TrackingParticleRef > P
Definition: BDHadronTrackMonitoringAnalyzer.cc:203
event
Definition: event.py:1
DeDxTools::esConsumes
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
edm::Event
Definition: Event.h:73
A
PPSFastLocalSimulation::~PPSFastLocalSimulation
~PPSFastLocalSimulation() override
Definition: PPSFastLocalSimulation.cc:227
CTPPSGeometry::Vector
DetGeomDesc::Translation Vector
Definition: CTPPSGeometry.h:39