CMS 3D CMS Logo

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

#include <SingleParticleEvent.h>

Public Member Functions

double absmom ()
 
double absVz ()
 
void create (int id, double px, double py, double pz, double e, double m, double vx, double vy, double vz, double t0)
 
double deltaEmin (double Energy)
 
double e ()
 
double e_in ()
 
double Eloss (double waterEquivalents, double Energy)
 
double Eug ()
 
bool hitTarget ()
 
int id ()
 
int id_in ()
 
double m ()
 
double m_in ()
 
double phi ()
 
void propagate (double ElossScaleFac, double RadiusTarget, double Z_DistTarget, double Z_CentrTarget, bool TrackerOnly, bool MTCCHalf)
 
double px ()
 
double px_in ()
 
double py ()
 
double py_in ()
 
double pz ()
 
double pz_in ()
 
double rVxy ()
 
void setEug (double Eug)
 
 SingleParticleEvent ()
 
void SurfProj (double Vx_in, double Vy_in, double Vz_in, double Px_in, double Py_in, double Pz_in, double &Vx_up, double &Vy_up, double &Vz_up)
 
double t0 ()
 
double t0_in ()
 
double theta ()
 
double vx ()
 
double vx_in ()
 
double vy ()
 
double vy_in ()
 
double vz ()
 
double vz_in ()
 
double WaterEquivalents ()
 
 ~SingleParticleEvent ()
 

Public Attributes

double ClayWidth
 
double E_ug
 
double PlugVx
 
double PlugVz
 
double RhoAir
 
double RhoClay
 
double RhoPlug
 
double RhoRock
 
double RhoWall
 
double waterEquivalents
 

Private Member Functions

double absVzTmp ()
 
double rVxyTmp ()
 
void subtractEloss (double waterEquivalents)
 
void update (double stepSize)
 
void updateTmp (double stepSize)
 

Private Attributes

double dX
 
double dY
 
double dZ
 
double E
 
double E_in
 
bool HitTarget
 
int ID
 
int ID_in
 
double M
 
double M_in
 
bool MTCC
 
double Px
 
double Px_in
 
double Py
 
double Py_in
 
double Pz
 
double Pz_in
 
double T0
 
double T0_in
 
double tmpVx
 
double tmpVy
 
double tmpVz
 
double Vx
 
double Vx_in
 
double Vy
 
double Vy_in
 
double Vz
 
double Vz_in
 

Detailed Description

Definition at line 12 of file SingleParticleEvent.h.

Constructor & Destructor Documentation

◆ SingleParticleEvent()

SingleParticleEvent::SingleParticleEvent ( )
inline

Definition at line 15 of file SingleParticleEvent.h.

15  {
16  ID = 0;
17  Px = 0.;
18  Py = 0.;
19  Pz = 0.;
20  E = 0.;
21  M = 0.;
22  Vx = 0.;
23  Vy = 0.;
24  Vz = 0.;
25  T0 = 0.;
26  ID_in = 0;
27  Px_in = 0.;
28  Py_in = 0.;
29  Pz_in = 0.;
30  E_in = 0.;
31  M_in = 0.;
32  Vx_in = 0.;
33  Vy_in = 0.;
34  Vz_in = 0.;
35  T0_in = 0.;
36  HitTarget = false;
39  RhoAir = 0.;
40  RhoWall = 0.;
41  RhoRock = 0.;
42  RhoClay = 0.;
43  RhoPlug = 0.;
45  }

References ClayWidth, DefaultClayWidth, E, E_in, HitTarget, ID, ID_in, M, M_in, PlugOnShaftVx, PlugOnShaftVz, PlugVx, PlugVz, Px, Px_in, Py, Py_in, Pz, Pz_in, RhoAir, RhoClay, RhoPlug, RhoRock, RhoWall, T0, T0_in, Vx, Vx_in, Vy, Vy_in, Vz, and Vz_in.

◆ ~SingleParticleEvent()

SingleParticleEvent::~SingleParticleEvent ( )
inline

Definition at line 47 of file SingleParticleEvent.h.

47 {}

Member Function Documentation

◆ absmom()

double SingleParticleEvent::absmom ( )

Definition at line 347 of file SingleParticleEvent.cc.

347 { return sqrt(Px * Px + Py * Py + Pz * Pz); }

References Px, Py, Pz, and mathSSE::sqrt().

Referenced by propagate(), and subtractEloss().

◆ absVz()

double SingleParticleEvent::absVz ( )

Definition at line 349 of file SingleParticleEvent.cc.

349 { return std::fabs(Vz); }

References Vz.

◆ absVzTmp()

double SingleParticleEvent::absVzTmp ( )
private

Definition at line 284 of file SingleParticleEvent.cc.

284  {
285  if (MTCC == true) {
286  return tmpVz; //need sign to be sure muon hits half of CMS with MTCC setup
287  } else {
288  return std::fabs(tmpVz);
289  }
290 }

References MTCC, and tmpVz.

Referenced by propagate().

◆ create()

