ATLAS Offline Software
Public Member Functions | Private Attributes | List of all members
MarsParticle Class Reference

A class to describe a MARS particle read from an input ASCII file. More...

#include <MarsParticle.h>

Collaboration diagram for MarsParticle:

Public Member Functions

 MarsParticle ()
 
int read (std::vector< std::string > *eventAsStringVector)
 A function to read the values from a single row definition and fill the data members. More...
 
void print (bool beamGas)
 A function to print the contents of this particle. More...
 
long eventNumber () const
 A function to return the event number of this particle. More...
 
int particleId () const
 A function to return the particle identify of this particle. More...
 
double kineticEnergy () const
 A function to return the relativistic kinetic energy of this particle. More...
 
double weight () const
 A function to return the weight associated with this particle in the input ASCII file. More...
 
HepMC::FourVector positionAtScoringPlane () const
 A function to the position of this particle with respect to the scoring plane. More...
 
HepMC::FourVector directionalCosines () const
 A function to return the directional cosines of this particle. More...
 
double timeOfFlight () const
 A function to return the time of flight for this particle. More...
 
double primaryProtonZ () const
 A function to return the primary proton Z position for this particle. More...
 
MarsShowerPrimary showerPrimary () const
 A function to return the shower primary infomation for this particle. More...
 
MarsBeamGasInteraction beamGasInteraction () const
 A function to return the beam gas interaction information for this particle. More...
 
int pdgId ()
 A function to return the PDG id for this particle. More...
 

Private Attributes

long m_eventNumber
 
int m_particleId
 
double m_kineticEnergy
 
double m_weight
 
HepMC::FourVector m_positionAtScoringPlane
 
HepMC::FourVector m_directionalCosines
 
double m_timeOfFlight
 
double m_primaryProtonZ
 
MarsShowerPrimary m_showerPrimary
 
MarsBeamGasInteraction m_beamGasInteraction
 

Detailed Description

A class to describe a MARS particle read from an input ASCII file.

Author
W. H. Bell W.Bel.nosp@m.l@ce.nosp@m.rn.ch

Definition at line 55 of file MarsParticle.h.

Constructor & Destructor Documentation

◆ MarsParticle()

MarsParticle::MarsParticle ( )

Definition at line 23 of file MarsParticle.cxx.

23  : m_eventNumber(0),
24  m_particleId(0),
25  m_kineticEnergy(0.),
26  m_weight(0.),
29  m_timeOfFlight(0.),
30  m_primaryProtonZ(0.),
33 }

Member Function Documentation

◆ beamGasInteraction()

MarsBeamGasInteraction MarsParticle::beamGasInteraction ( ) const
inline

A function to return the beam gas interaction information for this particle.

Definition at line 103 of file MarsParticle.h.

103 { return m_beamGasInteraction; }

◆ directionalCosines()

HepMC::FourVector MarsParticle::directionalCosines ( ) const
inline

A function to return the directional cosines of this particle.

Definition at line 88 of file MarsParticle.h.

88 { return m_directionalCosines; }

◆ eventNumber()

long MarsParticle::eventNumber ( ) const
inline

A function to return the event number of this particle.

Definition at line 69 of file MarsParticle.h.

69 { return m_eventNumber; }

◆ kineticEnergy()

double MarsParticle::kineticEnergy ( ) const
inline

A function to return the relativistic kinetic energy of this particle.

Definition at line 76 of file MarsParticle.h.

76 { return m_kineticEnergy; }

◆ particleId()

int MarsParticle::particleId ( ) const
inline

A function to return the particle identify of this particle.

Definition at line 72 of file MarsParticle.h.

72 { return m_particleId; }

◆ pdgId()

int MarsParticle::pdgId ( )

A function to return the PDG id for this particle.

Definition at line 115 of file MarsParticle.cxx.

115  {
116  int pdgId = 0;
117 
118  switch (m_particleId) {
119  case 1 : pdgId = 2212; break;
120  case 2 : pdgId = 2112; break;
121  case 3 : pdgId = 211; break;
122  case 4 : pdgId = -211; break;
123  case 5 : pdgId = 321; break;
124  case 6 : pdgId = -321; break;
125  case 7 : pdgId = -13; break;
126  case 8 : pdgId = 13; break;
127  case 9 : pdgId = 22; break;
128  case 10 : pdgId = 11; break;
129  case 11 : pdgId = -11; break;
130  case 12 : pdgId = -2212; break;
131  case 13 : pdgId = 111; break;
132  case 14 : pdgId = 1000010020; break; // Deuterium
133  case 15 : pdgId = 1000010030; break; // Tritium
134  case 16 : pdgId = 1000020030; break; // He3
135  case 17 : pdgId = 1000020040; break; // Alpha-(He4)
136  case 18 : pdgId = 14; break;
137  case 19 : pdgId = -14; break;
138  case 20 : pdgId = 12; break;
139  case 21 : pdgId = -12; break;
140  case 22 : pdgId = 130; break;
141  case 23 : pdgId = 310; break;
142  case 24 : pdgId = 311; break;
143  case 25 : pdgId = -311; break;
144  case 26 : pdgId = 3122; break;
145  case 27 : pdgId = -3122; break;
146  case 28 : pdgId = 3222; break;
147  case 29 : pdgId = 3212; break;
148  case 30 : pdgId = 3112; break;
149  case 31 : pdgId = -2112; break;
150  case 32 : pdgId = 3322; break;
151  case 33 : pdgId = 3312; break;
152  case 34 : pdgId = 3334; break;
153  case 35 : pdgId = -3112; break;
154  case 36 : pdgId = -3212; break;
155  case 37 : pdgId = -3222; break;
156  case 38 : pdgId = -3322; break;
157  case 39 : pdgId = -3312; break;
158  case 40 : pdgId = -3334; break;
159  default : pdgId = 0; break;
160  }
161 
162  return pdgId;
163 }

