Geant4 Cross Reference

Cross-Referencing   Geant4
Geant4/examples/extended/parameterisations/Par02/include/Par02PrimaryParticleInformation.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 /// \file Par02PrimaryParticleInformation.hh
 28 /// \brief Definition of the Par02PrimaryParticleInformation class
 29 
 30 #ifndef PAR02_PRIMARY_PARTICLE_INFORMATION_H
 31 #define PAR02_PRIMARY_PARTICLE_INFORMATION_H
 32 
 33 #include "G4ThreeVector.hh"
 34 #include "G4VUserPrimaryParticleInformation.hh"
 35 #include "globals.hh"
 36 
 37 /// Primary particle information
 38 ///
 39 /// Describes the information that can be associated with a G4PrimaryParticle
 40 /// class object.
 41 /// @author Anna Zaborowska
 42 
 43 class Par02PrimaryParticleInformation : public G4VUserPrimaryParticleInformation
 44 {
 45   public:
 46     /// A constructor.
 47     /// @param aID A unique particle ID within event.
 48     /// @param aPDG A PDG code of the particle.
 49     /// @param aMomentum An initial particle momentum (at the primary vertex).
 50     Par02PrimaryParticleInformation(G4int aID, G4int aPDG, G4ThreeVector aMomentum);
 51 
 52     virtual ~Par02PrimaryParticleInformation();
 53 
 54     /// Prints the information about the particle.
 55     virtual void Print() const;
 56 
 57     /// Sets the initial particle momentum (from particle generator).
 58     /// @param aMomentum The particle momentum.
 59     inline void SetMCMomentum(G4ThreeVector aMomentum) { fMomentumMC = aMomentum; };
 60 
 61     /// Gets the initial particle momentum (from particle generator).
 62     inline G4ThreeVector GetMCMomentum() { return fMomentumMC; };
 63 
 64     /// Sets the particle momentum at the entrance to the tracker detector.
 65     /// @param aMomentum The particle momentum.
 66     inline void SetTrackerMomentum(G4ThreeVector aMomentum) { fMomentumTracker = aMomentum; };
 67 
 68     /// Gets the particle momentum at the entrance to the tracker detector.
 69     inline G4ThreeVector GetTrackerMomentum() { return fMomentumTracker; }
 70 
 71     /// Sets the tracker detector resolution.
 72     /// Currently equal to -1 if AtlFast type of smearing is used.
 73     /// @param aResolution The detector resolution
 74     ///                    (particle type and momentum dependent).
 75     inline void SetTrackerResolution(G4double aResolution) { fResolutionTracker = aResolution; };
 76 
 77     /// Gets the tracking detector resolution.
 78     /// Currently equal to -1 if AtlFast type of smearing is used.
 79     inline G4double GetTrackerResolution() { return fResolutionTracker; };
 80 
 81     /// Sets the tracking detector efficiency.
 82     /// Currently not used (efficiency is 1).
 83     /// @param aEfficiency The detector efficiency.
 84     inline void SetTrackerEfficiency(G4double aEfficiency) { fEfficiencyTracker = aEfficiency; };
 85 
 86     /// Gets the tracker detector efficiency.
 87     /// Currently not used (efficiency is 1).
 88     inline G4double GetTrackerEfficiency() { return fEfficiencyTracker; };
 89 
 90     /// Sets the position of the energy deposit in the electromagnetic calorimeter.
 91     /// @param aPosition The position of the energy deposit.
 92     inline void SetEMCalPosition(G4ThreeVector aPosition) { fPositionEMCal = aPosition; };
 93 
 94     /// Gets the position of the energy deposit in the electromagnetic calorimeter.
 95     inline G4ThreeVector GetEMCalPosition() { return fPositionEMCal; };
 96 
 97     /// Sets the energy deposit in the electromagnetic calorimeter.
 98     /// @param aEnergy The energy deposited in the detector.
 99     inline void SetEMCalEnergy(G4double aEnergy) { fEnergyEMCal = aEnergy; };
100 
101     /// Sets the energy deposit in the electromagnetic calorimeter.
102     inline G4double GetEMCalEnergy() { return fEnergyEMCal; };
103 
104     /// Sets the electromagnetic calorimeter resolution.
105     /// Currently equal to -1 if AtlFast type of smearing is used.
106     /// @param aResolution The calorimeter resolution
107     ///                    (particle type and momentum dependent).
108     inline void SetEMCalResolution(G4double aResolution) { fResolutionEMCal = aResolution; };
109 
110     /// Gets the electromagnetic calorimeter resolution.
111     /// Currently equal to -1 if AtlFast type of smearing is used.
112     inline G4double GetEMCalResolution() { return fResolutionEMCal; };
113 
114     /// Sets the electromagnetic calorimeter efficiency.
115     /// Currently not used (efficiency is 1).
116     /// @param aEfficiency The detector efficiency.
117     inline void SetEMCalEfficiency(G4double aEfficiency) { fEfficiencyEMCal = aEfficiency; };
118 
119     /// Gets the electromagnetic calorimeter efficiency.
120     /// Currently not used (efficiency is 1).
121     inline G4double GetEMCalEfficiency() { return fEfficiencyEMCal; };
122 
123     /// Sets the position of the energy deposit in the hadronic calorimeter.
124     /// @param aPosition The position of the energy deposit.
125     inline void SetHCalPosition(G4ThreeVector aPosition) { fPositionHCal = aPosition; };
126 
127     /// Gets the position of the energy deposit in the hadronic calorimeter.
128     inline G4ThreeVector GetHCalPosition() { return fPositionHCal; };
129 
130     /// Sets the energy deposit in the hadronic calorimeter.
131     /// @param aEnergy The energy deposited in the detector.
132     inline void SetHCalEnergy(G4double aEnergy) { fEnergyHCal = aEnergy; };
133 
134     /// Sets the energy deposit in the hadronic calorimeter.
135     inline G4double GetHCalEnergy() { return fEnergyHCal; };
136 
137     /// Sets the hadronic calorimeter resolution.
138     /// Currently equal to -1 if AtlFast type of smearing is used.
139     /// @param aResolution The calorimeter resolution
140     ///                    (particle type and momentum dependent).
141     inline void SetHCalResolution(G4double aResolution) { fResolutionHCal = aResolution; };
142 
143     /// Gets the hadronic calorimeter resolution.
144     /// Currently equal to -1 if AtlFast type of smearing is used.
145     inline G4double GetHCalResolution() { return fResolutionHCal; };
146 
147     /// Sets the hadronic calorimeter efficiency.
148     /// Currently not used (efficiency is 1).
149     /// @param aEfficiency The detector efficiency.
150     inline void SetHCalEfficiency(G4double aEfficiency) { fEfficiencyHCal = aEfficiency; };
151 
152     /// Gets the hadronic calorimeter efficiency.
153     /// Currently not used (efficiency is 1).
154     inline G4double GetHCalEfficiency() { return fEfficiencyHCal; };
155 
156     /// Gets the particle unique ID (within event). Can be set only in the constructor.
157     inline G4int GetPartID() const { return fPartID; };
158 
159     /// Gets the standard PDG code. Can be set only in the constructor.
160     inline G4int GetPDG() const { return fPDG; };
161 
162   private:
163     /// A particle unique ID.
164     G4int fPartID;
165 
166     /// A particle type (PDG code).
167     G4int fPDG;
168 
169     /// A particle initial momentum (from particle generator).
170     G4ThreeVector fMomentumMC;
171 
172     /// A particle momentum at the entrance to the tracking detector.
173     G4ThreeVector fMomentumTracker;
174 
175     /// A resolution of the tracking detector.
176     G4double fResolutionTracker;
177 
178     /// An efficiency of the tracking detector.
179     /// Currently not used (equal to 1).
180     G4double fEfficiencyTracker;
181 
182     /// A position of the energy deposited in the electromagnetic calorimeter.
183     G4ThreeVector fPositionEMCal;
184 
185     /// An energy deposited in the electromagnetic calorimeter.
186     G4double fEnergyEMCal;
187 
188     /// The resolution of the electromagnetic calorimeter.
189     G4double fResolutionEMCal;
190 
191     /// The efficiency of the electromagnetic calorimeter.
192     /// Currently not used (equal to 1).
193     G4double fEfficiencyEMCal;
194 
195     /// A position of the energy deposited in the hadronic calorimeter.
196     G4ThreeVector fPositionHCal;
197 
198     /// An energy deposited in the hadronic calorimeter.
199     G4double fEnergyHCal;
200 
201     /// The resolution of the hadronic calorimeter.
202     G4double fResolutionHCal;
203 
204     /// The efficiency of the hadronic calorimeter.
205     /// Currently not used (equal to 1).
206     G4double fEfficiencyHCal;
207 };
208 
209 #endif
210