G4QParentCluster.hh

Go to the documentation of this file.
00001 //
00002 // ********************************************************************
00003 // * License and Disclaimer                                           *
00004 // *                                                                  *
00005 // * The  Geant4 software  is  copyright of the Copyright Holders  of *
00006 // * the Geant4 Collaboration.  It is provided  under  the terms  and *
00007 // * conditions of the Geant4 Software License,  included in the file *
00008 // * LICENSE and available at  http://cern.ch/geant4/license .  These *
00009 // * include a list of copyright holders.                             *
00010 // *                                                                  *
00011 // * Neither the authors of this software system, nor their employing *
00012 // * institutes,nor the agencies providing financial support for this *
00013 // * work  make  any representation or  warranty, express or implied, *
00014 // * regarding  this  software system or assume any liability for its *
00015 // * use.  Please see the license in the file  LICENSE  and URL above *
00016 // * for the full disclaimer and the limitation of liability.         *
00017 // *                                                                  *
00018 // * This  code  implementation is the result of  the  scientific and *
00019 // * technical work of the GEANT4 collaboration.                      *
00020 // * By using,  copying,  modifying or  distributing the software (or *
00021 // * any work based  on the software)  you  agree  to acknowledge its *
00022 // * use  in  resulting  scientific  publications,  and indicate your *
00023 // * acceptance of all terms of the Geant4 Software license.          *
00024 // ********************************************************************
00025 //
00026 //
00027 // $Id$
00028 //
00029 //      ---------------- G4QParentCluster ----------------
00030 //             by Mikhail Kossov, Sept 1999.
00031 //  class header for a Parent nuclear cluster in the CHIPS Model
00032 // -------------------------------------------------------------------
00033 // Short description: The parent cluster is the cluster, which can be
00034 // used for the nuclear fragment production. Different clusters csn be
00035 // used as the parent cluser for the particular G4QCandidate (nuclear
00036 // fragment), e.g. t and He3 for the t-fragment production. So the
00037 // G4QParentClusterVector is needed.
00038 // -------------------------------------------------------------------
00039 
00040 #ifndef G4QParentCluster_h
00041 #define G4QParentCluster_h 1
00042 
00043 #include <iostream>
00044 #include "globals.hh"
00045 #include "G4QContent.hh"
00046 
00047 class G4QParentCluster
00048 {
00049 public:
00050   // Constructors
00051   G4QParentCluster(G4int PDGCode = 0);               // Construction by PDGCode
00052   G4QParentCluster(G4int PDGCode, G4double prob);    // Construction by PDGCode & Probab
00053   G4QParentCluster(const G4QParentCluster& rhs);     // Copy Constructor by value
00054   G4QParentCluster(G4QParentCluster* rhs);           // Copy Constructor by pointer
00055 
00056   ~G4QParentCluster();                               // Public Destructor
00057 
00058   // Operators
00059   const G4QParentCluster& operator=(const G4QParentCluster& rhs);
00060   G4bool                   operator==(const G4QParentCluster& rhs) const;
00061   G4bool                   operator!=(const G4QParentCluster& rhs) const;
00062 
00063   // Selectors
00064   G4int      GetPDGCode()     const; // Get PDG code of the Parent Cluster
00065   G4double   GetProbability() const; // Get a probability of hadronization on it
00066   G4int      GetNQPart2()     const; // Get n-2 for the fragment
00067   G4QContent GetTransQC()     const; // Get QuarkCont of a Pseudo Exchange Meson
00068   G4double   GetLow()         const; // Get a low limit for randomization
00069   G4double   GetHigh()        const; // Get a high limit for randomization
00070   G4double   GetEBMass()      const; // Get a Nuclear Bounded mass of the parent cluster
00071   G4double   GetEBind()       const; // Get Environment BindingEnergy for the parentCluster
00072   G4double   GetNBMass()      const; // Get Environmental BoundedMass of the parent Cluster
00073   G4double   GetNBind()       const; // Get TotalNucleusBindingEnergy for the parentCluster
00074 
00075   // Modifiers
00076   void  SetPDGCode(G4int newPDGCode);    // Set PDG code of the Parent Cluster
00077   void  SetProbability(G4double probab); // Set probab. to hadronize on this cluster
00078   void  SetNQPart2(G4int nm2);           // Get n-2 for the fragment
00079   void  SetTransQC(G4QContent newTrans); // Set QuarkCont of a Pseudo Exchange Meson
00080   void  SetLow(G4double loLim);          // Set a low limit for hadronization
00081   void  SetHigh(G4double hiLim);         // Set a high limit for hadronization
00082   void  SetEBMass(G4double bMass);       // Set a bounded mass of the parent cluster in E
00083   void  SetEBind(G4double bEn);          // Set binding energy of the parent cluster in E
00084   void  SetNBMass(G4double bMass);       // Set a bounded mass of the parent cluster in N
00085   void  SetNBind(G4double bEn);          // Set binding energy of the parent cluster in N
00086 
00087   // General
00088 
00089 private:
00090   // Encapsulated functions
00091 
00092 private:
00093   // the Body
00094   G4int               thePDGCode;
00095   G4double            theProbability;
00096   // Secondary
00097   G4int               nQPart2;
00098   G4QContent          transQC;           // Quark Content of the pseudo exchange meson
00099   G4double            lowLimit;
00100   G4double            highLimit;
00101   G4double            theEnvBoundedMass;
00102   G4double            theEnvBindingEnergy;
00103   G4double            theNucBoundedMass;
00104   G4double            theNucBindingEnergy;
00105 };
00106 
00107 // Not member operators
00108 std::ostream&   operator<<(std::ostream& lhs, G4QParentCluster& rhs);
00109 std::ostream&   operator<<(std::ostream& lhs, const G4QParentCluster& rhs);
00110 
00111 inline G4bool G4QParentCluster::operator==(const G4QParentCluster& rhs) const
00112                                                                        {return this==&rhs;}
00113 inline G4bool G4QParentCluster::operator!=(const G4QParentCluster& rhs) const
00114                                                                        {return this!=&rhs;}
00115  
00116 inline G4int      G4QParentCluster::GetPDGCode()     const {return thePDGCode;}
00117 inline G4double   G4QParentCluster::GetProbability() const {return theProbability;}
00118 inline G4int      G4QParentCluster::GetNQPart2()     const {return nQPart2;}
00119 inline G4QContent G4QParentCluster::GetTransQC()     const {return transQC;}
00120 inline G4double   G4QParentCluster::GetHigh()        const {return highLimit;}
00121 inline G4double   G4QParentCluster::GetLow()         const {return lowLimit;}
00122 inline G4double   G4QParentCluster::GetEBMass()      const {return theEnvBoundedMass;}
00123 inline G4double   G4QParentCluster::GetEBind()       const {return theEnvBindingEnergy;}
00124 inline G4double   G4QParentCluster::GetNBMass()      const {return theNucBoundedMass;}
00125 inline G4double   G4QParentCluster::GetNBind()       const {return theNucBindingEnergy;}
00126 
00127 inline void  G4QParentCluster::SetPDGCode(G4int newPDGCode)    {thePDGCode   = newPDGCode;}
00128 inline void  G4QParentCluster::SetProbability(G4double prob)   {theProbability = prob;}
00129 inline void  G4QParentCluster::SetNQPart2(G4int nm2)           {nQPart2        = nm2;}
00130 inline void  G4QParentCluster::SetTransQC(G4QContent newTrans) {transQC        = newTrans;}
00131 inline void  G4QParentCluster::SetHigh(G4double hiLim)         {highLimit      = hiLim;}
00132 inline void  G4QParentCluster::SetLow(G4double loLim)          {lowLimit       = loLim;}
00133 inline void  G4QParentCluster::SetEBMass(G4double bMass)       {theEnvBoundedMass = bMass;}
00134 inline void  G4QParentCluster::SetNBMass(G4double bMass)       {theNucBoundedMass = bMass;}
00135 inline void  G4QParentCluster::SetEBind(G4double bEn)          {theEnvBindingEnergy= bEn;}
00136 inline void  G4QParentCluster::SetNBind(G4double bEn)          {theNucBindingEnergy= bEn;}
00137 
00138 #endif
00139 
00140 
00141 

Generated on Mon May 27 17:49:38 2013 for Geant4 by  doxygen 1.4.7