← Back to team overview

simhadteam team mailing list archive

[Branch ~simhadteam/simulationshadrontherapie/G4LPC] Rev 8: Ajout de la methode G4LPCPhysicsList::ApplyNewCuts(void) pour changer la valeur de "defaultCutVal...

 

------------------------------------------------------------
revno: 8
committer: Daniel Cussol <cussol@xxxxxxxx>
branch nick: G4LPC
timestamp: Mon 2009-12-07 13:31:26 +0100
message:
  Ajout de la methode G4LPCPhysicsList::ApplyNewCuts(void) pour changer la valeur de "defaultCutValues".
  Ajout d'un "G4UserLimits" dans "G4LPCDetectorConstruction::ConstructGeometry".
modified:
  include/G4LPCPhysicsList.hh
  src/G4LPCDetectorConstruction.cc
  src/G4LPCPhysicsList.cc


--
lp:~simhadteam/simulationshadrontherapie/G4LPC
https://code.launchpad.net/~simhadteam/simulationshadrontherapie/G4LPC

Your team Simulateurs pour la Hadronthérapie is subscribed to branch lp:~simhadteam/simulationshadrontherapie/G4LPC.
To unsubscribe from this branch go to https://code.launchpad.net/~simhadteam/simulationshadrontherapie/G4LPC/+edit-subscription.
=== modified file 'include/G4LPCPhysicsList.hh'
--- include/G4LPCPhysicsList.hh	2009-10-21 09:27:24 +0000
+++ include/G4LPCPhysicsList.hh	2009-12-07 12:31:26 +0000
@@ -78,6 +78,8 @@
     virtual void UseG4Cascade(void) {bertini=false;}
 
     virtual G4bool IsUsingBertiniCascade(void) {return bertini;}
+    
+    virtual void ApplyNewCuts(void) {this->SetCuts();}
 
   protected:
     // Construct particle and physics process

=== modified file 'src/G4LPCDetectorConstruction.cc'
--- src/G4LPCDetectorConstruction.cc	2009-10-21 09:27:24 +0000
+++ src/G4LPCDetectorConstruction.cc	2009-12-07 12:31:26 +0000
@@ -1705,6 +1705,8 @@
 return ConstructGeometry();
 }
 
+#include "G4UserLimits.hh"
+
 G4VPhysicalVolume* G4LPCDetectorConstruction::ConstructGeometry()
 {
   DefineMaterials();
@@ -1792,6 +1794,13 @@
   G4String logName;
   G4String physName;
   char tmp[80]; 
+  
+  //=============> NEW <=====================//
+  G4double upperStepLimit=2.*mm;
+  G4UserLimits *ul=0;
+  if(upperStepLimit > 0) ul=new G4UserLimits(upperStepLimit);
+  //=============> NEW <=====================//
+  
   for(G4int i=0;i<nbLayers;i++)
    {
    G4cout << "Layer " << i << " : " << GetLayerMaterial(i)->GetName() << " / " <<
@@ -1805,6 +1814,11 @@
    logName=tmp;
    layers_log[i] = new G4LogicalVolume(layer_box,
                                               GetLayerMaterial(i),logName,0,0,0);
+
+  //=============> NEW <=====================//
+   if(ul) layers_log[i]->SetUserLimits(ul);
+  //=============> NEW <=====================//
+
    sprintf(tmp,"PhysicalLayer%d",i+1);
    physName=tmp;
    layers_phys[i] = new G4PVPlacement(0,

=== modified file 'src/G4LPCPhysicsList.cc'
--- src/G4LPCPhysicsList.cc	2009-10-21 09:27:24 +0000
+++ src/G4LPCPhysicsList.cc	2009-12-07 12:31:26 +0000
@@ -47,9 +47,21 @@
 // Valeur de Cut sur le parcours
 //
 
+//  D.Cussol: 27/11/2009
+// Comment from the release notes of version 9.2.p02:
+//  "The usage of the Spline approximation of dedx and cross section tables provides a Bragg 
+//  peak position which is stable within 0.1 mm versus variation of production cut or step 
+//  limit."
+//
+// This last comment is obviously wrong since a variation of 3.4% (5-6 mm!) is observed on 
+// the Bragg Peak location for 150 protons in water when the default cut value is decreased 
+// from 0.02 mm to 0.0002 mm. At best, the Bragg Peak location is shifted 2 mm to higher 
+// values compared to 9.1.p02 version. The new 9.2.p02 version seems to be closer to the NIST 
+// data base.
+// 
+
 defaultCutValue = 0.02*mm;
 //defaultCutValue = histogramManager->GetRangeMax()/histogramManager->GetNbinsRendement()/5.;
-cout << "Cut Value : " << defaultCutValue/mm << " mm " << endl;
 }
 
 G4LPCPhysicsList::~G4LPCPhysicsList()
@@ -457,6 +469,7 @@
 void  G4LPCPhysicsList::DumpInfo()
 {
   G4cout << "<===========================================================================>" << G4endl;
+  G4cout << "Cut Value : " << defaultCutValue/mm << " mm " << G4endl;
   G4cout << "List of particles and proceses : " << G4endl;
  
   theParticleIterator->reset();