Skip to content
Snippets Groups Projects
Commit 22bccbd5 authored by Pierre Morfouace's avatar Pierre Morfouace
Browse files

Adding kinetic energy to InteractionScorers

parent ab052b7c
No related branches found
No related tags found
No related merge requests found
......@@ -54,6 +54,7 @@ void TInteractionCoordinates::Clear(){
fDetected_Mass.clear();
fDetected_Charge.clear();
fDetected_Brho.clear();
fDetected_KineticEnergy.clear();
}
......
......@@ -53,6 +53,7 @@ class TInteractionCoordinates : public TObject {
vector<double> fDetected_Mass;
vector<int> fDetected_Charge;
vector<double> fDetected_Brho;
vector<double> fDetected_KineticEnergy;
public:
TInteractionCoordinates();
......@@ -88,7 +89,7 @@ class TInteractionCoordinates : public TObject {
void SetInteraction(const int& Index, const double& Energy, const double& Time, const double& PositionX,
const double& PositionY, const double& PositionZ, const double& Theta, const double& Phi,
const std::string& ParticleName, const int& A, const int& Z, const double& Mass,
const int& Charge, const double& Brho) {
const int& Charge, const double& Brho, const double& KineticEnergy) {
fDetected_Index.push_back(Index);
fDetected_Energy.push_back(Energy);
fDetected_Time.push_back(Time);
......@@ -106,6 +107,7 @@ class TInteractionCoordinates : public TObject {
fDetected_Mass.push_back(Mass);
fDetected_Charge.push_back(Charge);
fDetected_Brho.push_back(Brho);
fDetected_KineticEnergy.push_back(KineticEnergy);
}
///////////////////// SETTERS ////////////////////////
......@@ -124,6 +126,7 @@ class TInteractionCoordinates : public TObject {
void SetDetectedMass(const double& Mass) { fDetected_Mass.push_back(Mass); } //!
void SetDetectedCharge(const int& Charge) { fDetected_Charge.push_back(Charge); } //!
void SetDetectedBrho(const double& Brho) { fDetected_Brho.push_back(Brho); } //!
void SetDetectedKineticEnergy(const double& KineticEnergy) { fDetected_KineticEnergy.push_back(KineticEnergy); } //!
///////////////////// GETTERS ////////////////////////
// Number of interactions (multiplicity)
......@@ -147,6 +150,7 @@ class TInteractionCoordinates : public TObject {
double GetMass(const int& i) const { return fDetected_Mass[i]; } //!
int GetCharge(const int& i) const { return fDetected_Charge[i]; } //!
double GetBrho(const int& i) const { return fDetected_Brho[i]; } //!
double GetKineticEnergy(const int& i) const { return fDetected_KineticEnergy[i]; } //!
// Vertex of interaction
vector<double> GetDetected_Position_X() { return fDetected_Position_X; };
......
......@@ -52,6 +52,7 @@ G4bool PS_Interactions::ProcessHits(G4Step* aStep, G4TouchableHistory*){
t_Z = aStep->GetTrack()->GetParticleDefinition()->GetAtomicNumber();
t_Mass = aStep->GetTrack()->GetDynamicParticle()->GetMass();
t_Charge = aStep->GetTrack()->GetDynamicParticle()->GetCharge();
t_KineticEnergy = aStep->GetTrack()->GetDynamicParticle()->GetKineticEnergy();
double KineticEnergy = aStep->GetTrack()->GetDynamicParticle()->GetKineticEnergy();
if (t_Charge > 0) {
t_Brho = sqrt(KineticEnergy * KineticEnergy + 2 * KineticEnergy * t_Mass)
......@@ -71,7 +72,7 @@ G4bool PS_Interactions::ProcessHits(G4Step* aStep, G4TouchableHistory*){
it->Add(t_Energy);
}
else
{ m_DataVector.Set(t_Index,t_Energy,t_Time,t_Position.x(),t_Position.y(),t_Position.z(), /*MOMENT*/ t_Position.theta(),t_Position.phi(), t_ParticleName, t_A, t_Z, t_Mass, t_Charge, t_Brho);
{ m_DataVector.Set(t_Index,t_Energy,t_Time,t_Position.x(),t_Position.y(),t_Position.z(), /*MOMENT*/ t_Position.theta(),t_Position.phi(), t_ParticleName, t_A, t_Z, t_Mass, t_Charge, t_Brho, t_KineticEnergy);
}
return TRUE;
......@@ -95,7 +96,7 @@ void PS_Interactions::EndOfEvent(G4HCofThisEvent*){
m_DataVector[i]->GetPositionX(),m_DataVector[i]->GetPositionY(),m_DataVector[i]->GetPositionZ(),
m_DataVector[i]->GetTheta()/deg,m_DataVector[i]->GetPhi()/deg, m_DataVector[i]->GetParticleName(),
m_DataVector[i]->GetA(), m_DataVector[i]->GetZ(), m_DataVector[i]->GetMass(), m_DataVector[i]->GetCharge(),
m_DataVector[i]->GetBrho());
m_DataVector[i]->GetBrho(),m_DataVector[i]->GetKineticEnergy());
}
}
......
......@@ -48,7 +48,7 @@ namespace InteractionScorers {
InteractionData(const unsigned int& Index ,const double& Energy, const double& Time ,
const double& PositionX, const double& PositionY, const double& PositionZ,
const double& Theta, const double& Phi, const std::string &ParticleName,
const int &A, const int &Z, const double &Mass, const int &Charge, const double &Brho){
const int &A, const int &Z, const double &Mass, const int &Charge, const double &Brho, const double &KineticEnergy){
m_Index = Index;
m_Energy = Energy;
m_Time = Time;
......@@ -63,7 +63,7 @@ namespace InteractionScorers {
m_Mass = Mass;
m_Charge = Charge;
m_Brho = Brho;
m_KineticEnergy = KineticEnergy;
}
~InteractionData(){};
......@@ -71,6 +71,7 @@ namespace InteractionScorers {
private:
unsigned int m_Index;
double m_Energy;
double m_KineticEnergy;
double m_Time;
double m_PositionX;
double m_PositionY;
......@@ -87,6 +88,7 @@ namespace InteractionScorers {
public:
unsigned int GetIndex() const{return m_Index;};
double GetEnergy() const{return m_Energy;};
double GetKineticEnergy() const{return m_KineticEnergy;};
double GetTime() const{return m_Time;};
double GetPositionX() const{return m_PositionX;};
double GetPositionY() const{return m_PositionY;};
......@@ -119,10 +121,11 @@ namespace InteractionScorers {
void Set(const unsigned int& Index, const double& Energy, const double& Time ,
const double& PositionX, const double& PositionY, const double& PositionZ,
const double& Theta, const double& Phi, const std::string &ParticleName,
const int &A, const int &Z, const double &Mass, const int &Charge, const double &Brho){
const int &A, const int &Z, const double &Mass, const int &Charge, const double &Brho, const double &KineticEnergy){
m_Index = Index;
m_Energy = Energy;
m_KineticEnergy = KineticEnergy;
m_Time = Time;
m_PositionX = PositionX;;
m_PositionY = PositionY;
......@@ -170,8 +173,8 @@ namespace InteractionScorers {
void Set(const unsigned int& index,const double& Energy, const double& Time ,
const double& PositionX, const double& PositionY, const double& PositionZ,
const double& Theta, const double& Phi, const std::string &ParticleName,
const int &A, const int &Z, const double &Mass, const int &Charge, const double &Brho){
m_Data.push_back(InteractionData(index,Energy,Time,PositionX,PositionY,PositionZ,Theta,Phi,ParticleName, A, Z, Mass, Charge, Brho));
const int &A, const int &Z, const double &Mass, const int &Charge, const double &Brho, const double &KineticEnergy){
m_Data.push_back(InteractionData(index,Energy,Time,PositionX,PositionY,PositionZ,Theta,Phi,ParticleName, A, Z, Mass, Charge, Brho, KineticEnergy));
};
InteractionData* operator[](const unsigned int& i){return &m_Data[i];};
......@@ -203,6 +206,7 @@ namespace InteractionScorers {
TInteractionCoordinates* m_InterractionCoordinates;
unsigned int t_Index;
double t_Energy;
double t_KineticEnergy;
double t_Time;
G4ThreeVector t_Position;
std::string t_ParticleName;
......@@ -215,6 +219,7 @@ namespace InteractionScorers {
public:
inline unsigned int GetMult() {return m_DataVector.size();};
inline double GetEnergy(const unsigned int& i) {return m_DataVector[i]->GetEnergy();};
inline double GetKineticEnergy(const unsigned int& i) {return m_DataVector[i]->GetKineticEnergy();};
inline double GetBrho(const unsigned int& i) {return m_DataVector[i]->GetBrho();};
inline double GetPositionX(const unsigned int& i) {return m_DataVector[i]->GetPositionX();};
inline double GetPositionY(const unsigned int& i) {return m_DataVector[i]->GetPositionY();};
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment