Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/processes/hadronic/util/include/G4Parton.hh

Version: [ ReleaseNotes ] [ 1.0 ] [ 1.1 ] [ 2.0 ] [ 3.0 ] [ 3.1 ] [ 3.2 ] [ 4.0 ] [ 4.0.p1 ] [ 4.0.p2 ] [ 4.1 ] [ 4.1.p1 ] [ 5.0 ] [ 5.0.p1 ] [ 5.1 ] [ 5.1.p1 ] [ 5.2 ] [ 5.2.p1 ] [ 5.2.p2 ] [ 6.0 ] [ 6.0.p1 ] [ 6.1 ] [ 6.2 ] [ 6.2.p1 ] [ 6.2.p2 ] [ 7.0 ] [ 7.0.p1 ] [ 7.1 ] [ 7.1.p1 ] [ 8.0 ] [ 8.0.p1 ] [ 8.1 ] [ 8.1.p1 ] [ 8.1.p2 ] [ 8.2 ] [ 8.2.p1 ] [ 8.3 ] [ 8.3.p1 ] [ 8.3.p2 ] [ 9.0 ] [ 9.0.p1 ] [ 9.0.p2 ] [ 9.1 ] [ 9.1.p1 ] [ 9.1.p2 ] [ 9.1.p3 ] [ 9.2 ] [ 9.2.p1 ] [ 9.2.p2 ] [ 9.2.p3 ] [ 9.2.p4 ] [ 9.3 ] [ 9.3.p1 ] [ 9.3.p2 ] [ 9.4 ] [ 9.4.p1 ] [ 9.4.p2 ] [ 9.4.p3 ] [ 9.4.p4 ] [ 9.5 ] [ 9.5.p1 ] [ 9.5.p2 ] [ 9.6 ] [ 9.6.p1 ] [ 9.6.p2 ] [ 9.6.p3 ] [ 9.6.p4 ] [ 10.0 ] [ 10.0.p1 ] [ 10.0.p2 ] [ 10.0.p3 ] [ 10.0.p4 ] [ 10.1 ] [ 10.1.p1 ] [ 10.1.p2 ] [ 10.1.p3 ] [ 10.2 ] [ 10.2.p1 ] [ 10.2.p2 ] [ 10.2.p3 ] [ 10.3 ] [ 10.3.p1 ] [ 10.3.p2 ] [ 10.3.p3 ] [ 10.4 ] [ 10.4.p1 ] [ 10.4.p2 ] [ 10.4.p3 ] [ 10.5 ] [ 10.5.p1 ] [ 10.6 ] [ 10.6.p1 ] [ 10.6.p2 ] [ 10.6.p3 ] [ 10.7 ] [ 10.7.p1 ] [ 10.7.p2 ] [ 10.7.p3 ] [ 10.7.p4 ] [ 11.0 ] [ 11.0.p1 ] [ 11.0.p2 ] [ 11.0.p3, ] [ 11.0.p4 ] [ 11.1 ] [ 11.1.1 ] [ 11.1.2 ] [ 11.1.3 ] [ 11.2 ] [ 11.2.1 ] [ 11.2.2 ] [ 11.3.0 ]

  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 //
 28 
 29 #ifndef G4Parton_h
 30 #define G4Parton_h 1
 31 
 32 // ------------------------------------------------------------
 33 //      GEANT 4 class header file
 34 //
 35 //      ---------------- G4Parton ----------------
 36 //             by Gunter Folger, June 1998.
 37 //       class for Parton (inside a string) used by Parton String Models
 38 // ------------------------------------------------------------
 39 
 40 #include "globals.hh"
 41 #include "G4ThreeVector.hh"
 42 #include "G4LorentzVector.hh"
 43 #include <iostream>
 44 #include "G4ParticleTable.hh"
 45 #include "Randomize.hh"
 46 
 47 class G4Parton
 48 {
 49    public:
 50       G4Parton()
 51       {
 52         // CAUTION: 
 53         // this is a preliminary definition yielding u and d quarks only!
 54         //
 55         PDGencoding=(G4int)(2.*G4UniformRand()); 
 56         theColour = (G4int)(3.*G4UniformRand())+1;
 57         theIsoSpinZ = ((G4int)(G4UniformRand()))-0.5;
 58         theSpinZ = ((G4int)(G4UniformRand()))-0.5;
 59       }
 60       
 61       G4Parton(G4int PDGencoding);
 62       G4Parton(const G4Parton &right);
 63 
 64       ~G4Parton();
 65 
 66       G4Parton & operator=(const G4Parton &right);
 67 
 68       G4bool operator==(const G4Parton &right) const;
 69 
 70       G4bool operator!=(const G4Parton &right) const;
 71       
 72       G4int GetPDGcode() const;
 73     
 74       G4ParticleDefinition * GetDefinition();
 75       void SetDefinition(G4ParticleDefinition * aDefinition);  // Uzhi
 76 
 77       void DefineMomentumInZ(G4double aLightConeMomentum, G4bool aDirection);      
 78       void DefineMomentumInZ(G4double aLightConeMomentum,G4double aLightConeE, G4bool aDirection);      
 79       
 80       const G4ThreeVector & GetPosition()const;
 81       void SetPosition(const G4ThreeVector &aPosition);
 82 
 83       const G4LorentzVector & Get4Momentum() const; 
 84       void Set4Momentum(const G4LorentzVector & aMomentum);
 85       
 86       void SetX(G4double anX) { theX = anX; }
 87       G4double GetX() {return theX;}
 88       
 89       void SetColour(G4int aColour) {theColour = aColour;}
 90       G4int GetColour() {return theColour;}
 91       
 92       void SetIsoSpinZ(G4double anIsoSpinZ) {theIsoSpinZ = anIsoSpinZ;}
 93       G4double GetIsoSpinZ() {return theIsoSpinZ;}
 94 
 95       void SetSpinZ(G4double aSpinZ) {theSpinZ = aSpinZ;}
 96       G4double GetSpinZ() {return theSpinZ;}
 97       
 98    private:
 99       G4double GetMass();
100       
101    public:  
102       G4int PDGencoding;
103       G4ParticleDefinition * theDefinition;
104 
105    private:  
106       G4LorentzVector theMomentum;
107       G4ThreeVector   thePosition;
108       
109       G4int theColour;
110       G4double theIsoSpinZ;
111       G4double theSpinZ;
112       
113       G4double theX;
114       
115 };
116 
117 inline G4bool G4Parton::operator==(const G4Parton &right) const
118 {
119   return this==&right;
120 } 
121 
122 inline G4bool G4Parton::operator!=(const G4Parton &right) const
123 {
124   return this!=&right;
125 }
126 
127 inline G4int G4Parton::GetPDGcode() const
128 {
129   return PDGencoding;
130 }
131   
132 inline const G4ThreeVector & G4Parton::GetPosition() const
133 {
134   return thePosition;
135 }
136 
137 inline void G4Parton::SetPosition(const G4ThreeVector &aPosition)
138 {
139   thePosition=aPosition;
140 }
141 
142 
143 inline const G4LorentzVector & G4Parton::Get4Momentum() const
144 {
145   return theMomentum;
146 }
147 
148 inline void G4Parton::Set4Momentum(const G4LorentzVector & aMomentum)
149 {
150   theMomentum=aMomentum;
151 }
152 
153 
154 inline
155 G4double G4Parton::GetMass()
156 {
157   return theDefinition->GetPDGMass();
158 }
159 
160 inline
161 G4ParticleDefinition * G4Parton::GetDefinition()
162 {
163   return theDefinition;
164 }
165 
166 inline void G4Parton::SetDefinition(G4ParticleDefinition * aDefinition) // Uzhi
167 {
168   theDefinition = aDefinition;
169   PDGencoding = theDefinition->GetPDGEncoding();
170 }
171 
172 
173 #endif
174