void SingleParticleEvent::create ( int  id,
double  px,
double  py,
double  pz,
double  e,
double  m,
double  vx,
double  vy,
double  vz,
double  t0 
)

Definition at line 3 of file SingleParticleEvent.cc.

4  {
5  ID = ID_in = id;
6  Px = Px_in = px;
7  Py = Py_in = py;
8  Pz = Pz_in = pz;
9  E = E_in = e;
10  M = M_in = m;
11  Vx = Vx_in = vx;
12  Vy = Vy_in = vy;
13  Vz = Vz_in = vz;
14  T0 = T0_in = t0;
15  HitTarget = false;
16 }

References E, e(), E_in, HitTarget, ID, id(), ID_in, M, m(), M_in, Px, px(), Px_in, Py, py(), Py_in, Pz, pz(), Pz_in, T0, t0(), T0_in, Vx, vx(), Vx_in, Vy, vy(), Vy_in, Vz, vz(), and Vz_in.

Referenced by CosmicMuonGenerator::nextEvent(), and CosmicMuonGenerator::nextMultiEvent().

◆ deltaEmin()

double SingleParticleEvent::deltaEmin ( double  Energy)

Definition at line 261 of file SingleParticleEvent.cc.

261  {
262  double dE = Eloss(waterEquivalents, E_sf);
263  return E_ug - (E_sf - dE);
264 }

References E_ug, Eloss(), and waterEquivalents.

◆ e()

double SingleParticleEvent::e ( )

◆ e_in()

double SingleParticleEvent::e_in ( )

Definition at line 304 of file SingleParticleEvent.cc.

304 { return E_in; }

References E_in.

◆ Eloss()

double SingleParticleEvent::Eloss ( double  waterEquivalents,
double  Energy 
)

Definition at line 246 of file SingleParticleEvent.cc.

246  {
247  double L10E = log10(Energy);
248  // parameters for standard rock (PDG 2004, page 230)
249  double A = (1.91514 + 0.254957 * L10E) / 1000.; // a [GeV g^-1 cm^2]
250  double B = (0.379763 + 1.69516 * L10E - 0.175026 * L10E * L10E) / 1000000.; // b [g^-1 cm^2]
251  double EPS = A / B; // epsilon [GeV]
252  double newEnergy = (Energy + EPS) * exp(-B * waterEquivalents) - EPS; // updated energy
253  double EnergyLoss = Energy - newEnergy;
254  return EnergyLoss;
255 }

References TtFullHadDaughter::B, EcalCondDBWriter_cfi::Energy, MaterialEffects_cfi::EnergyLoss, EPS, JetChargeProducer_cfi::exp, and waterEquivalents.

Referenced by deltaEmin().

◆ Eug()

double SingleParticleEvent::Eug ( )

Definition at line 259 of file SingleParticleEvent.cc.

259 { return E_ug; }

References E_ug.

Referenced by setEug().

◆ hitTarget()

bool SingleParticleEvent::hitTarget ( )

Definition at line 294 of file SingleParticleEvent.cc.

294 { return HitTarget; }

References HitTarget.

Referenced by CosmicMuonGenerator::nextEvent(), and CosmicMuonGenerator::nextMultiEvent().

◆ id()

int SingleParticleEvent::id ( void  )

Definition at line 316 of file SingleParticleEvent.cc.

316 { return ID; }

References ID.

Referenced by create(), CosmicMuonGenerator::nextEvent(), and CosmicMuonGenerator::nextMultiEvent().

◆ id_in()

int SingleParticleEvent::id_in ( )

Definition at line 296 of file SingleParticleEvent.cc.

296 { return ID_in; }

References ID_in.

◆ m()

double SingleParticleEvent::m ( )

Definition at line 326 of file SingleParticleEvent.cc.

326 { return M; }

References M.

Referenced by create(), and CosmicMuonGenerator::nextEvent().

◆ m_in()

double SingleParticleEvent::m_in ( )

Definition at line 306 of file SingleParticleEvent.cc.

306 { return M_in; }

References M_in.

◆ phi()

double SingleParticleEvent::phi ( void  )

Definition at line 338 of file SingleParticleEvent.cc.

338  {
339  double phiXZ = atan2(Px, Pz);
340  if (phiXZ < 0.)
341  phiXZ = phiXZ + TwoPi;
342  return phiXZ;
343 }

References Px, Pz, and TwoPi.

Referenced by Particle.Particle::__str__(), CosmicMuonGenerator::goodOrientation(), CosmicMuonGenerator::nextEvent(), and ntupleDataFormat.Track::phiPull().

◆ propagate()

void SingleParticleEvent::propagate ( double  ElossScaleFac,
double  RadiusTarget,
double  Z_DistTarget,
double  Z_CentrTarget,
bool  TrackerOnly,
bool  MTCCHalf 
)

Definition at line 18 of file SingleParticleEvent.cc.

