CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros 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 13 of file SingleParticleEvent.h.

Constructor & Destructor Documentation

SingleParticleEvent::SingleParticleEvent ( )
inline

Definition at line 16 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.

16  {
17  ID = 0;
18  Px = 0.; Py = 0.; Pz = 0.; E = 0.; M = 0.;
19  Vx = 0.; Vy = 0.; Vz = 0.; T0 = 0.;
20  ID_in = 0;
21  Px_in = 0.; Py_in = 0.; Pz_in = 0.; E_in = 0.; M_in = 0.;
22  Vx_in = 0.; Vy_in = 0.; Vz_in = 0.; T0_in = 0.;
23  HitTarget = false;
26  RhoAir = 0.;
27  RhoWall = 0.;
28  RhoRock = 0.;
29  RhoClay = 0.;
30  RhoPlug = 0.;
32  }
const double PlugOnShaftVz
const double PlugOnShaftVx
const double DefaultClayWidth
SingleParticleEvent::~SingleParticleEvent ( )
inline

Definition at line 34 of file SingleParticleEvent.h.

34 {}

Member Function Documentation

double SingleParticleEvent::absmom ( )

Definition at line 316 of file SingleParticleEvent.cc.

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

Referenced by propagate(), and subtractEloss().

316  {
317  return sqrt(Px*Px + Py*Py + Pz*Pz);
318 }
T sqrt(T t)
Definition: SSEVec.h:48
double SingleParticleEvent::absVz ( )

Definition at line 320 of file SingleParticleEvent.cc.

References Vz.

320  {
321  return std::fabs(Vz);
322 }
double SingleParticleEvent::absVzTmp ( )
private

Definition at line 248 of file SingleParticleEvent.cc.

References MTCC, and tmpVz.

Referenced by propagate().

248  {
249  if(MTCC==true){
250  return tmpVz; //need sign to be sure muon hits half of CMS with MTCC setup
251  }else{
252  return std::fabs(tmpVz);
253  }
254 }
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().

3  {
4  ID = ID_in = id;
5  Px = Px_in = px; Py = Py_in = py; Pz = Pz_in = pz;
6  E = E_in = e; M = M_in = m;
7  Vx = Vx_in = vx; Vy = Vy_in = vy; Vz = Vz_in = vz;
8  T0 = T0_in = t0;
9  HitTarget = false;
10 }
double SingleParticleEvent::deltaEmin ( double  Energy)

Definition at line 230 of file SingleParticleEvent.cc.

References E_ug, Eloss(), and waterEquivalents.

230  {
231  double dE = Eloss(waterEquivalents, E_sf);
232  return E_ug - (E_sf-dE);
233 }
double Eloss(double waterEquivalents, double Energy)
double SingleParticleEvent::e ( )
double SingleParticleEvent::e_in ( )

Definition at line 271 of file SingleParticleEvent.cc.

References E_in.

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

Definition at line 212 of file SingleParticleEvent.cc.

References HLT_25ns14e33_v1_cff::A, EPS, and create_public_lumi_plots::exp.

Referenced by deltaEmin().

212  {
213  double L10E = log10(Energy);
214  // parameters for standard rock (PDG 2004, page 230)
215  double A = (1.91514 + 0.254957*L10E)/1000.; // a [GeV g^-1 cm^2]
216  double B = (0.379763 + 1.69516*L10E - 0.175026*L10E*L10E)/1000000.; // b [g^-1 cm^2]
217  double EPS = A/B; // epsilon [GeV]
218  double newEnergy = (Energy + EPS)*exp(-B*waterEquivalents) - EPS; // updated energy
219  double EnergyLoss = Energy - newEnergy;
220  return EnergyLoss;
221 }
double_binary B
Definition: DDStreamer.cc:234
#define EPS
double SingleParticleEvent::Eug ( )

Definition at line 228 of file SingleParticleEvent.cc.

References E_ug.

Referenced by setEug().

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

Definition at line 260 of file SingleParticleEvent.cc.

References HitTarget.

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

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

Definition at line 284 of file SingleParticleEvent.cc.

References ID.

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

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

Definition at line 263 of file SingleParticleEvent.cc.

References ID_in.

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

Definition at line 294 of file SingleParticleEvent.cc.

References M.

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

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

Definition at line 273 of file SingleParticleEvent.cc.

References M_in.

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

Definition at line 306 of file SingleParticleEvent.cc.

References Px, Pz, and TwoPi.

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

