CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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 ( )
inline

Definition at line 15 of file SingleParticleEvent.h.

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.

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  }
const double PlugOnShaftVz
const double PlugOnShaftVx
const double DefaultClayWidth
SingleParticleEvent::~SingleParticleEvent ( )
inline

Definition at line 47 of file SingleParticleEvent.h.

47 {}

Member Function Documentation

double SingleParticleEvent::absmom ( )

Definition at line 347 of file SingleParticleEvent.cc.

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

Referenced by propagate(), and subtractEloss().

347 { return sqrt(Px * Px + Py * Py + Pz * Pz); }
T sqrt(T t)
Definition: SSEVec.h:19
double SingleParticleEvent::absVz ( )

Definition at line 349 of file SingleParticleEvent.cc.

References Vz.

349 { return std::fabs(Vz); }
double SingleParticleEvent::absVzTmp ( )
private

Definition at line 284 of file SingleParticleEvent.cc.

References MTCC, and tmpVz.

Referenced by propagate().

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 }
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.

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().

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 }
double SingleParticleEvent::deltaEmin ( double  Energy)

Definition at line 261 of file SingleParticleEvent.cc.

References E_ug, Eloss(), and waterEquivalents.

261  {
262  double dE = Eloss(waterEquivalents, E_sf);
263  return E_ug - (E_sf - dE);
264 }
double Eloss(double waterEquivalents, double Energy)
double SingleParticleEvent::e ( )
double SingleParticleEvent::e_in ( )

Definition at line 304 of file SingleParticleEvent.cc.

References E_in.

304 { return E_in; }
double SingleParticleEvent::Eloss ( double  waterEquivalents,
double  Energy 
)

Definition at line 246 of file SingleParticleEvent.cc.

References funct::A, TtFullHadDaughter::B, EPS, and funct::exp().

Referenced by deltaEmin().

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 }
#define EPS
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
static const std::string B
double SingleParticleEvent::Eug ( )

Definition at line 259 of file SingleParticleEvent.cc.

References E_ug.

Referenced by setEug().

259 { return E_ug; }
bool SingleParticleEvent::hitTarget ( )

Definition at line 294 of file SingleParticleEvent.cc.

References HitTarget.

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

294 { return HitTarget; }
int SingleParticleEvent::id ( void  )

Definition at line 316 of file SingleParticleEvent.cc.

References ID.

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

316 { return ID; }
int SingleParticleEvent::id_in ( )

Definition at line 296 of file SingleParticleEvent.cc.

References ID_in.

296 { return ID_in; }
double SingleParticleEvent::m ( )

Definition at line 326 of file SingleParticleEvent.cc.

References M.

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

326 { return M; }
double SingleParticleEvent::m_in ( )

Definition at line 306 of file SingleParticleEvent.cc.

References M_in.

306 { return M_in; }
double SingleParticleEvent::phi ( void  )

Definition at line 338 of file SingleParticleEvent.cc.

References Px, Pz, and TwoPi.

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

338  {
339  double phiXZ = atan2(Px, Pz);
340  if (phiXZ < 0.)
341  phiXZ = phiXZ + TwoPi;
342  return phiXZ;
343 }
const double TwoPi
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.

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

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

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]
212  subtractEloss(waterEquivalents);
213  if (E < MuonMass)
214  HitTarget = false; // muon stopped in the material around the target
215  }
216  }
217  // end of propagation part
218 }
const double Z_DistTracker
void updateTmp(double stepSize)
void subtractEloss(double waterEquivalents)
const double RadiusCMS
void update(double stepSize)
const double Z_DistCMS
int inMat(double vx, double vy, double vz, double PlugVx=PlugOnShaftVx, double PlugVz=PlugOnShaftVz, double ClayWidth=DefaultClayWidth)
const double MinStepSize
const double MuonMass
const double RadiusTracker
double SingleParticleEvent::px ( )
double SingleParticleEvent::px_in ( )

Definition at line 298 of file SingleParticleEvent.cc.

References Px_in.

298 { return Px_in; }
double SingleParticleEvent::py ( )
double SingleParticleEvent::py_in ( )

Definition at line 300 of file SingleParticleEvent.cc.

References Py_in.

300 { return Py_in; }
double SingleParticleEvent::pz ( )
double SingleParticleEvent::pz_in ( )

Definition at line 302 of file SingleParticleEvent.cc.

References Pz_in.

302 { return Pz_in; }
double SingleParticleEvent::rVxy ( )

Definition at line 351 of file SingleParticleEvent.cc.

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

Referenced by propagate().

351 { return sqrt(Vx * Vx + Vy * Vy); }
T sqrt(T t)
Definition: SSEVec.h:19
double SingleParticleEvent::rVxyTmp ( )
private

Definition at line 292 of file SingleParticleEvent.cc.

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

Referenced by propagate().

292 { return sqrt(tmpVx * tmpVx + tmpVy * tmpVy); }
T sqrt(T t)
Definition: SSEVec.h:19
void SingleParticleEvent::setEug ( double  Eug)

Definition at line 257 of file SingleParticleEvent.cc.

References E_ug, and Eug().