23  {
24  MTCC = MTCCHalf; //need to know this boolean in absVzTmp()
25  // calculated propagation direction
26  dX = Px / absmom();
27  dY = Py / absmom();
28  dZ = Pz / absmom();
29  // propagate with decreasing step size
30  tmpVx = Vx;
31  tmpVy = Vy;
32  tmpVz = Vz;
33  double RadiusTargetEff = RadiusTarget;
34  double Z_DistTargetEff = Z_DistTarget;
35  double Z_CentrTargetEff = Z_CentrTarget;
36  if (TrackerOnly == true) {
37  RadiusTargetEff = RadiusTracker;
38  Z_DistTargetEff = Z_DistTracker;
39  }
40  HitTarget = true;
41  if (HitTarget == true) {
42  HitTarget = false;
43  double stepSize = MinStepSize * 100000.;
44  double acceptR = RadiusTargetEff + stepSize;
45  double acceptZ = Z_DistTargetEff + stepSize;
46  bool continuePropagation = true;
47  while (continuePropagation) {
48  //if (tmpVy < -acceptR) continuePropagation = false;
49  if (dY < 0. && tmpVy < -acceptR)
50  continuePropagation = false;
51  if (dY >= 0. && tmpVy > acceptR)
52  continuePropagation = false;
53  //if (absVzTmp() < acceptZ && rVxyTmp() < acceptR){
54  if (std::fabs(tmpVz - Z_CentrTargetEff) < acceptZ && rVxyTmp() < acceptR) {
55  HitTarget = true;
56  continuePropagation = false;
57  }
58  if (continuePropagation)
59  updateTmp(stepSize);
60  }
61  }
62  if (HitTarget == true) {
63  HitTarget = false;
64  double stepSize = MinStepSize * 10000.;
65  double acceptR = RadiusTargetEff + stepSize;
66  double acceptZ = Z_DistTargetEff + stepSize;
67  bool continuePropagation = true;
68  while (continuePropagation) {
69  //if (tmpVy < -acceptR) continuePropagation = false;
70  if (dY < 0. && tmpVy < -acceptR)
71  continuePropagation = false;
72  if (dY >= 0. && tmpVy > acceptR)
73  continuePropagation = false;
74  //if (absVzTmp() < acceptZ && rVxyTmp() < acceptR){
75  if (std::fabs(tmpVz - Z_CentrTargetEff) < acceptZ && rVxyTmp() < acceptR) {
76  HitTarget = true;
77  continuePropagation = false;
78  }
79  if (continuePropagation)
80  updateTmp(stepSize);
81  }
82  }
83  if (HitTarget == true) {
84  HitTarget = false;
85  double stepSize = MinStepSize * 1000.;
86  double acceptR = RadiusTargetEff + stepSize;
87  double acceptZ = Z_DistTargetEff + stepSize;
88  bool continuePropagation = true;
89  while (continuePropagation) {
90  //if (tmpVy < -acceptR) continuePropagation = false;
91  if (dY < 0. && tmpVy < -acceptR)
92  continuePropagation = false;
93  if (dY >= 0. && tmpVy > acceptR)
94  continuePropagation = false;
95  //if (absVzTmp() < acceptZ && rVxyTmp() < acceptR){
96  if (std::fabs(tmpVz - Z_CentrTargetEff) < acceptZ && rVxyTmp() < acceptR) {
97  HitTarget = true;
98  continuePropagation = false;
99  }
100  if (continuePropagation)
101  updateTmp(stepSize);
102  }
103  }
104  if (HitTarget == true) {
105  HitTarget = false;
106  double stepSize = MinStepSize * 100.;
107  double acceptR = RadiusTargetEff + stepSize;
108  double acceptZ = Z_DistTargetEff + stepSize;
109  bool continuePropagation = true;
110  while (continuePropagation) {
111  //if (tmpVy < -acceptR) continuePropagation = false;
112  if (dY < 0. && tmpVy < -acceptR)
113  continuePropagation = false;
114  if (dY >= 0. && tmpVy > acceptR)
115  continuePropagation = false;
116  //if (absVzTmp() < acceptZ && rVxyTmp() < acceptR){
117  if (std::fabs(tmpVz - Z_CentrTargetEff) < acceptZ && rVxyTmp() < acceptR) {
118  HitTarget = true;
119  continuePropagation = false;
120  }
121  if (continuePropagation)
122  updateTmp(stepSize);
123  }
124  }
125  if (HitTarget == true) {
126  HitTarget = false;
127  double stepSize = MinStepSize * 10.;
128  double acceptR = RadiusTargetEff + stepSize;
129  double acceptZ = Z_DistTargetEff + stepSize;
130  bool continuePropagation = true;
131  while (continuePropagation) {
132  //if (tmpVy < -acceptR) continuePropagation = false;
133  if (dY < 0. && tmpVy < -acceptR)
134  continuePropagation = false;
135  if (dY >= 0. && tmpVy > acceptR)
136  continuePropagation = false;
137  //if (absVzTmp() < acceptZ && rVxyTmp() < acceptR){
138  if (std::fabs(tmpVz - Z_CentrTargetEff) < acceptZ && rVxyTmp() < acceptR) {
139  HitTarget = true;
140  continuePropagation = false;
141  }
142  if (continuePropagation)
143  updateTmp(stepSize);
144  }
145  }
146  if (HitTarget == true) {
147  HitTarget = false;
148  double stepSize = MinStepSize * 1.;
149  double acceptR = RadiusTargetEff + stepSize;
150  double acceptZ = Z_DistTargetEff + stepSize;
151  bool continuePropagation = true;
152  while (continuePropagation) {
153  //if (tmpVy < -acceptR) continuePropagation = false;
154  if (dY < 0. && tmpVy < -acceptR)
155  continuePropagation = false;
156  if (dY >= 0. && tmpVy > acceptR)
157  continuePropagation = false;
158  //if (0 < absVzTmp()){ //only check for MTCC setup in last step of propagation, need fine stepSize
159  if (absVzTmp() < acceptZ && rVxyTmp() < acceptR) {
160  if (std::fabs(tmpVz - Z_CentrTargetEff) < acceptZ && rVxyTmp() < acceptR) {
161  HitTarget = true;
162  continuePropagation = false;
163  }
164  }
165  if (continuePropagation)
166  updateTmp(stepSize);
167  }
168  }
169  // actual propagation + energy loss
170  if (HitTarget == true) {
171  HitTarget = false;
172  //int nAir = 0; int nWall = 0; int nRock = 0; int nClay = 0; int nPlug = 0;
173  int nMat[6] = {0, 0, 0, 0, 0, 0};
174  double stepSize = MinStepSize * 1.; // actual step size
175  double acceptR = RadiusCMS + stepSize;
176  double acceptZ = Z_DistCMS + stepSize;
177  if (TrackerOnly == true) {
178  acceptR = RadiusTracker + stepSize;
179  acceptZ = Z_DistTracker + stepSize;
180  }
181  bool continuePropagation = true;
182  while (continuePropagation) {
183  //if (Vy < -acceptR) continuePropagation = false;
184  if (dY < 0. && tmpVy < -acceptR)
185  continuePropagation = false;
186  if (dY >= 0. && tmpVy > acceptR)
187  continuePropagation = false;
188  //if (absVz() < acceptZ && rVxy() < acceptR){
189  if (std::fabs(Vz - Z_CentrTargetEff) < acceptZ && rVxy() < acceptR) {
190  HitTarget = true;
191  continuePropagation = false;
192  }
193  if (continuePropagation)
194  update(stepSize);
195 
196  int Mat = inMat(Vx, Vy, Vz, PlugVx, PlugVz, ClayWidth);
197 
198  nMat[Mat]++;
199  }
200 
201  if (HitTarget) {
202  double lPlug = double(nMat[Plug]) * stepSize;
203  double lWall = double(nMat[Wall]) * stepSize;
204  double lAir = double(nMat[Air]) * stepSize;
205  double lClay = double(nMat[Clay]) * stepSize;
206  double lRock = double(nMat[Rock]) * stepSize;
207  //double lUnknown = double(nMat[Unknown])*stepSize;
208 
209  double waterEquivalents =
210  (lAir * RhoAir + lWall * RhoWall + lRock * RhoRock + lClay * RhoClay + lPlug * RhoPlug) * ElossScaleFac /
211  10.; // [g cm^-2]
213  if (E < MuonMass)
214  HitTarget = false; // muon stopped in the material around the target
215  }
216  }
217  // end of propagation part
218 }

