Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
Loading...
Searching...
No Matches
G4QParentCluster.hh
Go to the documentation of this file.
1//
2// ********************************************************************
3// * License and Disclaimer *
4// * *
5// * The Geant4 software is copyright of the Copyright Holders of *
6// * the Geant4 Collaboration. It is provided under the terms and *
7// * conditions of the Geant4 Software License, included in the file *
8// * LICENSE and available at http://cern.ch/geant4/license . These *
9// * include a list of copyright holders. *
10// * *
11// * Neither the authors of this software system, nor their employing *
12// * institutes,nor the agencies providing financial support for this *
13// * work make any representation or warranty, express or implied, *
14// * regarding this software system or assume any liability for its *
15// * use. Please see the license in the file LICENSE and URL above *
16// * for the full disclaimer and the limitation of liability. *
17// * *
18// * This code implementation is the result of the scientific and *
19// * technical work of the GEANT4 collaboration. *
20// * By using, copying, modifying or distributing the software (or *
21// * any work based on the software) you agree to acknowledge its *
22// * use in resulting scientific publications, and indicate your *
23// * acceptance of all terms of the Geant4 Software license. *
24// ********************************************************************
25//
26//
27// $Id$
28//
29// ---------------- G4QParentCluster ----------------
30// by Mikhail Kossov, Sept 1999.
31// class header for a Parent nuclear cluster in the CHIPS Model
32// -------------------------------------------------------------------
33// Short description: The parent cluster is the cluster, which can be
34// used for the nuclear fragment production. Different clusters csn be
35// used as the parent cluser for the particular G4QCandidate (nuclear
36// fragment), e.g. t and He3 for the t-fragment production. So the
37// G4QParentClusterVector is needed.
38// -------------------------------------------------------------------
39
40#ifndef G4QParentCluster_h
41#define G4QParentCluster_h 1
42
43#include <iostream>
44#include "globals.hh"
45#include "G4QContent.hh"
46
48{
49public:
50 // Constructors
51 G4QParentCluster(G4int PDGCode = 0); // Construction by PDGCode
52 G4QParentCluster(G4int PDGCode, G4double prob); // Construction by PDGCode & Probab
53 G4QParentCluster(const G4QParentCluster& rhs); // Copy Constructor by value
54 G4QParentCluster(G4QParentCluster* rhs); // Copy Constructor by pointer
55
56 ~G4QParentCluster(); // Public Destructor
57
58 // Operators
60 G4bool operator==(const G4QParentCluster& rhs) const;
61 G4bool operator!=(const G4QParentCluster& rhs) const;
62
63 // Selectors
64 G4int GetPDGCode() const; // Get PDG code of the Parent Cluster
65 G4double GetProbability() const; // Get a probability of hadronization on it
66 G4int GetNQPart2() const; // Get n-2 for the fragment
67 G4QContent GetTransQC() const; // Get QuarkCont of a Pseudo Exchange Meson
68 G4double GetLow() const; // Get a low limit for randomization
69 G4double GetHigh() const; // Get a high limit for randomization
70 G4double GetEBMass() const; // Get a Nuclear Bounded mass of the parent cluster
71 G4double GetEBind() const; // Get Environment BindingEnergy for the parentCluster
72 G4double GetNBMass() const; // Get Environmental BoundedMass of the parent Cluster
73 G4double GetNBind() const; // Get TotalNucleusBindingEnergy for the parentCluster
74
75 // Modifiers
76 void SetPDGCode(G4int newPDGCode); // Set PDG code of the Parent Cluster
77 void SetProbability(G4double probab); // Set probab. to hadronize on this cluster
78 void SetNQPart2(G4int nm2); // Get n-2 for the fragment
79 void SetTransQC(G4QContent newTrans); // Set QuarkCont of a Pseudo Exchange Meson
80 void SetLow(G4double loLim); // Set a low limit for hadronization
81 void SetHigh(G4double hiLim); // Set a high limit for hadronization
82 void SetEBMass(G4double bMass); // Set a bounded mass of the parent cluster in E
83 void SetEBind(G4double bEn); // Set binding energy of the parent cluster in E
84 void SetNBMass(G4double bMass); // Set a bounded mass of the parent cluster in N
85 void SetNBind(G4double bEn); // Set binding energy of the parent cluster in N
86
87 // General
88
89private:
90 // Encapsulated functions
91
92private:
93 // the Body
94 G4int thePDGCode;
95 G4double theProbability;
96 // Secondary
97 G4int nQPart2;
98 G4QContent transQC; // Quark Content of the pseudo exchange meson
99 G4double lowLimit;
100 G4double highLimit;
101 G4double theEnvBoundedMass;
102 G4double theEnvBindingEnergy;
103 G4double theNucBoundedMass;
104 G4double theNucBindingEnergy;
105};
106
107// Not member operators
108std::ostream& operator<<(std::ostream& lhs, G4QParentCluster& rhs);
109std::ostream& operator<<(std::ostream& lhs, const G4QParentCluster& rhs);
110
112 {return this==&rhs;}
114 {return this!=&rhs;}
115
116inline G4int G4QParentCluster::GetPDGCode() const {return thePDGCode;}
117inline G4double G4QParentCluster::GetProbability() const {return theProbability;}
118inline G4int G4QParentCluster::GetNQPart2() const {return nQPart2;}
119inline G4QContent G4QParentCluster::GetTransQC() const {return transQC;}
120inline G4double G4QParentCluster::GetHigh() const {return highLimit;}
121inline G4double G4QParentCluster::GetLow() const {return lowLimit;}
122inline G4double G4QParentCluster::GetEBMass() const {return theEnvBoundedMass;}
123inline G4double G4QParentCluster::GetEBind() const {return theEnvBindingEnergy;}
124inline G4double G4QParentCluster::GetNBMass() const {return theNucBoundedMass;}
125inline G4double G4QParentCluster::GetNBind() const {return theNucBindingEnergy;}
126
127inline void G4QParentCluster::SetPDGCode(G4int newPDGCode) {thePDGCode = newPDGCode;}
128inline void G4QParentCluster::SetProbability(G4double prob) {theProbability = prob;}
129inline void G4QParentCluster::SetNQPart2(G4int nm2) {nQPart2 = nm2;}
130inline void G4QParentCluster::SetTransQC(G4QContent newTrans) {transQC = newTrans;}
131inline void G4QParentCluster::SetHigh(G4double hiLim) {highLimit = hiLim;}
132inline void G4QParentCluster::SetLow(G4double loLim) {lowLimit = loLim;}
133inline void G4QParentCluster::SetEBMass(G4double bMass) {theEnvBoundedMass = bMass;}
134inline void G4QParentCluster::SetNBMass(G4double bMass) {theNucBoundedMass = bMass;}
135inline void G4QParentCluster::SetEBind(G4double bEn) {theEnvBindingEnergy= bEn;}
136inline void G4QParentCluster::SetNBind(G4double bEn) {theNucBindingEnergy= bEn;}
137
138#endif
139
140
141
std::ostream & operator<<(std::ostream &lhs, G4QParentCluster &rhs)
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4bool operator!=(const G4QParentCluster &rhs) const
void SetNBind(G4double bEn)
G4double GetLow() const
const G4QParentCluster & operator=(const G4QParentCluster &rhs)
void SetProbability(G4double probab)
void SetLow(G4double loLim)
G4QContent GetTransQC() const
G4double GetNBind() const
G4double GetNBMass() const
G4double GetEBind() const
void SetPDGCode(G4int newPDGCode)
G4double GetProbability() const
void SetTransQC(G4QContent newTrans)
void SetEBind(G4double bEn)
G4int GetPDGCode() const
G4bool operator==(const G4QParentCluster &rhs) const
G4int GetNQPart2() const
void SetNQPart2(G4int nm2)
void SetEBMass(G4double bMass)
G4double GetHigh() const
void SetHigh(G4double hiLim)
void SetNBMass(G4double bMass)
G4double GetEBMass() const