gabbbri_ella

PrimaryGeneratorAction originale, senza modifiche.

May 11th, 2022 (edited)
315
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 3.75 KB | None | 0 0
  1. //FILE FATTO PER SALVARE L'ORIGINALE MA LA MODIFICA FUNZIONA.
  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 PrimaryGeneratorAction.cc
  28. /// \brief Implementation of the B1::PrimaryGeneratorAction class
  29.  
  30. #include "PrimaryGeneratorAction.hh"
  31.  
  32. #include "G4LogicalVolumeStore.hh"
  33. #include "G4LogicalVolume.hh"
  34. #include "G4Box.hh"
  35. #include "G4RunManager.hh"
  36. #include "G4ParticleGun.hh"
  37. #include "G4ParticleTable.hh"
  38. #include "G4ParticleDefinition.hh"
  39. #include "G4SystemOfUnits.hh"
  40. #include "Randomize.hh"
  41.  
  42. namespace B1
  43. {
  44.  
  45. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  46.  
  47. PrimaryGeneratorAction::PrimaryGeneratorAction()
  48. {
  49.   G4int n_particle = 1;
  50.   fParticleGun  = new G4ParticleGun(n_particle);
  51.  
  52.   // default particle kinematic
  53.   G4ParticleTable* particleTable = G4ParticleTable::GetParticleTable();
  54.   G4String particleName;
  55.   G4ParticleDefinition* particle
  56.     = particleTable->FindParticle(particleName="proton");
  57.   fParticleGun->SetParticleDefinition(particle);
  58.   fParticleGun->SetParticleMomentumDirection(G4ThreeVector(0.,0.,1.));
  59.   fParticleGun->SetParticleEnergy(100.*MeV);
  60.  
  61.   G4ThreeVector pos(0.,0.,-15,);
  62.   fParticleGun->SetParticlePosition(pos); //fatto da me
  63. }
  64.  
  65. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  66.  
  67. PrimaryGeneratorAction::~PrimaryGeneratorAction()
  68. {
  69.   delete fParticleGun;
  70. }
  71.  
  72. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  73.  
  74. void PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
  75. {
  76.   //this function is called at the begining of ecah event
  77.   //
  78.  
  79.   // In order to avoid dependence of PrimaryGeneratorAction
  80.   // on DetectorConstruction class we get Envelope volume
  81.   // from G4LogicalVolumeStore.
  82.  
  83.   //G4double envSizeXY = 0;
  84.   //G4double envSizeZ = 0;
  85. //le seguenti tre istruzioni sono fatte da Ian
  86.   //G4double x0 = 0.;
  87.   //G4double y0 = 0.;
  88.   //G4double z0 = -15.;
  89.  
  90.   //fParticleGun->SetParticlePosition(G4ThreeVector(x0,y0,z0)); fatto da Ian
  91.  
  92.   fParticleGun->GeneratePrimaryVertex(anEvent);
  93. }
  94.  
  95. //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  96.  
  97. }
  98.  
  99.  
Add Comment
Please, Sign In to add comment