References absmom(), absVzTmp(), Air, Clay, ClayWidth, dX, dY, dZ, E, HitTarget, inMat(), MinStepSize, MTCC, CMSCGENproducer_cfi::MTCCHalf, MuonMass, Plug, PlugVx, PlugVz, Px, Py, Pz, RadiusCMS, RadiusTracker, RhoAir, RhoClay, RhoPlug, RhoRock, RhoWall, Rock, rVxy(), rVxyTmp(), subtractEloss(), tmpVx, tmpVy, tmpVz, CMSCGENproducer_cfi::TrackerOnly, update(), updateTmp(), Vx, Vy, Vz, Wall, waterEquivalents, Z_DistCMS, and Z_DistTracker.

Referenced by CosmicMuonGenerator::nextEvent(), and CosmicMuonGenerator::nextMultiEvent().

◆ px()

double SingleParticleEvent::px ( )

◆ px_in()

double SingleParticleEvent::px_in ( )

Definition at line 298 of file SingleParticleEvent.cc.

298 { return Px_in; }

References Px_in.

◆ py()

double SingleParticleEvent::py ( )

◆ py_in()

double SingleParticleEvent::py_in ( )

Definition at line 300 of file SingleParticleEvent.cc.

300 { return Py_in; }

References Py_in.

◆ pz()

double SingleParticleEvent::pz ( )

◆ pz_in()

double SingleParticleEvent::pz_in ( )

Definition at line 302 of file SingleParticleEvent.cc.

302 { return Pz_in; }

References Pz_in.

◆ rVxy()

