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

Last change on this file since 836 was 819, checked in by garnier, 16 years ago

import all except CVS

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