◆ positionAtScoringPlane()

HepMC::FourVector MarsParticle::positionAtScoringPlane ( ) const
inline

A function to the position of this particle with respect to the scoring plane.

Definition at line 84 of file MarsParticle.h.

84 { return m_positionAtScoringPlane; }

◆ primaryProtonZ()

double MarsParticle::primaryProtonZ ( ) const
inline

A function to return the primary proton Z position for this particle.

Definition at line 95 of file MarsParticle.h.

95 { return m_primaryProtonZ; }

◆ print()

void MarsParticle::print ( bool  beamGas)

A function to print the contents of this particle.

If the beamGas value is true then the beam gas information is printed.

Definition at line 80 of file MarsParticle.cxx.

80  {
81  std::cout.fill(' ');
82  std::cout.width(11); std::cout << m_eventNumber << " ";
83  std::cout.width(6); std::cout << m_particleId << " ";
84  std::cout.width(12); std::cout.precision(5); std::cout << std::scientific << m_kineticEnergy << " ";
85  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_weight << " ";
86  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_positionAtScoringPlane.x() << " ";
87  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_positionAtScoringPlane.y() << " ";
88  std::cout.width(14); std::cout.precision(7); std::cout << std::scientific << m_directionalCosines.x() << " ";
89  std::cout.width(14); std::cout.precision(7); std::cout << std::scientific << m_directionalCosines.y() << " ";
90  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_timeOfFlight << " ";
91  std::cout.width(12); std::cout.precision(5); std::cout << std::scientific << m_primaryProtonZ << " ";
92  std::cout.width(12); std::cout.precision(5); std::cout << std::scientific << m_showerPrimary.position.z() << " ";
93  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_showerPrimary.position.x() << " ";
94  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_showerPrimary.position.y() << " ";
95  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_showerPrimary.kineticEnergy << " ";
96  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_showerPrimary.weight << " ";
97  std::cout.fill(' ');
98  std::cout.width(3); std::cout << m_showerPrimary.particleId << " ";
99  std::cout.width(3); std::cout << m_showerPrimary.processId;
100 
101  if(beamGas) {
102  std::cout << " ";
103  std::cout.width(3); std::cout << m_beamGasInteraction.nevve << " ";
104  std::cout.width(3); std::cout << m_beamGasInteraction.nucleusType << " ";
105  std::cout.width(11); std::cout.precision(4); std::cout << std::scientific << m_beamGasInteraction.timeOfFlight;
106  }
107 
108  std::cout << std::endl;
109 
110  std::cout.precision(6);
111 }

◆ read()

int MarsParticle::read ( std::vector< std::string > *  eventAsStringVector)

A function to read the values from a single row definition and fill the data members.

Definition at line 37 of file MarsParticle.cxx.

37  {
38  if(eventAsStringVector->size() != 17 &&
39  eventAsStringVector->size() != 20) {
40  std::cerr << "There are only " << eventAsStringVector->size() << " data words. This event will be null." << std::endl;
41  return 1;
42  }
43 
44  double doubleValue;
45  std::vector<std::string>::iterator itr = eventAsStringVector->begin();
46  std::vector<std::string>::iterator itr_end = eventAsStringVector->end();
47  int wordNumber = 0;
48  for(;itr!=itr_end;++itr,++wordNumber) {
49  std::istringstream inStr((*itr));
50  switch (wordNumber) {
51  case 0 : inStr >> m_eventNumber; break;
52  case 1 : inStr >> m_particleId; break;
53  case 2 : inStr >> m_kineticEnergy; break;
54  case 3 : inStr >> m_weight; break;
55  case 4 : inStr >> doubleValue; m_positionAtScoringPlane.setX(doubleValue); break;
56  case 5 : inStr >> doubleValue; m_positionAtScoringPlane.setY(doubleValue); break;
57  case 6 : inStr >> doubleValue; m_directionalCosines.setX(doubleValue); break;
58  case 7 : inStr >> doubleValue; m_directionalCosines.setY(doubleValue); break;
59  case 8 : inStr >> m_timeOfFlight; break;
60  case 9 : inStr >> m_primaryProtonZ; break;
61  case 10 : inStr >> doubleValue; m_showerPrimary.position.setZ(doubleValue); break;
62  case 11 : inStr >> doubleValue; m_showerPrimary.position.setX(doubleValue); break;
63  case 12 : inStr >> doubleValue; m_showerPrimary.position.setY(doubleValue); break;
64  case 13 : inStr >> m_showerPrimary.kineticEnergy; break;
65  case 14 : inStr >> m_showerPrimary.weight; break;
66  case 15 : inStr >> m_showerPrimary.particleId; break;
67  case 16 : inStr >> m_showerPrimary.processId; break;
68  case 17 : inStr >> m_beamGasInteraction.nevve; break;
69  case 18 : inStr >> m_beamGasInteraction.nucleusType; break;
70  case 19 : inStr >> m_beamGasInteraction.timeOfFlight; break;
71  default : break;
72  }
73  }
74 
75  return 0;
76 }