double SingleParticleEvent::rVxy ( )

Definition at line 351 of file SingleParticleEvent.cc.

351 { return sqrt(Vx * Vx + Vy * Vy); }

References mathSSE::sqrt(), Vx, and Vy.

Referenced by propagate().

◆ rVxyTmp()

double SingleParticleEvent::rVxyTmp ( )
private

Definition at line 292 of file SingleParticleEvent.cc.

292 { return sqrt(tmpVx * tmpVx + tmpVy * tmpVy); }

References mathSSE::sqrt(), tmpVx, and tmpVy.

Referenced by propagate().

◆ setEug()

void SingleParticleEvent::setEug ( double  Eug)

Definition at line 257 of file SingleParticleEvent.cc.

257 { E_ug = Eug; }

References E_ug, and Eug().

◆ subtractEloss()

void SingleParticleEvent::subtractEloss ( double  waterEquivalents)
private

Definition at line 232 of file SingleParticleEvent.cc.

232  {
233  double L10E = log10(E);
234  // parameters for standard rock (PDG 2004, page 230)
235  double A = (1.91514 + 0.254957 * L10E) / 1000.; // a [GeV g^-1 cm^2]
236  double B = (0.379763 + 1.69516 * L10E - 0.175026 * L10E * L10E) / 1000000.; // b [g^-1 cm^2]
237  double EPS = A / B; // epsilon [GeV]
238  E = (E + EPS) * exp(-B * waterEquivalents) - EPS; // updated energy
239  double oldAbsMom = absmom();
240  double newAbsMom = sqrt(E * E - MuonMass * MuonMass);
241  Px = Px * newAbsMom / oldAbsMom; // updated px
242  Py = Py * newAbsMom / oldAbsMom; // updated py
243  Pz = Pz * newAbsMom / oldAbsMom; // updated pz
244 }

References absmom(), TtFullHadDaughter::B, E, EPS, JetChargeProducer_cfi::exp, MuonMass, Px, Py, Pz, mathSSE::sqrt(), and waterEquivalents.

Referenced by propagate().

◆ SurfProj()

void SingleParticleEvent::SurfProj ( double  Vx_in,
double  Vy_in,
double  Vz_in,
double  Px_in,
double  Py_in,
double  Pz_in,
double &  Vx_up,
double &  Vy_up,
double &  Vz_up 
)

Definition at line 266 of file SingleParticleEvent.cc.

274  {
275  //determine vertex of muon at Surface (+PlugWidth)
276  double dy = Vy_in - (SurfaceOfEarth + PlugWidth);
277  Vy_up = Vy_in - dy;
278  Vx_up = Vx_in - dy * Px_in / Py_in;
279  Vz_up = Vz_in - dy * Pz_in / Py_in;
280  if (Debug)
281  std::cout << "Vx_up=" << Vx_up << " Vy_up=" << Vy_up << " Vz_up=" << Vz_up << std::endl;
282 }

References gather_cfg::cout, Debug, PVValHelper::dy, PlugWidth, Px_in, Py_in, Pz_in, SurfaceOfEarth, Vx_in, Vy_in, and Vz_in.

◆ t0()

double SingleParticleEvent::t0 ( )

Definition at line 334 of file SingleParticleEvent.cc.

334 { return T0; }

References T0.

Referenced by create(), CosmicMuonGenerator::nextEvent(), and CosmicMuonGenerator::nextMultiEvent().

◆ t0_in()

double SingleParticleEvent::t0_in ( )

Definition at line 314 of file SingleParticleEvent.cc.

314 { return T0_in; }

References T0_in.

◆ theta()

double SingleParticleEvent::theta ( void  )

Definition at line 345 of file SingleParticleEvent.cc.

345 { return atan2(sqrt(Px * Px + Pz * Pz), -Py); }

References Px, Py, Pz, and mathSSE::sqrt().

Referenced by CosmicMuonGenerator::goodOrientation(), CosmicMuonGenerator::nextEvent(), and Tau.Tau::zImpact().

◆ update()

void SingleParticleEvent::update ( double  stepSize)
private

Definition at line 220 of file SingleParticleEvent.cc.

220  {
221  Vx += stepSize * dX;
222  Vy += stepSize * dY;
223  Vz += stepSize * dZ;
224 }

References dX, dY, dZ, Vx, Vy, and Vz.

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), progressbar.ProgressBar::finish(), MatrixUtil.Steps::overwrite(), and propagate().

◆ updateTmp()

void SingleParticleEvent::updateTmp ( double  stepSize)
private

Definition at line 226 of file SingleParticleEvent.cc.

226  {
227  tmpVx += stepSize * dX;
228  tmpVy += stepSize * dY;
229  tmpVz += stepSize * dZ;
230 }

References dX, dY, dZ, tmpVx, tmpVy, and tmpVz.

Referenced by propagate().

◆ vx()

double SingleParticleEvent::vx ( )

◆ vx_in()

double SingleParticleEvent::vx_in ( )

Definition at line 308 of file SingleParticleEvent.cc.