306  {
307  double phiXZ = atan2(Px,Pz);
308  if (phiXZ < 0.) phiXZ = phiXZ + TwoPi;
309  return phiXZ;
310 }
const double TwoPi
void SingleParticleEvent::propagate ( double  ElossScaleFac,
double  RadiusTarget,
double  Z_DistTarget,
double  Z_CentrTarget,
bool  TrackerOnly,
bool  MTCCHalf 
)

Definition at line 12 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().

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

References Px_in.

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

Definition at line 267 of file SingleParticleEvent.cc.

References Py_in.

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

Definition at line 269 of file SingleParticleEvent.cc.

References Pz_in.

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

Definition at line 324 of file SingleParticleEvent.cc.

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

Referenced by propagate().

324  {
325  return sqrt(Vx*Vx + Vy*Vy);
326 }
T sqrt(T t)
Definition: SSEVec.h:48
double SingleParticleEvent::rVxyTmp ( )
private

Definition at line 256 of file SingleParticleEvent.cc.

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

Referenced by propagate().

256  {
257  return sqrt(tmpVx*tmpVx + tmpVy*tmpVy);
258 }
T sqrt(T t)
Definition: SSEVec.h:48
void SingleParticleEvent::setEug ( double  Eug)

Definition at line 224 of file SingleParticleEvent.cc.

References E_ug, and Eug().

224  {
225  E_ug = Eug;
226 }
void SingleParticleEvent::subtractEloss ( double  waterEquivalents)
private

Definition at line 198 of file SingleParticleEvent.cc.

References HLT_25ns14e33_v1_cff::A, absmom(), E, EPS, create_public_lumi_plots::exp, MuonMass, Px, Py, Pz, and mathSSE::sqrt().

Referenced by propagate().

198  {
199  double L10E = log10(E);
200  // parameters for standard rock (PDG 2004, page 230)
201  double A = (1.91514 + 0.254957*L10E)/1000.; // a [GeV g^-1 cm^2]
202  double B = (0.379763 + 1.69516*L10E - 0.175026*L10E*L10E)/1000000.; // b [g^-1 cm^2]
203  double EPS = A/B; // epsilon [GeV]
204  E = (E + EPS)*exp(-B*waterEquivalents) - EPS; // updated energy
205  double oldAbsMom = absmom();
206  double newAbsMom = sqrt(E*E - MuonMass*MuonMass);
207  Px = Px*newAbsMom/oldAbsMom; // updated px
208  Py = Py*newAbsMom/oldAbsMom; // updated py
209  Pz = Pz*newAbsMom/oldAbsMom; // updated pz
210 }
double_binary B
Definition: DDStreamer.cc:234
#define EPS
T sqrt(T t)
Definition: SSEVec.h:48
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 236 of file SingleParticleEvent.cc.

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

238  {
239  //determine vertex of muon at Surface (+PlugWidth)
240  double dy = Vy_in - (SurfaceOfEarth+PlugWidth);
241  Vy_up = Vy_in - dy;
242  Vx_up = Vx_in - dy*Px_in/Py_in;
243  Vz_up = Vz_in - dy*Pz_in/Py_in;
244  if (Debug) std::cout << "Vx_up=" << Vx_up << " Vy_up="
245  << Vy_up << " Vz_up=" << Vz_up << std::endl;
246 }
const double PlugWidth
const double SurfaceOfEarth
tuple cout
Definition: gather_cfg.py:121
const bool Debug
double SingleParticleEvent::t0 ( )

Definition at line 302 of file SingleParticleEvent.cc.

References T0.

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

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

Definition at line 281 of file SingleParticleEvent.cc.

References T0_in.

281 { return T0_in; }
double SingleParticleEvent::theta ( void  )

Definition at line 312 of file SingleParticleEvent.cc.

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

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

312  {
313  return atan2(sqrt(Px*Px+Pz*Pz),-Py);
314 }
T sqrt(T t)
Definition: SSEVec.h:48
void SingleParticleEvent::update ( double  stepSize)
private

Definition at line 186 of file SingleParticleEvent.cc.

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

