![]() |
|
|||
File indexing completed on 2025-02-23 09:22:32
0001 // 0002 // ******************************************************************** 0003 // * License and Disclaimer * 0004 // * * 0005 // * The Geant4 software is copyright of the Copyright Holders of * 0006 // * the Geant4 Collaboration. It is provided under the terms and * 0007 // * conditions of the Geant4 Software License, included in the file * 0008 // * LICENSE and available at http://cern.ch/geant4/license . These * 0009 // * include a list of copyright holders. * 0010 // * * 0011 // * Neither the authors of this software system, nor their employing * 0012 // * institutes,nor the agencies providing financial support for this * 0013 // * work make any representation or warranty, express or implied, * 0014 // * regarding this software system or assume any liability for its * 0015 // * use. Please see the license in the file LICENSE and URL above * 0016 // * for the full disclaimer and the limitation of liability. * 0017 // * * 0018 // * This code implementation is the result of the scientific and * 0019 // * technical work of the GEANT4 collaboration. * 0020 // * By using, copying, modifying or distributing the software (or * 0021 // * any work based on the software) you agree to acknowledge its * 0022 // * use in resulting scientific publications, and indicate your * 0023 // * acceptance of all terms of the Geant4 Software license. * 0024 // ******************************************************************** 0025 // 0026 // 0027 /// \file Par02PrimaryParticleInformation.hh 0028 /// \brief Definition of the Par02PrimaryParticleInformation class 0029 0030 #ifndef PAR02_PRIMARY_PARTICLE_INFORMATION_H 0031 #define PAR02_PRIMARY_PARTICLE_INFORMATION_H 0032 0033 #include "G4ThreeVector.hh" 0034 #include "G4VUserPrimaryParticleInformation.hh" 0035 #include "globals.hh" 0036 0037 /// Primary particle information 0038 /// 0039 /// Describes the information that can be associated with a G4PrimaryParticle 0040 /// class object. 0041 /// @author Anna Zaborowska 0042 0043 class Par02PrimaryParticleInformation : public G4VUserPrimaryParticleInformation 0044 { 0045 public: 0046 /// A constructor. 0047 /// @param aID A unique particle ID within event. 0048 /// @param aPDG A PDG code of the particle. 0049 /// @param aMomentum An initial particle momentum (at the primary vertex). 0050 Par02PrimaryParticleInformation(G4int aID, G4int aPDG, G4ThreeVector aMomentum); 0051 0052 virtual ~Par02PrimaryParticleInformation(); 0053 0054 /// Prints the information about the particle. 0055 virtual void Print() const; 0056 0057 /// Sets the initial particle momentum (from particle generator). 0058 /// @param aMomentum The particle momentum. 0059 inline void SetMCMomentum(G4ThreeVector aMomentum) { fMomentumMC = aMomentum; }; 0060 0061 /// Gets the initial particle momentum (from particle generator). 0062 inline G4ThreeVector GetMCMomentum() { return fMomentumMC; }; 0063 0064 /// Sets the particle momentum at the entrance to the tracker detector. 0065 /// @param aMomentum The particle momentum. 0066 inline void SetTrackerMomentum(G4ThreeVector aMomentum) { fMomentumTracker = aMomentum; }; 0067 0068 /// Gets the particle momentum at the entrance to the tracker detector. 0069 inline G4ThreeVector GetTrackerMomentum() { return fMomentumTracker; } 0070 0071 /// Sets the tracker detector resolution. 0072 /// Currently equal to -1 if AtlFast type of smearing is used. 0073 /// @param aResolution The detector resolution 0074 /// (particle type and momentum dependent). 0075 inline void SetTrackerResolution(G4double aResolution) { fResolutionTracker = aResolution; }; 0076 0077 /// Gets the tracking detector resolution. 0078 /// Currently equal to -1 if AtlFast type of smearing is used. 0079 inline G4double GetTrackerResolution() { return fResolutionTracker; }; 0080 0081 /// Sets the tracking detector efficiency. 0082 /// Currently not used (efficiency is 1). 0083 /// @param aEfficiency The detector efficiency. 0084 inline void SetTrackerEfficiency(G4double aEfficiency) { fEfficiencyTracker = aEfficiency; }; 0085 0086 /// Gets the tracker detector efficiency. 0087 /// Currently not used (efficiency is 1). 0088 inline G4double GetTrackerEfficiency() { return fEfficiencyTracker; }; 0089 0090 /// Sets the position of the energy deposit in the electromagnetic calorimeter. 0091 /// @param aPosition The position of the energy deposit. 0092 inline void SetEMCalPosition(G4ThreeVector aPosition) { fPositionEMCal = aPosition; }; 0093 0094 /// Gets the position of the energy deposit in the electromagnetic calorimeter. 0095 inline G4ThreeVector GetEMCalPosition() { return fPositionEMCal; }; 0096 0097 /// Sets the energy deposit in the electromagnetic calorimeter. 0098 /// @param aEnergy The energy deposited in the detector. 0099 inline void SetEMCalEnergy(G4double aEnergy) { fEnergyEMCal = aEnergy; }; 0100 0101 /// Sets the energy deposit in the electromagnetic calorimeter. 0102 inline G4double GetEMCalEnergy() { return fEnergyEMCal; }; 0103 0104 /// Sets the electromagnetic calorimeter resolution. 0105 /// Currently equal to -1 if AtlFast type of smearing is used. 0106 /// @param aResolution The calorimeter resolution 0107 /// (particle type and momentum dependent). 0108 inline void SetEMCalResolution(G4double aResolution) { fResolutionEMCal = aResolution; }; 0109 0110 /// Gets the electromagnetic calorimeter resolution. 0111 /// Currently equal to -1 if AtlFast type of smearing is used. 0112 inline G4double GetEMCalResolution() { return fResolutionEMCal; }; 0113 0114 /// Sets the electromagnetic calorimeter efficiency. 0115 /// Currently not used (efficiency is 1). 0116 /// @param aEfficiency The detector efficiency. 0117 inline void SetEMCalEfficiency(G4double aEfficiency) { fEfficiencyEMCal = aEfficiency; }; 0118 0119 /// Gets the electromagnetic calorimeter efficiency. 0120 /// Currently not used (efficiency is 1). 0121 inline G4double GetEMCalEfficiency() { return fEfficiencyEMCal; }; 0122 0123 /// Sets the position of the energy deposit in the hadronic calorimeter. 0124 /// @param aPosition The position of the energy deposit. 0125 inline void SetHCalPosition(G4ThreeVector aPosition) { fPositionHCal = aPosition; }; 0126 0127 /// Gets the position of the energy deposit in the hadronic calorimeter. 0128 inline G4ThreeVector GetHCalPosition() { return fPositionHCal; }; 0129 0130 /// Sets the energy deposit in the hadronic calorimeter. 0131 /// @param aEnergy The energy deposited in the detector. 0132 inline void SetHCalEnergy(G4double aEnergy) { fEnergyHCal = aEnergy; }; 0133 0134 /// Sets the energy deposit in the hadronic calorimeter. 0135 inline G4double GetHCalEnergy() { return fEnergyHCal; }; 0136 0137 /// Sets the hadronic calorimeter resolution. 0138 /// Currently equal to -1 if AtlFast type of smearing is used. 0139 /// @param aResolution The calorimeter resolution 0140 /// (particle type and momentum dependent). 0141 inline void SetHCalResolution(G4double aResolution) { fResolutionHCal = aResolution; }; 0142 0143 /// Gets the hadronic calorimeter resolution. 0144 /// Currently equal to -1 if AtlFast type of smearing is used. 0145 inline G4double GetHCalResolution() { return fResolutionHCal; }; 0146 0147 /// Sets the hadronic calorimeter efficiency. 0148 /// Currently not used (efficiency is 1). 0149 /// @param aEfficiency The detector efficiency. 0150 inline void SetHCalEfficiency(G4double aEfficiency) { fEfficiencyHCal = aEfficiency; }; 0151 0152 /// Gets the hadronic calorimeter efficiency. 0153 /// Currently not used (efficiency is 1). 0154 inline G4double GetHCalEfficiency() { return fEfficiencyHCal; }; 0155 0156 /// Gets the particle unique ID (within event). Can be set only in the constructor. 0157 inline G4int GetPartID() const { return fPartID; }; 0158 0159 /// Gets the standard PDG code. Can be set only in the constructor. 0160 inline G4int GetPDG() const { return fPDG; }; 0161 0162 private: 0163 /// A particle unique ID. 0164 G4int fPartID; 0165 0166 /// A particle type (PDG code). 0167 G4int fPDG; 0168 0169 /// A particle initial momentum (from particle generator). 0170 G4ThreeVector fMomentumMC; 0171 0172 /// A particle momentum at the entrance to the tracking detector. 0173 G4ThreeVector fMomentumTracker; 0174 0175 /// A resolution of the tracking detector. 0176 G4double fResolutionTracker; 0177 0178 /// An efficiency of the tracking detector. 0179 /// Currently not used (equal to 1). 0180 G4double fEfficiencyTracker; 0181 0182 /// A position of the energy deposited in the electromagnetic calorimeter. 0183 G4ThreeVector fPositionEMCal; 0184 0185 /// An energy deposited in the electromagnetic calorimeter. 0186 G4double fEnergyEMCal; 0187 0188 /// The resolution of the electromagnetic calorimeter. 0189 G4double fResolutionEMCal; 0190 0191 /// The efficiency of the electromagnetic calorimeter. 0192 /// Currently not used (equal to 1). 0193 G4double fEfficiencyEMCal; 0194 0195 /// A position of the energy deposited in the hadronic calorimeter. 0196 G4ThreeVector fPositionHCal; 0197 0198 /// An energy deposited in the hadronic calorimeter. 0199 G4double fEnergyHCal; 0200 0201 /// The resolution of the hadronic calorimeter. 0202 G4double fResolutionHCal; 0203 0204 /// The efficiency of the hadronic calorimeter. 0205 /// Currently not used (equal to 1). 0206 G4double fEfficiencyHCal; 0207 }; 0208 0209 #endif
[ Source navigation ] | [ Diff markup ] | [ Identifier search ] | [ general search ] |
This page was automatically generated by the 2.3.7 LXR engine. The LXR team |
![]() ![]() |