source: trunk/source/processes/hadronic/models/chiral_inv_phase_space/body/include/G4QCandidate.hh @ 1340

Last change on this file since 1340 was 1340, checked in by garnier, 14 years ago

update ti head

File size: 8.9 KB
Line 
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: G4QCandidate.hh,v 1.29 2009/02/23 09:49:24 mkossov Exp $
28// GEANT4 tag $Name: hadr-chips-V09-03-08 $
29//
30//      ---------------- G4QCandidate ----------------
31//             by Mikhail Kossov, Sept 1999.
32//  class header for Quasmon initiated Candidates used by the CHIPS Model
33// ----------------------------------------------------------------------
34// Short description: A candidate for hadronization. The candidates
35// (hadrons or nuclear fragments) are competative, each quark of a
36// Quasmon select which candidate to use for hadronization
37// ------------------------------------------------------------------
38
39#ifndef G4QCandidate_h
40#define G4QCandidate_h 1
41
42#include "G4QHadron.hh"
43#include "G4QParentClusterVector.hh"
44#include <algorithm>
45
46class G4QCandidate : public G4QHadron
47{
48public:
49  G4QCandidate();                                            // Default Constructor
50  G4QCandidate(G4int PDGcode);                               // Constructor by PDG Code
51  G4QCandidate(const G4QCandidate& right);                   // Copy Constructor by value
52  G4QCandidate(G4QCandidate* right);                         // Copy Constructor by pointer
53  ~G4QCandidate();                                           // Public Destructor
54  // Overloaded Operators
55  const G4QCandidate& operator=(const G4QCandidate& right);
56  G4bool operator==(const G4QCandidate &right) const;
57  G4bool operator!=(const G4QCandidate &right) const;
58  // Specific Selectors
59  G4QParentCluster* TakeParClust(G4int nPC);// Get pointer to ParentClust from ParClastVect
60  G4int    GetPClustEntries()    const;     // Get a#of Parent Clusters in ParClastVector
61  G4bool   GetPossibility()      const;     // Get possibility(true)/forbid(false) hadr/fr
62  G4bool   GetParPossibility()   const;     // Get possibility(true)/forbidi(false) parent
63  G4double GetKMin()             const;     // Get k-minimal for the candidate
64  G4double GetEBMass()           const;     // Get bound mass in respect to Environment
65  G4double GetNBMass()           const;     // Get bound mass in respect to TotalNucleus
66  G4double GetDenseProbability() const;     // Get dense-probability for the candidate
67  G4double GetPreProbability()   const;     // Get pre-probability for the candidate
68  G4double GetRelProbability()   const;     // Get the relative probility of hadronization
69  G4double GetIntegProbability() const;     // Get integrated probability for randomization
70  G4double GetSecondRelProb()    const;     // Get 2nd relative probility of hadronization
71  G4double GetSecondIntProb()    const;     // Get 2nd integ. probability for randomization
72  // Specific Modifiers
73  void ClearParClustVector();               // Clear theParentClasterVector of theCandidate
74  void FillPClustVec(G4QParentCluster* pCl);// Set pointer to ParentClust in ParClastVector
75  void SetPossibility(G4bool choice);       // Set possibility(true)/forbid(false) hadr/fr
76  void SetParPossibility(G4bool choice);    // Set possibility(true)/forbid(false) parent
77  void SetKMin(G4double kmin);              // Set k-minimal for the candidate
78  void SetDenseProbability(G4double prep);  // Set dense-probability for the candidate
79  void SetPreProbability(G4double prep);    // Set pre-probability for the candidate
80  void SetRelProbability(G4double relP);    // Set the relative probility of hadronization
81  void SetIntegProbability(G4double intP);  // Set integrated probability for randomization
82  void SetSecondRelProb(G4double relP);     // Set 2nd relative probility of hadronization
83  void SetSecondIntProb(G4double intP);     // Set 2nd integrProbability for randomization
84  void SetEBMass(G4double newMass);         // Set mass bounded to Environment
85  void SetNBMass(G4double newMass);         // Set mass bounded to Total Nucleus
86
87// Body             
88private:
89  G4bool   possible;                // permission/forbiding preFlag to be a hadron/fragment
90  G4bool   parPossible;             // permission/forbiding preFlag to be a parent
91  G4double kMin;                    // mu^2/2M (Q-case), ~BindingEnergy (Clust.-case)
92  G4double denseProbability;        // a#of clusters of the type in dense region
93  G4double preProbability;          // a#of clusters of the type or Q-suppression
94  G4double relativeProbability;     // relative probability of hadronization
95  G4double integralProbability;     // integrated probability of randomization
96  G4double secondRelProbability;    // spare relative probability of hadronization
97  G4double secondIntProbability;    // spare integrated probability of randomization
98  G4QParentClusterVector thePClusters; // vector of parent clusters for candid.-fragment
99  G4double EBMass;                     // Bound Mass of the cluster in the Environment
100  G4double NBMass;                     // Bound Mass of the cluster in the Total Nucleus
101};
102
103inline G4bool G4QCandidate::operator==(const G4QCandidate &rhs) const  {return this==&rhs;}
104inline G4bool G4QCandidate::operator!=(const G4QCandidate &rhs) const  {return this!=&rhs;}
105
106inline G4QParentCluster* G4QCandidate::TakeParClust(G4int nPC){return thePClusters[nPC];}
107inline G4int    G4QCandidate::GetPClustEntries()        const {return thePClusters.size();}
108inline G4bool   G4QCandidate::GetPossibility()          const {return possible;}
109inline G4bool   G4QCandidate::GetParPossibility()       const {return parPossible;}
110inline G4double G4QCandidate::GetKMin()                 const {return kMin;}
111inline G4double G4QCandidate::GetEBMass()               const {return EBMass;}
112inline G4double G4QCandidate::GetNBMass()               const {return NBMass;}
113inline G4double G4QCandidate::GetDenseProbability()     const {return denseProbability;}
114inline G4double G4QCandidate::GetPreProbability()       const {return preProbability;}
115inline G4double G4QCandidate::GetRelProbability()       const {return relativeProbability;}
116inline G4double G4QCandidate::GetIntegProbability()     const {return integralProbability;}
117inline G4double G4QCandidate::GetSecondRelProb()       const {return secondRelProbability;}
118inline G4double G4QCandidate::GetSecondIntProb()       const {return secondIntProbability;}
119
120inline void G4QCandidate::ClearParClustVector()                 
121{
122  std::for_each(thePClusters.begin(), thePClusters.end(), DeleteQParentCluster());
123  thePClusters.clear();
124}
125
126inline void G4QCandidate::FillPClustVec(G4QParentCluster* pCl)
127{
128  thePClusters.push_back(pCl);                              // Fill new instance of PCl
129}
130inline void G4QCandidate::SetPossibility(G4bool choice)      {possible=choice;}
131inline void G4QCandidate::SetParPossibility(G4bool choice)   {parPossible=choice;}
132inline void G4QCandidate::SetKMin(G4double kmin)             {kMin=kmin;}
133inline void G4QCandidate::SetDenseProbability(G4double prep) {denseProbability=prep;}
134inline void G4QCandidate::SetPreProbability(G4double prep)   {preProbability=prep;}
135inline void G4QCandidate::SetRelProbability(G4double relP)   {relativeProbability=relP;}
136inline void G4QCandidate::SetIntegProbability(G4double intP) {integralProbability=intP;}
137inline void G4QCandidate::SetSecondRelProb(G4double relP)    {secondRelProbability=relP;}
138inline void G4QCandidate::SetSecondIntProb(G4double intP)    {secondIntProbability=intP;}
139inline void G4QCandidate::SetEBMass(G4double newM)           {EBMass=newM;}
140inline void G4QCandidate::SetNBMass(G4double newM)           {NBMass=newM;}
141
142#endif
Note: See TracBrowser for help on using the repository browser.