308 { return Vx_in; }

References Vx_in.

◆ vy()

double SingleParticleEvent::vy ( )

◆ vy_in()

double SingleParticleEvent::vy_in ( )

Definition at line 310 of file SingleParticleEvent.cc.

310 { return Vy_in; }

References Vy_in.

◆ vz()

double SingleParticleEvent::vz ( )

◆ vz_in()

double SingleParticleEvent::vz_in ( )

Definition at line 312 of file SingleParticleEvent.cc.

312 { return Vz_in; }

References Vz_in.

◆ WaterEquivalents()

double SingleParticleEvent::WaterEquivalents ( )

Definition at line 336 of file SingleParticleEvent.cc.

336 { return waterEquivalents; }

References waterEquivalents.

Member Data Documentation

◆ ClayWidth

double SingleParticleEvent::ClayWidth

Definition at line 153 of file SingleParticleEvent.h.

Referenced by propagate(), and SingleParticleEvent().

◆ dX

double SingleParticleEvent::dX
private

Definition at line 74 of file SingleParticleEvent.h.

Referenced by propagate(), update(), and updateTmp().

◆ dY

double SingleParticleEvent::dY
private

Definition at line 75 of file SingleParticleEvent.h.

Referenced by propagate(), update(), and updateTmp().

◆ dZ

double SingleParticleEvent::dZ
private

Definition at line 76 of file SingleParticleEvent.h.

Referenced by propagate(), update(), and updateTmp().

◆ E

double SingleParticleEvent::E
private

Definition at line 54 of file SingleParticleEvent.h.

Referenced by create(), e(), propagate(), SingleParticleEvent(), and subtractEloss().

◆ E_in

double SingleParticleEvent::E_in
private

Definition at line 64 of file SingleParticleEvent.h.

Referenced by create(), e_in(), and SingleParticleEvent().

◆ E_ug

double SingleParticleEvent::E_ug

Definition at line 155 of file SingleParticleEvent.h.

Referenced by deltaEmin(), Eug(), and setEug().

◆ HitTarget

bool SingleParticleEvent::HitTarget
private

Definition at line 70 of file SingleParticleEvent.h.

Referenced by create(), hitTarget(), propagate(), and SingleParticleEvent().

◆ ID

int SingleParticleEvent::ID
private

Definition at line 50 of file SingleParticleEvent.h.

Referenced by create(), id(), and SingleParticleEvent().

◆ ID_in

int SingleParticleEvent::ID_in
private

Definition at line 60 of file SingleParticleEvent.h.

Referenced by create(), id_in(), and SingleParticleEvent().

◆ M

double SingleParticleEvent::M
private

Definition at line 55 of file SingleParticleEvent.h.

Referenced by create(), m(), and SingleParticleEvent().

◆ M_in

double SingleParticleEvent::M_in
private

Definition at line 65 of file SingleParticleEvent.h.

Referenced by create(), m_in(), and SingleParticleEvent().

◆ MTCC

bool SingleParticleEvent::MTCC
private

Definition at line 71 of file SingleParticleEvent.h.

Referenced by absVzTmp(), and propagate().

◆ PlugVx

double SingleParticleEvent::PlugVx

◆ PlugVz

double SingleParticleEvent::PlugVz

◆ Px

double SingleParticleEvent::Px
private

◆ Px_in

double SingleParticleEvent::Px_in
private

Definition at line 61 of file SingleParticleEvent.h.

Referenced by create(), px_in(), SingleParticleEvent(), and SurfProj().

◆ Py

double SingleParticleEvent::Py
private

◆ Py_in

double SingleParticleEvent::Py_in
private

Definition at line 62 of file SingleParticleEvent.h.

Referenced by create(), py_in(), SingleParticleEvent(), and SurfProj().

◆ Pz

double SingleParticleEvent::Pz
private

◆ Pz_in

double SingleParticleEvent::Pz_in
private

Definition at line 63 of file SingleParticleEvent.h.

Referenced by create(), pz_in(), SingleParticleEvent(), and SurfProj().

◆ RhoAir

double SingleParticleEvent::RhoAir

◆ RhoClay

double SingleParticleEvent::RhoClay

◆ RhoPlug

double SingleParticleEvent::RhoPlug

◆ RhoRock

double SingleParticleEvent::RhoRock

◆ RhoWall

double SingleParticleEvent::RhoWall

◆ T0

double SingleParticleEvent::T0
private

Definition at line 59 of file SingleParticleEvent.h.

Referenced by create(), SingleParticleEvent(), and t0().

◆ T0_in

double SingleParticleEvent::T0_in
private

Definition at line 69 of file SingleParticleEvent.h.

Referenced by create(), SingleParticleEvent(), and t0_in().

◆ tmpVx

double SingleParticleEvent::tmpVx
private

Definition at line 77 of file SingleParticleEvent.h.

Referenced by propagate(), rVxyTmp(), and updateTmp().

◆ tmpVy

double SingleParticleEvent::tmpVy
private

Definition at line 78 of file SingleParticleEvent.h.

