Geant4 9.6.0
Toolkit for the simulation of the passage of particles through matter
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros
G4QDecayChan.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// ---------------- G4QDecayChan ----------------
30// by Mikhail Kossov, Sept 1999.
31// class header for Decay Channel definition in CHIPS Model
32// ------------------------------------------------------------
33// Short description: In the CHIPS World the particles (G4QParticle)
34// are defined. For unstable particles there is a G4QDecayChannelVector
35// which describes different channels of decay for the particular
36// particle. So the G4QDecayChannel class is the class for the description
37// of such a decay channel in two or three particles (the secondaries can
38// be unstable too and have firther decay).
39// -------------------------------------------------------------------
40
41#ifndef G4QDecayChan_h
42#define G4QDecayChan_h 1
43
44#include <iostream>
45#include "globals.hh"
46#include "G4QPDGCodeVector.hh"
47
49{
50public:
51 // Constructors
52 G4QDecayChan(); // Default Constructor
53 //G4QDecayChan(G4QPDGCodeVector secHadr, G4double probLimit = 1.); // General Constructor
54 G4QDecayChan(G4double pLev, G4int PDG1, G4int PDG2, G4int PDG3=0); // DetailedConstructor
55 G4QDecayChan(const G4QDecayChan& right); // Copy ByValueConstructor
56 G4QDecayChan(G4QDecayChan* right); // Copy ByPointerConstructor
57
58 ~G4QDecayChan(); // Public Destructor
59
60 // Operators
61 const G4QDecayChan& operator=(const G4QDecayChan& right);
62 G4bool operator==(const G4QDecayChan& rhs) const;
63 G4bool operator!=(const G4QDecayChan& rhs) const;
64
65 // Selectors
66 G4double GetDecayChanLimit() const; // Get a Decay Channel Probability Limit
67 G4double GetMinMass() const; // Get a Minimum Mass for the Decay Channel
68 G4QPDGCodeVector GetVecOfSecHadrons(); // Get a Vector of secondary PDG-particles
69
70 // Modifiers
71 void SetDecayChanLimit(G4double newDecChanLim);// Set a Decay Channel Probability Limit
72 void SetMinMass(G4double newMinMass); // Set a Minimum Mass for the DecayChannel
73 void SetVecOfSecHadrons(G4QPDGCodeVector hadV);// Set a Vector of secondary PDG-particles
74
75 //private:
76 // Encapsulated functions
77
78private:
79 // the Body
80 G4double aDecayChanLimit;
81 G4double theMinMass;
82 G4QPDGCodeVector aVecOfSecHadrons;
83};
84
85// Not member operators
86std::ostream& operator<<(std::ostream& lhs, G4QDecayChan& rhs);
87//----------------------------------------------------------------------------------------
88
89inline G4bool G4QDecayChan::operator==(const G4QDecayChan& rhs) const {return this==&rhs;}
90inline G4bool G4QDecayChan::operator!=(const G4QDecayChan& rhs) const {return this!=&rhs;}
91
92inline G4double G4QDecayChan::GetDecayChanLimit() const {return aDecayChanLimit;}
93inline G4double G4QDecayChan::GetMinMass() const {return theMinMass;}
94inline G4QPDGCodeVector G4QDecayChan::GetVecOfSecHadrons() {return aVecOfSecHadrons;}
95
96inline void G4QDecayChan::SetDecayChanLimit(G4double DCL) {aDecayChanLimit=DCL;}
97inline void G4QDecayChan::SetMinMass(G4double minMass) {theMinMass=minMass;}
98inline void G4QDecayChan::SetVecOfSecHadrons(G4QPDGCodeVector VSH) {aVecOfSecHadrons=VSH;}
99
100#endif
101
102
103
std::ostream & operator<<(std::ostream &lhs, G4QDecayChan &rhs)
std::vector< G4QPDGCode * > G4QPDGCodeVector
double G4double
Definition: G4Types.hh:64
int G4int
Definition: G4Types.hh:66
bool G4bool
Definition: G4Types.hh:67
G4bool operator==(const G4QDecayChan &rhs) const
Definition: G4QDecayChan.hh:89
const G4QDecayChan & operator=(const G4QDecayChan &right)
void SetDecayChanLimit(G4double newDecChanLim)
Definition: G4QDecayChan.hh:96
G4QPDGCodeVector GetVecOfSecHadrons()
Definition: G4QDecayChan.hh:94
void SetVecOfSecHadrons(G4QPDGCodeVector hadV)
Definition: G4QDecayChan.hh:98
G4double GetDecayChanLimit() const
Definition: G4QDecayChan.hh:92
G4double GetMinMass() const
Definition: G4QDecayChan.hh:93
G4bool operator!=(const G4QDecayChan &rhs) const
Definition: G4QDecayChan.hh:90
void SetMinMass(G4double newMinMass)
Definition: G4QDecayChan.hh:97