void SingleParticleEvent::subtractEloss ( double  waterEquivalents)
private

Definition at line 232 of file SingleParticleEvent.cc.

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

Referenced by propagate().

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 }
#define EPS
Exp< T >::type exp(const T &t)
Definition: Exp.h:22
T sqrt(T t)
Definition: SSEVec.h:19
static const std::string B
const double MuonMass
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.

References gather_cfg::cout, Debug, PVValHelper::dy, PlugWidth, Py_in, and SurfaceOfEarth.

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 }
const double PlugWidth
const double SurfaceOfEarth
tuple cout
Definition: gather_cfg.py:144
const bool Debug
double SingleParticleEvent::t0 ( )

Definition at line 334 of file SingleParticleEvent.cc.

References T0.

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

334 { return T0; }
double SingleParticleEvent::t0_in ( )

Definition at line 314 of file SingleParticleEvent.cc.

References T0_in.

314 { return T0_in; }
double SingleParticleEvent::theta ( void  )
void SingleParticleEvent::update ( double  stepSize)
private
void SingleParticleEvent::updateTmp ( double  stepSize)
private

Definition at line 226 of file SingleParticleEvent.cc.

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

Referenced by propagate().

226  {
227  tmpVx += stepSize * dX;
228  tmpVy += stepSize * dY;
229  tmpVz += stepSize * dZ;
230 }
double SingleParticleEvent::vx ( )
double SingleParticleEvent::vx_in ( )

Definition at line 308 of file SingleParticleEvent.cc.

References Vx_in.

308 { return Vx_in; }
double SingleParticleEvent::vy ( )
double SingleParticleEvent::vy_in ( )

Definition at line 310 of file SingleParticleEvent.cc.

References Vy_in.

310 { return Vy_in; }
double SingleParticleEvent::vz ( )
double SingleParticleEvent::vz_in ( )

Definition at line 312 of file SingleParticleEvent.cc.

References Vz_in.

312 { return Vz_in; }
double SingleParticleEvent::WaterEquivalents ( )

Definition at line 336 of file SingleParticleEvent.cc.

References waterEquivalents.

336 { return waterEquivalents; }

Member Data Documentation

double SingleParticleEvent::ClayWidth

Definition at line 153 of file SingleParticleEvent.h.

Referenced by propagate(), and SingleParticleEvent().

double SingleParticleEvent::dX
private

Definition at line 74 of file SingleParticleEvent.h.

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

double SingleParticleEvent::dY
private

Definition at line 75 of file SingleParticleEvent.h.

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

double SingleParticleEvent::dZ
private

Definition at line 76 of file SingleParticleEvent.h.

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

double SingleParticleEvent::E
private

Definition at line 54 of file SingleParticleEvent.h.

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

double SingleParticleEvent::E_in
private

Definition at line 64 of file SingleParticleEvent.h.

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

double SingleParticleEvent::E_ug

Definition at line 155 of file SingleParticleEvent.h.

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

bool SingleParticleEvent::HitTarget
private

Definition at line 70 of file SingleParticleEvent.h.

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

int SingleParticleEvent::ID
private

Definition at line 50 of file SingleParticleEvent.h.

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

int SingleParticleEvent::ID_in
private

Definition at line 60 of file SingleParticleEvent.h.

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

double SingleParticleEvent::M
private

Definition at line 55 of file SingleParticleEvent.h.

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

double SingleParticleEvent::M_in
private

Definition at line 65 of file SingleParticleEvent.h.

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

bool SingleParticleEvent::MTCC
private

Definition at line 71 of file SingleParticleEvent.h.

Referenced by absVzTmp(), and propagate().

double SingleParticleEvent::PlugVx
double SingleParticleEvent::PlugVz
double SingleParticleEvent::Px
private
double SingleParticleEvent::Px_in
private

Definition at line 61 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Py
private
double SingleParticleEvent::Py_in
private

Definition at line 62 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Pz
private
double SingleParticleEvent::Pz_in
private

Definition at line 63 of file SingleParticleEvent.h.

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

double SingleParticleEvent::RhoAir
double SingleParticleEvent::RhoClay
double SingleParticleEvent::RhoPlug
double SingleParticleEvent::RhoRock
double SingleParticleEvent::RhoWall
double SingleParticleEvent::T0
private

Definition at line 59 of file SingleParticleEvent.h.

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

double SingleParticleEvent::T0_in
private

Definition at line 69 of file SingleParticleEvent.h.

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

double SingleParticleEvent::tmpVx
private

Definition at line 77 of file SingleParticleEvent.h.

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

double SingleParticleEvent::tmpVy
private

Definition at line 78 of file SingleParticleEvent.h.

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

double SingleParticleEvent::tmpVz
private

Definition at line 79 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vx
private

Definition at line 56 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vx_in
private

Definition at line 66 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vy
private

Definition at line 57 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vy_in
private

Definition at line 67 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vz
private

Definition at line 58 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vz_in
private

Definition at line 68 of file SingleParticleEvent.h.

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

double SingleParticleEvent::waterEquivalents

Definition at line 154 of file SingleParticleEvent.h.

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