Referenced by propagate(), rVxyTmp(), and updateTmp().

◆ tmpVz

double SingleParticleEvent::tmpVz
private

Definition at line 79 of file SingleParticleEvent.h.

Referenced by absVzTmp(), propagate(), and updateTmp().

◆ Vx

double SingleParticleEvent::Vx
private

Definition at line 56 of file SingleParticleEvent.h.

Referenced by create(), propagate(), rVxy(), SingleParticleEvent(), update(), and vx().

◆ Vx_in

double SingleParticleEvent::Vx_in
private

Definition at line 66 of file SingleParticleEvent.h.

Referenced by create(), SingleParticleEvent(), SurfProj(), and vx_in().

◆ Vy

double SingleParticleEvent::Vy
private

Definition at line 57 of file SingleParticleEvent.h.

Referenced by create(), propagate(), rVxy(), SingleParticleEvent(), update(), and vy().

◆ Vy_in

double SingleParticleEvent::Vy_in
private

Definition at line 67 of file SingleParticleEvent.h.

Referenced by create(), SingleParticleEvent(), SurfProj(), and vy_in().

◆ Vz

double SingleParticleEvent::Vz
private

Definition at line 58 of file SingleParticleEvent.h.

Referenced by absVz(), create(), propagate(), SingleParticleEvent(), update(), and vz().

◆ Vz_in

double SingleParticleEvent::Vz_in
private

Definition at line 68 of file SingleParticleEvent.h.

Referenced by create(), SingleParticleEvent(), SurfProj(), and vz_in().

◆ waterEquivalents

double SingleParticleEvent::waterEquivalents

Definition at line 154 of file SingleParticleEvent.h.

Referenced by deltaEmin(), Eloss(), propagate(), subtractEloss(), and WaterEquivalents().