◆ showerPrimary()

MarsShowerPrimary MarsParticle::showerPrimary ( ) const
inline

A function to return the shower primary infomation for this particle.

Definition at line 99 of file MarsParticle.h.

99 { return m_showerPrimary; }

◆ timeOfFlight()

double MarsParticle::timeOfFlight ( ) const
inline

A function to return the time of flight for this particle.

Definition at line 91 of file MarsParticle.h.

91 { return m_timeOfFlight; }

◆ weight()

double MarsParticle::weight ( ) const
inline

A function to return the weight associated with this particle in the input ASCII file.

Definition at line 80 of file MarsParticle.h.

80 { return m_weight; }

Member Data Documentation

◆ m_beamGasInteraction

MarsBeamGasInteraction MarsParticle::m_beamGasInteraction
private

Definition at line 118 of file MarsParticle.h.

◆ m_directionalCosines

HepMC::FourVector MarsParticle::m_directionalCosines
private

Definition at line 114 of file MarsParticle.h.

◆ m_eventNumber

long MarsParticle::m_eventNumber
private

Definition at line 109 of file MarsParticle.h.

◆ m_kineticEnergy

double MarsParticle::m_kineticEnergy
private

Definition at line 111 of file MarsParticle.h.

◆ m_particleId

int MarsParticle::m_particleId
private

Definition at line 110 of file MarsParticle.h.

◆ m_positionAtScoringPlane

HepMC::FourVector MarsParticle::m_positionAtScoringPlane
private

Definition at line 113 of file MarsParticle.h.

◆ m_primaryProtonZ

double MarsParticle::m_primaryProtonZ
private

Definition at line 116 of file MarsParticle.h.

◆ m_showerPrimary

MarsShowerPrimary MarsParticle::m_showerPrimary
private

Definition at line 117 of file MarsParticle.h.

◆ m_timeOfFlight

double MarsParticle::m_timeOfFlight
private

Definition at line 115 of file MarsParticle.h.

◆ m_weight

double MarsParticle::m_weight
private

Definition at line 112 of file MarsParticle.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
MarsShowerPrimary::particleId
int particleId
IORIG.
Definition: MarsParticle.h:23
MarsBeamGasInteraction::timeOfFlight
double timeOfFlight
ZBGASHIT.
Definition: MarsParticle.h:44
MarsParticle::m_directionalCosines
HepMC::FourVector m_directionalCosines
Definition: MarsParticle.h:114
MarsParticle::m_timeOfFlight
double m_timeOfFlight
Definition: MarsParticle.h:115
MarsParticle::pdgId
int pdgId()
A function to return the PDG id for this particle.
Definition: MarsParticle.cxx:115
MarsShowerPrimary::position
HepMC::FourVector position
XORG, YORG, ZORG , T.
Definition: MarsParticle.h:26
MarsShowerPrimary::processId
int processId
KORIG.
Definition: MarsParticle.h:24
MarsShowerPrimary::kineticEnergy
double kineticEnergy
EORIG.
Definition: MarsParticle.h:27
MarsShowerPrimary::weight
double weight
WORIG.
Definition: MarsParticle.h:25
MarsBeamGasInteraction::nevve
int nevve
NEVVE.
Definition: MarsParticle.h:43
MarsParticle::m_primaryProtonZ
double m_primaryProtonZ
Definition: MarsParticle.h:116
MarsParticle::m_eventNumber
long m_eventNumber
Definition: MarsParticle.h:109
MarsParticle::m_beamGasInteraction
MarsBeamGasInteraction m_beamGasInteraction
Definition: MarsParticle.h:118
MarsParticle::m_positionAtScoringPlane
HepMC::FourVector m_positionAtScoringPlane
Definition: MarsParticle.h:113
MarsParticle::m_kineticEnergy
double m_kineticEnergy
Definition: MarsParticle.h:111
MarsParticle::m_showerPrimary
MarsShowerPrimary m_showerPrimary
Definition: MarsParticle.h:117
python.CaloScaleNoiseConfig.default
default
Definition: CaloScaleNoiseConfig.py:79
MarsParticle::m_weight
double m_weight
Definition: MarsParticle.h:112
MarsBeamGasInteraction::nucleusType
int nucleusType
INUC.
Definition: MarsParticle.h:42
MarsParticle::m_particleId
int m_particleId
Definition: MarsParticle.h:110