Referenced by progressbar.ProgressBar::__next__(), MatrixUtil.Matrix::__setitem__(), MatrixUtil.Steps::__setitem__(), Vispa.Gui.VispaWidget.VispaWidget::autosize(), Vispa.Views.LineDecayView.LineDecayContainer::createObject(), Vispa.Views.LineDecayView.LineDecayContainer::deselectAllObjects(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::deselectAllWidgets(), Vispa.Gui.VispaWidget.VispaWidget::enableAutosizing(), progressbar.ProgressBar::finish(), Vispa.Gui.MenuWidget.MenuWidget::leaveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseMoveEvent(), Vispa.Gui.MenuWidget.MenuWidget::mouseMoveEvent(), Vispa.Views.LineDecayView.LineDecayContainer::mouseMoveEvent(), Vispa.Gui.VispaWidgetOwner.VispaWidgetOwner::mouseReleaseEvent(), Vispa.Views.LineDecayView.LineDecayContainer::objectMoved(), MatrixUtil.Steps::overwrite(), propagate(), Vispa.Views.LineDecayView.LineDecayContainer::removeObject(), Vispa.Gui.ConnectableWidget.ConnectableWidget::removePorts(), Vispa.Gui.FindDialog.FindDialog::reset(), Vispa.Gui.PortConnection.PointToPointConnection::select(), Vispa.Gui.VispaWidget.VispaWidget::select(), Vispa.Views.LineDecayView.LineDecayContainer::select(), Vispa.Gui.VispaWidget.VispaWidget::setText(), Vispa.Gui.VispaWidget.VispaWidget::setTitle(), Vispa.Gui.ZoomableWidget.ZoomableWidget::setZoom(), Vispa.Views.LineDecayView.LineDecayContainer::setZoom(), and Vispa.Gui.PortConnection.PointToPointConnection::updateConnection().

186  {
187  Vx += stepSize*dX;
188  Vy += stepSize*dY;
189  Vz += stepSize*dZ;
190 }
void SingleParticleEvent::updateTmp ( double  stepSize)
private

Definition at line 192 of file SingleParticleEvent.cc.

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

Referenced by propagate().

192  {
193  tmpVx += stepSize*dX;
194  tmpVy += stepSize*dY;
195  tmpVz += stepSize*dZ;
196 }
double SingleParticleEvent::vx ( )
double SingleParticleEvent::vx_in ( )

Definition at line 275 of file SingleParticleEvent.cc.

References Vx_in.

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

Definition at line 277 of file SingleParticleEvent.cc.

References Vy_in.

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

Definition at line 279 of file SingleParticleEvent.cc.

References Vz_in.

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

Definition at line 304 of file SingleParticleEvent.cc.

References waterEquivalents.

304 { return waterEquivalents; }

Member Data Documentation

double SingleParticleEvent::ClayWidth

Definition at line 111 of file SingleParticleEvent.h.

Referenced by propagate(), and SingleParticleEvent().

double SingleParticleEvent::dX
private

Definition at line 46 of file SingleParticleEvent.h.

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

double SingleParticleEvent::dY
private

Definition at line 46 of file SingleParticleEvent.h.

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

double SingleParticleEvent::dZ
private

Definition at line 46 of file SingleParticleEvent.h.

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

double SingleParticleEvent::E
private

Definition at line 37 of file SingleParticleEvent.h.

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

double SingleParticleEvent::E_in
private

Definition at line 40 of file SingleParticleEvent.h.

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

double SingleParticleEvent::E_ug

Definition at line 113 of file SingleParticleEvent.h.

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

bool SingleParticleEvent::HitTarget
private

Definition at line 42 of file SingleParticleEvent.h.

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

int SingleParticleEvent::ID
private

Definition at line 36 of file SingleParticleEvent.h.

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

int SingleParticleEvent::ID_in
private

Definition at line 39 of file SingleParticleEvent.h.

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

double SingleParticleEvent::M
private

Definition at line 37 of file SingleParticleEvent.h.

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

double SingleParticleEvent::M_in
private

Definition at line 40 of file SingleParticleEvent.h.

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

bool SingleParticleEvent::MTCC
private

Definition at line 43 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 40 of file SingleParticleEvent.h.

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

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

Definition at line 40 of file SingleParticleEvent.h.

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

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

Definition at line 40 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 38 of file SingleParticleEvent.h.

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

double SingleParticleEvent::T0_in
private

Definition at line 41 of file SingleParticleEvent.h.

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

double SingleParticleEvent::tmpVx
private

Definition at line 47 of file SingleParticleEvent.h.

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

double SingleParticleEvent::tmpVy
private

Definition at line 47 of file SingleParticleEvent.h.

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

double SingleParticleEvent::tmpVz
private

Definition at line 47 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vx
private

Definition at line 38 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vx_in
private

Definition at line 41 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vy
private

Definition at line 38 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vy_in
private

Definition at line 41 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vz
private

Definition at line 38 of file SingleParticleEvent.h.

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

double SingleParticleEvent::Vz_in
private

Definition at line 41 of file SingleParticleEvent.h.

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

double SingleParticleEvent::waterEquivalents

Definition at line 112 of file SingleParticleEvent.h.

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