SingleParticleEvent::tmpVx
double tmpVx
Definition: SingleParticleEvent.h:77
SingleParticleEvent::vy
double vy()
Definition: SingleParticleEvent.cc:330
SingleParticleEvent::Vz
double Vz
Definition: SingleParticleEvent.h:58
SingleParticleEvent::dX
double dX
Definition: SingleParticleEvent.h:74
MaterialEffects_cfi.EnergyLoss
EnergyLoss
Definition: MaterialEffects_cfi.py:36
SingleParticleEvent::HitTarget
bool HitTarget
Definition: SingleParticleEvent.h:70
SingleParticleEvent::t0
double t0()
Definition: SingleParticleEvent.cc:334
MuonMass
const double MuonMass
Definition: CosmicMuonParameters.h:24
SingleParticleEvent::vx
double vx()
Definition: SingleParticleEvent.cc:328
TwoPi
const double TwoPi
Definition: CosmicMuonParameters.h:19
SingleParticleEvent::absmom
double absmom()
Definition: SingleParticleEvent.cc:347
SingleParticleEvent::T0_in
double T0_in
Definition: SingleParticleEvent.h:69
EcalCondDBWriter_cfi.Energy
Energy
Definition: EcalCondDBWriter_cfi.py:152
SingleParticleEvent::Vy
double Vy
Definition: SingleParticleEvent.h:57
SingleParticleEvent::absVzTmp
double absVzTmp()
Definition: SingleParticleEvent.cc:284
SurfaceOfEarth
const double SurfaceOfEarth
Definition: CosmicMuonParameters.h:27
RadiusTracker
const double RadiusTracker
Definition: CosmicMuonParameters.h:54
gather_cfg.cout
cout
Definition: gather_cfg.py:144
Z_DistCMS
const double Z_DistCMS
Definition: CosmicMuonParameters.h:53
SingleParticleEvent::RhoAir
double RhoAir
Definition: SingleParticleEvent.h:148
DefaultClayWidth
const double DefaultClayWidth
Definition: CosmicMuonParameters.h:38
SingleParticleEvent::m
double m()
Definition: SingleParticleEvent.cc:326
SingleParticleEvent::ID
int ID
Definition: SingleParticleEvent.h:50
Wall
Definition: CosmicMuonParameters.h:61
SingleParticleEvent::M
double M
Definition: SingleParticleEvent.h:55
SingleParticleEvent::update
void update(double stepSize)
Definition: SingleParticleEvent.cc:220
SingleParticleEvent::vz
double vz()
Definition: SingleParticleEvent.cc:332
SingleParticleEvent::RhoRock
double RhoRock
Definition: SingleParticleEvent.h:150
SingleParticleEvent::tmpVz
double tmpVz
Definition: SingleParticleEvent.h:79
SingleParticleEvent::Vx
double Vx
Definition: SingleParticleEvent.h:56
SingleParticleEvent::Py_in
double Py_in
Definition: SingleParticleEvent.h:62
SingleParticleEvent::E_in
double E_in
Definition: SingleParticleEvent.h:64
inMat
int inMat(double vx, double vy, double vz, double PlugVx=PlugOnShaftVx, double PlugVz=PlugOnShaftVz, double ClayWidth=DefaultClayWidth)
Definition: Point5MaterialMap.cc:228
Debug
const bool Debug
Definition: CosmicMuonParameters.h:12
SingleParticleEvent::tmpVy
double tmpVy
Definition: SingleParticleEvent.h:78
SingleParticleEvent::Px
double Px
Definition: SingleParticleEvent.h:51
SingleParticleEvent::Pz_in
double Pz_in
Definition: SingleParticleEvent.h:63
SingleParticleEvent::pz
double pz()
Definition: SingleParticleEvent.cc:322
SingleParticleEvent::PlugVx
double PlugVx
Definition: SingleParticleEvent.h:146
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
EPS
#define EPS
Definition: GammaContinuedFraction.cc:6
SingleParticleEvent::RhoClay
double RhoClay
Definition: SingleParticleEvent.h:151
SingleParticleEvent::PlugVz
double PlugVz
Definition: SingleParticleEvent.h:147
SingleParticleEvent::RhoWall
double RhoWall
Definition: SingleParticleEvent.h:149
SingleParticleEvent::e
double e()
Definition: SingleParticleEvent.cc:324
SingleParticleEvent::E_ug
double E_ug
Definition: SingleParticleEvent.h:155
SingleParticleEvent::MTCC
bool MTCC
Definition: SingleParticleEvent.h:71
SingleParticleEvent::ID_in
int ID_in
Definition: SingleParticleEvent.h:60
Air
Definition: CosmicMuonParameters.h:61
Rock
Definition: CosmicMuonParameters.h:61
A
SingleParticleEvent::waterEquivalents
double waterEquivalents
Definition: SingleParticleEvent.h:154
SingleParticleEvent::px
double px()
Definition: SingleParticleEvent.cc:318
SingleParticleEvent::T0
double T0
Definition: SingleParticleEvent.h:59
SingleParticleEvent::Vx_in
double Vx_in
Definition: SingleParticleEvent.h:66
SingleParticleEvent::dZ
double dZ
Definition: SingleParticleEvent.h:76
PVValHelper::dy
Definition: PVValidationHelpers.h:49
CMSCGENproducer_cfi.MTCCHalf
MTCCHalf
Definition: CMSCGENproducer_cfi.py:16
RadiusCMS
const double RadiusCMS
Definition: CosmicMuonParameters.h:52
SingleParticleEvent::ClayWidth
double ClayWidth
Definition: SingleParticleEvent.h:153
CMSCGENproducer_cfi.TrackerOnly
TrackerOnly
Definition: CMSCGENproducer_cfi.py:17
SingleParticleEvent::updateTmp
void updateTmp(double stepSize)
Definition: SingleParticleEvent.cc:226
TtFullHadDaughter::B
static const std::string B
Definition: TtFullHadronicEvent.h:9
SingleParticleEvent::id
int id()
Definition: SingleParticleEvent.cc:316
SingleParticleEvent::Eug
double Eug()
Definition: SingleParticleEvent.cc:259
SingleParticleEvent::RhoPlug
double RhoPlug
Definition: SingleParticleEvent.h:152
SingleParticleEvent::Vy_in
double Vy_in
Definition: SingleParticleEvent.h:67
SingleParticleEvent::M_in
double M_in
Definition: SingleParticleEvent.h:65
Clay
Definition: CosmicMuonParameters.h:61
SingleParticleEvent::rVxyTmp
double rVxyTmp()
Definition: SingleParticleEvent.cc:292
SingleParticleEvent::Vz_in
double Vz_in
Definition: SingleParticleEvent.h:68
SingleParticleEvent::Pz
double Pz
Definition: SingleParticleEvent.h:53
Z_DistTracker
const double Z_DistTracker
Definition: CosmicMuonParameters.h:55
SingleParticleEvent::Eloss
double Eloss(double waterEquivalents, double Energy)
Definition: SingleParticleEvent.cc:246
SingleParticleEvent::py
double py()
Definition: SingleParticleEvent.cc:320
PlugOnShaftVz
const double PlugOnShaftVz
Definition: CosmicMuonParameters.h:47
PlugOnShaftVx
const double PlugOnShaftVx
Definition: CosmicMuonParameters.h:46
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
PlugWidth
const double PlugWidth
Definition: CosmicMuonParameters.h:41
SingleParticleEvent::subtractEloss
void subtractEloss(double waterEquivalents)
Definition: SingleParticleEvent.cc:232
SingleParticleEvent::dY
double dY
Definition: SingleParticleEvent.h:75
SingleParticleEvent::rVxy
double rVxy()
Definition: SingleParticleEvent.cc:351
SingleParticleEvent::E
double E
Definition: SingleParticleEvent.h:54
Plug
Definition: CosmicMuonParameters.h:61
SingleParticleEvent::Py
double Py
Definition: SingleParticleEvent.h:52
SingleParticleEvent::Px_in
double Px_in
Definition: SingleParticleEvent.h:61
MinStepSize
const double MinStepSize
Definition: CosmicMuonParameters.h:16