Geant4  9.6.p02
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
G4QInteraction.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 
30 #ifndef G4QInteraction_h
31 #define G4QInteraction_h 1
32 
33 // -------------------------------------------------------------------
34 // GEANT 4 class header file
35 //
36 // ---------------- G4QInteraction----------------
37 // Created by Mikhail Kossov Oct,2006
38 // class for a storing colliding particles in PartonString Models
39 // For comparison mirror member functions are taken from G4 class:
40 // G4InteractionContent
41 // -------------------------------------------------------------------
42 // Short description: Classify the interaction in soft/hard/diffractive
43 // parts for firther treatment by the QGS algorithm. Pure data class...
44 // Except for the SplitHadrons, which can be done elsewhere (@@ M.K.)
45 // ---------------------------------------------------------------------
46 
47 #include "globals.hh"
48 #include "G4QHadron.hh"
49 
51 {
52 public:
53  G4QInteraction(G4QHadron* aPrimaryParticipant);
55  int operator==(const G4QInteraction &right) const {return this==&right;}
56  int operator!=(const G4QInteraction &right) const {return this!=&right;}
57  G4QHadron* GetProjectile() const {return theProjectile;}
58  G4QHadron* GetTarget() const {return theTarget;}
59  G4int GetNumberOfSoftCollisions() {return theNumberOfSoft;}
60  G4int GetNumberOfDINRCollisions() {return theNumberOfDINR;}
61  G4int GetNumberOfHardCollisions() {return theNumberOfHard;}
62  G4int GetNumberOfDiffractiveCollisions() {return theNumberOfDiffractive;}
63  void SetTarget(G4QHadron* aTarget) {theTarget = aTarget;}
64  void SetProjectile(G4QHadron* aProjectile) {theProjectile = aProjectile;}
65  void SetNumberOfSoftCollisions(G4int nofSoft) {theNumberOfSoft = nofSoft;}
66  void SetNumberOfDINRCollisions(G4int nofDINR) {theNumberOfDINR = nofDINR;}
67  void SetNumberOfHardCollisions(G4int nofHard) {theNumberOfHard = nofHard;}
68  void SetNumberOfDiffractiveCollisions(G4int nofDiff) {theNumberOfDiffractive = nofDiff;}
69  void SplitHadrons()
70  {if(theProjectile)theProjectile->SplitUp(); if(theTarget)theTarget->SplitUp();}
71 public:
75 private:
76  // Body
77  G4QHadron* theProjectile;
78  G4QHadron* theTarget;
79  G4int theNumberOfDINR;
80  G4int theNumberOfHard;
81  G4int theNumberOfSoft;
82  G4int theNumberOfDiffractive;
83 };
84 
85 #endif