Forum: Biasing and Scoring Not Logged In (login)
Show subscribers

Biasing and scoring in Geant4

The email gateway for this forum is: biasing_scoring-g4hn@slac.stanford.edu


Inline Depth:
 0 0
 All All
Outline Depth:
 1 1
 2 2
 All All
Add message: (add)

Question Difference between "GetLocalTime" and "GetProperTime"  by Kyuwon Jung <Kyuwon Jung>,   Dec 02, 17:01
Dear All experts,

Hello experts. I am trying to get a time of a track of protons, so I put the following code

>> G4double LocaTime = aStep->GetTrack()->GetLocalTime();
>> G4cout << "LocalTime:" << LocalTime/second << G4endl;
>>
>> G4double ProperTime = aStep->GetTrack()->GetProperTime();
>> G4cout << "ProperTime:" << ProperTime/second << G4endl;

But I have no idea what is a difference between "Local Time" and "Proper Time".

Could anyone teach me what the difference is?

Thank you,

Kyuwon Jung.

1 None: Re: Difference between   (michel maire - Dec 03, 02:17)
None calculating Photon Absorbed Fraction (AF)  by Jaafar EL Bakkali <Jaafar EL Bakkali>,   Nov 30, 11:23
Hi everyone,

I have a question about how to implement a code required for calculation of Absorbed Fraction (AF) which is defined in MIRD as the fraction of the energy absorbed by a Target Organ that is emitted by a source organ.

Thanks,

Question Excessive deposited energy  by <fceraudo>,   Nov 27, 06:55
Hello everyone,

I am trying to register the energy deposited by protons on a G4VSensitiveDetector. The problem is that I sometimes get a value much higher than the kinetic energy of the incoming particles: for example, a value up to 6 GeV for a 50 MeV proton!

The detector is a 2cm x 3cm x 450 um piece of silicon, the kinetic energy is recorded at the boundary of the volume and the deposited energy is obtained with step->GetTotalEnergyDeposit(), initialized to zero at the beginning of the iterations and summed over the steps. Particles may arrive at any angle and point of the detector. The physics list is FTFP_BERT_HP_EMY.

Does anyone have any idea how to explain this?

Thank you for your help.

Francesco

1 None: Re: Excessive deposited energy   (michel maire - Nov 28, 00:57)
(_ None: Re: Excessive deposited energy   (fceraudo - Nov 28, 02:07)
(_ None: Re: Excessive deposited energy   (michel maire - Nov 29, 01:51)
Question Very Urgent: Obtaining Secondary Particle Energy Spectrum  by Sanchit Sharma <Sanchit Sharma>,   Nov 26, 14:19
Hi,

I am a new Geant4 and C++ user and am doing Neutron irradiations. I need to get an energy binned spectrum of secondary particles. I figured that I need to use a sensitive detector. Can you please provide me some examples/materials/literature of how to implement an S.D. to get Energy spectrums of secondary particles (Gamma).

I am quite desperate for any help I can get.

Regards, Sanchit Sharma

1 Idea: Re: Very Urgent: Obtaining Secondary Particle Energy Spectrum   (fceraudo - Nov 27, 07:00)
Question How can I extract "Stopping power" using SensitiveDetector?  by Kyuwon Jung <Kyuwon Jung>,   Nov 22, 23:15
Dear All experts,

Hi experts. I succeeded to extract "Kinetic Energy" using the following code

> G4double KE = aStep->GetPostStepPoint()->GetKineticEnergy();
> G4cout << "KE:" << KE/MeV << G4endls;
>
> G4String ParName = aStep->GetTrack()
>                    ->GetParticleDefinition()->GetParticleName();
>
> if(ParName == "proton")
> {
>   ofs << KE/MeV << G4endl;
> }

and finished make "KE.out" file too.

Now, I would like to extract "Stopping power" and make it a file, but I have no idea how.

Could you help me to make "Stopping power" data?

Always thank experts,

Kyuwon Jung

Question I want to extract "KE:"  by Kyuwon Jung <Kyuwon Jung>,   Nov 21, 21:26
Dear All experts,

Hi. I am trying to extract "KE:" on a output data and I wrote the code like

> #include "SensitiveDetector.hh"
>
> SensitiveDetector::SensitiveDetector(G4String name)
> :G4VSensitiveDetector(name)
> {
> }
>
> SensitiveDetector::~SensitiveDetector()
> {
> }
>
> void SensitiveDetector::Initialize(G4HCofThisEvent*)
> {
> }
>
> G4bool SensitiveDetector::ProcessHits(G4Step* aStep, G4TouchableHistory*)
> {
>    G4double KE = aStep->GetPreStepPoint()->GetKineticEnergy();
>    G4cout << "KE:" << KE/MeV << G4endl;
> }
>
> void SensitiveDetector::EndOfEvent(G4HCofThisEvent*)
> {
> }

and when I write 'make', the message

"warning: declaration of 'KE' shadows a member of 'this' [-Wshadow]
   G4double KE = aStep->GetPreStepPoint()->GetKineticEnergy();"

is popped up.

And then when I run '/control/execute run.mac' there is no "KE:" on the output data.

How can I extract "KE:" on the data?

I need all your helps and sorry for my bad English,

Kyuwon Jung

1 None: Re: I want to extract   (Marc Verderi - Nov 22, 07:26)
(_ Ok: Re: I want to extract   (Kyuwon Jung - Nov 22, 23:07)
Question Obtaining Gamma Spectrum from Neutrons as a primary  by Sanchit Sharma <Sanchit Sharma>,   Nov 16, 11:27
Hello, I am a new user of Geant4 and will be very grateful for your reply. I have modeled my Active Neutron Interrogation experimental facility(room) and have placed NaI detectors in it. I have a 14.1 MeV neutron source modeled by a General Particle Source. And I am using QGSP_BERT_HP.hh physics for the simulations. 

My aim is to obtain secondary gamma cell flux spectra and gamma energy deposited spectra with energy binning in both cases. As I am fairly new to the Geant4 and C++ world. I would immensely appreciate some guidance from experts on how to accomplish this with ease. 

Also, please let me know how to start leaning about scoring in Geant. 

For my NaI detector, I have registered it as a MultiFunctional detector as shown below:

// Setting NaI FAR as a detector
//  
auto NAIFDetector = new G4MultiFunctionalDetector("NaI-FAR");
G4SDManager::GetSDMpointer()->AddNewDetector(NAIFDetector);

G4VPrimitiveScorer* primitive1;
primitive1 = new G4PSEnergyDeposit("EdepF");
auto particle3 = new G4SDParticleFilter("particle1FilterF");
particle3->add("gamma");
primitive1 ->SetFilter(particle3);
NAIFDetector->RegisterPrimitive(primitive1);

primitive1 = new G4PSTrackLength("TrackLengthF");
auto particle4 = new G4SDParticleFilter("particle2FilterF");
particle4->add("gamma");
primitive1 ->SetFilter(particle4);
NAIFDetector->RegisterPrimitive(primitive1);  

primitive1 = new G4PSCellFlux("CFluxF");
auto particle5 = new G4SDParticleFilter("particle3Filter");
particle5->add("gamma");
primitive1 ->SetFilter(particle5);
NAIFDetector->RegisterPrimitive(primitive1);

SetSensitiveDetector("NaI_FarLV",NAIFDetector);


Thanks very much!


  
None Creating a mesh  by Svetlana Shasharina <Svetlana Shasharina>,   Nov 08, 16:10
I would like to mesh a solid so that I have a more detailed analysis. How can I do this? I do not care if this is a quad or tet mesh. Thank you, Sveta

1 None: Re: Creating a mesh   (Svetlana Shasharina - Nov 08, 16:20)
(_ None: Re: Creating a mesh   (Makoto Asai - Nov 12, 10:12)
None Mesh scoring  by Svetlana Shasharina <Svetlana Shasharina>,   Nov 07, 17:04
Is a G4 mesh a sum of volumes corresponding to mesh cells?

None calculation of energy deposition in sensitive detector in each event  by masume soleimaninia <masume soleimaninia>,   Nov 06, 05:21
Dear Experts, Hello

I want to calculate energy deposition within each event in a matrix with dimensions of 16*64,so I have 1024 cells. do you have any experience which example in Geant4 is better to use?

Thanks in advanced

Question Nameless particles  by <fceraudo>,   Nov 02, 11:17
Hello,

the output of my simulation is a .root file with (more than) a ROOT tree inside, whose branches are composed mostly of doubles, except for one branch with the names of the interacting particles:

G4String name = step->GetTrack()->
      GetDefinition()->GetParticleName();

stored in a

analysisManager->CreateNtupleSColumn(0, "Name");

All the double values are fine, but if I visualize the TBrowser histogram of the branch with the names, I sometimes get columns with no label (i.e. particles apparently without a name). If I import the TTree in ROOT and then print the content of the aforementioned branch with Scan(), I may get blank names as well (this also happens when the associated TBrowser histogram is completely reasonable). Since I also have similar issues importing the strings into Python (the same entries, as far as I can tell), I am starting to think that the problem is with how the data are saved by GEANT4. Are there any precedents?

I have observed this behavior in multiple files, multiple simulations and multiple installations of GEANT4. However, the files have always been written by me (more or less same code, except for geometry and other parts, but almost identical RunAction and SensitiveDetector classes). Am I doing something wrong every time or is this a real issue?

This has become quite a serious issue for me, as I really need to know the distribution of the particles involved in my simulations.

Thank you for your help.

1 None: Re: Nameless particles   (Makoto Asai - Nov 05, 01:30)
Question Scoring with multiple energy bins  by <ElenaN>,   Nov 01, 12:39
I want to score a quantity (e.g. neutron track length in a volume) in many energy bins. So far I had this implemented by iteratively assigning a primitive scorer with a different energy filter for every energy bin. This worked fine. However, in a new problem I now have a large number of detector volumes and this multiplied with the number of energy bins leaves me with a huge number of primitive scorers which causes a crash with segmentation fault (it works when I reduce the number of detector volumes).

I am now wondering if there's a solution for this problem and if what I've been doing so far is even the proper way to go about this. The way the iteration through the hitsMap is set up led me to believe there might be a way to set up a primitive scorer so that it detects more than just one single quantity. Is that the case? Either assigning multiple volumes or multiple energy bins would help me.

1 None: Re: Scoring with multiple energy bins   (Makoto Asai - Nov 05, 01:33)
Question How to score secondary neutron ??  by Arghya Chattaraj <Arghya Chattaraj>,   Sep 19, 20:16
Hi,
  I am beginner in Geant4. I want to get number of secondary neutron due to incident proton beam (250 MeV pencil beam) on a cylindrical target. I used Multifunctional detector and neutron filter like below
  auto Detector10 = new G4MultiFunctionalDetector("dect_10");
  G4SDManager::GetSDMpointer()->AddNewDetector(Detector10);
 G4VPrimitiveScorer* primitive;
  //primitive = new G4PSTrackLength("TrackLength");
  primitive = new G4PSSphereSurfaceCurrent(psName="Current", fCurrent_In);
  //primitive = new G4PSPassageCellCurrent(psName="Current", fCurrent_In);
  primitive ->SetFilter(neutronFilter);
  Detector10->RegisterPrimitive(primitive);  
  SetSensitiveDetector("detc10LV",Detector10); 
I am getting some score but with RMS value almost 10 times higher than mean value of neutron . I used "FTFP_BERT" physics. Here I am attaching my Detectorconstuction.cc, eventaction.cc and runaction.cc

(Note: I have edited example/basic/B4d according to my requirement.)

Kindly give me some suggestion in this regards that where is the problem ? Need your expert opinion on this please.

Question How to count how many of particles hit my volume?  by Rafaela Ramos <Rafaela Ramos>,   Sep 14, 07:38
Dear all,

I am a beginner in GEANT4 and I would like to know how I can count how many optical photons are hitting my volume? I have a geometry like trapezoid and I generate some number of optical photons and I want to know how many are hitting the base?

Any advice would be appreciated.

Best regards.

None can we define more than one scoring volume in exampleB1?  by masume soleimaninia <masume soleimaninia>,   Sep 13, 00:01
Dear Experts, Hello

I want to define 2 scoring volumes in example B1 separately and I want to calculate energy deposition in each of them. I did it without any errors, but the energy deposition in my code in the two scoring volumes is the same. I mean the code didn't distinguish any difference between the two volumes. if anyone has experience in this work, please help me.

thanks

1 None: Re: can we define more than one scoring volume in exampleB1?   (michel maire - Sep 13, 03:50)
(_ None: Re: can we define more than one scoring volume in exampleB1?   (masume soleimaninia - Sep 13, 19:28)
None Warning when I use enforced interaction biasing technique  by Ruirui <Ruirui>,   Sep 08, 13:38
Dear Geant4 experts,

I tried to simulate the antigrid shielding of the CT system. The anti-grids are very thin plates for blocking the scattered gamma ray. The thickness of these plates only is 80 microns. So it is hard to capture the interactions inside the plate. I tried to use the enforeced interaction biasing technique to enforce the interaction in the thin plates. I basically copy the idea from example of GB02. But I alawys find a weried warninig as below. Do not know why, anyone has some idea about this warning?

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : BIAS.GEN.19
      issued by :  G4BOptrForceCollisionTrackData::~G4BOptrForceCollisionTrackData()
Track deleted while under G4BOptrForceCollision biasing scheme of operator `ForceCollisionForgamma'. Will result in inconsistencies.
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

1 None: Re: Warning when I use enforced interaction biasing technique   (Marc Verderi - Sep 08, 22:10)
(_ None: Re: Warning when I use enforced interaction biasing technique   (Ruirui - Sep 09, 08:30)
(_ None: Re: Warning when I use enforced interaction biasing technique   (Marc Verderi - Sep 09, 23:33)
(_ None: Re: Warning when I use enforced interaction biasing technique   (Ruirui - Sep 10, 07:29)
Question Scoring output   by Snezana Petrovic <Snezana Petrovic>,   13 Jun, 2018
Hi all,

I am scoring neutrons via flatSurfaceCurrent, but I am not sure what my output means. Can somebody please explain me. I am not sure what total(value) , total(val^2) and entry means.

# mesh name: boxMesh_1
# primitive scorer name: neutronFlux
# iX, iY, iZ, total(value) , total(val^2), entry

Thank you!

Question Non Ionizing Energy Loss (NIEL) and Displacement Damage  by <jeonyboy@gmail.com>,   21 May, 2018
Hello, I am trying to gather information of NIEL and displacement damage from Geant4 simulations. I am trying to shoot neutron particles on a variety of materials such as Hafnium Dioxide and silicon dioxide.

From what I've discovered, there is a GetNonIonizingEnergy function which I tried to use in TestEm7. However, for neutrons, I am getting 0 value returned for nonionizing energy deposit. How do I remedy this?

Also, when I run example such as Hadr07, I can get a list of secondary particle created along with their min and max energies. Can I understand the secondaries as result of displacement damage? (See attached file).

Thank you so much in advance. I couldn't find much information about this matter on geant4 and any help would be much appreciated.

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2018/05/21/08.59-28272-ronOnHfO2_Secondaries.png

1 Feedback: Re: Non Ionizing Energy Loss (NIEL) and Displacement Damage   (Michael H. Kelsey - 22 May, 2018)
(_ Question: Re: Non Ionizing Energy Loss (NIEL) and Displacement Damage   (jeonyboy@gmail.com - 06 Jun, 2018)
(_ Idea: Re: Non Ionizing Energy Loss (NIEL) and Displacement Damage   (Vladimir Ivanchenko - Jul 04, 05:45)
None Scoring using parallel world  by elnaz yazd <elnaz yazd>,   09 May, 2018
I am computing dose profile by readout Geometry (G4Parallel world). The mass geometry is a world and phantom and a detector inside phantom. I defined a parallel world and a phantom and detector inside it with dimensions equal with the mass ones. I checked the geometries by /vis/drawVolume worlds command in vis.mac file. They are Ok. Then I define a sensitive and a hit class to score edep and positions in ProcessHits method of sensitive class. Also I assigned the sensitive class to logical volume of detector in ConstructSD() method of parallel world as following:

void MRTParallelWorld::ConstructSD()
{
  G4String detectorSDname = "/mydet/dosimeter";
  RE05TrackerSD * detectorSD = new RE05TrackerSD(detectorSDname);
  G4SDManager::GetSDMpointer()->AddNewDetector(detectorSD);
  SetSensitiveDetector(logicDetectorRO,detectorSD);
  //G4cout<<" Function ConstructSD() is called edep is:  "<<G4endl;
}

my problem is that, the ProcessHits method is not called during executing application and my root file is empty. this sensitive detector works when I assign it to detector of real mass world. What can be problem?. with Best Regards, Yazdan

Question Try to get X ray production direction but angle seem to be wrong  by HuangHong <HuangHong>,   03 May, 2018
Dear all, I want simulate the electron bombard the target(tungsten)to produce X ray, I want to get the direction of X ray production.Details are described in the attachment.

I use the momentum to get the angle, codes likes blow:

G4ThreeVector direction = track->GetMomentumDirection(); G4double theta = direction.theta(); G4double phi = direction.phi();

Question 1: The result of theta is as follows(see attachment), we can see there is no X ray production in the 0 degree and 180 degree. Do I wrong to use the Momentum to get the X ray production direction?

Question 2: Where is the reference point for the MomentumDirection? Is it in relation to the interacting electron vector at the point of photon generation or something else entirely?

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2018/05/03/14.50-22901-n_of_X_ray_production.pdf

1 Feedback: Re: Try to get X ray production direction but angle seem to be wrong   (Michael H. Kelsey - 04 May, 2018)
(_ None: Re: Try to get X ray production direction but angle seem to be wrong   (HuangHong - 04 May, 2018)
Question The concept of voxelization  by Huagang Yan <Huagang Yan>,   02 May, 2018
Hi, experts, I constructed the geometry with the built-in functions of Geant4, such as G4Sphere. I scored the dose with a meshbox (a 101x101x101 matrix). Can I say that the model is voxelized? I understand that if I use a DICOM images to build the geometrical volume, it must be voxelized. I just need a clear concept of voxelization.

Any comment is greatly appreciated.

Question scoring particles traversing a plane  by Balder <Balder>,   23 Apr, 2018
Hi, I'm trying to score the energy of the particles when they traverse a plane. My geometry consists of a cube of water and I irradiate it using a proton beam. I'd like to score the energy of the electrons at a certain depth of the phantom but as my plane is not at a boundary, I'm not sure how to achieve that goal. I'd really appreciate any help about it. Regards.

1 None: Re: scoring particles traversing a plane   (Tom Roberts - 23 Apr, 2018)
1 Agree: Re: scoring particles traversing a plane   (Balder - 25 Apr, 2018)
2 None: Re: scoring particles traversing a plane   (Makoto Asai - 24 Apr, 2018)
Question rdecay02 - how to collect energy from gamma rays ?  by Hubert Chiron <Hubert Chiron>,   20 Mar, 2018
Hello dear workers of Geant4

I wish to use rdecay02 with geant4-10.4. and with G4GeneralParticleSource.

But when I am looking for energies from gamma rays in the detector, I never saw them. I simulate 137Cs and never I see the 661 keV. I have noticed that in the Run.cc there is in the EnoOfRun() method, a G4cout to resume the run with the energy of the nucleus but it is not possible to modify the energy in the mac file with /gps/ene/mono or /gps/energy.

So I notice that in the same method I have a line "compute mean Energy deposited and rms in detector" and I don't understand how the fEdepDetect is compute.

Therefore, with /tracking/verbose 2 I see very well the gammas through the detector.

How can I solve this problem ?

Best regards

Hubert

1 None: Re: rdecay02 - how to collect energy from gamma rays ?   (Hubert Chiron - 21 Mar, 2018)
Question Forced Collision in daughter volumes  by Youming Yang <Youming Yang>,   01 Mar, 2018
Hello Geant4 community,

I could not find much documentation on forced collisions, so I would just like to inquire here:

I am attempting to perform a reweighting of a photon as it flies through a geometry that contains daughter volumes, and utilize the forced collision class to properly calculate the reweighting given interactions that could have occurred.

If I apply forced collisions to the mother volume, the particle will: 1. clone when entering biasing volume (one particle will free-flight, other will force collide) 2. Exit biasing when entering daughter volume (do whatever it needs to do in this volume) 3. Clone when re-entering mother volume, again one particle will free-fly and other will collide

In the above, ray-tracing cannot be gauranteed in daughter volume at step 2.

If I apply forced collision to just the daughter volume, then ray-tracing cannot be gauranteed in the mother volume itself.

When I try to apply forced collisions to the mother _and_ daughter volume, I see this warning message:

 >  *********************************************************************************************************
 >  * G4Track Information:   Particle = gamma,   Track ID = 2,   Parent ID = 1
 >  *********************************************************************************************************
 >  
 >  Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
 >      0        0        0      -10         1        0        0       490    >  test.phys initStep
 >  Proposing biasing operation SharedForceInteraction
 >  Proposing biasing operation SharedForceInteraction
 >  Operation applied SharedForceInteraction
 >  Operation applied SharedForceInteraction
 >      1        0        0     -9.9         1        0      0.1       490  test1.phys Transportation
 >  Proposing biasing operation SharedForceInteraction
 >  Proposing biasing operation SharedForceInteraction
 >  Proposing nonphysics biasing operation Cloning
 >  Operation applied Cloning
 >  Operation applied SharedForceInteraction
 >  Operation applied SharedForceInteraction
 >      2        0        0     -9.9         1        0        0       490  test1.phys biasWrapper(0)
 >      3        0        0      9.9         1        0     19.8       510   test.phys Transportation
 >  Proposing nonphysics biasing operation Cloning
 >  Operation applied Cloning
 >      4        0        0      9.9         1        0        0       510   test.phys biasWrapper(0)
 >  Proposing biasing operation FreeFlight-compt
 >  Proposing biasing operation FreeFlight-phot
 >  
 >  -------- WWWW ------- G4Exception-START -------- WWWW -------
 >  *** G4Exception : BIAS.GEN.05
 >        issued by :  G4BOptnForceFreeFlight::ApplyFinalStateBiasing(...)
 >   Initial track weight is null !
 >  
 >  *** This is just a warning message. ***
 >  -------- WWWW -------- G4Exception-END --------- WWWW -------
 >  
 >  Operation applied FreeFlight-phot
 >  
 >  -------- WWWW ------- G4Exception-START -------- WWWW -------
 >  *** G4Exception : BIAS.GEN.05
 >        issued by :  G4BOptnForceFreeFlight::ApplyFinalStateBiasing(...)
 >   Initial track weight is null !
 >  
 >  *** This is just a warning message. ***
 >  -------- WWWW -------- G4Exception-END --------- WWWW -------
 >  
 >  Operation applied FreeFlight-compt
 >      5        0        0       10         1        0      0.1       510       World Transportation
 >  Exiting Biasing.
 >  Exiting Biasing.
 >  Exiting Biasing.
 >  Exiting Biasing.
 >  Exiting Biasing.
 >      6        0        0    1e+04         1        0 9.99e+03  1.05e+04  OutOfWorld Transportation
 >  
 >  *********************************************************************************************************
 >  * G4Track Information:   Particle = gamma,   Track ID = 16,   Parent ID = 2
 >  *********************************************************************************************************

I am wondering if this behavior is known/intended?

thank you in advance. Ming

1 None: Re: Forced Collision in daughter volumes   (Marc Verderi - 01 Mar, 2018)
(_ None: Re: Forced Collision in daughter volumes   (Youming Yang - 02 Mar, 2018)
Question Problem with G4PSPopulation.cc (Population Scorer)  by Michael McManus <Michael McManus>,   01 Mar, 2018
Hi all,

I was wondering if anyone could clarify the definition of "population" as a scoring quantity. I have tried to score the 2D particle position distribution on a square surface from a point source of geantinos with a theta angle set to 10 degrees, but I do not get the expected uniform distribution. However, I get the expected distribution when scoring cellFlux. I have looked at G4PSPopulation.cc although I am not certain what the code is actually producing.

Thanks in advance,

Michael McManus

None defining of the sensitive detectors in SteppingAction  by masume soleimaninia <masume soleimaninia>,   21 Feb, 2018
Dear Experts, Hello

I want to simulate a microelectronic structure and to expose it with protons.It has a region called sensitive region which has two separate sections in my structure. one is a repeated squares filled with Si & SiO2 and bottom of them there is a layer composed of just Si,(both of parts are sensitive regions). there are a number of layers above the sensitive region and I just want to know the deposited energy in sensitive regions. I used example of B1 to make this structure. please tell me what should I put instead of Scoring Volume in Stepping Action? I attached a part of the program in the following which I commented the redundant layers in them. I mean it is just defined for sensitive region. I hope I could clarify the question.

Thanks in advance

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2018/02/21/04.22-20075-B1DetectorConstruction.hh
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2018/02/21/04.22-79268-B1SteppingAction.hh
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2018/02/21/04.22-30732-B1DetectorConstruction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2018/02/21/04.22-2128-B1SteppingAction.cc

Question Best way to score radially symmetric quantities  by William Donahue <William Donahue>,   27 Jan, 2018
Hi,

I am embarking on a radial dose model validation study and would like to find the best way to score doses radially.

Basically, I want to score in r and z but not theta. I am planning on using the multi-threaded kernel so I can't decide if I want to use the command-based scoring or a sensitive detector. I eventually want to score things like LET and other quantities so I need it to be flexible. Additionally I would like to score the central core of the track separately, preferably only with primaries.

If someone could point to a good direction, with a little bit of a starting hint that would be great. I am very comfortable with C++ so the coding shouldn't be an issue.

My thoughts so far have been

1) Command based scoring: but the inputs of the command are ambiguous for cylindrical volumes.

2) Construct many ring like geometries in r and depth, and assign each a primitive scorer. This seems a little time consuming, even with replicas. Also keeping track of all the scorers could be a pain.

3) Do a hit collection and post process at end of run. This might be a pain because then I have to deal with the calculations of correctly distributing the dose into my sub-volumes.

4) Step based scoring. Once again need to deal with all the dose distributions in each step across my boundaries.

So if you have any suggestions on which way is most efficient please elaborate more. Expanding/explaining techniques to implement one of my thoughts is a good place to start too.

Thanks,

William Donahue

1 None: Re: Best way to score radially symmetric quantities   (michel maire - 28 Jan, 2018)
Question Scoring in G4Tubs Cylinder type Volume  by Marian Lückhof <Marian Lückhof>,   24 Jan, 2018
Hello Everyone,

I am new to Geant4 and have a question regarding scoring volumes. I created an example of a photon beam entering a cylinder at one end (front face) and would like to apply a simple scoring task, to count the entering photons on that surface. That brought me to G4PSCylinderSurfaceCurrent.

My detector implementation:

G4VSolid* tubeSolid = new G4Tubs("scoring tube",
		  	  	 0.*cm,
			 	 20.*cm,
				 25.*cm,
				 0.*deg,
				 360.*deg);

fScoreLogical = new G4LogicalVolume(tubeSolid,
		  	  	    air,
				    "tubLog");

new G4PVPlacement(0,				// Rotation of 90 deg
  		  G4ThreeVector(0., 0., 35.*cm),// translation
  		  fScoreLogical,		// its logical volume
  		  "tubePhysical",		// its name
  		  fpWorldLogical,		// mother volume
  		  false,			//
  		  0);				// copy number

G4SDManager* manager = G4SDManager::GetSDMpointer(); G4MultiFunctionalDetector* detector = new G4MultiFunctionalDetector( "MyDetector" );

manager->AddNewDetector( detector ); fScoreLogical->SetSensitiveDetector( detector ); G4PSCylinderSurfaceCurrent * scorer = new G4PSCylinderSurfaceCurrent( "photonScorer", fCurrent_In );

G4SDParticleFilter * photonFilter = new G4SDParticleFilter( "photonFilter" ); photonFilter->add( "gamma" );

scorer->SetFilter( photonFilter ); detector->RegisterPrimitive( scorer );

And I record the event as such:

void BeamTestRun::RecordEvent(const G4Event* anEvent)
{
  numberOfEvent++; 

  // Get the hits collection
  G4HCofThisEvent* eventHitCollection = anEvent->GetHCofThisEvent();

  if ( !eventHitCollection ) {
	  G4cout << " *** Warning: no hits collection!" << G4endl;
	  return;
  }

  // Update our private fMap
  // iter is the iterator, starting at the first element of fMap
  //
  std::map< G4int, G4THitsMap<G4double>* >::iterator iter = fMap.begin();

  // as long as iterator does not reach the end of fMao
  //

  while ( iter != fMap.end() ) {
    G4int id = iter->first;
    G4cout << " * iterating through fMap" << " " << id	<< G4endl;

    // Get the hit collection corresponding to "id"
    //
    G4THitsMap<G4double>* eventHitsMap
		= dynamic_cast< G4THitsMap<G4double>* >( eventHitCollection->GetHC(id) );

    // Expect this to exist
    //
    assert ( 0 != eventHitsMap );
    G4cout << " -------- HitsMap SUMMARY -------- "	<< G4endl;
    eventHitsMap->PrintAllHits();
    G4cout << " -------- --------------- -------- "	<< G4endl;

    // Accumulate event data into our G4THitsMap<G4double> map
    //
    *( iter->second ) += *eventHitsMap;

    iter++;
  }
}

My naive assumption would be, that if a beam of 10 photons hits the front face of the cylinder, the count would be 10, normalized to the surface area. However, it is 0. The HitsMap summary gives 0 entries. Repeating this example with a box as sensitive detector and G4PSFlatSurfaceCurrent, results in the expected outcome of the counter with an entry in the hitsmap.

I hope, that someone can push me into the right direction. Is there something wrong with the setup/readout? Or maybe me understanding of the scorer G4PSCylinderSurfaceCurrent is wrong. Repeated tests with the source inside the cylinder and photons hitting the inner surface (not the front face) also gave a result of 0. If additional code is required to solve this, please ask.

Many thanks in advance!

None Bias first, but only first, interaction?  by Jason Brodsky <Jason Brodsky>,   18 Jan, 2018
I would like to simulate a population of MeV-scale gammas that undergo photoelectric effect or Compton scatter at a particular location. In other words, I would like to control the first interaction of these gammas, forcing it to be at a particular location, but would like the simulation to proceed normally after that first interaction.

Is there a good way to go about this? Things I have considered:

G4PhotoElectricEffect::SetCrossSectionBiasingFactor(1e12); (similar for the Compton process) This will force the gamma to interact essentially instantly. I can generate gammas at the desired location and they will definitely interact there. However, this also affects the physics after the first interaction (relevant for Compton scatters, Bremsstrahlung, etc.).

Geometric biasing: kill all gammas that leave the desired interaction location before the first interaction. This has the disadvantage that I will simulate many events and keep few of them. It saves time compared to no biasing, but probably not enough.

Custom primary generator: Do not use GPS to make gammas, but instead write a custom generator that will begin the event with the correct products of the first gamma interaction. This would be the most desirable outcome, but my understanding is that I'd have to write my own code for the photoelectric/Compton behavior of the first interaction before letting the existing G4 p.e./Compton processes take over once tracking begins.

1 None: Re: Bias first, but only first, interaction?   (Marc Verderi - 02 Feb, 2018)
(_ None: Re: Bias first, but only first, interaction?   (Marc Verderi - 02 Feb, 2018)
Question Clarification about use of GetPre/Post Step Point at boundaries  by Francesco Collamati <Francesco Collamati>,   09 Dec, 2017
Hello everybody! I realised I have a simple but deep doubt regarding the difference there is among the quantities related to PreStepPoint and PostStepPoint. I clarify my doubt with a simple example: I have a beta emitting source, and I want to store characteristics( namely: X, Y, Z, Directive cosines XYZ and Energy) of electrons that enter my detector (placed just above the source volume). For this purpose I've developed a UserSteppingAction in which I simply ask "if(ThisVol->GetName()=="Source" && NextVol->GetName()=="Detector") { [store stuff] }"

I've red that since the step ends at the boundary of the new volume, for XYZ position I should use GetPostStepPoint.. right. My doubt is instead regarding the cosines: after several trials, I have the "impression" that using step->GetPostStepPoint()->GetMomentumDirection().getX() my particles seem to have already suffered by Multiple Scattering in the detector volume IN THE FOLLOWING INTERACTION, while I am willing to store the angle with which the particles enter the detector itself!

Something similar goes on with the energy.. Which point should I use to have the energy my electrons will have available to spend in the detector? thanks!

1 None: Re: Clarification about use of GetPre/Post Step Point at boundaries   (Alexey Solovyev - 14 Dec, 2017)
Question Plot neutron capture Cross Section of He3  by Neo <Neo>,   26 Oct, 2017
Hello everyone, I want to get neutron capture cross section of He3 from thermal to several MeV by Geant4. I have tried to study for long time but I found no way to resolve that problem. Can you suggest me some ideas or any reference example?

Many thanks.

1 None: Re: Plot neutron capture Cross Section of He3   (Marc Verderi - 27 Oct, 2017)
(_ None: Re: Plot neutron capture Cross Section of He3   (Neo - 30 Oct, 2017)
Question Variance reduction  by smr.srsd <smr.srsd>,   11 Oct, 2017
Hi, I want to apply the variance reduction on particle weight, what should i do ? Who can help me?

1 None: Re: Variance reduction   (Marc Verderi - 18 Oct, 2017)
(_ None: Re: Variance reduction   (smr.srsd - 19 Oct, 2017)
(_ None: Re: Variance reduction   (Marc Verderi - 23 Oct, 2017)
Question Neutron energy deposit on hafnium dioxide  by <jeonyboy@gmail.com>,   02 Oct, 2017
Hello all,

I am trying to figure out neutron energy deposit for energies from low to high (1~200 MeV) in a hafnium dioxide box the size of 5x10x10 nm^3. I am using a B4d based program, however I get no energy deposits no matter what I try. I tried setting the set/cut to 1um but no changes still. Am I missing something?

1 Idea: Re: Neutron energy deposit on hafnium dioxide   (Michael H. Kelsey - 02 Oct, 2017)
1 Question: Re: Neutron energy deposit on hafnium dioxide   (jeonyboy@gmail.com - 03 Oct, 2017)
2 None: Re: Neutron energy deposit on hafnium dioxide   (michel maire - 04 Oct, 2017)
1 None: Re: Neutron energy deposit on hafnium dioxide   (jeonyboy@gmail.com - 07 Oct, 2017)
(_ None: Re: Neutron energy deposit on hafnium dioxide   (michel maire - 09 Oct, 2017)
1 None: Re: Neutron energy deposit on hafnium dioxide   (jeonyboy@gmail.com - 09 Oct, 2017)
... 1 Message(s)
2 None: Re: Neutron energy deposit on hafnium dioxide   (jeonyboy@gmail.com - 10 Oct, 2017)
... 3 Message(s)
Question Importance store after geometry update  by Michael Carson <Michael Carson>,   28 Sep, 2017
Following example B01 I create an importance store in DetectorConstruction using AddImportanceGeometryCell() for different physical volumes. The code runs without issue. After changing a physical volume dimension (during run time via a messenger class) and a ReinitializeGeometry(), the code seg faults with:

#0  0x00002aaaaed66721 in operator<<(std::ostream&, G4GeometryCell const&) () from ~/geant4/geant4.10.01.p01-install/lib/libG4geometry.so
#1  0x00002aaaaed66614 in operator<<(std::ostream&, std::map<G4GeometryCell, double, G4GeometryCellComp, std::allocator<std::pair<G4GeometryCell const, double> > > const&) ()
   from ~/geant4/geant4.10.01.p01-install/lib/libG4geometry.so
#2  0x00002aaaaed67938 in G4IStore::GetImportance(G4GeometryCell const&) const () from ~/geant4/geant4.10.01.p01-install/lib/libG4geometry.so

It looks like the cell importance can't be determined.

Do I need to re-build the importance store after a geometry update? If so, how?

Question Is there a method to format the output from command line scoring  by Huagang Yan <Huagang Yan>,   27 Sep, 2017
Hi experts,

The .csv output from /score/dumpQuantityToFile is quite verbose and consumes large amount of memory. As a result, when I simulate using ~10^7 photons, I cannot output data with 100*100*100 matrix, but can with 100*100*50 matrix. Is there a way to format the data in the .csv file?

Thanks.

Huagang.

1 Idea: Re: Is there a method to format the output from command line scoring   (Tim Meehan - 28 Sep, 2017)
(_ Ok: Re: Is there a method to format the output from command line scoring   (Huagang Yan - 30 Sep, 2017)
Question A simple question: what is meaning of "entry"?  by Huagang Yan <Huagang Yan>,   26 Sep, 2017
I am using meshBox to score the dose. The result is dumped to a .csv file. I wonder what is the meaning of "entry", i.e., the last column. I assume it is the copy number of the physical volume to which the corresponding cell belongs.

The version I am using is Geant4.10.03.p02. Linux platform.

Thanks.

1 Idea: Re: A simple question: what is meaning of "entry"   (Tim Meehan - 28 Sep, 2017)
(_ Ok: Re: A simple question: what is meaning of   (Huagang Yan - 30 Sep, 2017)
None Overlapping scoring mesh effects energy deposit?  by David Takacs <David Takacs>,   25 Sep, 2017
I have a 3 scoring mesh set up in the origin of my world. On the XY, XZ, and YZ planes.They overlap. Initially I thought this would not effect the energy deposited in them but after plotting the results there is a visual cross in the place where the planes overlap.

Has anyone encountered such problems before?

Screenshot of results: 
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2017/09/25/10.31-27986-xy_coll0_C.PNG

1 Question: Re: Overlapping scoring mesh effects energy deposit?   (Juliana Cristina Martins - 05 Feb, 2018)
Question How to add another sensitive detector type to the command-based scoring system?  by Tim Meehan <Tim Meehan>,   13 Sep, 2017
Hi - I would like to try to add a new sensitive detector type to the command-based scoring system.
I figured that a good place to start would have been G4ScoringManager.cc, but I am only beginning to get familiar with the layout of the source code.

I also wasn't sure how to add my sensitive detector class so that the macro command would pick it up, like below (where my type would be "doseInRem"):
...
/score/quantity/doseInRem dosemap
...

Any advice would be appreciated ...
Thanks
1 Note: Re: How to add another sensitive detector type to the command-based scoring system?   (Tim Meehan - 14 Sep, 2017)
2 Note: SOLVED: How to add another sensitive detector type to the command-based scoring system?   (Tim Meehan - 21 Sep, 2017)
Question Cross-section Biasing Weights  by <ljb>,   17 Aug, 2017
Hi,

I'm interested in cross-section biasing and have been testing it out with the example GB01. I've modified the code slightly; just to record some hit information in the target. The only biasing I'm applying is a 2x scaling of the cross-section, and only for neutrons.

When I look at the particle weights (recorded for each particle step in the target), there is a distribution of weights that includes values > 1.

This is surprising to me; I thought the weight would be set by (unweighted process cross-section)/(weighted process cross-section). If that's true then there should be events that are weighted by 0.5 (neutron interactions), and events that are weighted by 1 (non-neutron interactions), and any multiple of 0.5 (for successive neutron interactions). So why are there weights > 1?

Lindsey.

1 None: Re: Cross-section Biasing Weights   (Marc Verderi - 21 Aug, 2017)
(_ Ok: Re: Cross-section Biasing Weights   (ljb - 22 Aug, 2017)
(_ None: Re: Cross-section Biasing Weights   (Marc Verderi - 23 Aug, 2017)
1 Question: Re: Cross-section Biasing Weights   (ljb - 28 Aug, 2017)
1 None: Re: Cross-section Biasing Weights   (Marc Verderi - 28 Aug, 2017)
2 Ok: Re: Cross-section Biasing Weights   (ljb - 28 Aug, 2017)
3 Ok: Re: Cross-section Biasing Weights   (ljb - 28 Aug, 2017)
None command based scoring problem  by Huagang Yan <Huagang Yan>,   13 Aug, 2017
We are using a box mesh (command-based scoring) to calculate the dose distribution of a complex structure, in which there are many irregular volumes and the mesh may cross several volumes. When the number of primary photons was small, everything went well.

However, when the number of photons was about 50000 or more, and the bins of boxmesh were something like 100 × 100 × 2, the program cannot output score files, it is like lasting forever. However, the usage of CPU had gone down which indicated that the simulation of physics processes might have ended, but it couldn't completely finish and no score files were generated.

We don't think this is a problem of the RAM size or disk space of our computer (64GB RAM), because when we set the number of bins to 100×100×2, it couldn't work, but if we set it to 1000×1000×1, it worked (the overall size of the mesh is the same)! Strangely, when we adjust the size of the mother volume of the structure, the maximum number photons at which the program can run smoothly varies a lot, even not in a monotonous pattern.

We noticed an error message:

.... G4ScoringMessenger::MeshBinCommand - G4ScoringBox ERROR: No current scene. Please create one.

Is the error related to the problem? How to correct it?

Any help is greatly appreciated.

1 None: Re: command based scoring problem   (Huagang Yan - 13 Aug, 2017)
Question Ambiguous hit collection  by Noah Steinberg <Noah Steinberg>,   20 Jun, 2017
Hello, I have looked through these forums and found several people asking this question but have found no solutions.

In my Geant4 simulation I have 2 different types of sensitive detector classes, TgtSD and ScintillatorSD. In my DetectorConstruction file I have created a target and scintillator bars, I attach a TgtSD to my target, and a ScintillatorSD to my scintillator bars like this:

    G4String TargetSDname = "g4PSI/" + label_;
    G4VSensitiveDetector* TargetSD = SDman->FindSensitiveDetector(TargetSDname);
    if (TargetSD == NULL) {
        TargetSD = SD_target_ = new g4PSITargetSD(TargetSDname, label_ + "_Collection", min_p_, min_theta_);
        SDman->AddNewDetector( TargetSD );
    };

    if (target_log_) target_log_->SetSensitiveDetector( TargetSD );

    G4String ScintSDname = "g4PSI/ScintillatorPost" + label_;
    G4VSensitiveDetector* PostSD = SDman->FindSensitiveDetector(ScintSDname);
    if (PostSD == NULL) {
        PostSD = SD_post_ = new g4PSIScintillatorSD(ScintSDname, 4, label_ + "_Collection" );
        SDman->AddNewDetector( PostSD );
    };

    if (scintplane_log_) scintplane_log_->SetSensitiveDetector( SD_post_);

Now everything works correctly, my sensitive detector info is correctly written out to a ROOT file with all appropriate information, but I get this message for every single event

    <TGT_Collection> is ambiguous.

I think this has something to do with me using the same hit_collection for both sensitive detectors, but I am not sure. Any help would be appreciated. Thank you.

1 Idea: Re: Ambiguous hit collection   (Tim Meehan - 20 Sep, 2017)
None Example B1 scoring volumes  by Tim Fulcher <Tim Fulcher>,   29 May, 2017
Hi all, is there way to set both volumes in example B1 as separate scoring volumes?

TIA

Tim

1 Idea: Re: Example B1 scoring volumes   (Tim Meehan - 20 Sep, 2017)
Question How to calculate the deposited energy in a material of a mixture  by Kevin Fu <Kevin Fu>,   17 May, 2017
Hi all,

Currently I am trying to model a gas detector, which contains a mixture of two gases: a scintillator and hydrogen. If I use the G4MultiFunctionalDetector, it is the energy deposited in the logical volume is calculated, i.e., the energy deposited in the gas mixture. Is there a way to just calculate the deposited energy in the scintillator?

Any idea would be appreciated. Thanks.

1 Agree: Re: How to calculate the deposited energy in a material of a mixture   (Synthex - 18 May, 2017)
(_ None: Re: How to calculate the deposited energy in a material of a mixture   (Kevin Fu - 04 Jun, 2017)
None G4AnalysisManager -> uneven bins  by <Synthex>,   10 May, 2017
Dear all;

I modified the B3 example so fit my needs, with a SensitiveDetector filling a 1D histogram in RunAction (no HistoManager.cc). The tracked quantities are step lengths and energy at entrance of neutrons.
I want to implement uneven bins (for instance using the Buggle energy group), but the following method seems static:
(in B3RunAction::BeginOfRunAction)

  G4AnalysisManager* analysisManager = G4AnalysisManager::Instance();
  analysisManager->SetVerboseLevel(1);
  analysisManager->SetFirstHistoId(1);

  //Create a 1d histo

  analysisManager->CreateH1("1", "Step Lengths", 200, 0., 4.);
  analysisManager->CreateH1("2", "Energy distribution",
                  100, 0.001, 10000000
                  );
  // Create a new output file
  analysisManager->OpenFile("NS");

The user documentation, chapter 9.2.3.1 mentions log scales and custom bin edges, but the Histogram is invoked in a different procedure:

G4int CreateH1(const G4String& name, const G4String& title,
                 const std::vector<G4double>& edges,
                 const G4String& unitName = "none",
                 const G4String& fcnName = "none");)


I cannot find any example using the latter histogram generation method, can anyone send me a .cc or an example?

Thank you very much

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2017/05/10/04.36-42099-B3RunAction.cc
None Geometrical bias  by Adam Geva <Adam Geva>,   31 Mar, 2017
Hi, I am trying to simulate gamma transfer through water and bone, attached snapshots of the simulation geometrical setup: blue and white boxes are water and bone. Gray panels are x-ray detectors.

As seen in snapshot 2 (attached), when generating 100 gamma particles the majority are back-scattered away from the detectors. Clearly a biasing technique should be implemented.

Any suggestion or example on how to force these rare events? I read the documentation and the most relevant solution I found was using force-flight, however, I could not find any examples that implement it.

Any advise would be very appreciated as I am new to this tool.

Thanks, Adam

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2017/03/31/05.51-57477-1.png
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2017/03/31/05.51-83404-2.png

None Simple X-Ray detector  by Adam Geva <Adam Geva>,   30 Mar, 2017
Hello G4 Users!

I am new to this comprehensive tool and would like to get some advise on the following project:

I would like to simulate (in the most simplistic way) a flat panel x-ray detector response to x ray radiation that transports through a certain material. regarding the detector - should I use a mesh scorer and record incoming tracks of gamma particles? or is it better to create replications of sensitive detectors that are constructed in a grid and record hits within them?

I am happy to hear other suggestions/ links to helpful examples Thanks a lot, Adam

Question Splitting problem for secondary generated by RadioactiveDecay process  by Min Cheol Han <Min Cheol Han>,   06 Mar, 2017
In simulation code, I have used a spitting technique by using USERBiasingOperation and USERBiasingOperator class derived from G4VBiasingOperation and G4VBiasingOperator, respectively. However, when a particle meets RadioactiveDecay process, the weight of secondaries generated by RadioactiveDecay process is initialized, that is, the weight value of secondaries is set to 1, regardless of the perent's weight value.

Could you check the source code to address this problem???

1 None: Re: Splitting problem for secondary generated by RadioactiveDecay process   (Asai, Makoto - 06 Mar, 2017)
Question Bug report about cylinderMesh  by Huagang Yan <Huagang Yan>,   02 Mar, 2017
I used cylinderMesh in my simulation. In a uniform field of radiation, when I change /score/mesh/nbin 1 1 1 to /score/mesh/nbin 1 n m, where m is greater than 1 and n can be any positive integer, the scored dose is nearly halved. However, /score/mesh/nbin k n m gives approximate dose to that of /score/mesh/nbin 1 1 1 as long as k is greater than 1.

Question Scoring electrons depends on StepMax   by Ibrahim <Ibrahim>,   16 Feb, 2017
Dear geant4 users,

Scoring electrons emanating from a sample and reaching a pixelated detector is affected by StepMax and in particular very small StepMax! Why the step limiter or StepMax affect largely the simulation results? And how to find a trustful StepMax in the case of thin targets (e.g. from 200 nm to 1 um)? Thanks in advance.

Best regards

Brahim

Two questions about biasing  by Huagang Yan <Huagang Yan>,   14 Feb, 2017
What I want to simulate is the dose deposit of a small volume in a large volume 50000 times bigger in each dimension. I adapted ExampleB01, and used several concentric shells each assigned with different importance(innermost volume has the biggest importance). These shells all have the world as their mother volume. The whole volume is irradiated with X-ray photons.

Water is the only material used.

Q1: is it possible to kill the secondary electrons using Russian Roulette? When I attempted to increase the importance and the number of irradiating photons, the program can get killed. I think the reason might be too many electrons need to be tracked.

Q2: The dose deposit for the inner volumes sometimes is zero, when no photons get there. This is understandable. However, for those volume(shells) that do have dose deposit, the dose values are very strange, basically follow this pattern of magnitude(in terms of approximate ratio) from outer to inner: 1, ..., 1, 3~5, 0.1~0.3, 0,.... This pattern repeats itself when I use another seed of random number engine, so I think it is not due to fluctuation.

I wonder what's wrong with my program.

Any help is greatly appreciated.

Huagang.

Question Different outputs from same conditions!  by Ali <Ali>,   14 Feb, 2017
Hello

In my simulation setup. i detect the proton population quantity in the different surface detectors (Cubic mesh detectors are perpendicular to the proton source direction). Detectors are at equal distances from one another. I,m using this commands in my macrofile (for example for two detector).

############################################################################

	     /score/create/boxMesh boxMesh_1

             /score/mesh/boxSize 2. 2. .05 cm
             /score/mesh/nBin 150 150 1
             /score/mesh/translate/xyz 0. 0. 69. cm  
             /score/quantity/population protonpopu1
             /score/filter/particle protonFilter proton
             /score/close

##############

         /score/create/boxMesh boxMesh_2
         /score/mesh/boxSize 2. 2. .05 cm      
         /score/mesh/nBin 150 150 1              
         /score/mesh/translate/xyz 0. 0. 79. cm    
         /score/quantity/population protonpopu2
         /score/filter/particle protonFilter proton
	 /score/close
########################################
/score/list

/run/beamOn 200000

 /score/dumpQuantityToFile boxMesh_1 protonpopu1 proton1.txt

 /score/dumpQuantityToFile boxMesh_2 protonpopu2 proton2.txt

################################################################################

when i run the code just for one the detector (by deleting the other mesh detectors in macro commands), my output is different with output from the ruing code with all detectors!!

Is there something wrong in my macro commands for definition and detection the quantity in detectors??

Thanks a lot

Question Biasing already registered processes (from reference physics)  by Michael H. Kelsey <Michael H. Kelsey>,   10 Feb, 2017
I would like to apply simple biasing (secondary particle splitting) to processes which have already been registered into the appropriate ProcessManagers. Specifically, my physics list uses G4EmPenelopePhysics to get a proper set of standard, reference processes and models. Then, I want to go through the process lists for gammas and electrons, and replace some of those processes with G4WrapperProcess versions.

I've confirmed that I properly instantiate each wrapper process, that it calls "RegisterProcess()" correctly with the underlying "analog" process pointer. Then I try to replace the process pointer with my new wrapper, thus:

  // Find the processes which involve atomic de-excitation
  G4ProcessVector* theProcs = particle->GetProcessManager()->GetProcessList();
  for (G4int i=0; i<theProcs->size(); i++) {
    G4VProcess* aProcess = (*theProcs)[i];

    // Look for specific processes, matching types instead of strings
    if (aProcess->GetProcessType() != fElectromagnetic) continue;
    if ( (aProcess->GetProcessSubType() == fPhotoElectricEffect) ||
	 (aProcess->GetProcessSubType() == fComptonScattering) ||
	 (aProcess->GetProcessSubType() == fIonisation) ) {
      wrapper = new CUG4WrapperFluoSplit(aProcess, FLUO_SPLIT);
      (*theProcs)[i] = wrapper;		// Replace base process with wrapper
    }
  }

This is done inside ConstructProcess(), immediately after calling back to the base G4VModularPhysicsList::ConstructProcess(). But during the run, my wrapper process never gets called! Instead, the underlying base processes still seem to be there and active.

Is what I'm trying to do just not allowed? Do I really have to copy the G4EmPenelopePhysics.cc code and build the physics myself from scratch?

  -- Michael Kelsey

1 Ok: Re: Biasing already registered processes (from reference physics)   (Michael H. Kelsey - 13 Feb, 2017)
Question Simulation time/Sensitive scoring  by <jeonyboy@gmail.com>,   06 Feb, 2017
Hello, I have been trying to get energy deposition in a detector I created (a rectangle box with "sensitive" smaller rectangles inside). I was first using hadr06 example based program but I just could not figure out how to use sensitive scorer in it. I tried learning it by looking at B4d example (geant4 scorer) and tried integrating the code in hadr06 but I was not successful. So I made a program based on B4d example instead and was able to get sensitive scoring but the simulation time is incredibly long.

I was wondering if anyone could guide me on how to make it possible to use sensitive scoring in hadr06 example and give me an answer on why the simulating time in B4d example is so much longer and how to make it shorter (I need to run up to 100,000,000 so it's taking +30 minutes).

Thank you very much!

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2017/02/06/20.50-41892-4dDetectorConstruction.cc

1 Note: Re: Simulation time/Sensitive scoring   (William Donahue - 27 Jan, 2018)
Question Do I have to take the exception information seriously?  by Huagang Yan <Huagang Yan>,   01 Feb, 2017
Hi experts,

I adapted the exampleB01 of biasing to calculate the dose and ionizations in a small volume(a few nanometers) placed in a large volume(hundreds of micrometers). Below shows the exception message. Do I have to take it seriously?

By the way, I cannot find a proper scorer that can count the ionizations properly. Could you advise me on this as well?

So far, I cannot succeed in scoring quantities in the small volume. When the importance value is large, or the number of events is large, the program terminates abnormally.

Thanks,

Huagang.

====================================================================== ++ ConcreteSD/Collisions id 0 ++ ConcreteSD/CollWeight id 1 ++ ConcreteSD/Population id 2 ++ ConcreteSD/TrackEnter id 3 ++ ConcreteSD/SL id 4 ++ ConcreteSD/SLW id 5 ++ ConcreteSD/SLWE id 6 ++ ConcreteSD/SLW_V id 7 ++ ConcreteSD/SLWE_V id 8 ### Run 0 start.

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : GeomBias1001
      issued by : G4ImportanceAlgorithm::Warning()
Calculate() - ipre_over_ipost ! in [0.25, 4].
ipre_over_ipost = 0.02.
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

Question Transmitted Intensity Data from Lead not building correct Linear Attenuation Coefficient  by Sahra <Sahra>,   31 Jan, 2017
Hi, i would appreciate any help i can get with this, thank you for reading,

I have built a simulation of a very thin lead cylinder inside a vacuum. I placed the envelope with the particle gun, behind the lead cylinder, and the idea is to 'count' the number of gamma rays transmitted through this lead.

I vary the thickness of the lead, each time, and build a graph of thickness (cm) against Ix/Io(Transmitted Flux/Initial Flux). However, when calculating the function of this curve, the measurements i collected using geant4 do not match the NIST Tables of Linear Attenuation Coefficients listed on the web.

I simulate 10,000 gamma rays at 6MeV, and what i should get is a linear Attenuation Coefficient of ~0.505. Instead what i get is -0.022 after three simulations:

6MeV     x  Incident Intensity	Transmitted Intensity	
Pb. Thickness (cm)	I(o)	I(x)	Ix/Io
      0.22	       10000    9943   0.9943
      0.3125	       10000	9908   0.9908
      0.625	       10000    9849   0.9849

I am using a very simple detector construction, Primary Generator Action and Action Initialization.

My first thought was maybe the physics list i was using, which is FTFP_BERT had a significant play on this, but i do not understand physics lists enough to be able to make a judgement.

Even a link to a somewhat similar question on this forum would be much appreciated.

Thank you so much for your help, Sahra

1 None: Re: Transmitted Intensity Data from Lead not building correct Linear Attenuation Coefficient   (michel maire - 01 Feb, 2017)
(_ None: Re: Transmitted Intensity Data from Lead not building correct Linear Attenuation Coefficient   (Sahra - 02 Feb, 2017)
Question Forced-flight biasing: Cumulated weight is null !  by Jayson Vavrek <Jayson Vavrek>,   24 Jan, 2017
I'm running geant4-10-00-patch-02 and attempting to use the G4BOptnForceFreeFlight() class for forced-flight biasing. While I can see in the visualization that my primary gammas are indeed flying freely through the volumes to which I've attached the biasing operator, it appears that the track weights are not being computed under the hood:

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : BIAS.GEN.06
      issued by :  G4BOptnForceFreeFlight::DenyProcessPostStepDoIt(...)
 Cumulated weight is null ! 
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

In my main.cc I have:

 physicsList *thePhysics = new physicsList();
G4GenericBiasingPhysics *theBiasingPhysics = new G4GenericBiasingPhysics();
theBiasingPhysics->Bias("gamma");
thePhysics->RegisterPhysics(theBiasingPhysics);
runManager->SetUserInitialization(thePhysics);

and I have written my own concrete operator class, forcedFlightOperator

file forcedFlightOperator.hh:

#ifndef forcedFlightOperator_hh
#define forcedFlightOperator_hh 1

#include "G4VBiasingOperator.hh"
#include "G4BOptnForceFreeFlight.hh"

class forcedFlightOperator : public G4VBiasingOperator
{
public:
	forcedFlightOperator();
	virtual ~forcedFlightOperator();

	G4BOptnForceFreeFlight *GetForceFreeFlightLaw() {return fForceFreeFlightInteractionLaw;};

private:
	G4BOptnForceFreeFlight *fForceFreeFlightInteractionLaw;

	// used for forced flight
	virtual G4VBiasingOperation *ProposeOccurenceBiasingOperation(const G4Track*, const G4BiasingProcessInterface* );

	// unused but required pure virtual functions
	virtual G4VBiasingOperation *ProposeNonPhysicsBiasingOperation(const G4Track* track, const G4BiasingProcessInterface* callingProcess) { return 0; };
        virtual G4VBiasingOperation *ProposeFinalStateBiasingOperation(const G4Track*, const G4BiasingProcessInterface* ) { return 0; };

};

#endif

file forcedFlightOperator.cc:

#include "forcedFlightOperator.hh"
forcedFlightOperator::forcedFlightOperator() : G4VBiasingOperator("forcedFlightOperator")
{
	fForceFreeFlightInteractionLaw = new G4BOptnForceFreeFlight("forcedFlight");
}

forcedFlightOperator::~forcedFlightOperator()
{
	delete fForceFreeFlightInteractionLaw;
}

G4VBiasingOperation *forcedFlightOperator::ProposeOccurenceBiasingOperation(const G4Track*, const G4BiasingProcessInterface*)
{
	return fForceFreeFlightInteractionLaw;
}

Am I missing something?

1 None: Re: Forced-flight biasing: Cumulated weight is null !   (Marc Verderi - 24 Jan, 2017)
(_ None: Re: Forced-flight biasing: Cumulated weight is null !   (Jayson Vavrek - 27 Jan, 2017)
(_ None: Re: Forced-flight biasing: Cumulated weight is null !   (Marc Verderi - 28 Jan, 2017)
(_ None: Re: Forced-flight biasing: Cumulated weight is null !   (Adam Geva - 12 Apr, 2017)
Question simulation gets stuck for small pixel size  by A. Hod <A. Hod>,   18 Jan, 2017
Dear G4 users,

I encountered one problem with scoring mesh. I have the following setup:

10 nm thick SiN layer ( box of 200 nm x 200 nm x 10 nm). This layer is in a vacuum environment.

An ideal detector is positioned directly on the bottom of SiN layer and it is divided into 200 x 200 pixels using scoring mesh (pixel size is 1nm x 1nm). An electron beam of 10 keV is used to irradiate the SiN layer. I want to calculate the number of electron reaching the pixels using scoring mesh (e.g. flatSurfaceCurrent. This works nicely for large pixel sizes but using small pixel size as described in this post does not work. The simulation gets stuck after some thousands events. This happen every time when I make the pixel size smaller. Is there a pixel size limit in geant4?

Thanks in advance I look forward to receive your helps and suggestions.

Cheers

A.H.

1 None: Re: simulation gets stuck for small pixel size   (Marc Verderi - 31 Jan, 2017)
None Primary particle pass through a Cylinder  by Neo <Neo>,   16 Jan, 2017
Hello everyone, Please help me to resolve a problem, I would like to score all of primaries with its energy that touch a cylinder placed after a target. See below:

// sensitive detector "MyDetector"
  G4MultiFunctionalDetector* detector =
    new G4MultiFunctionalDetector("MyDetector");

  // detector manager
  G4SDManager* manager = G4SDManager::GetSDMpointer();  
  manager->AddNewDetector(detector);
  scoringVolume->SetSensitiveDetector(detector);
.
.
.
 // primitive Scorer
    G4PSCylinderSurfaceCurrent* scorer =
      new G4PSCylinderSurfaceCurrent(name, fCurrent_In);

    // filter proton
    G4SDParticleWithEnergyFilter* filter =
      new G4SDParticleWithEnergyFilter("Proton Filter");
    filter->add("proton");

And the result only be 0 for all energy bin. Do you have any ideal for scoring by using a cylinder? Thank you very much.

None Scoring yield of secondary particle  by Neo <Neo>,   10 Jan, 2017
Dear experts, I have a problem that scoring proton generated in a certain volume when a beam of neutron pass through moderator and interacts with a target. My question: 1. How to define steps inside the target 2. When the neutrons interact with the target. How to get yield proton in the target.

Many thanks for any suggestion.

Neo.

Question Filter in Tracking Verbose  by <Synthex>,   09 Jan, 2017
Hello;

As I lack knowledge and time to fully understand Sensitive Detector, I'd like to simply «filter» what the tracking verbose outputs. For instance, I want it to display only information about protons or C12 particles. Is there a way to do so?

Thank you and happy new year.

1 None: Re: Filter in Tracking Verbose   (John Apostolakis - 09 Jan, 2017)
2 None: Re: Filter in Tracking Verbose   (michel maire - 09 Jan, 2017)
Question A naive yet puzzling conceptual question  by Huagang Yan <Huagang Yan>,   07 Jan, 2017
I have been puzzled with the functionality of SensitiveDetector + Hit Collection(or HitsMap) vs. ordinary Detector + SteppingAction with Ntuple information acquisition.

1. Can the two approaches both collect energy and position information of collisions? 2. Is hit position corresponding to PreStepPoint or PostStepPoint?

I am mainly interested in Compton scattering, photoelectric absorption and electronic ionization processes.

Any help is greatly appreciated. Huagang.

Question A problem with exampleGB01.  by Huagang Yan <Huagang Yan>,   01 Jan, 2017
Hi experts,

When I change ParticleGun to GenericParticleSource(GPS), the biasing does not work, even if I specify the particle type in PrimaryGeneratorAction. Generally the details of GPS are specified in command lines. Is there a way to incorporate GPS into volume-specific cross-section biasing?

Happy new year! Huagang.

1 None: Re: A problem with exampleGB01.   (Marc Verderi - 20 Jan, 2017)
(_ None: Re: A problem with exampleGB01.   (Huagang Yan - 22 Jan, 2017)
Question Energy deposition of backscattered electrons  by A. Hod <A. Hod>,   01 Dec, 2016
Hi geant4 users,

Let assume that I have two volumes. Box1 and Box2. Box1 is pixelated and I want to calculate the accumulated energy deposition, per each pixel, of the electrons entering the Box1 from Box2 as shown in the attached figure using scoring mesh. Do you know how to do it?I studied scoring mesh examples and the geant4 manual without any progress. One can only calculate the number of electrons entering the Box1 from Box2… Thanks and I appreciate your hints.

Cheers A.H

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2016/12/01/13.25-92182-Figure.png

Question Force radioactive decay  by <anne-catherine.heuskin@unamur.be>,   16 Nov, 2016
Dear all,

I am trying to simulate decay of 137Cs. I would like to match this with experiments from which I know the activity of the source. The idea is to match the number of decaying Cs in experiment to the number of decaying Cs with Geant4. Is there a way to force the decay of a radioactive nuclide, so I don't have to generate non decaying nuclides ?

Thanks a lot

1 None: Re: Force radioactive decay   (Youming Yang - 17 Nov, 2016)
None Minimum step size for ionization in a gas  by Alfredo Castaneda <Alfredo Castaneda>,   03 Nov, 2016
Dear experts

I am wondering if there is a way to set a minimum step size, I know we can set maximum step size with UserLimits function.

I am creating a geant4 simulation that takes into account a muon gun that enters a gas sensitive region and I want to explore the number of primary electrons generated by ionization, As the steps are defined by geant4 I would like to get a handle how to get the number of primary electrons generated? wihtout being affected by the default step selection.

Also I am using the following PhysicsList

 G4VUserPhysicsList* physics = new FTFP_BERT_HP();

which I am not sure if is ideal for the simulation of ionization processes, or I need to make my custom physics list? Any recommendation on that?

Thanks.

Question looking for a Variance Reduction techique to use with Pencil Beam simulations  by Maura E.M. <Maura E.M.>,   24 Oct, 2016
 I need to find an adequate VR technique to decrease the CPU time of Pencil Beam simulations. 
The Pencil Beam model couldn't be simpler. It consist of a 6MeV mono-energetic photon point source placed on the top surface of a water cylinder. The goal is to score dose2water in the water cylinder.

I tried to use Topas VR technique named "Secondary Biasing. It expects, among the other parameters,the maximum energy, and the name for each process generating the particles to be split.

I wish to split ONLY "primary" 6MeV photons into 100 fictitious photons. Therefore I set the MaximumEnergy to 6.18 MeV (nomimal Linac energy). Unluckily this VR technique only filters by an upper energy bound. Thus all photons whose energy is lower than the chosen MaximumEnergy will be split producing replicas of low energy photons which we do not care to track.

Furthermore, this VR technique expects the names of the processes that generate the particles to be split (gammas). The problem is to single out the true "primary" photons. In fact the PencilBeam model does NOT include an electron source generating the photons. Geant names the generating process for such 6MeV photons "Primary". To prove it I have added to the PencilBeam model an N-Tuple scorer recording all gammas that hit the water cylinder upper surface, just below the photon source. I am attaching the .header and the .phsp files where you can see (use Excel or MatLab) that most photons are regarded as "Primary" even if their energy is by far lower than 6MeV. The reason is that Geant4 considers photons produced by Compton events as "Primary" regardless of the number of Compton interactions they have had.

Is there an appropriate VR technique for the PencilBeam simulations ? In general, is there a VR technique to use whenever the particle source generates gammas rather than electrons ?

Any suggestion / comment is greatly appreciated. Thank you in advance. Best regards, Mauede

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2016/10/24/13.23-58559-ROOTOutput.header
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2016/10/24/13.23-82529-ROOTOutput.phsp

Question A possible issue associated with cross section biasing  by Huagang Yan <Huagang Yan>,   14 Oct, 2016
Since it is a bit hard to test, I raise the issue here. I have been wondering if the biasing of cross section will increase the attenuation of incident ray and alter the distribution of its intensity in the medium. I thought there shouldn't be such a problem. But I want to make sure now, because turning on the weighting flag seems to give strange results.

Any comment on this issue is highly appreciated.

Question What is the meaning of the energy deposition of compton scattering?  by chunhui gong <chunhui gong>,   13 Oct, 2016
Dear All,

I am confused with the energy deposition with gamma transportation. I could not understand why do we have the energy deposition during the process of compton scattering process? (using step->GetTotalEnergyDeposit()). Where is this energy from? And what is this meaning?

 Also the kinetic energy of secondary electron is not equal to the (PostPoint->KinE- Prepoint->KinE) of the gamma ray.

I tried several EM physics, e.g. Standard, Livermore, Penelop, etc. They all have this issue. And also, I was thinking this might because of the secondary production cut. And I tried to set the cut to a very low value, e.g. 0.00001 * nm. But Nothing changed. The step->GetTotalEnergyDeposit() can be up to 1000 eV. Which can not explained by the production cut.

Is there anyone have an idea on this?

Any help will be very appreciated.

Thank you very much.

Best, Chunhui

1 None: Re: What is the meaning of the energy deposition of compton scattering?   (Daren Sawkey - 17 Oct, 2016)
None Strange drawProjection  by Huagang Yan <Huagang Yan>,   28 Sep, 2016
The commands I used to draw the graph are:

/score/create/boxMesh boxMesh_1 /score/mesh/boxSize 0.3 0.3 0.3 micrometer /score/mesh/nBin 10 10 10

/score/quantity/energyDeposit eDep /score/close /score/drawProjection boxMesh_1 eDep

The box Mesh is small, lying in the center of the cylinder, but the projections extend out of the world! Did I miss something?

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2016/09/28/10.15-17336-snap.jpg

Question appropriate biasing method  by Joel Poder <Joel Poder>,   21 Jul, 2016
Hi,

I am performing a simulation with an array of sensitive detectors that are a relatively large distance (~10 cm) away from a brachytherapy source. I need to implement a biasing method to improve the statistics of my simulation. Can anyone recommend an appropriate biasing method for a case like this one? Reverse MC looks promising.

Regards, Joel

None Weighting and counting of particles in detector  by Steven Walton <Steven Walton>,   14 Jul, 2016
I'm trying to weight the dosages of radiation by particle type and energy.
I found another user that had asked a similar question
http://hypernews.slac.stanford.edu/HyperNews/geant4/get/biasing_scoring/164/1/1.html
I replicated the code and put it into SteppingAction.cpp

The code compiles with no messages but when trying to get the name of the
particle I get a seg fault error when a beam hits the detector (in my case
the 4th beam. First 3 run fine but don't hit the detector). Running through
gdb I get the error
0x000000000040e116 in G4Track::GetDynamicParticle (this=0x5) at
/home/steven/.builds/geant4-install/include/Geant4/G4Track.icc:64
64         { return fpDynamicParticle; }

Running backtrace I get a lot of errors with QT, G4UIcommand G4RunManager,
and the command from main.cpp "ui->SessionStart();"

Since I cannot find too much documentation on the subject I want to check
the method that I am using to try to accomplish this task.

To get the particle name I run
G4String particle_name =
aStep->GetTrack()->GetDynamicParticle()->GetDefinition()->GetParticleName();

and then I check the volume to see if it is the detector
G4VPhysicalVolume *volume =
aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume();
if ( volume == fDetector->GetDet() )
   fEventAction->AddAbs(edep);

where edep = aStep->GetTotalEnergyDeposit() * weight;

fDetector is initialized in the SteppingAction constructor and
DetectorConstruction.hh has the line
const G4VPhysicalVolume *GetDet() {return TheDetectorIWant'sPhysicalName;}

 [ MIME part of type text/html without a name stripped ]

1 None: Re: Weighting and counting of particles in detector   (Wesley - 04 Feb, 2017)
Question How to replace OGL viewer with HepRepFile viewer for visualization in command based scoring  by Robert Nnaemeka <Robert Nnaemeka>,   09 Jul, 2016
In runAndEvent RE03, the visualization used is OGL. Unfortunately, I couldn't build the Geant with OGL viewer as all attempts couldn't work. So I settled for HepRepFile. I am trying to modify example RE03 in runAndEvent to visualize flux distribution in my detector volume. All my attempt to replace OGL viewer with HepRepFile viewer couldn't work as nothing was drawn in the generated HepRepFile output. How can I make it use HepRepFile viewer. Thanks very much.

1 None: Re: How to replace OGL viewer with HepRepFile viewer for visualization in command based scoring   (Tsukasa Aso - 13 Jul, 2016)
None Scoring mesh causes Step's starting point to move  by Jayson Vavrek <Jayson Vavrek>,   08 Jul, 2016
Hi all,

I'm trying to implement a scoring mesh to tally the passageCellCurrent in a simulation of bremsstrahlung and lead shielding. If I run/beamOn without setting up any scoring, I get the results I expect. However, once I add the scoring mesh, I get approximately one warning on every event:

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : GeomNav1002
      issued by : G4Navigator::ComputeStep()
May lead to a crash or unreliable results.
        Position has shifted considerably without notifying the navigator !
        Tolerated safety: 1e-06
        Computed shift : 1.34858e+07
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------


-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : GeomNav1002
      issued by : G4Navigator::ComputeStep()
Accuracy error or slightly inaccurate position shift.
     The Step's starting point has moved 3894.49 mm
     since the last call to a Locate method.
     This has resulted in moving 3671.88 mm from the last point at which the safety was calculated
     which is more than the computed safety= 0 mm at that point.
     This difference is 3671.88 mm.
     The tolerated accuracy is 1e-06 mm.

*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------


I know typically these warnings occur via geometry overlaps, but /geometry/test/run still gives the all-clear. I can, however, see a change in the trajectories when I run with the scoring; more trajectories escape from my source shielding, suggesting that their vertices are indeed being displaced. I have also noticed that when running beamOn with scoring, I don't just see the beamOn command, but instead the following:

/run/beamOn 1000000
/run/geometryModified

More bizarre still, the degree to which the behaviour changes seems to depend on the boxSize of the mesh. Even for similar boxSize parameters, I can get reasonable-looking (but still wrong) results or almost no tallies at all.

For reference, here are the relevant lines from the macro:
/score/create/boxMesh boxMesh_1
/score/mesh/boxSize 10. 10. 25. cm
/score/mesh/nBin 20 20 100
/score/mesh/translate/xyz 56.0876 -4.35 61.5173 cm
/score/mesh/rotate/rotateY 55 deg

/score/quantity/passageCellCurrent current
/score/close
/run/beamOn 1000000
/score/dumpQuantityToFile boxMesh_1 current score.txt
/score/drawProjection boxMesh_1 current

And lastly, here is some output of the recommended /tracking/verbose 1:

*********************************************************************************************************
* G4Track Information: Particle = gamma, Track ID = 1, Parent ID = 0
*********************************************************************************************************

Step# X(mm) Y(mm) Z(mm) KinE(MeV) dE(MeV) StepLeng TrackLeng NextVolume ProcName
    0 2.53 2.55 0.051 1.92 0 0 0 CuPlate initStep
    1 13.3 1.41 10.1 1.92 0 14.8 14.8 TheHall Transportation
    2 546 -54.8 503 1.92 0 728 743 TheHall boxMesh_1
    3 554 -55.6 510 1.92 0 10.3 753 TheHall boxMesh_1
    4 555 -55.7 512 1.92 0 2.1 756 TheHall boxMesh_1
    5 561 -56.4 517 1.92 0 8.16 764 TheHall boxMesh_1
    6 569 -57.2 524 1.92 0 10.3 774 TheHall boxMesh_1
    7 573 -57.6 528 1.92 0 5.25 779 TheHall boxMesh_1
    8 574 -57.7 529 1.92 0 1.42 781 StainlessSteelHousing1 Transportation
    9 576 -57.9 530 1.92 0 2.57 783 TheHall Transportation
   10 576 -57.9 530 1.92 0 0 783 TheHall Transportation
   11 576 -58 531 1.92 0 1.03 784 TheHall boxMesh_1
   12 584 -58.7 538 1.92 0 10.3 794 TheHall boxMesh_1
   13 590 -59.4 544 1.92 0 8.41 803 TheHall boxMesh_1
   14 591 -59.5 545 1.92 0 1.86 805 TheHall boxMesh_1
   15 599 -60.3 552 1.92 0 10.3 815 TheHall boxMesh_1
   16 607 -61.1 559 1.92 0 10.3 825 TheHall boxMesh_1
   17 607 -61.2 560 1.92 0 1.3 827 TheHall boxMesh_1
   18 614 -61.9 566 1.92 0 8.97 836 TheHall boxMesh_1
   19 622 -62.7 573 1.92 0 10.3 846 TheHall boxMesh_1
   20 625 -63.1 576 1.92 0 4.45 850 TheHall boxMesh_1
   21 629 -63.5 580 1.92 0 5.8 856 TheHall boxMesh_1
   22 629 -63.5 580 1.92 0 0.0126 856 TheHall boxMesh_1
   23 637 -64.3 587 1.92 0 10.3 866 TheHall boxMesh_1
   24 642 -64.9 592 1.92 0 7.6 874 TheHall boxMesh_1
   25 644 -65.1 594 1.92 0 2.66 877 TheHall boxMesh_1
   26 652 -65.9 600 1.92 0 10.3 887 TheHall boxMesh_1
   27 659 -66.7 607 1.92 0 10.3 897 TheHall boxMesh_1
   28 659 -66.7 608 1.92 0 0.487 898 TheHall boxMesh_1
   29 667 -67.5 614 1.92 0 9.78 907 TheHall boxMesh_1
   30 667 -67.5 615 1.92 0 1.03 908 StainlessSteelHousing1 Transportation
   31 669 -67.7 617 1.92 0 2.57 911 TheHall Transportation
   32 674 -68.3 621 1.92 0 6.67 918 TheHall boxMesh_1
   33 677 -68.5 624 1.92 0 3.64 921 TheHall boxMesh_1
   34 682 -69 628 1.92 0 6.62 928 TheHall boxMesh_1
   35 689 -69.8 635 1.92 0 10.3 938 TheHall boxMesh_1
   36 694 -70.4 640 1.92 0 6.79 945 TheHall boxMesh_1
   37 697 -70.6 642 1.92 0 3.47 948 TheHall boxMesh_1
   38 815 -83.1 751 1.92 0 161 1.11e+03 ParallelLayerDet2Extra Transportation
   39 817 -83.3 753 1.92 0 2.8 1.11e+03 ParallelLayerDet2Extra compt
   40 827 -84.5 763 1.45 0 14.3 1.13e+03 ParallelLayerDet2Extra compt
   41 834 -85.8 765 1.22 0 6.69 1.13e+03 ParallelLayerDet2Extra compt
   42 851 -90.2 764 0.217 0 18.1 1.15e+03 ParallelLayerDet2Extra compt
   43 850 -89.7 764 0 0.088 1.11 1.15e+03 ParallelLayerDet2Extra phot

Has anyone observed this behaviour before?

Thanks,
Jayson V.

1 More: Re: Scoring mesh causes Step's starting point to move   (Jayson Vavrek - 11 Jul, 2016)
2 None: Re: Scoring mesh causes Step's starting point to move   (Tsukasa Aso - 13 Jul, 2016)
1 None: Re: Scoring mesh causes Step's starting point to move   (Jayson Vavrek - 13 Jul, 2016)
Idea Preferred N-D array in Geant4  by Jan Pipek <Jan Pipek>,   07 Jul, 2016

Hello,

[...no exact forum match, scoring matches only partially...]

A couple of times, I had to use a 3D matrix (or 2D, or, in general, an ND-one) of different quantities (for voxel parameters, for field maps, for scoring). Sometimes the matrix item was a G4double, sometimes a G4ThreeVector, but in principle, it can be any other type. In Python world, I would immediately use numpy arrays and would not think a single second.

However, when I tried to find a recommended (or at least frequently used) approach to work with N-D data in Geant4 source code (or perhaps CLHEP), I haven't found any. Different components (e.g. scoring meshes, physics tables, ...) use different approaches and many methods repeat the same (index = i*stride[0]*stride[1] + j*stride[0] + k) access to some internal vector again and again (not that it would not be effective, it's only non-DRY). There is an undocumented likely candidate (g4tools/.../array) but it also seems to be specific for the g4tools functionality.

So my question is...

Is there a generic n-dimensional array/matrix class (ideally templated, accepting any type, efficiently in-lining access) and if not, shouldn't there be? There are many implementations in external libraries (like multi_array in boost, libdynd, ...) and it's not that difficult to write one's own (in fact, an implementation is even described in Stroustrup's C++ book) but perhaps such tool should be a standard part of Geant4/CLHEP for anyone to use without custom coding and external dependencies, like e.g. G4ThreeVector or G4RotationMatrix are?

Or is it just that I was not looking carefully? Or that there really is no need? I am sorry, if this is the case :-)

Regards,
Jan

P.S. Once such standard representation exists, more tools (like interpolation, arithmetic operations, geometry-related stuff for 2D/3D case, ...) can be implemented upon it, which, I believe, would save a lot of time for everybody.

P.P.S. If there is such interest, I can contribute with some code.

Question Customize scorer and messenger  by Klas Marcks <Klas Marcks>,   28 Jun, 2016
I have problems implementing a scorer and a messenger for the scorer. I use Geant4 10.00 under windows 8 and I use Visual Studio 10.

Although it I guess it should be possible to do it simpler, I have done the following:

I Implemented my own MyOwnRunManager class inheriting from G4RunManager and overrode the methods ContructScoringWorld and UpdateScoring so that they use MyOwnScoringManager and not G4ScoringManager.

Implemented MyOwnScoringManager with the members MyOwnScoringMessenger and MyOwnScoreQuantityMessenger. These are almost identical to their G4 counterparts.

In MyOwnScoreQuantityMessenger I substitute the G04PSFlatSurfaceFlux3D class with MyOwnPSFlatSurfaceFlux3D class which scores the flux of each side of a box.

I have also implemented MyOwnScoringBox since the G4ScoringBox calls methods of the G4ScoringManager.

My code compiles but when I run it, I get some strange warnings. Also, only zeroes are scored in the mesh that I set up from my macro-file.

The warning(s) look like

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : GeomNav1002
      issued by : G4Navigator::ComputeStep()
Accuracy error or slightly inaccurate position shift.
     The Step's starting point has moved 149.712 mm 
     since the last call to a Locate method.
     This has resulted in moving 2.23129 mm  from the last point at which the safety      was calculated 
     which is more than the computed safety= 0 mm  at that point.
     This difference is 2.23129 mm.
     The tolerated accuracy is 1e-006 mm. 

*** This is just a warning message. *** -------- WWWW -------- G4Exception-END --------- WWWW -------

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : GeomNav1002
      issued by : G4Navigator::ComputeStep()
May lead to a crash or unreliable results.
        Position has shifted considerably without notifying the navigator !
        Tolerated safety: 1e-006
        Computed shift  : 4.97866
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

When I run my example using the G4RunManager and the corresponding call G4ScoringManager::GetScoringManager(); after creating the G4RunManager the example runs without problem.

Does any one have any idea of whats going on and how to fix it or any suggestions of alternative methods to go about?

Thanks

Klas

1 None: Re: Customize scorer and messenger   (Makoto Asai - 28 Jun, 2016)
(_ Question: Re: Customize scorer and messenger   (Klas Marcks - 28 Jun, 2016)
(_ None: Re: Customize scorer and messenger   (Makoto Asai - 28 Jun, 2016)
(_ Ok: Re: Customize scorer and messenger   (Klas Marcks - 29 Jun, 2016)
Question Peculiar problem: Overlapping Voxels in Parallel World affects particle tracks  by Joseph DeCunha <Joseph DeCunha>,   16 Jun, 2016
I solved a problem that I found peculiar this morning -- and I thought that I'd let members of the community know about it, and also see if anyone has any explanation of what may have caused the problem.

I was running the same simulation in two Geant programs, one with no parallel worlds or scoring, and another in my colleague's program with a parallel world scoring class implemented.

I thought that I would look at a visualisation of the particle tracks to check that the two simulations were consistent (same GPS source, same detector geometry & random seed) but noticed that the tracks were certainly different.

Finding no reason for the discrepancy in results, I moved on to modifying other parts of the program. I noticed that the SphericalParameterisation class that creates scoring spheres in the (non-physical) scoring world, was implemented incorrectly, and had overlapping spheres. As soon as I fixed the scoring spheres the tracks from the two programs were consistent with one another again.

I'm having a hard time understanding why overlapping voxels, in a parallel world that should have no interactions with particles in the physical world would yield such results.

Has anyone experienced anything similar, or have any ideas on what caused the behaviour I experienced?

regards,

Joseph

1 None: Re: Peculiar problem: Overlapping Voxels in Parallel World affects particle tracks   (Makoto Asai - 28 Jun, 2016)
(_ None: Re: Peculiar problem: Overlapping Voxels in Parallel World affects particle tracks   (Joseph DeCunha - 28 Jun, 2016)
(_ None: Re: Peculiar problem: Overlapping Voxels in Parallel World affects particle tracks   (Makoto Asai - 28 Jun, 2016)
(_ Question: Re: Peculiar problem: Overlapping Voxels in Parallel World affects particle tracks   (Juliana Cristina Martins - 05 Feb, 2018)
Question Can components in Parallel Words be used to score in a phase space flle   by Maura E.M. <Maura E.M.>,   08 Jun, 2016
In my Linac model I had to place the two sections of the Flattening Filter in parallel worlds and declare them as LayeredMassGeometry.

In my simulation I defined several phase space files. Each phase space file stores only particles which interacted in a given component.

It turns out that all phase space files have some data but the one which is supposed to contain data of particles that interacted in the Flattening Filter.

In order to narrow down the problem I have copied to my directory a simple example defining two overlapping boxes of different material which are placed in parallel worlds and declared as Layered Mass Geometry. I added a thin vacuum slab to score a phase space file collecting all particles that interacted in the two boxes and observed that the .phsp file is empty.

I wonder whether massive components in parallel worlds can be used to score in phase space files.

Thank you in advance for any clarifying answer / comment / suggestion. Best regards, mauede

Question Geometry Biasing - Daughter Volume  by Andrei Hanu <Andrei Hanu>,   18 May, 2016
Hi everyone,

I am performing a simulation on a gas-based neutron detector and would like to use the geometry biasing scheme from GB02 to boost the interaction rate.

However, I would like to know if the geometry biasing is also propagated to the daughter volumes?

Thanks,

Andrei

Question neutron flux spectrum produced in a spallation target  by Abdesslam LAMRABET <Abdesslam LAMRABET>,   11 Apr, 2016
hello dear experts and developers;

I am a beginner in GEANT4 use and I have issue to determine the neutron flux spectrum (produced in a spallation target) entering in a small cylindrical detector within the target (in n/cm2/event). But I can't add the appropriate code concerning this aim in my application.

Please someone tell me how can I do that.
I'll be very grateful for any help.

Thank you in advance!

-A.LAMRABET-
None Importance sampling multiple particle types  by Andy Kubik <Andy Kubik>,   30 Mar, 2016
Hi,

I'm following the general example of extended/biasing/B02 to set up an importance sampling scheme. I would like to be able to apply the importance sampling to both neutrons and gammas at the same time. I tried doing the following in (Geant4-10.1.1):

  B02ImportanceDetectorConstruction* pdet =
                   new B02ImportanceDetectorConstruction(parallelName);
  detector->RegisterParallelWorld(pdet);

  G4GeometrySampler pgs1(pdet->GetWorldVolume(),"neutron");
  G4GeometrySampler pgs2(pdet->GetWorldVolume(),"gamma");

  pgs1.SetParallel(true);
  pgs2.SetParallel(true);

  G4VModularPhysicsList* physicsList = new FTFP_BERT;
  physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs1,parallelName));
  physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs2,parallelName));
  physicsList->RegisterPhysics(new G4ParallelWorldPhysics(parallelName));

  runManager->SetUserInitialization(physicsList);

This runs, however it seems the importance sampling is only applied to whichever GeometrySampler I register to the physics list first.

I also tried creating a second instance of B02ImportanceDetectorConstruction with it's own GeometrySampler, like this:

  B02ImportanceDetectorConstruction* pdet1 =
                   new B02ImportanceDetectorConstruction(parallelName1);
  detector->RegisterParallelWorld(pdet1);

  B02ImportanceDetectorConstruction* pdet2 =
                   new B02ImportanceDetectorConstruction(parallelName2);
  detector->RegisterParallelWorld(pdet2);

  G4GeometrySampler pgs1(pdet1->GetWorldVolume(),"neutron");
  G4GeometrySampler pgs2(pdet2->GetWorldVolume(),"gamma");

  pgs1.SetParallel(true);
  pgs2.SetParallel(true);

  G4VModularPhysicsList* physicsList = new FTFP_BERT;
  physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs1,parallelName1));
  physicsList->RegisterPhysics(new G4ImportanceBiasing(&pgs2,parallelName2));
  physicsList->RegisterPhysics(new G4ParallelWorldPhysics(parallelName1));
  physicsList->RegisterPhysics(new G4ParallelWorldPhysics(parallelName2));

  runManager->SetUserInitialization(physicsList);

  B02ActionInitialization* actions = new B02ActionInitialization;
  runManager->SetUserInitialization(actions);

  runManager->Initialize();

  pdet1->CreateImportanceStore();
  pdet2->CreateImportanceStore();

This also compiles ok but crashes on pdet2->CreateImportanceStore(); claiming that the world volume is not found.

Is there a way to apply the importance sampling to two different particle types like this?

Thanks! - Andy

1 Question: Re: Importance sampling multiple particle types   (ACamin - 06 Oct, 2016)
Question Biasing specific volume  by Lin Li <Lin Li>,   30 Mar, 2016
Dear all,
I have a question about how to bias physics process in specific volume. I added a new box in front of the original one in GB01 DetectorConstruction.cc. The code is:
  // -----------------------------------
  // -- volume where biasing is applied:
  // -----------------------------------
    
 //--add a new box
    G4double halfZ = 10*cm;
    G4VSolid* biasTest = new G4Box("test.bias", 1*m, 1*m, halfZ );
    
    G4LogicalVolume* biaslogic = new G4LogicalVolume(biasTest,        // its solid
                                                     defaultMaterial,  // its material
                                                     "bias.logical");  // its name
    
    new G4PVPlacement(0,                                               // no rotation
                      G4ThreeVector(0,0, -50*cm),                       // volume entrance at (0,0,0)
                      biaslogic,                                       // its logical volume
                      "test.bias",                                     // its name
                      logicWorld,                                      // its mother  volume
                      false,                                           // no boolean operation
                      0);                                              // copy number
    
  
    
 //--the orignal one
    
  G4VSolid* solidTest = new G4Box("test.solid", 1*m, 1*m, halfZ );
  
  G4LogicalVolume* logicTest = new G4LogicalVolume(solidTest,        // its solid
                                                   defaultMaterial,  // its material
                                                   "test.logical");  // its name

  new G4PVPlacement(0,                                               // no rotation
                    G4ThreeVector(0,0, halfZ),                       // volume entrance at (0,0,0)
                    logicTest,                                       // its logical volume
                    "test.phys",                                     // its name
                    logicWorld,                                      // its mother  volume
                    false,                                           // no boolean operation
                    0);                                              // copy number
  
  
  return physiWorld;
}

And the biasing volume is the original one "test.logical".
 // -- Fetch volume for biasing:
  G4LogicalVolume* logicTest = G4LogicalVolumeStore::GetInstance()->GetVolume("test.logical");
  
  // ----------------------------------------------
  // -- operator creation and attachment to volume:
  // ----------------------------------------------
  GB01BOptrMultiParticleChangeCrossSection* testMany = 
    new GB01BOptrMultiParticleChangeCrossSection();
  testMany->AddParticle("gamma");
  testMany->AddParticle("neutron");
  testMany->AttachTo(logicTest);
We think the biasing events only could happen in "test.phys" volume. But when we check the result, we can find biasing events in another volume, which is the new one "test.bias".
*********************************************************************************************************
* G4Track Information:   Particle = gamma,   Track ID = 1,   Parent ID = 0
*********************************************************************************************************
Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
0        0        0   -1e+03       100        0        0         0       World initStep
1        0        0     -600       100        0      400       400   test.bias Transportation
2        0        0     -556      6.57        0     43.9       444   test.bias biasWrapper(compt)
3   -0.884     28.5     -485      1.01        0     76.2       520   test.bias biasWrapper(compt)
4    -53.8      135     -453     0.487        0      123       643   test.bias biasWrapper(compt)
5    -60.7      138     -426     0.483        0     28.6       672   test.bias biasWrapper(compt)
6    -66.8      138     -400     0.483        0     26.5       698       World Transportation
7     -161      135 -5.68e-14     0.483        0      411  1.11e+03   test.phys Transportation
8     -179      134     78.1     0.248        0     80.3  1.19e+03   test.phys biasWrapper(compt)
9     -155      185     83.9     0.233        0     56.7  1.25e+03   test.phys biasWrapper(compt)
10     -112      215       93     0.218        0     53.1   1.3e+03   test.phys biasWrapper(compt)
11     -112      216     93.4     0.214        0    0.915   1.3e+03   test.phys biasWrapper(compt)
12     7.18      192      143     0.204        0      131  1.43e+03   test.phys biasWrapper(compt)
13     57.6      206      182     0.204  1.3e-05     65.7   1.5e+03   test.phys biasWrapper(compt)
14     80.4      213      200     0.204        0     29.6  1.53e+03       World Transportation
15    1e+04 3.17e+03 7.86e+03     0.204        0 1.29e+04  1.44e+04  OutOfWorld Transportation

Is this reasonable? Is there a way to bias events only in selected volume, like only in "test.phys" ?
Any help would be appreciated! Thank you.
Best, 
Lin
Question Signal detection with threshold  by A. Hod <A. Hod>,   04 Feb, 2016
Dear all,

I calculated the energy deposition in each pixel using scoring. The scoring calculates the accumulated energy deposition in each pixel. That means, the detector in this case is working in the integrated mode where the total energy deposited in each pixel is summed. How can I calculate the energy deposition in each pixel using scoring in counting mode where a given threshold is assigned to each pixel? Thanks

A.H

None run time about high precision neutron simulation  by Zhiyi Liu <Zhiyi Liu>,   07 Dec, 2015
Hi,

We are focusing on transportation simulation of fast neutrons in some materials. Information of interests are: global time, momentum and hit positions of inelastic gamma rays, capture neutrons and thermal neutrons. As been warned, we have observed that introducing high precision (HP) physics processes of neutrons significantly increases simulation run time, for example, at least 10 times slower in our case.

Without thermal neutron processes on which significant time is spent, run time is acceptable. With thermal neutrons processes, it is too slow. Any good ideas to significantly reduce run time? For example, speeding up G4Step of thermal neutrons?

Thanks, Zhiyi

Question write scoring results at specific time intervals  by matthew <matthew>,   04 Dec, 2015
I am using a primitive scorer to record energy deposition over a mesh. In order to get energy deposition in specific time increments, t, I'm currently running the simulation at time = t, 2t, 3t, etc and then differencing the results.

This is a cumbersome process that involves many runs and a fair bit of matlab code to generate the final, large multi-dimensional array.

Question: Is there a good way to include code in one of the user hooks (i.e. EventAction, StepAction, RunAction) that would force the primitive scorer to write results at specific global times within the simulation?

thanks for any advice.

matt

None Force photoelectric over Compton  by Paola Ferrario <Paola Ferrario>,   01 Dec, 2015
Hi! I'd like to bias my physics in order to have only photoelectric process for a gamma particle (no Compton or pair production), but keeping the correct absorption length of the material, meaning that I want to keep the correct probability of the gamma of not interacting at all in the detector and, if it interacts, of the position where it occurs. Following Chapter 3.7.4 of the geant4 documentation and examples/extended/biasing/GB01, I've built my biasing operator class, called OperatorChangeCrossSection (which I attach), I've added the following lines to the geometry volume affected:

    OperatorChangeCrossSection* biasOp = new OperatorChangeCrossSection("gamma","ForcePhotoelectric");
    biasOp->AttachTo(active_logic);

and I've added to my specific physics list (which I attach) the lines

 pmanager = G4Gamma::Definition()->GetProcessManager();
      G4BiasingHelper::ActivatePhysicsBiasing(pmanager, "phot");

I'm using both the G4EMStandardPhysics and my specific physics list, through the commands:

/PhysicsList/RegisterPhysics G4EmStandardPhysics_option4

/PhysicsList/RegisterPhysics NexusPhysics

Which value of the cross section factor should I use in the OperatorChangeCrossSection class to obtain what I want? If I use 1000, for instance, it seems to me that gammas undergo photoelectric process every time they enter the volume, and this is not what I want. O maybe I'm using the wrong operator for my purpose. Any help would be appreciated! Thank you

Paola

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/12/01/04.22-37453-atorChangeCrossSection.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/12/01/04.23-87707-NexusPhysics.cc

Question mesh in the interface of two volumes  by Sahar <Sahar >,   26 Nov, 2015
Hello every one

I have a question about mesh scoring in order to be sure that my result is correct.

I really appreciate your help.

If we have two volume with two material (1:CsI 2:Tio2) and using mesh between two volume, is it correct to say that the results belong to the interface between two volume ?

Is the definition of mesh correct or I should define it just in one volume ?

thanks a lot

Question Undefined type  by Robert Nnaemeka <Robert Nnaemeka>,   22 Nov, 2015
I am implementing an array of NaI detector (six in all). So I have a six variable named dEdX1 - dEdX6 for collecting the energy deposit in each detectors in my stepping action header file and a corresponding six function that is called by the event action to get the the value they contain at the end of each event. My stepping action included file is shown below:

#ifndef B4aSteppingAction_h
#define B4aSteppingAction_h 1

#include "G4UserSteppingAction.hh"

/// Stepping action class. /// /// In UserSteppingAction() there are collected the energy deposit and track /// lengths of charged particles in Absober and Gap layers and /// updated in B4aEventAction.

class B4aSteppingAction : public G4UserSteppingAction
{   
private:
   G4double dEdX1;
   G4double dEdX2;
   G4double dEdX3;
   G4double dEdX4;
   G4double dEdX5;
   G4double dEdX6;

public:
  B4aSteppingAction();
  virtual ~B4aSteppingAction();

  virtual void UserSteppingAction(const G4Step* step);
    G4double GetdEdX1() { return dEdX1; }
  G4double GetdEdX2() { return dEdX2; }
   G4double GetdEdX3() { return dEdX3; }
  G4double GetdEdX4() { return dEdX4; }
   G4double GetdEdX5() { return dEdX5; }
  G4double GetdEdX6() { return dEdX6; }
  void Reset();

};

//....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......

#endif

However, when I ran my simulation I get a complaint that G4double in G4double = dEdX1, etc does not name a type. I even used G4int and G4float to see if I can get around it but it will always complain that those datatypes do not name a type. I am suspecting my compiler is crashing or something connected with it. I would appreciate any help.

Question problem with size of cylindrical scoring mesh at nanoscale level  by Balder <Balder>,   15 Oct, 2015
Dear users/experts, I'm working at nanoscale level and I have adapted the microdosimetry example to create parallel scorers and it works fine at micro-scale but when I create cylindrical scoring mesh at nano-scale what I see is that even though the R-dimension is fine, the depth of the scorer (Z-dimension) is always fixed bigger by Geant4. I'm using a Mac and Qt as visualization driver. Can a scoring mesh be used at nanoscale level? Many thanks,

Balder.

Question index of HitMap in primitive scorer different from the copyNumber of the touchable  by Sabrina <Sabrina>,   14 Oct, 2015
Hello,

I'm work with the Dicom example and I'm observing that the index of the hitMap I get when I use a primitive scorer (such G4SDDoseDeposit3D or G4SDEnergyDeposit) is different from the touchable copyNumber I get in the steppingAction. I observed a difference of 10 in the number.

Here is a print of the energy deposit for one voxel:

*Touchable copy number and energy deposit printed from the steppingAction: 10272 0.529704 MeV

*Voxel index and energy deposit from the primitive scorer:
    10282     0.529704 MeV

For the same energy deposit the voxel number is 10272 in the first case and 10282 in the second case. Checking the voxel number with the position of the voxel, make me thing that the correct number is the one given by the touchable copy number in the stepping action.

Any idea why the voxel index given by the primitive scorer is different?

thanks in advance.

None Gamma ray hit total different from actual hits (tested with muons)  by Josh Flygare <Josh Flygare>,   08 Oct, 2015
Hello,

I am decently experienced with Geant4 and I have a curious problem. I am guessing I missed something obvious. I have a detector with multiple replicated layers. When I pass muons through the layers my output all makes sense, the total energy deposited is less than the original particle energy and the total number of hits in the hits collection matches the # of hits being printed out. However, when I use gammas, of low or high energy, i get an incorrect number of hits, and the total energy deposited in the single event often exceeds the total initial gamma energy. If I print out the number of hits in the hits collection, it is always less than the number of hits it thinks was in the event. Any ideas why this would happen with gammas and not with muons?

I am using a separate sensitive detector for both layers. I am using FTFP_BERT physics.

Thanks in advance,

Josh

1 None: Re: Gamma ray hit total different from actual hits (tested with muons)   (Josh Flygare - 09 Oct, 2015)
Question Using GPS  by Robert Nnaemeka <Robert Nnaemeka>,   27 Sep, 2015
Hi Geant4 users. I would like to know how to modify example B1 to use GPS(General Particle Source). As for writing the macro, I know how to do it. My only problem is in modifying the source and included files to us GPS rather than the particle gun. Thanks

1 Idea: Re: Using GPS   (Michael H. Kelsey - 27 Sep, 2015)
(_ Feedback: Re: Using GPS   (Robert Nnaemeka - 27 Sep, 2015)
(_ None: Re: Using GPS   (michel maire - 28 Sep, 2015)
Question How do you measure KERMA?  by Patrik Eschle <Patrik Eschle>,   11 Sep, 2015
Hello

I'm interested in your opinion on how to get KERMA.

KERMA measures the energy per mass transferred to charged secondary particles by uncharged primary particles. KERMA is used to quantify e.g. x-radiation.

To measure KERMA in a sensitve volume, I check in ProcessHits if (1) the particle is charged, (2) is the child of a primary particle (photons are assumed here) and (3) makes its first step. Then I add up the kinetic energy at the vertex divided by the mass (see code below). This gives reasonable results.

How do you compute KERMA? Do you take into account e.g. annhiliation photons?

Thanks for you input,

  Patrik (patrik.eschle@zhaw.ch)

== KERMA scorer ProcessHits (as used for Topas)

 G4bool IampKermaScorer::ProcessHits(G4Step* aStep,G4TouchableHistory*)
 {
    if (!fIsActive) {
        fSkippedWhileInactive++;
        return false;
    }
    // Geometry
    G4Track *aTrack     = aStep->GetTrack();
    G4double charge     = aTrack->GetParticleDefinition()->GetPDGCharge();
    G4double stepNumber = aTrack->GetCurrentStepNumber();
    G4double parentId   = aTrack->GetParentID();

    if ( (charge != 0) && (parentId == 1)){ // candiate - charged child of primary in volume
        if (stepNumber == 1){ // charged child of a primary, first step in volume
            G4double eKinVertex = aTrack->GetVertexKineticEnergy(); // Ekin at vertex
            G4double mass       =  aStep->GetPreStepPoint()->GetPhysicalVolume()->GetLogicalVolume()->GetMass();
            G4double kerma      = eKinVertex / mass;
            AccumulateHit(aStep, kerma);
            return true;
        }
    }
    return false;
 }

None need some advices for geometry importance sampling   by jiawei liu <jiawei liu>,   09 Sep, 2015
hello everyone,
  I really need your help for a problem, I wish to add importance to every cell
of my geometry, but there is a problem.

  *** G4Exception : GeomBias0002
      issued by : G4IStore::Error()
GetImportance() - Region does not exist!
Geometry cell, Volume name = ciblew, Replica number = 0, not found in: Volume name = World, Replica number = 0, importance = 1
Volume name = Det, Replica number = 8, importance = 1e+08
Volume name = evn, Replica number = 7, importance = 1e+07
Volume name = PB, Replica number = 6, importance = 1e+06
Volume name = PB1, Replica number = 5, importance = 100000
Volume name = PB2, Replica number = 4, importance = 10000
Volume name = PB3, Replica number = 3, importance = 1000
Volume name = PB4, Replica number = 2, importance = 100
Volume name = PB5, Replica number = 1, importance = 10
Volume name = Target, Replica number = 10, importance = 1
Volume name = Tracker, Replica number = 9, importance = 1
Volume name = Fe1, Replica number = 11, importance = 1
Volume name = sor, Replica number = 12, importance = 1
Volume name = ciblew, Replica number = 13, importance = 1
Volume name = fenetre, Replica number = 14, importance = 1
Volume name = cible , Replica number = 15, importance = 1
Volume name = cuivre3, Replica number = 17, importance = 1
Volume name = cuivre, Replica number = 16, importance = 1
Volume name = cuivre6, Replica number = 18, importance = 1
Volume name = Al1, Replica number = 19, importance = 1
Volume name = Al3, Replica number = 20, importance = 1
Volume name = Al6, Replica number = 21, importance = 1
.
*** Fatal Exception *** core dump ***
-------- EEEE -------- G4Exception-END --------- EEEE -------

  wait for your advices, thanks a lot in advance!

Question How to get projection data using scoring mesh?  by Tenta Sasaya <Tenta Sasaya>,   02 Sep, 2015
Hi, I'm trying to simulate fluorescent x-ray computed tomography. Attachment shows schematic geometry.

I use following code in the macro file to acquire projection data.

#------------------------------------------
#Define mesh
/score/create/boxMesh boxMesh_1

/score/mesh/boxSize 6.88 0.16 3.44 mm

/score/mesh/nBin 80 1 40

/score/mesh/translate/xyz 0.0 -60.0 0.0 mm

#Define filter(20-30 keV means detector's energy range)

/score/quantity/passageCellCurrent scoreFluorescense 1 false false

/score/filter/particleWithKineticEnergy gammaFilterEnergy 20.0 30.0 keV gamma

/score/close

#end--------------------------------------

In this case, I think this scoring mesh performs same role as detector which has quantum efficiency of 100%. However, the number of photons in the acquired projection data seems to be less than the actual experimental data.

Is there a mistake?

Thank you in advance,

Ten

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/09/02/19.31-5253-geometry.png

Question Biasing neutron interactions  by Francesca <Francesca>,   05 Aug, 2015
Dear all,

    I am trying to get the response of a diamond detector to a neutron beam. 
The detector is really thin, of the order of micrometers, and the neutrons have 
energies of the order of 14 MeV to 20 MeV. 
I have to score both elastic and inelastic processes.
Since neutrons do not interct that much in so small thickness I wanted to activate a bias. 
Could anyone suggest me which is the best biasing technique for such case, please?
I am not really good in C++... is there anything not too complicate to reach the goal?

Thanks a lot, regards, Francesca

1 None: Re: Biasing neutron interactions   (Marc Verderi - 24 Sep, 2015)
None Biasing elastic scattering cross sections  by Matus Saro <Matus Saro>,   04 Aug, 2015
Hi,

I would like to ask, if there is possibility to change a cross section in (n,p) elastic scattering for Hydrogen? Or just in data file ?

Thanks

Matus

1 None: Re: Biasing elastic scattering cross sections   (Marc Verderi - 24 Sep, 2015)
1 None: Re: Biasing elastic scattering cross sections   (Matus Saro - 28 Sep, 2015)
2 None: Re: Biasing elastic scattering cross sections   (Matus Saro - 28 Sep, 2015)
Question help me scoring neutron flux  by Amjid Mahmood <Amjid Mahmood>,   23 Jun, 2015
hi brothers i am doing project on photoneutron flux in medical linac but i am stuck in finding photoneutron flux the command which i am using is not giving any output flux value but when i use neutral filter it gives me flux values but in my openion its wrong please tell me what i am doing wrong in my program
/score/create/boxMesh A
/score/mesh/boxSize 15 2 15 cm
/score/mesh/nBin 10 2 10
/score/mesh/translate/xyz 0 15 0 cm
/score/quantity/cellFlux neutronFlux
/score/filter/particle neutronFilter neutron
/score/close
/gun/particle e-
/gun/energy 18 MeV
/run/beamOn 2000000
the out put file for neutronFlux gives zero  
but when i use 
/score/filter/neutral neutronFilter neutron 
i get values as given in attach file please tell me i am doing it correctly or its wrong also please tell where i am making the mistake hopefully i will get quick feed back from your side
 Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/23/00.53-4248-1w1w.txt
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/23/00.53-19095-mjg.txt

1 None: Re: help me scoring neutron flux   (Tsukasa Aso - 23 Jun, 2015)
(_ None: Re: help me scoring neutron flux   (Amjid Mahmood - 23 Jun, 2015)
(_ None: Re: help me scoring neutron flux   (Tsukasa Aso - 23 Jun, 2015)
(_ None: Re: help me scoring neutron flux   (Amjid Mahmood - 23 Jun, 2015)
(_ None: Re: help me scoring neutron flux   (Eleni - 02 Aug, 2015)
Question Directionality in FlatSurfaceCurrent Scorer  by bilal <bilal>,   22 Jun, 2015
Hi, I am trying to count the back-scattered particles from different interfaces. Now from another posting i know that the counting is done at the -Z surface and along the +Z direction if the option 1 is selected. My question is; would this scorer count in -Z direction for option 2 or it count in same direction but instead of tracks entering the surface it just counts those that are emerging from surface.

       -------------
+Z-->  |
       | <-- -Z
       -------------
If the option 2 doesn't do what i think (i.e. counting in -Z direction) can you please recommend how to score in the -Z direction. 

Thanks Bilal

1 None: Re: Directionality in FlatSurfaceCurrent Scorer   (Tsukasa Aso - 23 Jun, 2015)
(_ None: Re: Directionality in FlatSurfaceCurrent Scorer   (bilal - 23 Jun, 2015)
None add scorer to B1 example  by <ali.khodadadee@gmail.com>,   21 Jun, 2015
Dear users
i want to add one scorer to B1 example. but when i add one scorer my output is zero. How can i have more than one scorer? my file is attached.

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/21/05.40-48744-B1DetectorConstruction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/21/05.40-81151-B1SteppingAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/21/05.40-7792-B1EventAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/21/05.40-62332-B1Run.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/06/21/05.40-15850-B1RunAction.cc
1 None: Re: add scorer to B1 example   (Tsukasa Aso - 22 Jun, 2015)
(_ Note: Re: add scorer to B1 example   (ali.khodadadee@gmail.com - 22 Jun, 2015)
Question Gamma Counting and Efficiency   by Dylan Pierce <Dylan Pierce>,   19 Jun, 2015
Good Day,

I am trying to detremine the efficiency of a germanium crystal which is a cylinder in shape. I know there are no primitive scorers which handle cylinders. So my question is what is the simplest method of counting gammas in my germanium crystal and how can I calculate the efficiency also as easy and straightforward as possible as I am new to GEANT4.

If possible could you provide an example of the .cc and .hh files I need to make, or point me to an existing example which involves these type of things.

Regards,

Dylan

1 Idea: Re: Gamma Counting and Efficiency   (Ibrahim - 22 Jun, 2015)
(_ Question: Re: Gamma Counting and Efficiency   (Dylan Pierce - 23 Jun, 2015)
(_ None: Re: Gamma Counting and Efficiency   (Ibrahim - 23 Jun, 2015)
(_ Question: Re: Gamma Counting and Efficiency   (Dylan Pierce - 24 Jun, 2015)
None Dose created by usy primary photons not scattered ones  by <ali.khodadadee@gmail.com>,   08 Jun, 2015
Dear users i have a ir-192 sources(a bare of Ir-192 and stainless steel encapsulation). my dosimeter is located in 1cm far from the center of source and is filled with water. There is just vacuum between dosimeter, and the source.As we know photons and electrons emit from source. when they interact with encapsulation we have scattered photons. but many photons without interaction with encapsulation reach to dosimeters and create Dose. My question is here, how i can calculate Dose created by those photons that without interaction with encapsulation reach to dosimeter. it means i don't want to calculate dose created by scattered photons and i want to calculate imparted dose by just primary photos which without interaction by encapsulation reach to dosimeter.

below is my stacking actions. and other classes.

With Thanks ...

#include "EXStackingAction.hh"
#include "G4Track.hh"
#include "G4NeutrinoE.hh"

EXStackingAction::EXStackingAction()
{ }
EXStackingAction::~EXStackingAction()
{ }

G4ClassificationOfNewTrack
EXStackingAction::ClassifyNewTrack(const G4Track* track)
{
  if (track->GetParentID() == 0) return fUrgent;
  if (track->GetParentID() > 0) {
G4double charge = track->GetDefinition()->GetPDGCharge();
 if (charge == 0.0) return fUrgent;
  if (charge != 0.0) return fKill;
}
  //kill secondary neutrino
  if (track->GetDefinition() == G4NeutrinoE::NeutrinoE()) return fKill;
  else
  return fUrgent;
}





  


   
1 None: Re: Dose created by usy primary photons not scattered ones   (Tsukasa Aso - 09 Jun, 2015)
(_ Question: Re: Dose created by usy primary photons not scattered ones   (ali.khodadadee@gmail.com - 11 Jun, 2015)
Question Imparted Dose by just primary photons  by <ali.khodadadee@gmail.com>,   03 Jun, 2015
Dear users
 i have a ir-192 sources(a bare of Ir-192 and stainless steel encapsulation). my dosimeter is located in 1cm far from the center of source and is filled with water. There is just vacuum between dosimeter, and the source.As we know photons and electrons emit from source. when they interact with encapsulation we have scattered photons. but many photons without interaction with encapsulation reach to dosimeters and create Dose. My question is here, how i can calculate Dose created by those photons that without interaction with encapsulation reach to dosimeter. it means i don't want to calculate dose created by scattered photons and i want to calculate imparted dose by just primary photos which without interaction by encapsulation reach to dosimeter.

thank you for your help.
Question Not drawing projection and slices while running RE03 example  by Amit Kumar <Amit Kumar>,   14 May, 2015
Dear All

I am just running RE03 (as it is) using following steps

1. Run1.mac has been registered to main(): UImanager->ApplyCommand("/control/execute run1.mac");

2. Following lines have been disabled in Run1.mac before invoking /run/beamOn

#/score/drawProjection boxMesh_1 eDep
#/score/drawProjection boxMesh_1 nOfStepGamma
#/score/drawProjection boxMesh_1 nOfStepEMinus
#/score/drawProjection boxMesh_1 nOfStepEPlus
and
#/vis/scene/create
#/vis/sceneHandler/attach scene-2
#/score/colorMap/setMinMax ! 0. 800.
#/control/loop drawSlice.mac iColumn 0 29 7

3. /run/beamOn 100 has been invoked through UIcommand on OpenGLStoredQt

4. Then following UIcommands were passed on OpenGLStoredQt one by one to draw projection of eDep but I did not see any projection as it is shown in Figure 4.9 of Users guide Manual for Application developer) /score/drawProjection boxMesh_1 eDep

5. Then following UIcommands were passed on OpenGLStoredQt one by one to draw slices as shown in the figure 4.9 but I get warning massage - "Can not open a macro file <drawslice.mac> /score/drawProjection boxMesh_1 eDep

Please suggest me what is the correct way to run and use these commands to draw projection and slices as shown in the Figure4.9

Question Energy deposition per pixel  by Steinbach <Steinbach>,   12 May, 2015
Hello! I have working codes to show a histogram of deposited energy in pixelated silicon. Now I want to see a histogram of energy deposition per pixel. What and were I need to change in my code.

Thanks in advance! SB.

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-16562-ActionInitialization.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-89012-ExgpsHit.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-10391-ExgpsSD.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-71191-GeometryConstruction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-84580-HistoManager.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-32655-PhysicsList.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-18411-PrimaryGeneratorAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-59666-RunAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.46-74418-TrackingAction.cc

1 None: Re: Energy deposition per pixel   (Tsukasa Aso - 09 Jun, 2015)
Question Spectrum of deposited energy  by Steinbach <Steinbach>,   12 May, 2015
Hello! I have a piece of pixelated silicon and I want to see the histogram of deposited energy. My codes work and I see a histogram.

I am not sure, is it right way to fill histogram with deposited energy from each interaction in ProcessHits method (in ExgpsSD.cc file) or not.

Can someone comment on that?

Thank you in advance. SB.

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-92825-ActionInitialization.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-67729-ExgpsHit.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-95300-ExgpsSD.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-73556-GeometryConstruction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-68058-HistoManager.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-96759-PhysicsList.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.26-26023-PrimaryGeneratorAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.27-65797-RunAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/05/12/05.27-3721-TrackingAction.cc

1 None: Re: Spectrum of deposited energy   (Tsukasa Aso - 09 Jun, 2015)
Question How to count optical photons in each pixel of a detector?  by Sahar <Sahar >,   01 May, 2015
    Hello guys

 

    I am new in Geant4. I really appreciate your help in advance.

 

    I am simulating a CsI(Tl) scintillator and for now I have a 3*3*10 mm box of CsI. I've defined a multiple optical source inside this box, I defined 5 faces of lambertian and one face of polished.

 

    I am trying to count the number of optical photons that hit my detector which I've put at 130 cm under the box. I've defined a scoring mesh and I tried observing its quantity, but I think it does not give what I'm really looking for. I am not sure ( for example when the quantity is cell flux or population it doesn't make any sense to me ) , I should pixelate my detector and I want to count how many of the optical photons which were generated inside the box, hit each of the pixels.

 

    I have another question:

    Does anybody know how I can get these outputs?

    For example, the number of rays attenuated in a crystal, the number of rays absorbed at faces, total number of times the exit face (polished face) was hit. and such these values.

    I don't know how to define them in stepping action or maybe another class.

 

    Thank you,

    Bests
Question Can a primitive scorer record energy deposition in specified time slices?  by matthew <matthew>,   01 May, 2015
I am using a primitive scorer to record total energy deposition in a large volume. It works great, but I would like to have energy deposition in 1 microsecond intervals.

Is there a way to set up a primitive scorer to record energy deposition every microsecond?

thanks for any advice,
matt
Question Counting secondary electrons escaping a thick target  by Robert Nnaemeka <Robert Nnaemeka>,   30 Apr, 2015
I have a thick target enclosed by a box filled with low pressure gas. I fire a proton unto the target and it produces electrons. I want to count only those electrons that manages to escape from the target and enter the box. How to I implement it in the stepping action? (or any other ways it could be done)?.

1 None: Re: Counting secondary electrons escaping a thick target   (Michael H. Kelsey - 30 Apr, 2015)
1 Feedback: Re: Counting secondary electrons escaping a thick target   (Robert Nnaemeka - 17 May, 2015)
2 None: Re: Counting secondary electrons escaping a thick target   (michel maire - 30 Apr, 2015)
1 Feedback: Re: Counting secondary electrons escaping a thick target   (Robert Nnaemeka - 17 May, 2015)
Question Selecting initial and final step of a track  by Sourav Tarafdar <Sourav Tarafdar>,   08 Apr, 2015
Dear experts,

I have couple of questions

1) Is there any way to extract only the initial and final stepping point information for a particular track ?

2) Any way in G4UserSteppingAction for extracting the number a steps for a particular track ?

Thanks

None Not setting a weight window for a given mesh cell in parallel geometry  by John Stenander <John Stenander>,   08 Apr, 2015
Hello everyone.

For my master's thesis I am setting up a weight window algorithm using parallel geometry. The thing is that I need some cells not to have a window set. I will still need to keep the grid as it is as I use it for scoring.

I have tried just not to set the window for a cell, this doesn't work. There was also an idea to set the windows to cover all weights, but after setting up the window I only manipulate the placement (not 'size') of the window.

My googling tells me that at least one person indicates that s/he has done it, but I don't know how. Any tips on this one?

None time of creation of particles  by Asiya <Asiya>,   31 Mar, 2015
I want to score the number of neutrons generated taking into account the time of creation.Are their any built in filters like G4SDTimeFilter?

Question Problem with G4PSCellFlux   by Simon Nicolas <Simon Nicolas>,   31 Mar, 2015
Hi, I use G4PSCellFlux (with neutrons filter) in my simulation to calculate the neutron flux in a cylinder. I have used B4d example to recover the hit collection (G4THitsMap) and I obtain the sum with a GetSum() function in my EventAction class. I compare this result with MCNP (F4:n Talli wich uses TrackLength estimator with a SD card) but there is a 40% difference between the two results. However when I calculate the G4 flux with this formula: Flux = StepLengthSum / CellVolume

(I sum the StepLength in my SteppingActionClass) I obtain exactly the same result as MCNP calculation (result normalized for one neutron source). Do you already have a problem with G4PSCellFlux? I also tried to use G4PSFlatSurfaceFlux but it doesn’t work. I don’t understand why I don’t find the same result with G4PSCellFlux. Do you have any idea?

Thanks,

Best regards,

Simon

1 None: Re: Problem with G4PSCellFlux   (Tsukasa Aso - 31 Mar, 2015)
1 Question: Re: Problem with G4PSCellFlux   (Simon Nicolas - 02 Apr, 2015)
(_ None: Re: Problem with G4PSCellFlux   (Tsukasa Aso - 03 Apr, 2015)
(_ None: Re: Problem with G4PSCellFlux   (Simon Nicolas - 03 Apr, 2015)
2 None: Re: Problem with G4PSCellFlux   (michel maire - 03 Apr, 2015)
1 None: Re: Problem with G4PSCellFlux   (Simon Nicolas - 03 Apr, 2015)
None Get Particle Name of Energy Deposit for Equivalent Dose Scorer  by Matthew Lund <Matthew Lund>,   18 Mar, 2015
I've created a primitive equivalent dose scorer; however, the weighting factor is wrong because I'm getting the primary particle name and not the particle that deposited energy. How would I get the particle name and energy that deposited the energy rather than the primary particle. Here is how my code gets the particle name and energy:
    G4String particleName = aStep->GetTrack()->GetDefinition()->GetParticleName();
    G4double kineticEnergy = aStep->GetTrack()->GetKineticEnergy();

Any suggestions?

1 None: Re: Get Particle Name of Energy Deposit for Equivalent Dose Scorer   (Tsukasa Aso - 18 Mar, 2015)
(_ None: Re: Get Particle Name of Energy Deposit for Equivalent Dose Scorer   (Matthew Lund - 19 Mar, 2015)
(_ None: Re: Get Particle Name of Energy Deposit for Equivalent Dose Scorer   (Daren Sawkey - 19 Mar, 2015)
Question Why cannot proton cross sections with the G4EmLivermorePhysics be biased???  by <LoongDaoo>,   17 Mar, 2015
Dear experts,

I want to bias the proton elastic and inelastic cross sections using the scheme in the example GB01 in Geant4.10.1,and it can be achieved by adding process restrictions in the function GB01BOptrMultiParticleChangeCrossSection::ProposeOccurenceBiasingOperation() when the physicslist is QGSP_BIC_HP.But if I replace the G4EmStandardPhysics included in QGSP_BIC_HP with the more precise G4EmLivermorePhysics, the above function Propose...Operation will not be called in my simulation, so the biasing function can not be realized. And I find that as long as LivermorePhysics or other Em physics except the G4EmStandardPhysics appear in the physicslist, it will not be called. I register the LivermorePhysics through three methods:
(1)G4PhysListFactory factory;
G4VModularPhysicsList* physicsList = factory.GetReferencePhysList("FTFP_BERT_HP_LIV");
(2)QGSP_BIC_HP* physicsList = new QGSP_BIC_HP;
physicsList->ReplacePhysics(new G4EmLivermorePhysics());
(3)using G4VModularPhysicsList to create a physicslist including LivermorePhysics
All of them fail to realize the biasing proton cross section function. However, it is ok when biasing the neutron cross sections with the above biasing scheme and physicslist change. So what is the problem? Why neutron is ok, but proton isn't? Why G4EmStandardPhysics is ok, but G4EmLivermorePhysics is not?

Any assistance would be greatful! Many thanks in advance!
Question UserLimits low energy limit  by Robert Schaefer <Robert Schaefer>,   11 Mar, 2015
Dear G4-communtiy,

I'm currently working on a simulation of a gas ionization chamber with an electrical field. My simulation works so far.

However the photoelectrons in my chamber get killed before they reach the wire. Is it possible to set a negativ low kinetic energy limit for the electrons? I want to kill the particles only when they've reached the wire, not when their kinetic energy is zero.

Is something like this possible, to kill the particles on other conditions than their minimal kinetic energy? I know that this will make my application slow, but I don't need performance..

Cheers, Robert

1 None: Re: UserLimits low energy limit   (Daren Sawkey - 12 Mar, 2015)
Question Bias cross section of neutron capture  by Geng <Geng>,   09 Mar, 2015
Dear experts,

Is there anyone have the idea of how to realize the bias of neutron capture process?

Best, geng

1 None: Re: Bias cross section of neutron capture   (michel maire - 09 Mar, 2015)
1 Question: Re: Bias cross section of neutron capture   (Geng - 11 Mar, 2015)
2 None: Re: Bias cross section of neutron capture   (LoongDaoo - 09 Mar, 2015)
None About the warning exGB01.02 in the example GB01  by <LoongDaoo>,   03 Mar, 2015
Dear all:

I am using the scheme presented in the extended example GB01 to bias the Elastic and Inelastic processes induced by protons in silicon, which can be realized by adding the commands:

  G4String procname = callingProcess->GetWrappedProcess()->GetProcessName();
  if (procname.contains("Elastic") == 0 && procname.contains("Inelastic") == 0)
	  return 0;

in the function GB01BOptrMultiParticleChangeCrossSection::ProposeOccurenceBiasingOperation(). But when the hIoni process happens, previousOperation != operation will happen in the function GB01BOptrChangeCrossSection::ProposeOccurenceBiasingOperation(), then the warning exGB01.02 "Logic problem in operation handling !" appears. I want to know what's the problem, and why previousOperation != operation should not happen. I really don't know the meaning of previousOperation, although I see the explanations and the related class G4BiasingProcessInterface.

Many thanks for your help in advance!

LoongDaoo

1 Angry: Re: About the warning exGB01.02 in the example GB01   (LoongDaoo - 05 Mar, 2015)
Question Hadr01 Can't count secondaries at a few hundred keV  by Robert Nnaemeka <Robert Nnaemeka>,   27 Feb, 2015
Hi all, I am studying the sputtering on Titanium by proton beam with energy in the range 80keV - 150keV. However, example Hadr01 in extended example gives zero counts, although our experiment shows that lots of electrons were liberated when the proton beam hits the Titanium target. However, the example gives counts only at high proton energy, of the order of 12 MeV and above. How can I use it to count liberated electrons at our experimental energies? Thanks.

1 None: Re: Hadr01 Can't count secondaries at a few hundred keV   (Daren Sawkey - 27 Feb, 2015)
1 Feedback: Re: Hadr01 Can't count secondaries at a few hundred keV   (Robert Nnaemeka - 27 Feb, 2015)
2 Feedback: Re: Hadr01 Can't count secondaries at a few hundred keV   (Robert Nnaemeka - 27 Feb, 2015)
1 None: Re: Hadr01 Can't count secondaries at a few hundred keV   (Daren Sawkey - 27 Feb, 2015)
... 4 Message(s)
Sad Sensitive detector doesnt work  by Steinbach <Steinbach>,   24 Feb, 2015
Dear Geant4 enthusiasts!
I am a beginner and I am stuck for a while with this problem. Please help me out.

I have a pixelated Silicon absorber (12um thick). I am shooting 5.9 keV gammas using GPS to it. I want to see the detected energy spectrum in a histogram.

I defined the Silicon absorber as sensitive detector. But, still I see all the particles in the histogram, all having 5.9 keV energy. Means 100% absorption of 5.9 keV gamma in a 12 um thick Silicon, its not possible.

What I am doing wrong or what is missing? Any help or suggestion will be appreciated.


/Steinbach.





   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.23-44098-Exgps.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.23-72454-GeometryConstruction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.23-53355-ExgpsHit.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.23-56593-ExgpsSD.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.23-9360-TrackingAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.23-52637-PhysicsList.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.24-26090-HistoManager.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.24-8197-RunAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.24-29353-PrimaryGeneratorAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.26-61028-ExgpsHit.hh
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.26-86033-ExgpsSD.hh
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2015/02/24/01.26-95125-GeometryConstruction.hh
1 None: Re: Sensitive detector doesnt work   (Tsukasa Aso - 24 Feb, 2015)
(_ None: Re: Sensitive detector doesnt work   (Steinbach - 24 Feb, 2015)
(_ None: Re: Sensitive detector doesnt work   (Tsukasa Aso - 24 Feb, 2015)
1 None: Re: Sensitive detector doesnt work   (C Mos - 24 Feb, 2015)
2 None: Re: Sensitive detector doesnt work   (C Mos - 24 Feb, 2015)
3 None: Re: Sensitive detector doesnt work   (Steinbach - 25 Feb, 2015)
4 None: Re: Sensitive detector doesnt work   (Steinbach - 03 Mar, 2015)
1 None: Re: Sensitive detector doesnt work   (Tsukasa Aso - 03 Mar, 2015)
Question Scoring energy deposition of both mother and daughter volumes  by Ben Hug <Ben Hug>,   13 Feb, 2015
Hello..

Just a quick one..

Consider that you have two square voxels where one is the daughter volume of the other volume (i.e. the mother volume).

Using a SteppingAction approach to scoring where the G4Track classes are being used to determine what volume the particle is in and score the energy that the particle deposits within that volume (either the mother volume or daughter volume).

If a particle is within the mother volume and also within the daughter volume will the sum of the energy deposited within the mother volume be: 1) The total energy deposited within the mother volume but not including that deposited within the daughter volume OR

2) The total energy deposited within the mother volume also including that deposited within the daughter volume?

Ive managed to confuse myself while trying to solve this problem...

Thanks in advance!!

Ben

1 None: Re: Scoring energy deposition of both mother and daughter volumes   (Daren Sawkey - 13 Feb, 2015)
Question Question about the sense of G4PSCylinderSurfaceFlux  by Andrea Conti <Andrea Conti>,   21 Jan, 2015
Why is a particle's contribution to the flux in G4PSCylinderSurfaceFlux divided by the cosine of the incident angle of the track ?

In principle, I think that, conceptually, in this class one is sitting across a surface and simply counting how many particles are stepping through the surface in. Therefore, I think that each particle should simply be counted as one (multiplied by the weight, clear), indipendently from the direction the particle crosses the surface with. Can anybody give me a conceptual explanation of this ?

I have modified G4PSCylinderSurfaceFlux, multiplying each particle's contribution to the flux with an energy-dependent fluence-to-ambient-dose-equivalent coefficient (from ICRP 74) in order to get the ambient dose equivalent H*(d) and I worry that the results could be wrong because the way the flux is tallied is not convincing.

Thank you.

Andrea Conti

1 None: Re: Question about the sense of G4PSCylinderSurfaceFlux   (Tsukasa Aso - 21 Jan, 2015)
(_ Ok: Re: Question about the sense of G4PSCylinderSurfaceFlux   (Andrea Conti - 23 Jan, 2015)
Question Command-based Scoring and Filtering for Secondaries  by Jonathan Wrobel <Jonathan Wrobel>,   13 Jan, 2015
Hello,

Short version: is there a way to use the command-based scoring and filters to measure the flux of secondary particles through a plane/surface? I know that I can set up a filter using the method below, but is there a way to filter/differentiate between primary and secondary protons while using the command-based scoring?

/score/quantity/flatSurfaceFlux fluxProtons
/score/filter/particle protonFilter proton
/score/close

Also, is there a way to create a filter for all high-Z ions (Z>proton)? Would GenericIon suffice?


Long version:
I have set up a Geant4 application where the geometry is defined through GDML input files, and the scoring is defined using command-based scoring and filters that are written in input macros. Additional scripts control the runs and the creation of dump files. This allows my simulation to be iterated without re-compiling my G4 application.

Along those lines I am attempting to remain with command-based scoring to track creation of secondaries. Now example RE06DetectorConstruction has the below definition in its DetectorConstruction, and I was wondering if that could be incorporated into a command-based scoring approach? And if so, where/how?

primitive = new G4PSNofSecondary("nElectron",j);
primitive->SetFilter(electronFilter);
det->RegisterPrimitive(primitive);

Thanks for any help.

Regards,
Jonathan
1 None: Re: Command-based Scoring and Filtering for Secondaries   (Tsukasa Aso - 13 Jan, 2015)
(_ None: Re: Command-based Scoring and Filtering for Secondaries   (Tsukasa Aso - 13 Jan, 2015)
Question stuck track and aborted events  by matthew <matthew>,   11 Jan, 2015
I am using a primitive scorer to record deposited energy from electrons. the scorer is defined:

/score/create/boxMesh boxMesh_1
/score/mesh/boxSize 500. 500. 100. km
/score/mesh/nBin 50 50 50
/score/mesh/translate/xyz 0.0 0.0 2185 km


The point source is hundreds of km above the scorer. When running this way, I get lots of error messages of the form:

-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : GeomNav0003
      issued by : G4Navigator::ComputeStep()
Stuck Track: potential geometry or navigation problem.
        Track stuck, not moving for 25 steps
        in volume -boxMesh_1_3- at point (2.6038e+08,-2.48802e+08,2.285e+09)
        direction: (-0.0719718,-0.585694,0.807331).
*** Event Must Be Aborted ***
-------- EEEE -------- G4Exception-END --------- EEEE -------

I appear to be losing lots of events. This is not good considering I'm interested in recorded deposited energy from all events.

If I change the number of bins in the scorer just slightly to:

/score/mesh/nBin 50 50 51

I get a different error message that sometimes causes GEANT to freeze:

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : GeomNav1002
      issued by : G4Navigator::ComputeStep()
May lead to a crash or unreliable results.
        Position has shifted considerably without notifying the navigator !
        Tolerated safety: 19149.9
        Computed shift : 1.4749e+12
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

What am I doing wrong? How should I define the scorer in a way that doesn't drop events or cause GEANT to lock up on me?

Any suggestions are greatly appreciated.

matt
1 None: Re: stuck track and aborted events   (Tsukasa Aso - 11 Jan, 2015)
1 None: Re: stuck track and aborted events   (matthew - 12 Jan, 2015)
2 None: Re: stuck track and aborted events   (Makoto Asai - 12 Jan, 2015)
1 None: Re: stuck track and aborted events   (matthew - 12 Jan, 2015)
(_ None: Re: stuck track and aborted events   (Makoto Asai - 12 Jan, 2015)
(_ None: Re: stuck track and aborted events   (matthew - 12 Jan, 2015)
(_ None: Re: stuck track and aborted events   (Makoto Asai - 12 Jan, 2015)
1 None: Re: stuck track and aborted events   (matthew - 12 Jan, 2015)
... 3 Message(s)
2 Ok: Re: stuck track and aborted events   (Reza - 06 Oct, 2015)
3 Ok: Re: stuck track and aborted events   (Reza - 06 Oct, 2015)
Question Negative number of interaction length warning with GEANT4.10.1  by Stefan E. Mueller <Stefan E. Mueller>,   07 Jan, 2015
Hi,

I have an application in which I bias the cross section for the processes "GammaToMuPair" and "muonNuclear".

Running this application with GEANT 4.10.1, I see a lot of warnings in the logfile:

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : BIAS.GEN.13
      issued by : G4InteractionLawPhysical::UpdateInteractionLengthForStep(...)
 Negative number of interaction length for `LawForOperationXSchange-GammaToMuPair' -0.000202403, set it to zero !

*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------
(I get similar warnings for the "muonNuclear"-process).

This was not the case when running with GEANT4.10.0-Patch3. 

It might be just a warning, however, I am a little bit confused about the possibility that an interaction
 length can become negative at all (and then is set to zero!). 

The scaling factors which I provide to bias the cross sections are in any case positive.

Is this behavior of geant 4.10.1 intended?

Best regards,

Stefan
1 None: Re: Negative number of interaction length warning with GEANT4.10.1   (Marc Verderi - 07 Jan, 2015)
(_ Ok: Re: Negative number of interaction length warning with GEANT4.10.1   (Stefan E. Mueller - 09 Jan, 2015)
None ExampleGB01 question  by Carlos Ayerbe Gayoso <Carlos Ayerbe Gayoso>,   06 Jan, 2015
Dear GEANTers

this is a very simple question. I modified GB01 example to have protons of 1.2GeV over a carbon disk and biasing the production of pi+, mu+ and e+. Since is the first time I'm working wiht the biasing process, I just started quite naive.

I changed the gun to have protons of 1.2 GeV, instead of neutrons as was originally.

The detector is a carbon disk of 100mm radius and 5mm thickness.

In the main file, I started to modify the bias section with:

biasingPhysics->Bias("pi+"); biasingPhysics->Bias("mu+"); biasingPhysics->Bias("e+");

and something similar in the DetectorConstruction module: testMany->AddParticle...

Just for fun I used the GUI to see the result visually and compare the option ON or OFF, with only pi+ particles visible. The visual output was the same in both cases. In other words, biasing didn't change anything at all.

Then I figure out that neutrons were originally listed in the biaisng process, so I introduced the proton in the bias list

biasingPhysics->Bias("proton");

and it seems there is a change with the bias ON option comapred with previous runs (the OFF option seems to behave similar as before).

Is this the correct way? I mean, should the primary particle be listed in the bias? why?

Maybe everything is wrong since in the new one (with protons in the bias) I got the warnings:

-------- WWWW ------- G4Exception-START -------- WWWW -------
*** G4Exception : BIAS.GEN.14
      issued by : G4InteractionLawPhysical::SetPhysicalCrossSection(..)
Cross-section value passed is negative. It is set to zero !
*** This is just a warning message. ***
-------- WWWW -------- G4Exception-END --------- WWWW -------

Thank you very much for your feedback

Carlos Ayerbe

1 None: Re: ExampleGB01 question   (Marc Verderi - 07 Jan, 2015)
(_ None: Re: ExampleGB01 question   (Carlos Ayerbe Gayoso - 07 Jan, 2015)
(_ Idea: Re: ExampleGB01 question   (Tom Roberts - 07 Jan, 2015)
(_ None: Re: ExampleGB01 question   (Carlos Ayerbe Gayoso - 08 Jan, 2015)
None GDML, Sensitive detectors and primitive scorers  by <ZachB>,   05 Jan, 2015
Hello,

So right now I am working on a simulation that uses GDML, sensitive detectors and primitive scorers trying to make them all play nicely with each other. So, couple of questions.

1. Is it possible for a primitive scorer to be used when the geometry is defined as a GDML file? Right now I have

void ConstructSDandField(){
  detect = new G4MultiFunctionalDetector("centerMTC");
  G4VPrimitiveScorer* fluxPrimitiveCenter = new G4PSFlatSurfaceFlux("SurfFlux1", 1, 30);
  detect->RegisterPrimitive(fluxPrimitiveCenter);
  SetSensitiveDetector("mtcV" , detect);
}

where mtcV is the auxilirary information attached to the volume I'm interested in.

2. I am using the sensitive detector and as such I needed to define my own hits class. If I am using my own hits class, can I use the primitive scorer class with my own hits class or does this cause other issues?

My main issue is that the flux is never accumulating. Particles are passing through the main volume but they are never being counted in the flux scorer. I am implementing my own run class to accumulate the data for the flux scorer. Any help would be greatly appreciated, thank you.

Question Sensitive detector with G4PSCylinderSurfaceFlux  by Andrea Conti <Andrea Conti>,   31 Dec, 2014
I have a cylindrical container having the radioactive source inside and I implemented a ring around it, in order to measure the flux with G4PSCylinderSurfaceFlux. The ring is 20cm high and 10mm (radially) thick.

The detector has been implemented this way:

G4VPhysicalVolume* DetectorConstruction::Construct()
{
 .
 .
 G4Tubs*
  solidDetector = new G4Tubs("Detector", 600*mm,610*mm,100*mm,0*deg,360*deg);
  G4LogicalVolume*
  logicDetector = new G4LogicalVolume(solidDetector,Air,"Detector");
  G4VPhysicalVolume*
  physiDetector = new G4PVPlacement(0,
                                G4ThreeVector(),
  								logicDetector,
  								"Detector",
  								logicWorld,
  							    false,
  								0);

  G4String filterName, particleName;
  G4SDParticleFilter* gammaFilter = 
    new G4SDParticleFilter(filterName="gammaFilter",particleName="gamma");
  G4MultiFunctionalDetector* det = new G4MultiFunctionalDetector("Detector");
  primitive = new G4PSCylinderSurfaceFlux("eDep",0,0);
  primitive->SetFilter(gammaFilter);
  det->RegisterPrimitive(primitive);
  G4SDManager::GetSDMpointer()->AddNewDetector(det);
  logicDetector->SetSensitiveDetector(det);
.
}

And then, to retrieve the information, I have:

void EventAction::EndOfEventAction(const G4Event* evt)
{
.
G4SDManager* SDMan= G4SDManager::GetSDMpointer();
 colID = SDMan->GetCollectionID("Detector/eDep");
 G4HCofThisEvent* HCE = evt->GetHCofThisEvent();
 G4THitsMap<G4double>* evtMap = (G4THitsMap<G4double>*)(HCE->GetHC(colID));
 std::map<G4int,G4double*>::iterator itr = evtMap->GetMap()->begin();
 G4int key = (itr->first);
 G4double val = *(itr->second);

 G4cout << "key = " << key;

}

But I never get anything, also when I see through visualization that some photons effectively go through the detector belt. The variable "key" always results to be = 0. I am afraid I did something wrong in the construction of the sensitive detector. I always activate the detector through the command line: "/hits/activate Detector". By the way, if I give the command "/hits/activate Detector/eDep" then I get the error message "Detector/ is not found in /".

Have I correctly associated the surface detector to my ring ? I am afraid not.

Andrea

1 None: Re: Sensitive detector with G4PSCylinderSurfaceFlux   (Tsukasa Aso - 31 Dec, 2014)
(_ Ok: Re: Sensitive detector with G4PSCylinderSurfaceFlux   (Andrea Conti - 01 Jan, 2015)
Question Measuring H*(d) with the ICRU sphere  by Andrea Conti <Andrea Conti>,   09 Dec, 2014
I have a cask containing radioactive scratch material from a BWR core and I have to calculate the ambient equivalent dose rate H*(d) at certain points outside of the cask, for example at 1m from its surface, at middle height.

I'm thinking of implementing the ICRU sphere (whose diameter is 30cm) in the geometry and then tallying the dose equivalent rate in a small volume centered around the point pointed to by the radius of the sphere, oriented towards the source (f.e. I would say horizontally if I place the detector at middle height) and at depth d.

The dose rate is in principle a point quantity but it's clear that with the Monte Carlo I can only tally the dose in a volume, as small as it can be. So I am thinking of a small sub-sphere centered around the over mentioned point.

How large should the sub-sphere be ? In principle it should be as small as possible, but if it is too small then it's going to take too much time in order to obtain a good statistical quality. Does anybody have experience ?

Andrea Conti

Question Scoring Dose  by Ibrahim <Ibrahim>,   02 Dec, 2014
dear all,

I calculated the dose in a given layer using:

/score/quantity/doseDeposit Dose1

this calculates dose per event. Is it correct?

I calculated also the dose using Stopping powers from NIST.

the difference between the results obtained with Geant4 and NIST is large.

Example:

I irradiated a 100 nm thick Copper layer with an electron beam of Ee=300keV and I obtained: Dose: D1=1.408 mrad/event

from NIST stopping power I got: D2=1.754 mrad/event. The relative difference between these two values of the dose is about 24.6 % !! and for 300 nm SiO2 it is 23.6 % !!

Why there is such a large difference between Geant4 and NIST data?

Additional Info:

in my simulation

density of SiO2: 2.5 g/cm3

Copper density is 8.94 g/cm3

PhysicsList: Low energy physics: Livermore model

cut=0.65 um

There is a vacuum in the world volume.

If you need additional info, please let me know.

I kindly welcome your help.

Cheers

1 None: Re: Scoring Dose   (Tsukasa Aso - 09 Dec, 2014)
Question How to add importance to G4PVParameterised volumes  by Xiaosong Yan <Xiaosong Yan>,   02 Dec, 2014
Hello everyone:
    I'm now simulating an X-ray imaging system. Because the the ~MeV X-ray penetrates thick (~1 m) concrete object and then deposites energy in the array detectors, I plan to implement geometry based importance biasing techniques to improve the statistics.
    However, I'm confronting with problems with AddImportanceGeometryCell() procedures.
    In my DetectorConstruction class, the following is added:

  G4VSolid* calorimeterSolid = new G4Box("Calorimeter_Solid", // Name
                              2.525*cm,                // x half length
                             0.025*cm,                // y half length
                              2.5*cm) ;              // z half length

  G4LogicalVolume* calorimeterLogical =
    new G4LogicalVolume(calorimeterSolid,       // Solid
                        si,                    // Material
                        "Calorimeter_Logical"); // Name
    fLogicalVolumeVector.push_back(calorimeterLogical);     

     std::ostringstream os;
    G4String name;     
    for (G4int i = 0; i < 20; i++)
        {
        os.str("");		
        G4double ypos=i*0.25*cm-2.575*cm;
        os << "si_layer_"<<i;
        name = os.str();

         G4VPhysicalVolume *calorimeterPhysical=   
       new G4PVPlacement(0,G4ThreeVector(0.025*cm,ypos,35*cm),
                                          calorimeterLogical,
                                          name, 
                                          fpWorldLogical
                                          ,false,i);
        fPhysicalVolumeVector.push_back(calorimeterPhysical);  	                                    
        }

  //1000 rectangular Si cells
  G4VSolid* cellSolid = new G4Box("Cell_Solid", // Name
                                  0.025*cm,         // x half length
                                  0.02*cm,         // y half length
                                  2.5*cm);      // z half length

  G4LogicalVolume* cellLogical
    = new G4LogicalVolume(cellSolid,       // Solid
                          si,             // Material
                          "Cell_Logical"); // Name 
    fLogicalVolumeVector.push_back(cellLogical);    

 G4VPVParameterisation* cellParam = new BeamTestCellParameterisation();     

    G4VPhysicalVolume *cellPhysical=  
  new G4PVParameterised("Cell_Physical",    // Name
                        cellLogical,        // Logical volume
                        calorimeterLogical, // Mother volume
                        kXAxis,             // Axis    
                        50,                // Number of replicas
                        cellParam);         // Parameterisation
 fPhysicalVolumeVector.push_back(cellPhysical);   

because cellPhysical is the last element pushed back in the PhysicalVolumeVector, so the importance is added as:
     istore->AddImportanceGeometryCell(imp, *(*(fPhysicalVolumeVector.end()-1)),0);                

    Though I succeeded compiling my program, the following errors displayed when run it.

      ERROR - G4IStore::GetImportance(gCell):Region does not exist

***G4Exception: FataException
     issued by : G4IStore::Error()
GetImportance(gCell): Region does not exist
*** Fata Exception *** core dump ***

*** G4Exception: Aborting execution ***

Besides, there are some other output as:
    PGeometryCell gCell: Volume name = Cell_Physical, Replica number = 25
Not found in: 
Volume name = concreteblock, Replica number = 0, importance = 1
...
Volume name = Cell_Physical, Replica number = 0, importance = 100
...

    It's deduced that failure in addimportance to all the G4VPhysicalVolume cellPhysical leads to error, but I don't know how to add importance to them.

    Anyone who have idea? 
    I appreciate all your help.

Best regards. Xiaosong Yan.

1 None: Re: How to add importance to G4PVParameterised volumes   (Xiaosong Yan - 08 Jan, 2015)
1 None: Re: How to add importance to G4PVParameterised volumes   (jiawei liu - 09 Sep, 2015)
2 None: Re: How to add importance to G4PVParameterised volumes   (jiawei liu - 09 Sep, 2015)
3 None: Re: How to add importance to G4PVParameterised volumes   (jiawei liu - 09 Sep, 2015)
Question scoring flux based on process  by lalageh <lalageh>,   18 Nov, 2014
Hello all,

I am scoring flux in a water phantom for 178 MeV proton beam using Geant4.10 p02. I have filters based on particle type (I am filtering flux for gamma). But I'd like to know how to filter it based on physics processes? Currently I have the following code for "conversion" process. But, it does not give me the flux of gammas that undergo "conversion"! I think it is giving the flux of secondary particles that are produced by conversion.

How can I have the flux of particles that undergo a specific physics process? Can anyone help me please

Thank you

Here is my code:

G4bool FluxCell_Gamma_conv::ProcessHits(G4Step* aStep,G4TouchableHistory*)
{
  G4String CPName;
if(aStep->GetPostStepPoint()->GetProcessDefinedStep()!=0)
CPName = aStep->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName();  
  if(CPName=="conv")
    {
      G4double stepLength = aStep->GetStepLength();
      if ( stepLength == 0. ) return FALSE;

      G4int idx = ((G4TouchableHistory*)
		   (aStep->GetPreStepPoint()->GetTouchable()))
	->GetReplicaNumber(indexDepth);
      if(idx<0) {idx=0;}
      G4double cubicVolume = ComputeVolume(aStep, idx);
      G4double CellFlux1 = stepLength/ cubicVolume;
      if (weighted) CellFlux1 *= aStep->GetPreStepPoint()->GetWeight(); 
      G4int index = GetIndex(aStep);
      EvtMap->add(index,CellFlux1);
      return TRUE;
    }
  else
    return FALSE;
}

Question Scored the wrong angle, really bad thing  by Geng <Geng>,   16 Nov, 2014
Dear experts,
I am doing a simulation with Geant4.10.p03.
I tried to score the particle angles emitted from the upper side of a box.
I am using the following code to judge the surface from the upper side of a box.
   if (aStep->GetPostStepPoint()->GetStepStatus() == fGeomBoundary ){
    // Exiting Geometry
    G4ThreeVector stppos2= aStep->GetPostStepPoint()->GetPosition();
    G4ThreeVector localpos2 = 
      theTouchable->GetHistory()->GetTopTransform().TransformPoint(stppos2);
    if(std::fabs( localpos2.z() + boxSolid->GetZHalfLength())<kCarTolerance ){
      return fCurrent_Out;
    }
and, using the following to get the angle. 
Angle=(aStep->GetPostStepPoint()-> GetMomentumDirection().z())/degree;

In my personal sense, the angels should distribute in the range of 90-180 degree, however, the strange thing is, there is a lot of the angles are much less than 90 degree?

I cannot figure out where I am wrong, so, could anyone give me some suggestions?

Thanks and best regards. Geng

1 Ok: Re: Scored the wrong angle, really bad thing   (Geng - 16 Nov, 2014)
Question How to make my own PS in Command-based Scoring?  by lcl <lcl>,   16 Nov, 2014
hello

I want to make a PS to use like PS in Command-based Scoring.

How to make it without modification of G4 source code? just make it in application?

I dont find any exmple in runandevent examples.

how to integrat my own PS in Command-based Scoring.

1 None: Re: How to make my own PS in Command-based Scoring?   (lcl - 17 Nov, 2014)
2 Angry: Re: How to make my own PS in Command-based Scoring?   (lcl - 09 Jun, 2015)
1 Ok: Re: How to make my own PS in Command-based Scoring?   (lcl - 11 Jun, 2015)
(_ None: Re: How to make my own PS in Command-based Scoring?   (Makoto Asai - 11 Jun, 2015)
(_ Agree: Re: How to make my own PS in Command-based Scoring?   (lcl - 12 Jun, 2015)
3 Question: Re: How to make my own PS in Command-based Scoring?   (Volodymyr Morgunov - 18 Jan, 2016)
1 None: Re: How to make my own PS in Command-based Scoring?   (lcl - 20 Jan, 2016)
Question G4PSCellFlux Question  by Andrew Davis <Andrew Davis>,   12 Nov, 2014
Is there a native way to histogram the G4PSCellFlux into energy dependent particle spectra? I've found several examples of spatial histograming, but not energy dependent histograms for G4PSCellFlux.

Question Production of particles from layers  by <ZachB>,   10 Nov, 2014
Hello,

I am currently working on a simulation which is basically a multiple boxes inside of each other. I am interested in whether or not box b stops particles that are coming from box a and what particles box a and b produce. Does Geant4 have this kind of capability and if so, where can I find more information on it? I'm not entirely sure what to search for to find this.

Thanks. And apologies if this is the wrong sub-forum.

Question Changing geometry between runs with GDML & runtime primitive scorers (the latter is not working)  by Jonathan Wrobel <Jonathan Wrobel>,   10 Nov, 2014
Hello,

I'm using primitive scoring and GDML-based geometry definition for my Geant4 application in G4v10.00.p03 on Linux. I am attempting to load new geometry between runs, as well as re-set the primitive scorer. However, I am getting segmentation faults and it appears that the primitive scoring is not happy being reset. Can anyone point me in the right direction?

Long version:
My approach for the primitive scoring is taken directly from Example RE03, where I'm implementing the G4ScoringManager.hh and using run-time definition of the scorers through UI command scripts. This is paired with a GDML load approach adapted from the persistency example G02.

I just finished hammering out the GDML portion so that I could successfully load different geometries between runs without restarting Geant4. I know that this portion of the code works because I've been using it and testing it with the reloading. This thread summarizes that accomplishment:
http://hypernews.slac.stanford.edu/HyperNews/geant4/get/persistency/45/1/1/1.html

For the primitive scorer, I can use the UI-based primitive scorer on my initial geometries, but when I go to initialize the second geometry it will crash. This is my basic UI call order:

# First Run #######################
/mydet/readFile test.gdml
/run/initialize
/vis/open OGL
/control/execute scoring_definition_v1.mac
/control/execute G4GPS_2Dsource.mac
/control/execute vis_settings.mac
/control/execute scoring_vis_v1.mac

# Second Run ######################
/vis/viewer/clearTransients
/persistency/gdml/clear
#/run/reinitializeGeometry
/run/reinitializeGeometry 1 1
/mydet/readFile test2.gdml
/run/initialize <--Seg Fault occurs here
/control/execute scoring_definition_v2.mac
/control/execute G4GPS_2Dsource.mac
/control/execute scoring_vis_v2.mac

My understanding of the /run/reinitializeGeometry command is that the two boolean flags at the end when set to true should be purging the parallel world where the primitive scorers are defined. Is that correct? Are there any other "clean" or "reinitialize" commands that I should be using?

Thanks for any help.

Regards,
Jonathan

1 Idea: Re: Changing geometry between runs with GDML & runtime primitive scorers (the latter is not working)   (Jonathan Wrobel - 11 Nov, 2014)
Question strange energy deposit pattern  by <geant4president>,   12 Sep, 2014
Hello,

I hope somebody can help me with the following, I have no ideas any more.

Scenario: Shooting ~6 MeV photons from the right side to a voxel container read in by the DICOM example (512x512x68 indices in x,y,z, voxel dimensions roughly 1mmx1mmx5mm) and plotting dose deposit, I get a "column-like" substructure, please see the attachment. There is only one material for the irradiated region. Looping over odd and even columns, I get ~40% different cumulated doses.

Can this be explained somehow? Stepsizes? Voxel structure optimizations? I am stuck and would be really grateful for the smallest hint or idea.

Thanks in advance, Markus

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/09/12/06.13-97189-c1_lossy.jpeg

1 Ok: Re: strange energy deposit pattern   (geant4president - 15 Sep, 2014)
Question Biasing certain processes  by Peter Broere <Peter Broere>,   29 Aug, 2014
Hi, I'm just wondering if there is an easy way to bias certain physical processes in geant4, since the simple way of adding "BiasCrossSectionByFactor(factor)" is only available for a limited selection of processes. What i specifically want is to increase the cross-section of "ionInelastic" by a factor of 100-1000. I have tried to figure out a way to do this with help of the "G4WrapperProcess"-class, but I have had a hard time figuring out how to do this. So any help is of value.

regards, Peter

1 None: Re: Biasing certain processes   (LoongDaoo - 05 Oct, 2015)
Question 2D histograms for ROOT  by <Frank>,   31 Jul, 2014
Hello,

I'm simulating photons into a scintillator that can be detected by a PMT. I'm recording hits positions in x, y and z separately and export the results to Root with commands like

 CreateTree::Instance()->PMTHitPosX[CreateTree::Instance()->PMTNumHits] = thePostPoint->GetPosition().x();
 CreateTree::Instance()->PMTHitPosY[CreateTree::Instance()->PMTNumHits] = thePostPoint->GetPosition().y();
 CreateTree::Instance()->PMTHitPosZ[CreateTree::Instance()->PMTNumHits] = thePostPoint->GetPosition().z();

 Float_t PMTHitPosX[MaxNum];
 Float_t PMTHitPosY[MaxNum];
 Float_t PMTHitPosZ[MaxNum];

 this->GetTree()->Branch("PMTHitPosX",&this->PMTHitPosX,"PMTHitPosX[PMTNumHits]/F");
 this->GetTree()->Branch("PMTHitPosY",&this->PMTHitPosY,"PMTHitPosY[PMTNumHits]/F");
 this->GetTree()->Branch("PMTHitPosZ",&this->PMTHitPosZ,"PMTHitPosZ[PMTNumHits]/F");

Therefore, after a simulation, I get a Root TTree with 1D histograms for hits in x, y and z. This part works well.

As the hits positions are recorded separately in x, y and z, we have marginal histograms and cannot retrieve 2D or 3D histograms (number of hits for a precise XY or XYZ point). Would it be possible to get something like PMTHitPosXY or PMTHitPosXYZ?

I tried declaring a PMTHitPosXYZ[ ][ ][ ] and using GetPosition() (without .x() or .y() or .z()) but this is a threevector and cannot associate it a 3D array [ ][ ][ ].

I know TH2 histograms exist in Root, but I just cannot make the link from G4 to Root.

Thank you!

None Clarify the results from Flat Surface Current scorer please.  by Aliya Mukanova <Aliya Mukanova>,   28 Jul, 2014
Dear, experts

Could you explain more detailed please about "flatSurfaceCurrent" scorer.

I wrote scorer this way(as shown in RE03):

                     /score/create/boxMesh boxMesh_1

                     /score/mesh/boxSize 0.5 0.5 0.1 cm

                     /score/mesh/nBin 1 1 1

                     /score/quantity/flatSurfaceCurrent InCurrentNeutron 1 0

                     /score/filter/particle neutronFilter neutron

                     .....

                     /score/dumpAllQuantitiesToFile boxMesh_1 Out.txt

and run

                     /gun/particle neutron

                     /run/beamOn 10000

And I get in Out.txt

                     # mesh name: boxMesh_1
                     # primitive scorer name: InCurrentNeutron
                     # iX, iY, iZ, value [percm2]
                       0,0,0,10000.00000000044

Source has direction on the -Z surface directly and doesn't exceed edges of -Z surface (all number of neutrons get surface).

From the result It is not clear for me How the flatSurfaceCurrent divided on received surface with area 0.25 cm^2 can be equal to the initial number of neutrons.

Where I can look at values of particle weigth(W), which takes place in formula for flatSurfaceCurrent (N*W/A)? It is not related to real particle mass, is it?

I am looking forward to hearing from you,

Yours sincerely, Aliya

1 None: Re: Clarify the results from Flat Surface Current scorer please.   (Tsukasa Aso - 28 Jul, 2014)
2 None: Re: Clarify the results from Flat Surface Current scorer please.   (Aliya Mukanova - 28 Jul, 2014)
None problem with command base scorer  by Jelena Ilic <Jelena Ilic>,   17 Jul, 2014
Hi,

I'm working on  a geometry consisting of a metal block  filled with quartz straws  containing a liquid scintillator.  

I wanted to use the command base scorer to look at the deposited energy but I'm getting an error message when running the code:
/-----------------------------

-------- EEEE ------- G4Exception-START -------- EEEE -------
*** G4Exception : OpBoun01
issued by : G4OpBoundaryProcess::PostStepDoIt
G4OpBoundaryProcess/PostStepDoIt(): The Navigator reports that it returned an invalid normal
Invalid Surface Normal - Geometry must return valid surface normal

*** Event Must Be Aborted ***
-------- EEEE -------- G4Exception-END --------- EEEE -------

/----------------------

The code runs without problem if I do not invoke G4ScoringManager (please see attached file).

My StackingAction class is rudimentary -  I just count number of produced optical photons.


What could be a problem here?

Thanks,
Jelena


   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/07/17/13.02-28871-Slide1.gif
Question Question About Scoring Energy Deposition  by A. Hod <A. Hod>,   09 Jul, 2014
Dear all,

I would like to know whether the scoring mesh works only in one direction or more than one direction of the incoming particles. Let me detail this issue. I have two layers:

Layer 1: A sensitive layer. It is pixelated using scoring mesh and the energy deposition of the incident electrons is calculated in each pixel.

Now, If I have another layer2 (layer1 is now on the top of layer 2 ), the backscattered electron from this layer will interact in the layer 1 and thus the energy deposition in each pixel of the layer1 should be increased.

Backscattered electrons from layer2 have now a direction opposite to the direction of the incident electrons.

If you need further information, feel free to contact me.

Best Regards A.H.

None Queation About Scoring Energy Deposition  by A. Hod <A. Hod>,   09 Jul, 2014
Dear all,

I would like to know whether the scoring mesh works only in one direction or more than one direction of the incoming particles. Let me detail this issue. I have two layers:

Layer 1: A sensitive layer. It is pixilated using scoring mesh and the energy deposition of the incident electrons is calculated in each pixel.

Now, If I have another layer2 (layer1 is now on the top of layer 2 ), the backscattered electron from this layer will interact in the layer 1 and thus the energy deposition in each pixel of the layer1 should be increased.

Backscattered electrons from layer2 have now a direction opposite to the direction of the incident electrons.

If you need further information, feel free to contact me.

Best Regards A.H.

1 None: Re: Queation About Scoring Energy Deposition   (Tsukasa Aso - 09 Jul, 2014)
(_ None: Re: Queation About Scoring Energy Deposition   (A. Hod - 10 Jul, 2014)
Question Voxelized geometry and geometry importance sampling  by <geant4president>,   09 Jul, 2014
Hi there,

I am working with the DICOM example and would like to implement geometry importance sampling. Is that actually possible for voxelized geometries? What is the best approach - defining the IStore for the mass geometry or add a parallel geometry reflecting the voxels? How would one add a voxel to the importance store?

Thanks in advance, Markus

Question B3 Problem with SurfaceCurrent Primitive Scoring   by Daniel Shy <Daniel Shy>,   30 Jun, 2014
Hello all,

I am attempting to model a PMT and count the number of optical photons hit the PMT window. I therefore use the primitive scorer "G4PSCylinderSurfaceCurrent", however when I run, I get 0 hits even though there is an EnergyDeposited. I attempted to test it on example B3 by changing the EnergyDeposit to the SurfaceCurrent,added the .hh class, but still get 0 hits.

  G4MultiFunctionalDetector* patient = new G4MultiFunctionalDetector("patient");
  G4VPrimitiveScorer* primitiv2 = new G4PSCylinderSurfaceCurrent("dose", 0 , 0);
  patient->RegisterPrimitive(primitiv2);
  SetSensitiveDetector("PatientLV",patient);

Any assistance in this would be greatful.

Daniel

1 None: Re: B3 Problem with SurfaceCurrent Primitive Scoring   (Tsukasa Aso - 30 Jun, 2014)
(_ None: Re: B3 Problem with SurfaceCurrent Primitive Scoring   (Daniel Shy - 01 Jul, 2014)
None Problem with Importance biasing  by Ran Itay <Ran Itay>,   30 Jun, 2014
Hi all

I've tried to implement importance biasing in my code

I added this lines to my main file

// pointers for importance store, weight-window store
  // and weight-window algorithm
  //
  G4VIStore *aIstore = 0;
  // create sampler for biasing and scoring in the mass geometry
  //
  G4GeometrySampler mgs(detCon->GetWorldVolume(),"geantino");
  mgs.SetParallel(false);

// prepare for importance sampling
    //
    aIstore = detCon->CreateImportanceStore();
    mgs.PrepareImportanceSampling(aIstore, 0);
  mgs.Configure();

and to my detectorConstruction I added a function that does
  G4IStore *istore = new G4IStore(*pWorldVolume);

istore->AddImportanceGeometryCell(imp,*PhysicalVolume,n++); // for each physical volume.

Although it compiles finally, It gives me an exception first time it has to cross a border between 2 volumes.

Anyone knows where am I wrong?????

Tnx Ran

Question Generic Biasing for dedicated physics processes  by Stefan E. Mueller <Stefan E. Mueller>,   05 Jun, 2014
Dear all,

I would like to use the new generic biasing, but unlike example GB01, I would like to bias only some processes for particles, e.g. only "GammaToMuPair" for particle "gamma". To do this, in my main I use the following code:

  G4GenericBiasingPhysics* biasingPhysics = new G4GenericBiasingPhysics();
  std::vector<G4String> vBiasProcGamma;
  vBiasProcGamma.push_back("GammaToMuPair");
  biasingPhysics->Bias("gamma",vBiasProcGamma);
  physics->RegisterPhysics( biasingPhysics );

However, when I run my executable, I get in the output for /process/list:

biasWrapper(0)
 biasWrapper(compt),  biasWrapper(phot),  biasWrapper(conv),  biasWrapper(Rayl)
biasWrapper(photonNuclear),biasWrapper(GammaToMuPair)

So it seems that all processes for photons are wrapped, not only "GammaToMuPair". I get the same output for /process/list if I do simply

 biasingPhysics->Bias("gamma");

so it sems to me at this stage, the second argument is ignored somehow!?

Is that to be expected?

Stefan

1 Sad: Re: Generic Biasing for dedicated physics processes   (Marc Verderi - 16 Jun, 2014)
None Error in Accumulating Square of Hits to a G4THitsMap for Precision Calculation  by Matthew Lund <Matthew Lund>,   30 May, 2014
  I've been using example RE02 as an example of recording hits using 16 different detectors with several primitive scorers. I accumulate hits fine in the hits map; however, I also want to create a G4THitsMap with all the detectors and scorers with the square of each hit so that I can calculate error. I have tried many different ways of recording the data, but I can't figure out how to correctly reference it. Below is the code and the error message, any ideas of how to correctly reference it?

Thanks!

void Run::RecordEvent(const G4Event* aEvent)
{
    numberOfEvent++; // This is an original line.
    
    //=============================
    // HitsCollection of This Event
    //============================
    G4HCofThisEvent* HCE = aEvent->GetHCofThisEvent();
    if (!HCE) return;
       
    //=======================================================
    // Sum up HitsMap of this Event into HitsMap of this RUN
    //=======================================================

  G4int nCol = fCollID.size();
    for ( G4int i = 0; i < nCol ; i++ ){ // Loop over HitsCollection
        G4THitsMap<G4double>* evtMap=0;
        if ( fCollID[i] >= 0 ){ // Collection is attached to HCE
            evtMap = (G4THitsMap<G4double>*)(HCE->GetHC(fCollID[i]));
        }else{
            G4cout <<" Error evtMap Not Found "<< i << G4endl;
        }
        if ( evtMap ) {
            //=== Sum up HitsMap of this event to HitsMap of RUN.===
            *fRunMap[i] += *evtMap;

            //======================================================
            // Sum Up Hits Squared for error calculations
           //=======================================================

            std::map<G4int,G4double*>::iterator itr = evtMap->GetMap()->begin();
            for(; itr != evtMap->GetMap()->end(); itr++) {
                G4int key = (itr->first);
                fRunMap_Square[key]+=[key](*(itr->second))*(*(itr->second));
            }
}}

Compilation Error:
error: invalid operands to binary expression ('value_type' (aka 'G4THitsMap<double> *') and 'double')
                fRunMap_Square[key]+=(*(itr->second))*(*(itr->second));
                ~~~~~~~~~~~~~~~~~~~^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
1 None: Re: Error in Accumulating Square of Hits to a G4THitsMap for Precision Calculation   (Tsukasa Aso - 31 May, 2014)
None Statistical error with scoring  by <Sarah>,   27 May, 2014
Hello,

I was wondering if it is possible to output the statistical error associated with scoring quantities like the energy deposited or the dose?

Many thanks

1 None: Re: Statistical error with scoring   (Matthew Lund - 30 May, 2014)
None Particle Source Biasing  by Ran Itay <Ran Itay>,   15 May, 2014
Hi all

Please I need your help

I have an isotropic source and Im actually interested in events that are emitted to a certain solid angle much more then other. I know there is a way to bias the angular distribution of the emitted particles (and compensate someway), but I just cant find how to add it to my code.

Take into account that I'm almost not using predefind class and have implemented by myself all

Tnx Ran

1 None: Re: Particle Source Biasing   (Daren Sawkey - 21 May, 2014)
Question Scoring particles inside a sensitive volumen  by Balder <Balder>,   13 May, 2014
Dear Geant4 experts, I have created a sensitive volume in order to score the particles that interact with it.

G4bool CheckVolumeSD::ProcessHits(G4Step* aStep, G4TouchableHistory*)
{
  const G4Track* track = aStep->GetTrack();
  G4double e = track->GetKineticEnergy();

  if (track->GetDefinition() == G4Gamma::Gamma()) {
    G4cout << "CheckVolumeSD: gamma final energy = " << e/MeV 
    << G4endl;

  }

  if (track->GetDefinition() == G4Electron::Electron()) {
    G4cout << "CheckVolumeSD: e- final energy = " << e/MeV 
    << G4endl;
  }
  return true;
}

 Besides, to get all the picture, I need to score the particles -type and energy, that go through my sensitive volume without interact. Please, Could you advise me about it? 
Best regards,
Arturo.

1 None: Re: Scoring particles inside a sensitive volumen   (Tsukasa Aso - 15 May, 2014)
None Geometry Biasing  by Ran Itay <Ran Itay>,   13 May, 2014
Hi

Im new at this forum, so I hope this is the right place to post. I have a detector which is shielded by many stuff, and I would like to simulate its response to an external source. I saw that there is a way to recorded each gamma that penetrates a specific volume and multiply it by 1000 for an example. (This will allow me to get higher statistic in the regime of interst) Is there a way to do this?

Tnx Ran

1 None: Re: Geometry Biasing   (Daren Sawkey - 21 May, 2014)
None Delay in scoring  by <Sarah>,   09 May, 2014
Hi everyone,

I have a box of water with a size 50 x 50 x 50 mm with a score mesh of an equal size. Using visualisation I have verified that the mesh is in the correct place and that it covers the region of my volume, however when I look at the projection to see if the scoring has taken place, it doesn't start till halfway through the box. I was wondering if anyone has an idea why this might be happening?

Thanks

Sarah

1 None: Re: Delay in scoring   (Tsukasa Aso - 11 May, 2014)
Question how2 access to G4PSCylinderSurfaceFlux  by Aliya Mukanova <Aliya Mukanova>,   29 Apr, 2014
Dear, experts, could you help me

I need to get neutron flux on my tube, neutrons fall on tube only from lateral

I have used G4PSCylinderSurfaceFlux as follows:

  G4MultiFunctionalDetector* reflDet 
    = new G4MultiFunctionalDetector("reflector");
  G4SDParticleFilter* neutronFilter 
    = new G4SDParticleFilter(filterName="neutronFilter",particleName="neutron");

  G4VPrimitiveScorer* primitive = new  G4PSCylinderSurfaceFlux("NeutSurfFlux",1.,0.);
  primitive-> SetFilter(neutronFilter);
  reflDet->RegisterPrimitive(primitive);

  SetSensitiveDetector("BeRadLV",reflDet);

Is it correct to write this way? How can I access to this class, there is no example which uses G4PSCylinderSurfaceFlux

Looking forward your response, Aliya Mukanova (participant of Geant4 tutorial cource, Stanford, 2014)

1 None: Re: how2 access to G4PSCylinderSurfaceFlux   (Makoto Asai - 29 Apr, 2014)
(_ None: Re: how2 access to G4PSCylinderSurfaceFlux   (Aliya Mukanova - 29 Apr, 2014)
(_ None: Re: how2 access to G4PSCylinderSurfaceFlux   (Makoto Asai - 01 May, 2014)
(_ None: Re: how2 access to G4PSCylinderSurfaceFlux   (Aliya Mukanova - 05 May, 2014)
(_ Sad: Re: how2 access to G4PSCylinderSurfaceFlux   (Aliya Mukanova - 12 May, 2014)
None Set world as scorer  by <Sarah>,   25 Apr, 2014
Hi everyone,

Random question, but I was wondering if I were to set my world volume as a scorer would that then classify any daughter volumes as scorers too seeing as they are within the mother volume.

thank you for any help you can offer!

Sarah

1 None: Re: Set world as scorer   (Tsukasa Aso - 11 May, 2014)
None how to enable "implicit capture"  by Lu, Wei <Lu, Wei>,   24 Apr, 2014
In the manual it says "Weight roulette (also called weight cutoff) is usually applied if importance sampling and implicit capture are used together...". But it mentions nothing about how to enable or perform an "implicit capture". Does it mean that it is enabled as far as I set up the importance sampling? Thanks.

Wei

Question question about how to score dose by using a mesh  by Balder <Balder>,   17 Apr, 2014
I have read the guide for developers and some info about mesh on the web but I am not sure how the mesh works. The advise from the Geant4 experts will be very helpful to me. I have launched gamma rays inside a water tank and there is a foil inside the tank. I have created a mesh in order to get the dose deposited in the foil. If the mesh overlap the foil, then Will the mesh calculate the dose absorbed by the foil? If so, that imply that the mesh has to know the density of the foil in order to calculate the dose inside the foil and I do not know how the mesh will get that info. Many thanks in advance.

None Scoring Scatter fractions and Fluence  by William Donahue <William Donahue>,   15 Apr, 2014
Hi Everyone,

I am new to the simulation process and am looking for input of experts in it to make efficient and logical code. I apologize for the long winded intro but wanted to provide all the background for my questions.

I am looking at the shielding of polarized low energy photons. I have a simple geometry where a source of these photons in incident on a box made of my shielding material. I have set up a spherical shell to retrieve the scatter information off of the box's surface. I need to score the energy spectrum of each layer in the wall counting only the first time a particle passes through a layer (ignoring backscatter). I also need to use the spherical shell to measure the energy spectrum and fluence. For accuracy I need to have very thin slices in the box to produce accurate fluence curves. On the sphere I need 5x5 degree solid angles.

I have yet to implement this but my current approach would seem to involve having an array of energy region vs depth for my box. This table would then count the number of photons in each region and then add it to the proper row. I would also need to tag the particles with the copy number of the last layer of the box material they passed through. I would then only add the item for the table if the new layer has a larger copy number. This would limit me to only counting the photon if it is the first time it passes through a layer. I expect to use the step information to determine its location in my box but need to know its previous maximum depth.

For the scatter fluence I am looking to make a field of 5x5 degree solid angles. I forsee needing a table of energy versus theta angle for each phi angle. So in my hemisphere I would need something like 36 tables. This just does not seem right or logical but it my best current thought process.

Now for my questions: 1. Is it possible to add a field to my photon tracks that tracks their progression through my box's layers?

2. Can I use arrays in a thread-safe fashion to allow Geant to run in MT mode?

3. Are there any examples out there where this is done? I have read through the general documentation on the examples but, as it appears when reading through the forum, some of the ideal cases are hidden where you least expect them.

4. Would the surface Flux scorer work? I feel like it would count any particles that backscattered and pass back through a plane in the forward direction.

Of course all of these question assume I have the proper thought process and i am not missing useful built in tools for this kind of scoring.

Thanks for your help,

Will

Question Not continue results in scoring mesh  by Yuefeng Qiu <Yuefeng Qiu>,   03 Apr, 2014
Hello!

I try to run the example case /extended/runAndEvent/RE03 with neutron. The cell flux score I obtain is quite strange at mid-plane of Y(or Z) cut. In the picture we can find that the values are not continued at the center position.

I've attached my macro file. Can any body help me to have a look?

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/04/03/05.14-606-run1.mac
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/04/03/05.14-26491-CellFlux_box.png

1 More: Re: Not continue results in scoring mesh   (Yuefeng Qiu - 04 Apr, 2014)
2 Idea: Re: Not continue results in scoring mesh   (lcl - 04 Apr, 2014)
1 More: Re: Not continue results in scoring mesh   (Yuefeng Qiu - 04 Apr, 2014)
None Shark fin in Compton spectrum  by Kyle Schmitt <Kyle Schmitt>,   02 Apr, 2014
Hello,

I am having trouble with strange features in energy spectra from a germanium detector. I am using a 60 keV gamma source 30cm from the window of a germanium detector with a thin dead layer (varies from 0 to 1000 um). I see a strange fin-shaped hump at around 1/6 of the primary particle energy. Also, the area between 50 and 60 keV is populated. I do not think these two features are physical. It is likely that I am doing something silly, but I do not know what.

I am recording the energy using the GetTotalEnergyDeposit and GetNonIonizingEnergyDeposit methods in my stepping action and passing that information to my event action, where the histogram is populated. I will attempt to attach spectra. If I remove the dead layer so that the only material in the envelope is G4_Galactic and the active volume (G4_Ge), I get the latter spectrum.

Many thanks, Kyle

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/04/02/13.28-56737-Spectrum58.gif
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/04/02/13.28-90297-Spectrum59.gif

None Command Based Scoring Returning Arbitrary Current  by Maxwell Dierken <Maxwell Dierken>,   01 Apr, 2014
Hello Geant4 Users,

I am attempting to modify the exGPS example in /extended/eventgenerator to measure the current of gamma rays through a mesh using command based scoring. I am able to write measurements to a CSV file, but the measurements being returned should vary inversely with the square of the mesh's distance from the source, which it does not. From building and launching the application, I enter the following commands:

////To set up the gps

/gps/particle gamma

/gps/position 0 0 0 m

/gps/ang/type iso

/gps/energy 661. MeV

////To score the current

/score/create/boxMesh boxMesh1

/score/mesh/boxSize 0.02 0.02 0.002 m

/score/mesh/nBin 1 1 1

/score/mesh/translate/xyz 0. 0. [arbitrary distance] m

/score/quantity/nOfStep nOfStepGamma

/score/quantity/flatSurfaceCurrent flatSurfaceCurrent 1 true false

////To write current to a file

/score/dumpAllQuantitiesToFile boxMesh1 ScoreFILE

/score/close

The application writes numbers for flatSurfaceCurrent and nOfStepGamma to the file, but the numbers make no statistical sense. for example in 8 runs of 1000 gammas emitted each, I will get a dataset like 32 19 25 24 40 31 29 26. Additionally, no matter how I change the distance from the mesh to the source, there is no proportional change in the numbers measured.

I am quite stumped here and any help at all would be greatly appreciated. Thank you in advance.

Regards, M. Dierken

None LNK2019 error from sensitive detector  by RY <RY>,   26 Mar, 2014
Hi,

I am getting a strange error that I don't understand when building my application in VC++10:

DetectorConstruction.obj : error LNK2019: unresolved external symbol "public: __thiscall He3SD::He3SD(class G4String)" (??0He3SD@@QAE@VG4String@@@Z) referenced in function "public: virtual class G4VPhysicalVolume * __thiscall DetectorConstruction::Construct(void)" (?Construct@DetectorConstruction@@UAEPAVG4VPhysicalVolume@@XZ) 2>C:\g4work\DDAA-build\Release\DDAA.exe : fatal error LNK1120: 1 unresolved externals

I've attached the header and source files for my sensitive detector. It is implemented in DetectorConstruction.cc as follows:

// Sensitive detector

	He3SD* He3 = new He3SD("He3SD");

	G4SDManager* SDman = G4SDManager::GetSDMpointer();

	SDman->AddNewDetector(He3);
	logicHe3Layer->SetSensitiveDetector(He3);

Any insight would be appreciated.

Thanks.

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/03/26/10.58-94-He3SD.hh
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/03/26/10.58-46665-He3SD.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/03/26/10.58-11742-He3Hit.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2014/03/26/10.58-96689-He3Hit.hh

1 None: Re: LNK2019 error from sensitive detector   (Tsukasa Aso - 28 Mar, 2014)
Question Why does my mesh-name show up as ProcName in output?  by Stefan E. Mueller <Stefan E. Mueller>,   25 Mar, 2014
In my macro-file, I declare several meshes to score "doseDeposit":

/score/create/boxMesh mesh_DA
/score/mesh/boxSize 52.5 2.5 0.025 cm
/score/mesh/nBin 210 1 1
/score/mesh/translate/xyz 0. 0. 578.445 cm
/score/quantity/doseDeposit Dose_A
/score/close

/score/create/boxMesh mesh_DB
/score/mesh/boxSize 52.5 2.5 0.025 cm
/score/mesh/nBin 210 1 1
/score/mesh/translate/xyz 0. 0. 652.095 cm
/score/quantity/doseDeposit Dose_B
/score/close

/score/create/boxMesh mesh_DC
/score/mesh/boxSize 52.5 2.5 0.025 cm
/score/mesh/nBin 210 1 1
/score/mesh/translate/xyz 0. 0. 725.755 cm
/score/quantity/doseDeposit Dose_C
/score/close

To my astonishment, I find the name of the last mesh ("mesh_DC") as the name of the last process
 (the process after which a particle's track ends) for particles like heavy 
ions, muons, positrons (particles I'd expect to decay), e.g.

********************************************************************************
* G4Track Information:   Particle = Cu64,   Track ID = 29105,   Parent ID = 29098
********************************************************************************

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0    -27.3     38.9      204  0.000491        0        0         0      DUMP18 initStep
    1    -27.3     38.9      204         0 0.000491  1.1e-05   1.1e-05      DUMP18 ionIoni
    2    -27.3     38.9      204         0        0        0   1.1e-05      DUMP18 mesh_DC

The coordinates are nowhere I'd expect the mesh to be, nor do the other meshes' names ever appear in the outputfile.

Is this the expected behavior of GEANT4.10? Did anybody else observe a similar phenomenon?

Stefan
1 None: Re: Why does my mesh-name show up as ProcName in output?   (Tsukasa Aso - 28 Mar, 2014)
Question G4MultiFunctionalDetector assign to more than one logical volume  by Yuefeng Qiu <Yuefeng Qiu>,   24 Mar, 2014
Hello everyone,

I have a question on using G4MultiFunctionalDetector. In manual section 4.4.4 it said that the G4MultiFunctionalDetector can be assign to more than one G4LogicalVolumes.

In my case, I have many G4LogicalVolumes (LV) being assigned to a G4MultiFunctionalDetector (for example 1000 LV which is different from each other). So the question is: How can I get results for each LV ?

The manual says that G4VPrimitiveScorer can be registered in G4MultiFunctionalDetector, and G4VPrimitiveScorer has a G4THitsMap. G4THitsMap maps "copy number" of the LV to a double value. If all my LV has no other copy, does it mean that all the results for these 1000 LV will be summed up and assign to value with key=0?

Is there any way to separate the results for each LV using the G4MultiFunctionalDetector?

Thanks for any hints.

Best regards, Yuefeng

1 None: Re: G4MultiFunctionalDetector assign to more than one logical volume   (Tsukasa Aso - 24 Mar, 2014)
(_ None: Re: G4MultiFunctionalDetector assign to more than one logical volume   (Yuefeng Qiu - 24 Mar, 2014)
None BremssstrahlungSplitting not working in Version 10.0  by <MJM>,   13 Mar, 2014
Hello,

While trying to migrate our code from version 9.6-p2 to version 10.0-p1, our BremsstrahlungSplitting has stopped working. We have implemented BremsstrahlungSplitting using G4WrapperProcess - basically as described on the last 6 pages of your EvenBiasing-Tutorial (http://geant4.slac.stanford.edu/SLACTutorial14/EventBiasing.pdf) or shown in this example from another user: http://hypernews.slac.stanford.edu/HyperNews/geant4/get/emprocess/1169.html. However, while it works fine in version 9.6-p2, we get the following error in the 10.0-p1 version:

### ===  Deexcitation model UAtomDeexcitation is activated for 1 region:
          DefaultRegionForTheWorld

### === G4UAtomicDeexcitation::InitialiseForNewRun()
### ===  PIXE model for hadrons: Empirical  1
### ===  PIXE model for e+-:     Livermore  1

 *** Break *** segmentation violation

=========================================================== There was a crash. This is the entire stack trace of all threads: ===========================================================

Thread 1 (process 6353):

#0  0x00007fff842166ac in wait4 ()
#1  0x00007fff83db4002 in system ()
#2  0x000000010dd3af49 in TUnixSystem::StackTrace ()
#3  0x000000010dd38aa4 in TUnixSystem::DispatchSignals ()
#4  <signal handler called>
#5  0x000000010c5af903 in G4LossTableBuilder::BuildDEDXTable ()
#6  0x000000010c5b3fe7 in G4LossTableManager::BuildTables ()
#7  0x000000010c5b390b in G4LossTableManager::BuildPhysicsTable ()
#8  0x000000010c5c0b2f in G4VEnergyLossProcess::BuildPhysicsTable ()
#9  0x000000010c267f02 in G4VUserPhysicsList::BuildPhysicsTable ()
#10 0x000000010c2672a4 in G4VUserPhysicsList::BuildPhysicsTable ()
#11 0x000000010c254141 in G4RunManagerKernel::BuildPhysicsTables ()
#12 0x000000010c253f79 in G4RunManagerKernel::RunInitialization ()
#13 0x000000010c247f94 in G4RunManager::RunInitialization ()
#14 0x000000010c247d37 in G4RunManager::BeamOn ()
#15 0x000000010c25cb2b in G4RunMessenger::SetNewValue ()
#16 0x000000010db060a7 in G4UIcommand::DoIt ()
#17 0x000000010db1cfdd in G4UImanager::ApplyCommand ()
#18 0x000000010dafecad in G4UIbatch::ExecCommand ()
#19 0x000000010dafeeb8 in G4UIbatch::SessionStart ()
#20 0x000000010db1a5d9 in G4UImanager::ExecuteMacroFile ()
#21 0x000000010db165fe in G4UIcontrolMessenger::SetNewValue ()
#22 0x000000010db060a7 in G4UIcommand::DoIt ()
#23 0x000000010db1cfdd in G4UImanager::ApplyCommand ()
#24 0x000000010bacbe6c in main ()
===========================================================

The lines below might hint at the cause of the crash. If they do not help you then please submit a bug report at http://root.cern.ch/bugs. Please post the ENTIRE stack trace from above as an attachment in addition to anything else that might help us fixing this issue. ===========================================================

#5  0x000000010c5af903 in G4LossTableBuilder::BuildDEDXTable ()
#6  0x000000010c5b3fe7 in G4LossTableManager::BuildTables ()
#7  0x000000010c5b390b in G4LossTableManager::BuildPhysicsTable ()
#8  0x000000010c5c0b2f in G4VEnergyLossProcess::BuildPhysicsTable ()
#9  0x000000010c267f02 in G4VUserPhysicsList::BuildPhysicsTable ()
#10 0x000000010c2672a4 in G4VUserPhysicsList::BuildPhysicsTable ()
#11 0x000000010c254141 in G4RunManagerKernel::BuildPhysicsTables ()
#12 0x000000010c253f79 in G4RunManagerKernel::RunInitialization ()
#13 0x000000010c247f94 in G4RunManager::RunInitialization ()
#14 0x000000010c247d37 in G4RunManager::BeamOn ()
#15 0x000000010c25cb2b in G4RunMessenger::SetNewValue ()
#16 0x000000010db060a7 in G4UIcommand::DoIt ()
#17 0x000000010db1cfdd in G4UImanager::ApplyCommand ()
#18 0x000000010dafecad in G4UIbatch::ExecCommand ()
#19 0x000000010dafeeb8 in G4UIbatch::SessionStart ()
#20 0x000000010db1a5d9 in G4UImanager::ExecuteMacroFile ()
#21 0x000000010db165fe in G4UIcontrolMessenger::SetNewValue ()
#22 0x000000010db060a7 in G4UIcommand::DoIt ()
#23 0x000000010db1cfdd in G4UImanager::ApplyCommand ()
#24 0x000000010bacbe6c in main ()
===========================================================

Any help is greatly appreciated, Thank you, MJM

1 None: Re: BremssstrahlungSplitting not working in Version 10.0   (Daren Sawkey - 14 Mar, 2014)
1 None: Re: BremssstrahlungSplitting not working in Version 10.0   (MJM - 16 Mar, 2014)
(_ None: Re: BremssstrahlungSplitting not working in Version 10.0   (Daren Sawkey - 18 Mar, 2014)
(_ None: Re: BremssstrahlungSplitting not working in Version 10.0   (MJM - 19 Mar, 2014)
2 Idea: Re: BremssstrahlungSplitting not working in Version 10.0   (Vladimir Ivanchenko - 19 Mar, 2014)
3 More: Re: BremssstrahlungSplitting not working in Version 10.0   (MJM - 19 Mar, 2014)
Question Scoring e- without scoring backscattered  by Wal <Wal>,   11 Mar, 2014
Hi everybody,

I am scoring the number of particles through a cylindrical volume (shielding) to ensure that no beta particles pass through it. I am using G4PSPassageCellCurrent to check that out but unfortunately I've noticed that backscattered e- are taken into account. I've seen in the documentation that a second parameter can be added to G4PSPassageCellCurrent, which a depth. I though it could solve the problem by specifying the depth a particle as to cover but no. If I put depth to 1.*mm it does not change anything and if I put to to 1.*cm, nothing at all is scored (even with gamma that I used to check the correctness of the method).

I am thus wondering, what does the "depth" parameter stand for ? And most important, if the parameter cannot help me that way, how can I count beta particles that goes through a volume without counting backscattered electron ?

Big thanks in advance,

Walid

1 None: Re: Scoring e- without scoring backscattered   (Daren Sawkey - 11 Mar, 2014)
2 Ok: Re: Scoring e- without scoring backscattered   (Wal - 02 Apr, 2014)
None Samll pixel size ----->Simulation Stops  by A. Hod <A. Hod>,   27 Feb, 2014
Dear Geant4 users,

I am scoring the FlatsurfaceCurrent. It works well but when I decrease the size of the detector pixels (e.g. pixel size = 2 nm) and irradiate the pixelated detector with 20 million electrons the simulation stops after 100000 events. Does anybody know why? Does the small pixel size make problems? I highly appreciate your helps.

Regards

A.H.

1 None: Re: Samll pixel size ----->Simulation Stops   (roc - 17 Jul, 2017)
Question How to scoring energy spectrum   by Mahdi <Mahdi>,   20 Feb, 2014
Hi all, I am very new in Geant4, so , excuse me because of my question may be very simple! I have a cube in my simulation that has an alpha source in it. I want to have the energy spectrum of gamma rays after these alpha particle makes some interaction with atoms of materials in the cube. I want to define a small cylinder in the cube and have the energy spectrum of those gamma rays that transmitted within the cylinder.something like F8 tally in mcnp. How can I have such spectrum?

1 Idea: Re: How to scoring energy spectrum   (A. Hod - 20 Feb, 2014)
1 None: Re: How to scoring energy spectrum   (Mahdi - 20 Feb, 2014)
2 Idea: Re: How to scoring energy spectrum   (A. Hod - 20 Feb, 2014)
1 Ok: Re: How to scoring energy spectrum   (Mahdi - 20 Feb, 2014)
3 None: Re: How to scoring energy spectrum   (Mahdi - 23 Feb, 2014)
4 Question: Re: How to scoring energy spectrum   (Mahdi - 04 May, 2014)
Question Scoring  by A. Hod <A. Hod>,   12 Feb, 2014
Hi everybody,

I irradiate the detector with an electron beam and I would like to calculate the number of electrons stopped in each pixel of the detector. I did it using scoring :

/score/quantity/cellCharge charge

But now, I am interested in the calculation of the number of electrons reaching the surface of the detector (number of electrons /pixel). I tried with:

/score/quantity/flatSurfaceCurrent current

If I irradiate the detector with only 50000 electrons I obtained a huge number (millions) of electrons/surface.

What should I use or take into account to calculate the number of electrons (per pixel) reaching the detector surface using scoring? I welcome your discussion Regards Adam

1 None: Re: Scoring   (Tsukasa Aso - 13 Feb, 2014)
(_ None: Re: Scoring   (Tsukasa Aso - 15 Feb, 2014)
None Question regarding event biasing  by <smharding>,   30 Jan, 2014
I have a quick question in regards to setting up a bias towards a given spectrum. I posed this question previously on SPENVIS and was given a bit of information before being directed here, so let me recap a bit before I pose my questions:

Given a spectrum, let's say:

/gps/hist/point 0.1 1.16E+06

/gps/hist/point 0.2 4.78E+05

/gps/hist/point 0.3 2.70E+05

/gps/hist/point 0.4 1.65E+05

/gps/hist/point 0.5 1.09E+05

/gps/hist/point 0.7 5.98E+04

/gps/hist/point 1 3.07E+04

/gps/hist/point 2 3.08E+03

/gps/hist/point 3 5.88E+02

So on and so forth

To bias it with regards to energy, we use a /gps/hist/type biase command. Now, here's where it gets a bit fuzzy. I was told on the SPENVIS forums to run something similar to:

/gps/hist/type biase

Followed by a spectrum, and again following it with two columns. The way I was told to calculate the columns, however, could not be explained as well as I would have preferred, but was was told to me was that following the biase command, I would list a spectrum that followed with two columns that looked something like this

/gps/hist/point (calculated probability) (inverse of differential flux)

So in a macro file it would look something like:

/gps/ene/type blah /gps/hist/type blah /min blah /max blah

/primary spectrum

/gps/hist/type biase

/bias spectrum

(normalization factor, etc)

And then whatever other options I wanted to include, assuming I am in fact supposed to use BOTH spectrum.

My questions are:

When calculating the probability given the formula (or technically, approximating the formula provided), a lot of values ended up towards 0.999***. All the way up to one. A few started around 0.2 or some such, but it shot up quickly given that formula. Now, in my mind, these numbers are creating a curve that implies probability, so a point with 0.999 is approximately twice as likely to occur as a point with 0.5 or so. Is this accurate, or am I way off?

My second question is in regards to the second column. I don't understand why it was required that I used the inverse of the differential flux, and an answer to that could not be given. Does anyone on here understand what is necessary to use, or why I might use the inverse differential flux?

And lastly, is there any literature explaining this better that someone could point me to? The Geant4 manual sparsely covers biasing, and what little it does include doesn't really answer my questions...

Thanks so much for any assistance. I realize this is a large multi-part question, and I apologize. But I have so many questions about how to properly use the biasing tool in Geant4 and I cannot seem to find any satisfactory solutions online!

1 Question: Re: Question regarding event biasing   (smharding - 30 Jan, 2014)
Question draw scoring without the command based scoring  by Cristian Bungau <Cristian Bungau>,   30 Jan, 2014
Hi,

I want to record the energy deposition in a certain volume of arbitrary shape and not outside of it. So the command based scoring will not work for me as the available shapes do not match my volume shape. Therefore I have to use the G4MultiFunctionalDetector method.

But then my question is: can I draw (at the end of the run) the scoring energy deposition in the same way as it can be done in the command based scoring: /score/drawProjection .... ?

Thank you,

Cristian

1 None: Re: draw scoring without the command based scoring   (John Allison - 30 Jan, 2014)
(_ Ok: Re: draw scoring without the command based scoring   (Cristian Bungau - 06 Feb, 2014)
(_ None: Re: draw scoring without the command based scoring   (John Allison - 06 Feb, 2014)
Question Integration time of detector  by fatin hamimi mustafa <fatin hamimi mustafa>,   15 Jan, 2014
Hi

I am not sure I am posting in the right category. I would like to ask about the integration time, either it is provided in Geant4 or not.

Thanks fatin

None Primitive Scorer Output Error in MT 10.0  by Matthew Lund <Matthew Lund>,   29 Dec, 2013
When running a scoring mesh in Geant4 10.0 as a multithread, dumping data to a file results in a csv file with repeats of numbers and no line breaks as shown below. However, when the exact same application is compiled to run on a Geant4 10.0 that is only a single thread, the csv files come out correctly.

Any ideas?

# mesh name: box
# primitive scorer name: eDep
# iX, iY, iZ, value [MeV]
0,0,0,0.8460794531511607
...
1,7,3,0
1,7,4,0.3076904911
1,7,4,1
1,8,0,0.122794357
1,8,0,0.
1,8,1,0.1929819291,8,1,0.1,8,2,2.98386946261,8,2,1,8,3,1.886026472411,8,31,8,4,0.13818003400771,8,1,9,0,0.24805065272991,9,0,0.1414818536883083
1,9,1,0.1110863914426777
1,9,2,1.192699907930878
1,9,3,0.001328198764895205
1,9,4,0.00153431176840968
1 None: Re: Primitive Scorer Output Error in MT 10.0   (lcl - 02 Jan, 2014)
2 None: Re: Primitive Scorer Output Error in MT 10.0   (Akinori Kimura - 22 Feb, 2014)
1 None: Re: Primitive Scorer Output Error in MT 10.0   (Matthew Lund - 14 Apr, 2014)
None scoring the metastable states of an isotope produced by (n,g) reaction  by Eleni <Eleni>,   03 Dec, 2013
Hello all,

I am studying the neutron capture reaction in various materials and i want to score the ground and metastable states. For example in a Cd target I want to see the reaction Cd110(n,g)Cd111m. How can I do that? I am using the QSGP_BIC_HP library and when i am running G4 the produces isotopes are the ones in ground state

Thank you in advance

1 None: Re: scoring the metastable states of an isotope produced by (n,g) reaction   (John Apostolakis - 04 Dec, 2013)
2 None: Re: scoring the metastable states of an isotope produced by (n,g) reaction   (michel maire - 04 Dec, 2013)
None Unphysical energy deposition  by Agnieszka Priebe <Agnieszka Priebe>,   09 Oct, 2013
Hello,

I have simulated beam losses on a magnet aperture (beam energy 4 TeV, protons, impacting angle of 200 urad). My SD detector is on magnet coil with binning: rho=4, phi=90 and zet=300.

The radial energy distribution (along the most exposed bin) showed that the energy in the last bin (3) is greater than the energy in the previous one (2) which seems to be non-physical. Therefore I have prepared a histogram with a number of entries being in a certain energy range (see attachment). It shows that the last bin scored high energy particles (the energy range almost the same as for bin 0 ). Do you have any idea what could be a reason of that?

I would be very grateful for your help.

Cheers, Agnieszka

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2013/10/09/11.29-94636-zP300_maxBin_spektrum.png
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2013/10/09/11.29-88797-0_maxBin_spektrum_int.png

Question how to get the RMS error of cellFlux scoring by mesh_box?  by lcl <lcl>,   29 Sep, 2013
hello,

I want ot get the cellFlux distribution.Some thing like example RE03,make a box mesh of scoring.

use the command libe based scoring.

and i get the txt file(like csv file "nOfStepGamma.txt" in RE03).

my question is how to get RMS error of cellFlux of each cell?

is there some easy way to get this error?

1 None: Re: how to get the RMS error of cellFlux scoring by mesh_box?   (Sarah - 27 May, 2014)
2 Idea: Re: how to get the RMS error of cellFlux scoring by mesh_box?   (lcl - 27 May, 2014)
1 None: Re: how to get the RMS error of cellFlux scoring by mesh_box?   (Sarah - 31 May, 2014)
1 None: Re: how to get the RMS error of cellFlux scoring by mesh_box?   (lcl - 31 May, 2014)
... 5 Message(s)
2 Question: Re: how to get the RMS error of cellFlux scoring by mesh_box?   (Jessica Garczarczyk - 15 Nov, 2017)
Question How to find physical volumes from a text entered geometry  by sylvian kahane <sylvian kahane>,   26 Sep, 2013
Hi all

I have a simple geometry of 10 slabs of material, defined in an external file as a parametrization of a single logical volume:

:VOLU "poly" BOX 10.*cm 10.*cm 0.5*cm G4_POLYETHYLENE
:COLOR "poly" 0 1 1 1
:PLACE_PARAM "poly" 1 world LINEAR_Z  R00     10    1*cm     -4.5*cm

I would like to give increasing importances for each one of the 10 slabs, but to do this I need the physical volume pointer of each slab.

How can I get these pointers ?

Sylvian K

1 Feedback: Re: How to find physical volumes from a text entered geometry   (Pedro Arce - 28 Sep, 2013)
Question Is it possible to invoke G4Scintillation process only for specific region ?  by Lafont Fabien <Lafont Fabien>,   29 Jul, 2013
Hi everyone,

My question is quite simple : As the scintillation process is a rather slow process in terms of time of computation, I would like to invoke it only for the real scintillating region.

I think it is impossible to do this cause all process are invoked for each event to determine the step length but maybe there is a tricky idea which could help me.

Thanks in advance.

Question scoring flux in a box divided in cells in x-y plane with event biasing  by Cristian Bungau <Cristian Bungau>,   07 Jul, 2013
Hello,

I am trying to score the incoming flux in a box, but have the box divided in x-y plane so I can get the X-Y distribution of incoming particles.

So I have a box in my DetectorConstruction:

  G4Box* TopDetectorSolid = new G4Box("TopDetector", 125.*cm, 150.*cm, 2.5*cm);

  TopDetectorLog = new G4LogicalVolume(TopDetectorSolid, Air,"TopDetector");

  TopDetectorPhys = new G4PVPlacement(0,G4ThreeVector(),
                                      TopDetectorLog,"TopDetector",logicWorld,
                                      false,0);

And to get the flux distribution along the x-y plane (250cm * 300cm), I divide daughter volumes along x-y to which I'll assign different flux scorers:

  G4Box* TopDetectorScorerSolid = new G4Box("TopDetectorScorer", (10./2.)*cm, (12./2.)*cm, 2.5*cm);

  TopDetectorScorerLog = new G4LogicalVolume(TopDetectorScorerSolid, Air,"TopDetectorScorer");

  for (int j = 0; j < 50; j++) {
  for (int i = 0; i < 50; i++) {

TopDetectorScorerPhys = new G4PVPlacement(0,

  G4ThreeVector((250.-(2.*i+1)/2.)*10.*cm,(300.-(2.*j+1)/2.)*12.*cm,0.),
  TopDetectorScorerLog,"TopDetectorScorer",TopDetectorLog,
  false,
  i+50*j // 2500 copies
  );

}}

So I'll have 2500 scorers each attached to one of the copies above.

//----------------------

Also I have to use geometry biasing so I am assigning importance to each volume. For the 2500 copies of the small volumes, I assign the importance like this:

  for (int i=0; i<2500; i++) 
      { 
      istore->AddImportanceGeometryCell(std::pow(2., 7), *TopDetectorScorerPhys, i);
      }

But during the run I get a G4Exception abort message, that one of the copies (replica 687 in this case) does not have an importance assigned to it and it is not in the list, and here it gives all the volumes with the replica numbers, including the one it complains about not being in the list.

I would be very grateful for any help or suggestion,

Thank you very much,

Best regards,

Cristian

1 None: Re: scoring flux in a box divided in cells in x-y plane with event biasing   (Tsukasa Aso - 07 Jul, 2013)
(_ More: Re: scoring flux in a box divided in cells in x-y plane with event biasing   (Cristian Bungau - 08 Jul, 2013)
(_ None: Re: scoring flux in a box divided in cells in x-y plane with event biasing   (Eleni - 01 Aug, 2013)
None geometric biasing  by Eleni <Eleni>,   07 Jul, 2013
Hello all, I am trying to use the geometric biasing with no success so far. Is there any example (simpler than B01)?

Thank you

None geometric biasing  by Eleni <Eleni>,   07 Jul, 2013
Hello all, I am trying to use the geometric biasing with no success so far. Is there any example (simpler than B01)?

Thank you

None geometric biasing  by Eleni <Eleni>,   07 Jul, 2013
Hello all, I am trying to use the geometric biasing with no success so far. Is there any example (simpler than B01)?

Thank you

None scoring volume setting  by riazi <riazi>,   01 Jul, 2013
Dear Geant4 Experts

Thank you a lot for your efforts in teaching Geant4 for others.

I have a question about the mechanism of setting scoring volume to stepping action class from detector construction class (in Construct() function) for example in Example B1:

(
 // Set scoring volume to stepping action 
  // (where we will account energy deposit)
  //
  B1SteppingAction* steppingAction = B1SteppingAction::Instance(); 
    steppingAction->SetVolume(logicShape2);
 )
this is the only place in the example that the SetVolume function is called, this function sets the fVolume private variable of B1SteppingAction class. however the variable fVolume is intialized to zero in constructor of B1SteppingAction class and it dosn't change in the B1SteppingAction class elsewhere. Now how the fVolume variable is set to scoring volume to compare with volume of the current step?

B1SteppingAction::B1SteppingAction(): G4UserSteppingAction(),
  fVolume(0),
  fEnergy(0.)
{ 
  fgInstance = this;
}

void B1SteppingAction::UserSteppingAction(const G4Step* step)
 {
   // get volume of the current step
   G4LogicalVolume* volume 
    = step->GetPreStepPoint()->GetTouchableHandle()
       ->GetVolume()->GetLogicalVolume();      
   // check if we are in scoring volume
   if (volume != fVolume ) return;

   // collect energy and track length step by step
   G4double edep = step->GetTotalEnergyDeposit();
   fEnergy += edep;
}

With Best Regards, Riazi

1 None: Re: scoring volume setting   (Tsukasa Aso - 05 Jul, 2013)
(_ None: Re: scoring volume setting   (riazi - 10 Jul, 2013)
(_ None: Re: scoring volume setting   (Tsukasa Aso - 10 Jul, 2013)
(_ None: Re: scoring volume setting   (riazi - 12 Jul, 2013)
Question 2-d and 3-d Dose Tallies  by David <David>,   24 Jun, 2013
I am looking for recommendations for a geant example or a class for tallying dose in 2-d and 3-d.

In the past, I used user action classes to get dose tallies in 1-d, but I think expanding to multi-d dose tallies will become to cumbersome within user actions. Is there an ideal way to do 2-d and 3-d tallies in geant?

Thanks,

David

Question help needed with variance reduction method - reposting  by Magda Constantin <Magda Constantin>,   22 May, 2013
Dear G4 Colleagues,

I've posted this message on the Electromagnetic Processes Forum, but I would also like to post the same question in this Forum.

I am simulating dose deposited to a water phantom at 1 meter away from a 6MeV medical X-ray source. The beam is transmitted through ~4.5 tenth-value-layer slab (~156 mm of tungsten). The incident radiation intensity decreases by a factor of ~25e-06 after passing through the tungsten slab. Because of this drastic intensity attenuation, I have to simulate a very large (~in the billions) number of incoming 6 MeV electrons on the source target. When I calculate with Geant4 (v9.4.p02 ) the dose is ~10 times larger than the experimental measurement.

I suspect that this disagreement is due to limited statistics on the scoring voxels. My intention is to use variance reduction techniques to increase the number of electrons on the X-ray target without increasing the simulation time too much. Could you please advise which variance reduction methods are the most suitable in my case? Is there a working example that I can look at? How about validation studies and/or publications?

Are there any other strategies to help me lower the simulation time (i.e. range cuts, other Physics List, etc)? I have been using Opt3 with 10 um range cut for the particles. Thank you in advance for your advice.

Magda

Question Get information about secondaries  by Mikhail <Mikhail>,   21 May, 2013
Hi all,

Can one tell me how can I get information about secondary particles? I have found an example with counting their amount ( http://hypernews.slac.stanford.edu/HyperNews/geant4/get/particles/317/1.html ), but nothing about how to get their type and other parameters. Although I can prit all information in terminal with setting tracking verbose to 3. The worst thing is that I can not find the proper description of the methods like GetCurrentStepNumber or GetProcessDefinedStep and others, they are too brief or absent at all. I apreciate if one can sugest me somethig about proper functions or examples of working with the secondaries.

Question Segmentation fault (core dumped)  by Kalachov Alex <Kalachov Alex>,   04 May, 2013
Hello! I try to get name of th process by step->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName() and there is an error occured like this :

eIoni Transportation ionIoni RadioactiveDecay Transportation Transportation Transportation RadioactiveDecay Transportation Segmentation fault (core dumped)

If i will turn off this function the programm will work fine.The same result i have when i turn off one of these function in PhysicsList:

1)... else if (particleName == "GenericIon") {
      pmanager->AddProcess(new G4hMultipleScattering, -1, 1, 1);
      G4ionIonisation* ionIoni = new G4ionIonisation();
      ionIoni->SetEmModel(new G4IonParametrisedLossModel());
      ionIoni->SetStepFunction(0.1, 10*um);
      pmanager->AddProcess(ionIoni,-1, 2, 2); ... <-------- this function

2)... pmanager->AddProcess(theRadioactiveDecay);
      pmanager->SetProcessOrdering(theRadioactiveDecay,idxPostStep);
      pmanager->SetProcessOrdering(theRadioactiveDecay, idxAtRest); <--this fucntion

But at thirst case a have no gamma in readioctive decay,at second i have no decay in general

Please help) Probably the error caused by programm part,but i have no enough information to find where the probleam really is.

Question neutron step length  by Saman Kiamehr <Saman Kiamehr>,   24 Apr, 2013
Dear Geant Users,

I have a code in geant to count the number of generated electron due to a particle strike in a simple silicon cube. When the particle is neutron, the step length is around 0.5 m which is too large since I want to do the simulation for small dimensions.

Step#    X(mm)    Y(mm)    Z(mm) KinE(MeV)  dE(MeV) StepLeng TrackLeng  NextVolume ProcName
    0        0      -10        0       100        0        0         0   Fin_place initStep
    1        0      550        0         0        0      560       560   Fin_place NeutronInelastic
    :----- List of 2ndaries - #SpawnInStep=  7(Rest= 0,Along= 0,Post= 7), #SpawnTotal=  7 ---------------
    :         0       550         0        22            neutron
    :         0       550         0      16.1            neutron
    :         0       550         0        13             proton
    :         0       550         0      2.95             proton
    :         0       550         0     0.807            neutron
    :         0       550         0     0.114              gamma
    :         0       550         0      6.83          Mg24[0.0]
    :----------------------------------------------------------------- EndOf2ndaries Info ---------------

I tried to use G4UserLimits to adjust the step length of neutron, however, the step length of all the other particles have been adjusted except neutron. I was wondering if there is a solution to decrease the step length of neutron to a value smaller than 550 mm as shown in the results. I should mention that I am using QGSP_BERT_HP physic list.

regards, Saman

Question Neutron interaction  by Saman Kiamehr <Saman Kiamehr>,   24 Apr, 2013
Hello Geant users,

I started using Geant recently and I want to do a very simple task with Geant, however I could not do so.

I want to count the number of generated electrons due to strike of cosmic rays (such as alpha particle and neutron) in a silicon box. My silicon box dimension is (l=20nm, w=10nm, h=25nm). When the particle is alpha there is no problem and there are electrons which are generated. However, when I change the particle to neutron, there is no generated electron in the box.

-I used the QGSP_BERT_HP and my userphysiclist and for both the results were the same (no interaction and no secondary is generated in that small dimensions).

- I tried to run the tool for much bigger silicon box (1m*1m*1m), there is no electron generated directly from Neutron. There are other types of generated secondary particles such as gamma and proton. And these secondary particles generate electrons. does it make sense?

- What type of physic list is the best choice for me.

I really appreciate if you can help with that.

regards, Saman

Question scoring secondary heavy ions  by Kevin Lyons <Kevin Lyons>,   22 Mar, 2013
Hi,

Sorry in advance if I'm missing something very basic- I am trying to use G4PSNofSecondary to count heavy ions created in a run. For example, for F-20 I am using the code

...

G4SDParticleFilter* F20Filter = new G4SDParticleFilter(filterName="F20Filter",particleName="F20[0.0]");

G4MultiFunctionalDetector* det = new G4MultiFunctionalDetector(detName="F20Detector");

G4VPrimitiveScorer* primitive;

primitive = new G4PSNofSecondary("nF20"); primitive->SetFilter(F20Filter);

det->RegisterPrimitive(primitive);

...

Everything compiles fine, but when I run the code I get the error message:
*** G4Exception : DetPS0101
      issued by : G4SDParticleFilter::G4SDParticleFilter
Particle <F20[0.0]> not found.

In the ConstructParticle() section of my physics list I used the line of code:

... G4ParticleDefinition* f20 = particleTable->GetIon(9,20,0); ...

which I thought should register the particle. Perhaps I am doing this step wrong?

Many thanks, Kevin

1 None: Re: scoring secondary heavy ions   (Tsukasa Aso - 24 Mar, 2013)
(_ None: Re: scoring secondary heavy ions   (Kevin Lyons - 24 Mar, 2013)
Question Where to access event quantities  by Noa Rensing <Noa Rensing>,   12 Mar, 2013
This may be a naive question, but I'm confused about what is the recommended way for accessing the information accumulated during events. Some of the examples (e.g. N07) use a RecordEvent method in N07Run.cc to record the energy deposited during the event (or whatever other scoring is implemented), while others (e.g. N04) do this bookkeeping from the EventAction using an EndOfEventAction method. Can anyone explain the rationale of using one approach over the other?

Thanks,

Noa

1 None: Re: Where to access event quantities   (Tsukasa Aso - 12 Mar, 2013)
Question energy distribution along depth of absorber  by Jerome Caron <Jerome Caron>,   07 Mar, 2013
Hi everybody, As medical physicist, I would like to have an idea of the distribution energy of the 1aries (e-) and 2aries (e- too) created along the depth of my absorber (water). I ve derived my own files from the testEm5 for a lot of diags already exist. In StackingAction file, I could use aTrack->GetKineticEnergy but it should associated with a condition on the location where the distribution is taken which means the use of StepPoint (as in TestEm11) but StepPoint is reserved to be used in SteppingAction file. Any idea to set up this diag would be helpful. Thanks in advance.

jerome

Question Splitting Compton Scattering  by <FT>,   19 Feb, 2013
Dear list,

I have been trying to implement compton scattering splitting by modifying the brem splitting code. I found a previous post from a few years ago giving hints on how to achieve this but I think the interface to the compton scattering process has changed and the dynamic cast from G4VParticleChange to G4ParticleChange is no longer valid.

Does anyone know how to achieve this? With what I have now I just seen to have turned off compton scattering, which the opposite of what I was hoping for. This is what I am doing at the moment.

G4VParticleChange* pCh = 0; std::vector<G4Track*> secs;

G4int i(0);
for(i=0; i<fNSplit; ++i)
{
    //Duplicate
    G4Track dup(tr);

    pCh = (pRegProcess->PostStepDoIt(dup, step));

    for(int j =0; j<pCh->GetNumberSecondaries(); ++j)
    {
         secs.push_back(new G4Track(*(particleChange->GetSecondary(j))));
    }
    secs.push_back(new G4Track(dup));
}

then change weights and add to output particle change as for brem example.

Thanks

1 None: Re: Splitting Compton Scattering   (Daren Sawkey - 19 Feb, 2013)
(_ None: Re: Splitting Compton Scattering   (FT - 19 Feb, 2013)
(_ None: Re: Splitting Compton Scattering   (Daren Sawkey - 19 Feb, 2013)
(_ None: Re: Splitting Compton Scattering   (FT - 20 Feb, 2013)
Question Energy Deposited - What is it relative To???  by Ben Hug <Ben Hug>,   17 Jan, 2013
Hi All,

Just wondering if anyone has an idea of what the deposited energy in a medium is normalised to.. i.e. is it deposited energy per incident fluence etc....

Thanks In Advance,

Cheers

Ben

1 None: Re: Energy Deposited - What is it relative To???   (Tsukasa Aso - 18 Jan, 2013)
(_ None: Re: Energy Deposited - What is it relative To???   (Ben Hug - 21 Jan, 2013)
None Forced Bremsstrahlung Interaction in specific Volume  by Niemes, Simon <Simon>,   07 Jan, 2013
Hello,

I am trying to simulate the bremstrahlung spectrum of low-energy 
electrons in water to evaluate the resulting spectrum.
Due to the low energy the bremssrahlung cross-section is very low. To 
improve statistics I want to force the generation of bremsstrahlung photons.

At the moment I am using the command: setBiasingFactor eBrem 1000 1000 
to boost the bremsstrahlung cross-section, but this only works globaly.
I found the command set ForcedInteraction, but seems to have no effect 
and no proper documentation.

Would this be the correct command the increase the cross-section in a 
specific volume and where can I find more information about 
setForcedInteraction?


Thanks you all very much in advance,
cheers,
    Simon

1 None: Re: Forced Bremsstrahlung Interaction in specific Volume   (Daren Sawkey - 08 Jan, 2013)
Question Modifying Example N03 Stepping Action Class to Score In Water Phantom  by Ben Hug <Ben Hug>,   23 Dec, 2012
Hi All,

Im trying to modify the SteppingAction.cc for the N03 example in Geant4.9.6.

The stepping Action section where the scoring is completed is as follows:

***********************************************************************
void SteppingAction::UserSteppingAction(const G4Step* aStep)
{
  // get volume of the current step
  G4VPhysicalVolume* volume 
  = aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume();

  // collect energy and track length step by step
  G4double edep = aStep->GetTotalEnergyDeposit();

  G4double stepl = 0.;
  if (aStep->GetTrack()->GetDefinition()->GetPDGCharge() != 0.)
    stepl = aStep->GetStepLength();

  if (volume == detector->GetAbsorber()) eventaction->AddAbs(edep,stepl);
  if (volume == detector->GetGap())      eventaction->AddGap(edep,stepl);
**********************************************************************

I have modified the DetectorConstruction.cc file to suit my own geometry with a detector volume in the centre of a water phantom with a physical volume name of physical_detector (see code below)...

***********************************************************************
 //....oooOO0OOooo........oooOO0OOooo........oooOO0OOooo........oooOO0OOooo......
  // DEFINE A VOLUME IN CENTRE OF WATER PHANTOM TO BE SCORED
  G4double detectorSize = 2* cm;
  G4Box* detector = new G4Box("detectorVolume", detectorSize/2, detectorSize/2, detectorSize/2);

  G4LogicalVolume* logical_detector = new G4LogicalVolume(detector, water, "detectorVolume_log", 0, 0, 0);

  G4VPhysicalVolume* physical_detector = new G4PVPlacement(0,G4ThreeVector(0,0,0), logical_detector, "detector_phys", logical_waterPhantom, false, 0, true);
************************************************************************

I haven't changed anything in the SteppingAction and it is the same as Example N03.. when I compile i get the following error: *********************************************************************** /Applications/geant4.9.6/G4Work/ConeOutputFactor/src/SteppingAction.cc: In member function ‘virtual void SteppingAction::UserSteppingAction(const G4Step*)’: /Applications/geant4.9.6/G4Work/ConeOutputFactor/src/SteppingAction.cc:73: error: ‘class DetectorConstruction’ has no member named ‘GetAbsorber’ /Applications/geant4.9.6/G4Work/ConeOutputFactor/src/SteppingAction.cc:74: error: ‘class DetectorConstruction’ has no member named ‘GetGap’ ************************************************************************

I cant find where the 'GetAbsorber' is defined nor how the line works in the above section where the code determines if the track occurs in a particular part of the geometry and if so scores the energy deposited..

Can Anyone help??

I am completely lost.

Thanks In Advance,

Cheers

Ben

1 None: Re: Modifying Example N03 Stepping Action Class to Score In Water Phantom   (Tsukasa Aso - 26 Dec, 2012)
(_ Ok: Re: Modifying Example N03 Stepping Action Class to Score In Water Phantom   (Ben Hug - 29 Dec, 2012)
Question Scoring From Within Stepping Action In a Volume Defined In DetectorConstruction.cc - Similar to Example N03  by Ben Hug <Ben Hug>,   19 Dec, 2012
Hi,

Im trying to score either the energy depositied or the dose in a square box (detector) within a water phantom with particles incident on the water phantom from the z direction. I only want to score the dose within the box only and am not intersted about the dose deposited in the medium surround the detector.

In SteppingAction.cc from the Example N03 there is a few lines (59 onwards) where they seem to find out what volume the particle track is in and if it is within a particular volume.

The volume name is detector/logical_detectorVolume/physical_detectorVolume and is defined in the DetectorConstruction.

I have not made any changes to the SteppingAction.cc file of N03.. can anyone give me pointers on how I can include in stepping action that I want to accumulate the energy deposited in this detector volume only and then write to file?

Thanks in advance,

Cheers

Ben

Question Clear the memory allocated for G4VPrimitiveScorer?  by Clare Huang <Clare Huang>,   19 Dec, 2012
Hi all,

I have been working on adapting an application based on example/extended/runAndEvent/RE02 where G4VPrimitiveScorer (or its derived classes) were called in the RE02DetectorConstruction.cc. I did a valgrind run on example RE02, and found that there are a few memory leak points potentially related to the 'new' statement called when setting up the G4MultiFunctionalDetector in RE02DetectorConstruction.cc. My question in short is ...

does one have to clear the memory allocated when declaring the derived scorer class? in another word, for every 'new' statement of the derived scorer class, do i need to delete it as well?

In the destructor of RE02DetectorConstruction, there is not action of deleting these pointers allocated by a new statement e.g. [line 315 in RE02DetectorConstruction.cc] G4PSEnergyDeposit* scorer0 = new RE02PSEnergyDeposit(psName="totalEDep",fNx,fNy,fNz);

(see this link for RE02DetectorConstruction.cc code: http://www-geant4.kek.jp/lxr/source/examples/extended/runAndEvent/RE02/src/RE02DetectorConstruction.cc?v=9.4.p2)

I have been trying to clear some of the memory issues that i run into while adapting this example to my application. When I increase the amount of voxels in the geometry (i.e. more volumes to track), my application tends to get stuck when running a 1M or 10M event simulation.

Let me know if you can help me shed some light in how to appropriately clear allocated memory by the pointers of classes that are derived from Geant4 classes.

Thanks a lot for your time and help in advance!

-Clare

1 None: Re: Clear the memory allocated for G4VPrimitiveScorer?   (Tsukasa Aso - 26 Dec, 2012)
(_ None: Re: Clear the memory allocated for G4VPrimitiveScorer?   (Clare Huang - 28 Dec, 2012)
(_ Question: Re: Clear the memory allocated for G4VPrimitiveScorer?   (Philipp Roser - 07 May, 2018)
1 Feedback: Re: Clear the memory allocated for G4VPrimitiveScorer?   (Pedro Arce - 08 May, 2018)
2 None: Re: Clear the memory allocated for G4VPrimitiveScorer?   (Makoto Asai - 08 May, 2018)
1 Question: Re: Clear the memory allocated for G4VPrimitiveScorer?   (Philipp Roser - Jul 30, 06:15)
... 2 Message(s)
None Increasing artificially neutron inelastic cross section  by C Mos <C Mos>,   29 Oct, 2012
Hi I notice in the user's manual that one could increase the cross section for gamma and electro nuclear reactions using something like hadronicProc->->BiasCrossSectionByFactor(1000);\

Is it possible to increase the cross sections for other processes? I am specifically interested in G4NeutronInelasticProcess. i did the following:

  //##### inelastic scattering ##############################
	G4NeutronInelasticProcess* theInelasticProcess =  new G4NeutronInelasticProcess("inelastic");
	G4LENeutronInelastic* theInelasticModel = new G4LENeutronInelastic;
	theInelasticModel->SetMinEnergy(19*MeV);//!//FromDMX 
	theInelasticProcess->RegisterMe(theInelasticModel);
	//theInelasticProcess->RegisterMe(theTheoModel);
	//Two NEW registrations
	G4NeutronHPInelastic * theLENeutronInelasticModel = new   G4NeutronHPInelastic;
	theInelasticProcess->RegisterMe(theLENeutronInelasticModel);
	G4NeutronHPInelasticData * theNeutronData1 = 
	  new G4NeutronHPInelasticData;
	theInelasticProcess->AddDataSet(theNeutronData1);
	theInelasticProcess->BiasCrossSectionByFactor(1000);
	pmanager->AddDiscreteProcess(theInelasticProcess);

However a got the following error:

  *** G4Exception : 007
      issued by : G4HadronicProcess::BiasCrossSectionByFactor
  Cross-section biasing available only for gamma and electro nuclear reactions.
  *** Fatal Exception *** core dump ***

  *** G4Exception: Aborting execution ***
  Aborted (core dumped)

Is there any other way to do this? Thank you,

Chris

None How to get the cross section for a reaction  by Jeyasingam Jeyasugiththan <Jeyasingam Jeyasugiththan>,   24 Oct, 2012
Hi

I want to get cross section for particular reaction Eg: 16O(p,p)16O or gamma production cross section. Please could you help me how I can get it from my Physics list. Are there any facilities in the geant4?

Thanks

with kind regards Sugi

None Filter of commend-based scoring  by <tangxiaoo@gmail.com>,   19 Oct, 2012
Hi, I am trying to count the number of gamma that passing through the detector using commend-based scoring. First, I defined my scorer using

/score/quantity/nOfStep nOfStepGamma

/score/filter/particle gammaFilter gamma

And then, I wish to separate the gamma of different energy, and defined two new scorers

/score/quantity/nOfStep nOfStepGamma1

/score/filter/particle gammaFilter1 gamma

/score/filter/kineticEnergy kEFilter1 0.001 0.02 MeV

/score/quantity/nOfStep nOfStepGamma2

/score/filter/particle gammaFilter2 gamma

/score/filter/kineticEnergy kEFilter2 0.02 0.04 MeV

all the other things are not changed. When I do the first run, the total count of nOfStepGamma is 17769, and when I do the second run, the total count of nOfStepGamma1 and nOfStepGamma2 are 23666 and 28249. I am confused, because I expect nOfStepGamma1 and nOfStepGamma2 to be smaller than nOfStepGamma, and their sum to be near nOfStepGamma. So, if somebody could tell me, what is nOfStepGamma counting, and how to use filter properly. Thanks a lot.

1 None: Re: Filter of commend-based scoring   (Tsukasa Aso - 19 Oct, 2012)
2 Question: Re: Filter of commend-based scoring   (smith - 21 Oct, 2012)
1 None: Re: Filter of commend-based scoring   (tangxiaoo@gmail.com - 21 Oct, 2012)
1 None: Re: Filter of commend-based scoring   (Tsukasa Aso - 21 Oct, 2012)
2 None: Re: Filter of commend-based scoring   (tangxiaoo@gmail.com - 21 Oct, 2012)
Question Tracking  by smith <smith>,   11 Oct, 2012
 i made my own geometry having two layer upper layer is made of He and lower one with silicon.I want to get energy deposition and i have some question regarding it.
1)How to get information about the volume a step is active in?
2)Information about  the current state of a particle in and how i get information about the current step?? 

1 None: Re: Tracking   (Tsukasa Aso - 11 Oct, 2012)
1 Ok: Re: Tracking   (smith - 14 Oct, 2012)
1 None: Re: Tracking   (Tsukasa Aso - 15 Oct, 2012)
... 1 Message(s)
2 None: Re: Tracking   (Tsukasa Aso - 16 Oct, 2012)
... 1 Message(s)
2 Question: Re: Tracking   (smith - 21 Oct, 2012)
1 None: Re: Tracking   (Tsukasa Aso - 21 Oct, 2012)
... 6 Message(s)
None Energy  by smith <smith>,   27 Sep, 2012
Hey i start working on neutron detector.in my geometry i am using two layer, upper layer is He and then silicon.i created ASCII file but i dnt know how i can store energy information in it.i mean when we run beam on and neutron hit the detector after that enerdies produce i want to save it in my ASCII file how in which file i should change for this. Any advice would be greatly appreciated. Regards smith

1 None: Re: Energy   (Tsukasa Aso - 27 Sep, 2012)
(_ Question: Re: Energy   (smith - 30 Sep, 2012)
1 None: Re: Energy   (Tsukasa Aso - 30 Sep, 2012)
1 None: Re: Energy   (smith - 01 Oct, 2012)
... 3 Message(s)
2 None: Re: Energy   (michel maire - 01 Oct, 2012)
1 None: Re: Energy   (smith - 07 Oct, 2012)
... 1 Message(s)
None Can I get kinetic energy by using scorer?  by <sebqian>,   25 Sep, 2012
I want to know the distribution of the kinetic energy of particles before they enter the sensitive detector. Can I achieve this by using a scorer? Or I have to use sensitive detector and hits?

1 Idea: Re: Can I get kinetic energy by using scorer?   (Jeyasingam Jeyasugiththan - 25 Sep, 2012)
Question Forced interactions  by Agelou <Agelou>,   30 Jul, 2012
Hello, I am currently working with very small geometries (World volume of a few tens of cubic-micrometers). The efficiency is then very small (I mean that the rate of non-interacting particles is very high). I was wondering if there is some ways to improve the simulation using variance reduction techniques like the forced collisions or forced interactions. I have seen in some G4 talks that this technique was planned to be implemented but I don'k know the status of these plans.

Thanks a lot for your help,

Mathieu

Question different energy deposit value using scoring mesh  by Ali Ebrahimi <Ali Ebrahimi>,   30 Jul, 2012
Hi,

I have created a simple box geometry with a mesh box at the center. When I keep the mesh box size constant and only change number of bins say from 1 1 1 to 5 5 5 and then to 10 10 10, and run same macro without any other changes, I get different values for total energy deposit (some of energy deposits inside all bins), ranging from 1.3 to 1.9 GeV. What could possibly be wrong with my settings?

1 None: Re: different energy deposit value using scoring mesh   (Tsukasa Aso - 30 Jul, 2012)
1 None: Re: different energy deposit value using scoring mesh   (Ali Ebrahimi - 31 Jul, 2012)
(_ None: Re: different energy deposit value using scoring mesh   (michel maire - 31 Jul, 2012)
(_ None: Re: different energy deposit value using scoring mesh   (Ali Ebrahimi - 31 Jul, 2012)
2 None: Re: different energy deposit value using scoring mesh   (Maddalena Antonello - 21 Apr, 2016)
Question scoring mesh for spheres or complex geometries  by Ali Ebrahimi <Ali Ebrahimi>,   23 Jul, 2012
Hello,

I would like to measure energy deposit at different locations of a volume. I know one can easily use scorer/mesh for boxes and cylinders, but is there a way to create a mesh like these for more complex shapes or even a sphere? Is this covered in any of the examples?

Thanks a lot in advance.

1 None: Re: scoring mesh for spheres or complex geometries   (Tsukasa Aso - 24 Jul, 2012)
(_ None: Re: scoring mesh for spheres or complex geometries   (Ali Ebrahimi - 30 Jul, 2012)
None How to Get a Lateral Dose Profile  by ckying <ckying>,   19 Jul, 2012
Dear G4users

Hi I am new in G4 and currently I want to simulate and get a lateral beam profile. The geometry setup is just a simple box 20*20*20 cm and 200 copy array detector (sensitive detector) in Y-axis ( 100mm*1mm*0.1mm ).

By the way I can get the energy deposit in the detector and plot a graph. The source is carbon ion (290*12)MeV from Z-axis. using Angular distribution method spread out the beam.

BeamEnergyPattern() is monoenergetic and using CLHEP::RandFlat::shoot(0., twopi); Below is the code for the momentum

  G4double cosTheta= CLHEP::RandFlat::shoot(cos(100 mrad), 1.); 
  G4double phi2= CLHEP::RandFlat::shoot(0., twopi);
  G4double px= momentum* sqrt(1.-cosTheta*cosTheta)* cos(phi2);
  G4double py= momentum* sqrt(1.-cosTheta*cosTheta)* sin(phi2);
  G4double pz= momentum* cosTheta;
  G4PrimaryParticle* primaryParticle = new G4PrimaryParticle(particle, px, py, pz);

But many times I have trying still cannot get a flat lateral dose distribution, may know what is the problems?

Here I attach the graph of the dose profile. Thanks

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2012/07/19/07.09-93274-Lateral_dose.ods

1 None: Re: How to Get a Lateral Dose Profile   (ckying - 19 Jul, 2012)
Question Biasing and weight of secondaries  by <KJan>,   18 Jun, 2012
Hi,

I have implemented biasing for discrete processes via the WrappedProcess class. I notice that the processes I do not wrap, e.g. Compton scattering, do not seem to respect the weights given to the particles due to the biasing. Secondaries from a weighted parent get a weight of 1 instead of is parent's weight. Setting the weight of both parent and secondaries works fine for my wrapped processes.

Is this intended or should it be classified as a bug? Do I need to do anything special to make normal processes respect the weight of a parent and to forward that weight to its secondaries?

Thanks,

Kaj

None Errors?  by Christian Peck <Christian Peck>,   31 May, 2012
Hi, Ive ran a simulation some time ago and collected the results from the output. Iam just wondering how to calculate the errors in these results?

Thanks Christian

Question Want to Tag Each Particle With the First Surface Material It Encounters  by Jack <Jack>,   23 May, 2012
I am using G4GeneralParticleSource to create particles with random positions and momenta within a volume. I want to tag each particle with the first non-vacuum surface it encounters in that volume, and then output that surface information (the material, for instance) to a file along with my other scoring information for that particle, for each particle. Can someone give me an idea of how to do that?

Thanks!

1 None: Re: Want to Tag Each Particle With the First Surface Material It Encounters   (Tsukasa Aso - 24 May, 2012)
Question energy flux calculation  by Sun Liang <Sun Liang>,   19 May, 2012
Hi, I want to calculate total energy flux in a sphere volume from a complicated photon spectrum. By G4PSCELLFLUX and G4MultiFunctionalDetector, I can obtain the particle flux(1/mm2), but I don't know how to get the photon energy for multiplying with particle flux to accumulate, from "RecordEvent(const G4Event* evt)" which is provided in my Run class object. It seemed to add codes nowhere. anybody help me? Thanks a lot.

Sunliang

1 None: Re: energy flux calculation   (Tsukasa Aso - 21 May, 2012)
(_ More: Re: energy flux calculation   (Sun Liang - 24 May, 2012)
None Photon spectrum  by Dmity <Dmity>,   17 May, 2012
Hello. I am simulating tungsten target for x-ray and aluminum filter (v.9.4.p04. Penelope low energy model). Everything is OK, except for one thing. On photon spectrum figure I have two peaks on 9.8 and 10.9 keV. But in experimental results there are no. I am using SensitiveDetector in this case.

Attachment: http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2012/05/17/00.56-63299-spectrum.ps

Thank's for your help.

Question Surface current or surface flux scoring with directionality  by Jack <Jack>,   16 May, 2012
I would like to have a surface which scores the particles that cross it, but either only scores them if they cross it in one direction (say -z), or keeps track of whether their z component is positive or negaive when they cross. Does anyone have any experience with this?

Thanks.

PS. What is the difference between surface current and surface flux, say for a flat scoring surface?

1 None: Re: Surface current or surface flux scoring with directionality   (Tsukasa Aso - 16 May, 2012)
Question Geant 4.9.4 Scoring - G4Mesh Cylinder Mesh  by Ben Hug <Ben Hug>,   27 Feb, 2012
Hi

Just wondering if anyone knew what release the G4Mesh cylinder was available? I am currently using Geant4.9.4 and the cylinder mesh geometry does not seem to work.

Thanks

Ben

1 None: Re: Geant 4.9.4 Scoring - G4Mesh Cylinder Mesh   (Tsukasa Aso - 28 Feb, 2012)
(_ None: Re: Geant 4.9.4 Scoring - G4Mesh Cylinder Mesh   (Ben Hug - 28 Feb, 2012)
Question How to increase efficent of Rutherford Backscattering  by wangzhenchao <wangzhenchao>,   18 Feb, 2012
Hello everyone 
 I'm simulate alphai2MeVj Backscattering on thin target of gold .
 I'm interested in energy spectrum at backward angles i160-170 degreejconcerning the Coulombscattering alpha . Because of the thin target I have only a few events in my detector (~100 at an event rate of 10^8). 
So some kind of cross section biasing seems to be necessary. Most of the alpha  are scattered in forward direction (>95% are scattered in an angular range of 0-5 degrees). 
So in case of alpha  scattering "angular biasing" is maybe a good idea that means increasing the cross section for elastic alpha scattering at backward angles relative to the cross section for forward angles by several orders of magnitude. 
What is the best way to achieve this or someone have other ideas to increase efficent ? Has anyone tried something similar? 

Thanks for your helps !

Question Force Interaction  by Lachlan <Lachlan>,   11 Feb, 2012
Hey guys, I am doing a very primitive simulation involving a small gold sphere (d = 20nm) in a small cubic sensitive detector (l = 40nm). In order to speed things up and to see ANY extra compton or PE effects due to the gold, I need to force the photons (from linac) to interact with matter inside the sphere.

Could someone tell me exactly what I need to do? It would also help if some code were included so I get the gist of HOW to do it also : )

Cheers!

Question How to multiply the flux by a specific cross section ?  by sylvian kahane <sylvian kahane>,   05 Feb, 2012
Hello

I want to simulate the response of a He3 detector, embeded in a polyethylene
moderator, to a flux of neutrons. Because of the low density of He3, the
 actual He3(n,p) events will be very rare in a simulation (I guess). Therefore
I want to:

   1. calculate the neutron flux in the detector volume as a function of
energy (over some 9-10 decades). I found that this can be done, quite
tediously, with a regular flux scorer + ParticleFilterWithKineticEnergy (or
something like that) for every energy bin requested. I want 200 , 20 per
decade.

   2. multiply the calculated flux, at the end of the run, by the He3(n,p)
cross section, as a function of energy.

THe question is: How can I get the He3(n,p) cross section values, at the end of the run ?

sylvian K.

Question How to multiply the flux by a specific cross section ?  by sylvian kahane <sylvian kahane>,   05 Feb, 2012
Hello

I want to simulate the response of a He3 detector, embeded in a polyethylene
moderator, to a flux of neutrons. Because of the low density of He3, the
 actual He3(n,p) events will be very rare in a simulation (I guess). Therefore
I want to:

   1. calculate the neutron flux in the detector volume as a function of
energy (over some 9-10 decades). I found that this can be done, quite
tediously, with a regular flux scorer + ParticleFilterWithKineticEnergy (or
something like that) for every energy bin requested. I want 200 , 20 per
decade.

   2. multiply the calculated flux, at the end of the run, by the He3(n,p)
cross section, as a function of energy.

THe question is: How can I get the He3(n,p) cross section values, at the end of the run ?

sylvian K.

1 Feedback: Re: How to multiply the flux by a specific cross section ?   (Pedro Arce - 08 Feb, 2012)
(_ None: Re: How to multiply the flux by a specific cross section ?   (sylvian kahane - 09 Feb, 2012)
(_ Feedback: Re: How to multiply the flux by a specific cross section ?   (Pedro Arce - 09 Feb, 2012)
(_ None: Re: How to multiply the flux by a specific cross section ?   (sylvian kahane - 10 Feb, 2012)
(_ None: Re: How to multiply the flux by a specific cross section ?   (Pedro Arce - 10 Feb, 2012)
Note Simple python/qt4 tool to browse /score/ data files  by Jan Pipek <Jan Pipek>,   02 Feb, 2012
Hello,

I was wondering how to quickly browse through a scoring dump file. Having no clear and straightforward way, I created a python/qt4 program that does the work. It's not (yet) a plotting software, however you can display a table of data along any pair of axes from the mesh (with relative/absolute values option and colour background coding).

If you are interested, visit the github page of the project: https://github.com/janpipek/scoring_browser

I am planning to add more features in the future, especially if anyone is interested too.

Cheers, Jan

Question biasing muon cross section interaction  by Sean Turnbull <Sean Turnbull>,   30 Jan, 2012
Hello,

I am simulating muons (cosmic rays) at various altitudes above ground and want to bias the cross section to increase efficiency and decrease simulation time.

I have this this snippet of code in my main.cc that I have tried to get working. Can anyone suggest a improved version of it? I get errors these errors:

au-muon.cc: In function ‘int main(int, char**)’:

au-muon.cc:70:19: warning: name lookup of ‘c’ changed for ISO ‘for’ scoping [-fpermissive]

au-muon.cc:66:14: warning: using obsolete binding at ‘c’ [-fpermissive]

au-muon.cc:71:20: error: request for member ‘length’ in ‘vect’, which is of non-class type ‘G4ProcessVector*’

au-muon.cc:73:15: error: ‘class G4ProcessVector’ has no member named ‘SetPILfactor’ ’

code:

G4double multiplicativeFactor = 10;
  G4String procName;
  G4ProcessVector* vect = G4MuonMinus::Definition()->GetProcessManager()->GetProcessList();
  size_t length = vect.size();
  G4cout << "size" << length << G4endl;
  G4int index = -1;

  for(size_t c = 0; c < length; c++)
    procName = (*vect)[c]->GetProcessName();
    if (procName == "muMinusCaptureAtRest")
    {
          index = c;
          c = vect.length();
    }

  vect[index].SetPILfactor(multiplicativeFactor);

Thanks for any help.

1 Question: Re: biasing muon cross section interaction   (Stefan E. Mueller - 14 Apr, 2014)
(_ Idea: Re: biasing muon cross section interaction   (C Mos - 15 Apr, 2014)
(_ Question: Re: biasing muon cross section interaction   (Stefan E. Mueller - 16 Apr, 2014)
(_ News: Re: biasing muon cross section interaction   (Stefan E. Mueller - 05 May, 2014)
(_ Idea: Re: biasing muon cross section interaction   (Stefan E. Mueller - 05 Jun, 2014)
None angular biasing  by Christopher Walz <Christopher Walz>,   18 Oct, 2011
Dear community,

I'm simulating an electron beam (70 MeV) impinging on a thin target consisting of a low Z material (10mg/cm2 and Z=10). I am interested in the energy spectrum at backward angles (150 - 180 degrees) concerning the elastically scattered electrons and bremsstrahlung. Because of the thin target I have only a few events in my detector (~10 at an event rate of 10^8). So some kind of cross section biasing seems to be necessary.

Most of the electrons are scattered in forward direction (>95% are scattered in an angular range of 0-5 degrees). So in case of electron scattering "angular biasing" is maybe a good idea, i.e. increasing the cross section for elastic electron scattering at backward angles relative to the cross section for forward angles by several orders of magnitude. What is the best way to achieve this? Has anyone tried something similar?

Thanks in advance for your help!

Cheers, Christopher

Question Scoring double differential cross section neutron production in 800 MeV p + 2cm Pb  by Sylt.Zhang <Sylt.Zhang>,   10 Oct, 2011
Dear Geant4 experts,
   I want to score the  double differential cross section  of the neutron production at the given angle( 0.8GeV proton + 2cm Pb(target) at 30 degree emission angle), and I think it can be converted from the energy spectrum dN/dE.
So I using following code:

 const G4TrackVector* secondary = fpSteppingManager->GetSecondary();
  for (size_t lp=0; lp<(*secondary).size(); lp++) {
    G4String  particlename = (*secondary)[lp]->GetDefinition()->GetParticleName();
    if (particlename=="neutron"){
      G4double theta = (*secondary)[lp]->GetMomentumDirection().theta()/degree;
      if(29.5 <= theta && theta <=30.5){
	G4double energy = (*secondary)[lp]->GetKineticEnergy();
	myHitsData.CS=energy;  //filling the Tree

The result didn't agree with the Fluka simulation and experimental data,but the shape is much more like.Are there any scaling factor ?
  the attachment is my results, and I scale the Geant4 0.01. I don't know why gean4 more larger ?

 Looking forward to receive your help!

Sylt.Zhang

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/10/10/23.54-93890-0.8GeVp2cmPb_30.png

Question Co60 and Cs137 spectra  by Dziri <Dziri>,   12 Sep, 2011
Hello users,

I had a problem when I want to plot the Co-60 and Cs 137 spectra. If I place my source at least at 3cm from the detector, the spectra are what I was expected, but when I place the source in the contact of the detector, I got the spectra attached here.

Can anyone , has an idea what's wrong with my simulation? Thank you for your help

Cheers Samir

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/09/12/04.17-42992-Cs_137.png
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/09/12/04.17-7393-co_60.png

None dose deposit problem  by Sun Liang <Sun Liang>,   08 Sep, 2011
------=_Part_14664_1269685679.1315529877390
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: 7bit

Hi, I am quite new in Geant4. I had a strange problem about dose deposit using G4MultiFunctionalDetector and G4PSDoseDeposit classes.
 
The geometry is very simple, three homocentric spheres with radius 10.0m(World), 0.999m, 1.001m respectively, a Co-60 isotropic point source locate at center, all materials are NIST 


G4_AIR. My purpose is to get the dose deposited in the shell between 0.999m and 1.001m to verify the air kerma constant of Co-60 at 1m with events 5e6, namely beamOn(5e6) and 


standard EM processes, indeed I think it's only a exercise.
 
According to exN07, I wrote my scorer like below in DetectorConstruct:
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
G4MultiFunctionalDetector* mydosescorer = new 4MultiFunctionalDetector("MyScorer");
G4SDManager::GetSDMpointer()->AddNewDetector(mydosescorer); 
logicChamber->SetSensitiveDetector(mydosescorer); 
G4VPrimitiveScorer* totalenergy = new G4PSEnergyDeposit("TotalEnergy"); 
G4VPrimitiveScorer* totaldose = new G4PSDoseDeposit("TotalDose",0);
 mydosescorer->RegisterPrimitive(totaldose);
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
The codes of paticles shoot like below:
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CoPrimaryGeneratorAction::CoPrimaryGeneratorAction()
{
  G4int n_particle = 1;
  particleGun = new G4ParticleGun(n_particle);
  particleGun->SetParticleDefinition(G4Gamma::GammaDefinition());
  particleGun->SetParticlePosition(G4ThreeVector(0.*m,0.*m,0.*m));
}
void CoPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)//
{   
     if (G4UniformRand()>0.5)
     {
         particleGun->SetParticleEnergy(1.17*MeV);
     }
     else
     {
         particleGun->SetParticleEnergy(1.33*MeV);
     }
     particleGun->SetParticleMomentumDirection(G4RandomDirection());
  particleGun->GeneratePrimaryVertex(anEvent);
}
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
And the scoring code like below in my run.cc
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CoRun::CoRun():nEvent(0)
{
     G4SDManager* SDman = G4SDManager::GetSDMpointer();
     totaldoseID = SDman->GetCollectionID("MyScorer/TotalDose");
}
void CoRun::RecordEvent(const G4Event* evt)
{   
     G4HCofThisEvent* HCE = evt->GetHCofThisEvent();
     if(!HCE) {return;}
     nEvent++;
     eventtotaldose = (G4THitsMap<G4double>*)(HCE->GetHC(totaldoseID));       
     totaldose += *eventtotaldose;
}
G4double CoRun::GetTotal() const//get the dose value to double val
{
     G4double tot=0;
     std::map<G4int,G4double*>::iterator itr =
         (&totaldose)->GetMap()->begin();
     G4double val = *(itr->second);
     return val;
}
 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
But the result of dose is 1.10958e-010 Gy, and divided by activity 2.5MBq, I get the air kerma constant is 44.38e-18 Gym2/(Bqs). You know, that value of ICRU or NIST is about 85e-18. 


Anybody tell me Why?
 
For another verification, I construct the same geometry in MCNP5, and use F6 tally and photon mode only, the result is very close to correct value.
Thanks in advance for the help!
------=_Part_14664_1269685679.1315529877390
Content-Type: text/html; charset=GBK
Content-Transfer-Encoding: 7bit

<div style="line-height:1.7;color:#000000;font-size:14px;font-family:arial"><div>Hi, I am quite new in Geant4. I had a strange problem about dose deposit using G4MultiFunctionalDetector and G4PSDoseDeposit classes.</div><div>&nbsp;</div><div>The geometry is very simple, three homocentric spheres with radius 10.0m(World), 0.999m, 1.001m respectively, a Co-60 isotropic point source locate at center, all materials are NIST&nbsp;</div><div><br></div><div>G4_AIR. My purpose is to get the dose deposited in the shell between 0.999m and 1.001m to verify the air kerma constant of Co-60 at 1m with events 5e6, namely beamOn(5e6) and&nbsp;</div><div><br></div><div>standard EM processes, indeed I think it's only a exercise.</div><div>&nbsp;</div><div>According to exN07, I wrote my scorer like below in DetectorConstruct:</div><div>/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>G4MultiF!
 unctionalDetector* mydosescorer = new 4MultiFunctionalDetector("MyScorer");</div><div>G4SDManager::GetSDMpointer()-&gt;AddNewDetector(mydosescorer);&nbsp;</div><div>logicChamber-&gt;SetSensitiveDetector(mydosescorer);&nbsp;</div><div>G4VPrimitiveScorer* totalenergy = new G4PSEnergyDeposit("TotalEnergy");&nbsp;</div><div>G4VPrimitiveScorer* totaldose = new G4PSDoseDeposit("TotalDose",0);</div><div>&nbsp;mydosescorer-&gt;RegisterPrimitive(totaldose);</div><div>&nbsp;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>The codes of paticles shoot like below:</div><div>&nbsp;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>CoPrimaryGeneratorAction::CoPrimaryGeneratorAction()</div><div>{</div><div>&nbsp;&nbsp;G4int n_particle = 1;</div><div>&nbsp;&nbsp;particleGun = new G4Particle!
 Gun(n_particle);</div><div>&nbsp;&nbsp;particleGun-&gt;SetParticleDefinition(G4Gamma::GammaDefinition());</div><div>&nbsp;&nbsp;particleGun-&gt;SetParticlePosition(G4ThreeVector(0.*m,0.*m,0.*m));</div><div>}</div><div>void CoPrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)//</div><div>{ &nbsp;&nbsp;</div><div>&nbsp;&nbsp; &nbsp; if (G4UniformRand()&gt;0.5)</div><div>&nbsp;&nbsp; &nbsp; {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; particleGun-&gt;SetParticleEnergy(1.17*MeV);</div><div>&nbsp;&nbsp; &nbsp; }</div><div>&nbsp;&nbsp; &nbsp; else</div><div>&nbsp;&nbsp; &nbsp; {</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; particleGun-&gt;SetParticleEnergy(1.33*MeV);</div><div>&nbsp;&nbsp; &nbsp; }</div><div>&nbsp;&nbsp; &nbsp; particleGun-&gt;SetParticleMomentumDirection(G4RandomDirection());</div><div>&nbsp;&nbsp;particleGun-&gt;GeneratePrimaryVertex(anEvent);</div><div>}</div><div>&nbsp;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>A!
 nd the scoring code like below in my run.cc</div><div>&nbsp;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>CoRun::CoRun():nEvent(0)</div><div>{</div><div>&nbsp;&nbsp; &nbsp; G4SDManager* SDman = G4SDManager::GetSDMpointer();</div><div>&nbsp;&nbsp; &nbsp; totaldoseID = SDman-&gt;GetCollectionID("MyScorer/TotalDose");</div><div>}</div><div>void CoRun::RecordEvent(const G4Event* evt)</div><div>{ &nbsp;&nbsp;</div><div>&nbsp;&nbsp; &nbsp; G4HCofThisEvent* HCE = evt-&gt;GetHCofThisEvent();</div><div>&nbsp;&nbsp; &nbsp; if(!HCE) {return;}</div><div>&nbsp;&nbsp; &nbsp; nEvent++;</div><div>&nbsp;&nbsp; &nbsp; eventtotaldose = (G4THitsMap&lt;G4double&gt;*)(HCE-&gt;GetHC(totaldoseID)); &nbsp; &nbsp; &nbsp;&nbsp;</div><div>&nbsp;&nbsp; &nbsp; totaldose += *eventtotaldose;</div><div>}</div><div>G4double CoRun::GetTotal() const//get the dose value to double val</div><div>{</div><div>!
 &nbsp;&nbsp; &nbsp; G4double tot=0;</div><div>&nbsp;&nbsp; &nbsp; std::map&lt;G4int,G4double*&gt;::iterator itr =</div><div>&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; (&amp;totaldose)-&gt;GetMap()-&gt;begin();</div><div>&nbsp;&nbsp; &nbsp; G4double val = *(itr-&gt;second);</div><div>&nbsp;&nbsp; &nbsp; return val;</div><div>}</div><div>&nbsp;/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////</div><div>But the result of dose is 1.10958e-010 Gy, and divided by activity 2.5MBq, I get the air kerma constant is 44.38e-18 Gym2/(Bqs). You know, that value of ICRU or NIST is about 85e-18.&nbsp;</div><div><br></div><div>Anybody tell me Why?</div><div>&nbsp;</div><div>For another verification, I construct the same geometry in MCNP5, and use F6 tally and photon mode only, the result is very close to correct value.</div><div>Thanks in advance for the help!</div></div><br><br><span title="neteasefooter"><span id="netease_mail_footer"></span></span>
------=_Part_14664_1269685679.1315529877390--
1 None: Re: dose deposit problem   (Tsukasa Aso - 08 Sep, 2011)
(_ More: Re: dose deposit problem   (Sun Liang - 09 Sep, 2011)
(_ None: Re: dose deposit problem   (Tsukasa Aso - 10 Sep, 2011)
(_ More: Re: dose deposit problem   (Sun Liang - 10 Sep, 2011)
(_ None: Re: dose deposit problem   (Tsukasa Aso - 11 Sep, 2011)
None suggestions to G4PSNofSecondary.cc  by Fada Guan <Fada Guan>,   08 Sep, 2011
Dear Drs. Aso and Kimura:

I think the comments and some output information in G4PSNofSecondary.cc file (Geant4.9.4.p02) is not so clear.

1) the description part is: // (Description) // This is a primitive scorer class for scoring number of steps in the // Cell. // // Created: 2005-11-14 Tsukasa ASO, Akinori Kimura.

I think it should be “scoring number of secondaries in the cell.”

2)In ProcessHits function and PrintAll function,

G4bool G4PSNofSecondary::ProcessHits(G4Step* aStep,G4TouchableHistory*)
{
  //- check for newly produced particle. e.g. first step.
  if ( aStep->GetTrack()->GetCurrentStepNumber() != 1) return FALSE;
  //- check for this is not a primary particle. e.g. ParentID > 0 .
  if ( aStep->GetTrack()->GetParentID() == 0 ) return FALSE;
  //- check the particle if the partifle definition is given.
  if ( particleDef && particleDef != aStep->GetTrack()->GetDefinition() )
      return FALSE;
  //
  //- This is a newly produced secondary particle.
  G4int  index = GetIndex(aStep);
  G4double weight = 1.0;
  if ( weighted ) weight *= aStep->GetPreStepPoint()->GetWeight();
  EvtMap->add(index,weight);  
  return TRUE;
}
void G4PSNofSecondary::PrintAll()
{
  G4cout << " PrimitiveScorer " << GetName() << G4endl;
  G4cout << " Number of entries " << EvtMap->entries() << G4endl;
  std::map<G4int,G4double*>::iterator itr = EvtMap->GetMap()->begin();
  for(; itr != EvtMap->GetMap()->end(); itr++) {
    G4cout << "  copy no.: " << itr->first
	   << "  num of step: " << *(itr->second)/GetUnitValue()
	   << G4endl;
  }
}

I understand here if particleDef == 0, all types of secondaries will be counted.  If particleDef != 0, the desired type of secondary particles will be counted.  I think some comments should be added in ProcessHits function and the  PrintAll() function should provide more detailed information. In addition, the output should be number of “secondaries,” not “step.”
For example, it can be:
    If(particleDef==0)
    {G4cout << "  copy no.: " << itr->first
	   << "  number of all secondaries: " << *(itr->second)/GetUnitValue()
	   << G4endl;}
else{
G4cout << "  copy no.: " << itr->first
	   << " number of secondary "<<particleDef->GetParticleName <<": " << *(itr->second)/GetUnitValue()
	   << G4endl;}

Just some suggestions.

Thanks a lot.

Regards.

Fada

1 None: Re: suggestions to G4PSNofSecondary.cc   (Fada Guan - 08 Sep, 2011)
(_ None: Re: suggestions to G4PSNofSecondary.cc   (Tsukasa Aso - 08 Sep, 2011)
None Dose deposit problem  by Sun Liang <Sun Liang>,   08 Sep, 2011
------=_Part_172804_30123313.1315494966144
Content-Type: text/plain; charset=GBK
Content-Transfer-Encoding: base64

SGksIEkgYW0gcXVpdGUgbmV3IGluIEdlYW50NC4gSSBoYWQgYSBzdHJhbmdlIHByb2JsZW0gYWJv
dXQgZG9zZSBkZXBvc2l0IHVzaW5nIEc0TXVsdGlGdW5jdGlvbmFsRGV0ZWN0b3IgYW5kIEc0UFNE
b3NlRGVwb3NpdCBjbGFzc2VzLgoKIAoKVGhlIGdlb21ldHJ5IGlzIHZlcnkgc2ltcGxlLCB0aHJl
ZSBob21vY2VudHJpYyBzcGhlcmVzIHdpdGggcmFkaXVzIDEwLjBtKFdvcmxkKSwgMC45OTltLCAx
LjAwMW0gcmVzcGVjdGl2ZWx5LCBhIENvLTYwIGlzb3Ryb3BpYyBwb2ludCBzb3VyY2UgbG9jYXRl
IGF0IGNlbnRlciwgYWxsIG1hdGVyaWFscyBhcmUgTklTVCBHNF9BSVIuIE15IHB1cnBvc2UgaXMg
dG8gZ2V0IHRoZSBkb3NlIGRlcG9zaXRlZCBpbiB0aGUgc2hlbGwgYmV0d2VlbiAwLjk5OW0gYW5k
IDEuMDAxbSB0byB2ZXJpZnkgdGhlIGFpciBrZXJtYSBjb25zdGFudCBvZiBDby02MCBhdCAxbSB3
aXRoIGV2ZW50cyA1ZTYsIG5hbWVseSBiZWFtT24oNWU2KSBhbmQgc3RhbmRhcmQgRU0gcHJvY2Vz
c2VzLCBpbmRlZWQgSSB0aGluayBpdCdzIG9ubHkgYSBleGVyY2lzZS4KCiAKCkFjY29yZGluZyB0
byBleE4wNywgSSB3cm90ZSBteSBzY29yZXIgbGlrZSBiZWxvdyBpbiBEZXRlY3RvckNvbnN0cnVj
dDoKCi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKRzRNdWx0aUZ1bmN0aW9uYWxEZXRlY3Rv
ciogbXlkb3Nlc2NvcmVyID0gbmV3IDRNdWx0aUZ1bmN0aW9uYWxEZXRlY3RvcigiTXlTY29yZXIi
KTsKCkc0U0RNYW5hZ2VyOjpHZXRTRE1wb2ludGVyKCktPkFkZE5ld0RldGVjdG9yKG15ZG9zZXNj
b3Jlcik7IAoKbG9naWNDaGFtYmVyLT5TZXRTZW5zaXRpdmVEZXRlY3RvcihteWRvc2VzY29yZXIp
OyAKCkc0VlByaW1pdGl2ZVNjb3JlciogdG90YWxlbmVyZ3kgPSBuZXcgRzRQU0VuZXJneURlcG9z
aXQoIlRvdGFsRW5lcmd5Iik7IAoKRzRWUHJpbWl0aXZlU2NvcmVyKiB0b3RhbGRvc2UgPSBuZXcg
RzRQU0Rvc2VEZXBvc2l0KCJUb3RhbERvc2UiLDApOwoKIG15ZG9zZXNjb3Jlci0+UmVnaXN0ZXJQ
cmltaXRpdmUodG90YWxkb3NlKTsKCiAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8KClRoZSBj
b2RlcyBvZiBwYXRpY2xlcyBzaG9vdCBsaWtlIGJlbG93OgoKIC8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLwoKQ29QcmltYXJ5R2VuZXJhdG9yQWN0aW9uOjpDb1ByaW1hcnlHZW5lcmF0b3JBY3Rp
b24oKQoKewoKIEc0aW50bl9wYXJ0aWNsZSA9IDE7CgogcGFydGljbGVHdW4gPW5ld0c0UGFydGlj
bGVHdW4obl9wYXJ0aWNsZSk7CgogcGFydGljbGVHdW4tPlNldFBhcnRpY2xlRGVmaW5pdGlvbihH
NEdhbW1hOjpHYW1tYURlZmluaXRpb24oKSk7CgogcGFydGljbGVHdW4tPlNldFBhcnRpY2xlUG9z
aXRpb24oRzRUaHJlZVZlY3RvcigwLiptLDAuKm0sMC4qbSkpOwoKfQoKdm9pZENvUHJpbWFyeUdl
bmVyYXRvckFjdGlvbjo6R2VuZXJhdGVQcmltYXJpZXMoRzRFdmVudCphbkV2ZW50KS8vCgp7ICAK
CiAgICBpZiAoRzRVbmlmb3JtUmFuZCgpPjAuNSkKCiAgICB7CgogICAgICAgIHBhcnRpY2xlR3Vu
LT5TZXRQYXJ0aWNsZUVuZXJneSgxLjE3Kk1lVik7CgogICAgfQoKICAgIGVsc2UKCiAgICB7Cgog
ICAgICAgIHBhcnRpY2xlR3VuLT5TZXRQYXJ0aWNsZUVuZXJneSgxLjMzKk1lVik7CgogICAgfQoK
ICAgIHBhcnRpY2xlR3VuLT5TZXRQYXJ0aWNsZU1vbWVudHVtRGlyZWN0aW9uKEc0UmFuZG9tRGly
ZWN0aW9uKCkpOwoKIHBhcnRpY2xlR3VuLT5HZW5lcmF0ZVByaW1hcnlWZXJ0ZXgoYW5FdmVudCk7
Cgp9CgogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpBbmQgdGhlIHNjb3JpbmcgY29kZSBs
aWtlIGJlbG93IGluIG15IHJ1bi5jYwoKIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLwoKQ29S
dW46OkNvUnVuKCk6bkV2ZW50KDApCgp7CgogICAgRzRTRE1hbmFnZXIqU0RtYW4gPUc0U0RNYW5h
Z2VyOjpHZXRTRE1wb2ludGVyKCk7CgogICAgdG90YWxkb3NlSUQgPVNEbWFuLT5HZXRDb2xsZWN0
aW9uSUQoIk15U2NvcmVyL1RvdGFsRG9zZSIpOwoKfQoKdm9pZENvUnVuOjpSZWNvcmRFdmVudChj
b25zdEc0RXZlbnQqZXZ0KQoKeyAgIAoKICAgIEc0SENvZlRoaXNFdmVudCpIQ0UgPWV2dC0+R2V0
SENvZlRoaXNFdmVudCgpOwoKICAgIGlmKCFIQ0UpIHtyZXR1cm47fQoKICAgIG5FdmVudCsrOwoK
ICAgIGV2ZW50dG90YWxkb3NlID0gKEc0VEhpdHNNYXA8RzRkb3VibGU+KikoSENFLT5HZXRIQyh0
b3RhbGRvc2VJRCkpOyAgICAgIAoKICAgIHRvdGFsZG9zZSArPSAqZXZlbnR0b3RhbGRvc2U7Cgp9
CgpHNGRvdWJsZUNvUnVuOjpHZXRUb3RhbCgpY29uc3QvL2dldCB0aGUgZG9zZSB2YWx1ZSB0byBk
b3VibGUgdmFsCgp7CgogICAgRzRkb3VibGV0b3Q9MDsKCiAgICBzdGQ6Om1hcDxHNGludCxHNGRv
dWJsZSo+OjppdGVyYXRvcml0ciA9CgogICAgICAgICgmdG90YWxkb3NlKS0+R2V0TWFwKCktPmJl
Z2luKCk7CgogICAgRzRkb3VibGV2YWwgPSAqKGl0ci0+c2Vjb25kKTsKCiAgICByZXR1cm52YWw7
Cgp9CgogLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vCgpCdXQgdGhlIHJlc3VsdCBvZiBkb3Nl
IGlzIDEuMTA5NThlLTAxMCBHeSwgYW5kIGRpdmlkZWQgYnkgYWN0aXZpdHkgMi41TUJxLCBJIGdl
dCB0aGUgYWlyIGtlcm1hIGNvbnN0YW50IGlzIDQ0LjM4ZS0xOCBHeW0yLyhCcXMpLiBZb3Uga25v
dywgdGhhdCB2YWx1ZSBvZiBJQ1JVIG9yIE5JU1QgaXMgYWJvdXQgODVlLTE4LiBBbnlib2R5IHRl
bGwgbWUgV2h5PwoKIAoKRm9yIGFub3RoZXIgdmVyaWZpY2F0aW9uLCBJIGNvbnN0cnVjdCB0aGUg
c2FtZSBnZW9tZXRyeSBpbiBNQ05QNSwgYW5kIHVzZSBGNiB0YWxseSBhbmQgcGhvdG9uIG1vZGUg
b25seSwgdGhlIHJlc3VsdCBpcyB2ZXJ5IGNsb3NlIHRvIGNvcnJlY3QgdmFsdWUuCgpUaGFua3Mg
aW4gYWR2YW5jZSBmb3IgdGhlIGhlbHAh
------=_Part_172804_30123313.1315494966144
Content-Type: text/html; charset=GBK
Content-Transfer-Encoding: base64

PGRpdiBzdHlsZT0ibGluZS1oZWlnaHQ6MS43O2NvbG9yOiMwMDAwMDA7Zm9udC1zaXplOjE0cHg7
Zm9udC1mYW1pbHk6YXJpYWwiPjxQIHN0eWxlPSJNQVJHSU46IDBjbSAwY20gMHB0OyBMQVlPVVQt
R1JJRC1NT0RFOiBjaGFyOyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiPjxTUEFOIHN0eWxl
PSJGT05ULUZBTUlMWTogJ0FyaWFsJywnc2Fucy1zZXJpZic7IENPTE9SOiBibGFjazsgRk9OVC1T
SVpFOiAxMC41cHQiIGxhbmc9IkVOLVVTIj5IaSwgSSBhbSBxdWl0ZSBuZXcgaW4gR2VhbnQ0LiBJ
IGhhZCBhIHN0cmFuZ2UgcHJvYmxlbSBhYm91dCBkb3NlIGRlcG9zaXQgdXNpbmcgRzRNdWx0aUZ1
bmN0aW9uYWxEZXRlY3RvciBhbmQgRzRQU0Rvc2VEZXBvc2l0IGNsYXNzZXMuIDxvOnA+PC9vOnA+
PC9TUEFOPjwvUD4KPFAgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExBWU9VVC1HUklELU1P
REU6IGNoYXI7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSI+PFNQQU4gc3R5bGU9IkZPTlQt
RkFNSUxZOiAnQXJpYWwnLCdzYW5zLXNlcmlmJzsgQ09MT1I6IGJsYWNrOyBGT05ULVNJWkU6IDEw
LjVwdCIgbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9
Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExBWU9VVC1HUklELU1PREU6IGNoYXI7IG1zby1sYXlvdXQt
Z3JpZC1hbGlnbjogbm9uZSI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnQXJpYWwnLCdzYW5z
LXNlcmlmJzsgQ09MT1I6IGJsYWNrOyBGT05ULVNJWkU6IDEwLjVwdCIgbGFuZz0iRU4tVVMiPlRo
ZSBnZW9tZXRyeSBpcyB2ZXJ5IHNpbXBsZSwgdGhyZWUgaG9tb2NlbnRyaWMgc3BoZXJlcyB3aXRo
IHJhZGl1cyAxMC4wbShXb3JsZCksIDAuOTk5bSwgMS4wMDFtIHJlc3BlY3RpdmVseSwgYSBDby02
MCBpc290cm9waWMgcG9pbnQgc291cmNlIGxvY2F0ZSBhdCBjZW50ZXIsIGFsbCZuYnNwO21hdGVy
aWFscyZuYnNwO2FyZSBOSVNUIEc0X0FJUi4gTXkgcHVycG9zZSBpcyB0byBnZXQgdGhlIGRvc2Ug
ZGVwb3NpdGVkIGluIHRoZSBzaGVsbCBiZXR3ZWVuIDAuOTk5bSBhbmQgMS4wMDFtIHRvIHZlcmlm
eSB0aGUgYWlyIGtlcm1hIGNvbnN0YW50IG9mIENvLTYwIGF0IDFtIHdpdGggZXZlbnRzIDVlNiwm
bmJzcDtuYW1lbHkgYmVhbU9uKDVlNikgYW5kIHN0YW5kYXJkIEVNIHByb2Nlc3NlcywgaW5kZWVk
IEkgdGhpbmsgaXQncyBvbmx5IGEgZXhlcmNpc2UuIDxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAg
c3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExBWU9VVC1HUklELU1PREU6IGNoYXI7IG1zby1s
YXlvdXQtZ3JpZC1hbGlnbjogbm9uZSI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnQXJpYWwn
LCdzYW5zLXNlcmlmJzsgQ09MT1I6IGJsYWNrOyBGT05ULVNJWkU6IDEwLjVwdCIgbGFuZz0iRU4t
VVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9Ik1BUkdJTjogMGNtIDBj
bSAwcHQ7IExBWU9VVC1HUklELU1PREU6IGNoYXI7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9u
ZSI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnQXJpYWwnLCdzYW5zLXNlcmlmJzsgQ09MT1I6
IGJsYWNrOyBGT05ULVNJWkU6IDEwLjVwdCIgbGFuZz0iRU4tVVMiPkFjY29yZGluZyB0byBleE4w
NywgSSB3cm90ZSBteSBzY29yZXIgbGlrZSBiZWxvdyBpbiBEZXRlY3RvckNvbnN0cnVjdDo8bzpw
PjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJNQVJHSU46IDBjbSAwY20gMHB0OyBMQVlPVVQt
R1JJRC1NT0RFOiBjaGFyOyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiPjxTUEFOIHN0eWxl
PSJGT05ULUZBTUlMWTogJ0FyaWFsJywnc2Fucy1zZXJpZic7IENPTE9SOiBibGFjazsgRk9OVC1T
SVpFOiAxMC41cHQiIGxhbmc9IkVOLVVTIj4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy88bzpw
PjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBj
bSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwi
IGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgQ09MT1I6ICMw
MTAwMDE7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1m
b250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJF
Ti1VUyI+RzRNdWx0aUZ1bmN0aW9uYWxEZXRlY3RvciogbXlkb3Nlc2NvcmVyID0gbmV3IDRNdWx0
aUZ1bmN0aW9uYWxEZXRlY3RvcigiTXlTY29yZXIiKTs8bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQ
IHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0
LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBz
dHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgQ09MT1I6ICMwMTAwMDE7IEZPTlQtU0laRTogOXB0
OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5l
dyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+RzRTRE1hbmFnZXI6Okdl
dFNETXBvaW50ZXIoKS0mZ3Q7QWRkTmV3RGV0ZWN0b3IobXlkb3Nlc2NvcmVyKTs8L1NQQU4+PFNQ
QU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnVGltZXMgTmV3IFJvbWFuJywnc2VyaWYnOyBDT0xPUjog
IzAxMDAwMTsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mYXJlYXN0LWZvbnQtZmFtaWx5OiDQwsvOzOU7
IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWFzY2lpLWZvbnQtZmFtaWx5OiDQwsvOzOU7IG1z
by1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+Jm5ic3A7PC9TUEFOPjxTUEFOIHN0eWxlPSJG
T05ULUZBTUlMWTog0MLLzszlOyBDT0xPUjogIzAxMDAwMTsgRk9OVC1TSVpFOiA5cHQ7IG1zby1m
b250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFu
JzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvU1BBTj48L1A+
CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5
b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BB
TiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgQ09MT1I6ICMwMTAwMDE7IEZPTlQtU0laRTog
OXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTogJ1RpbWVz
IE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+bG9naWNDaGFtYmVy
LSZndDtTZXRTZW5zaXRpdmVEZXRlY3RvcihteWRvc2VzY29yZXIpOzwvU1BBTj48U1BBTiBzdHls
ZT0iRk9OVC1GQU1JTFk6ICdUaW1lcyBOZXcgUm9tYW4nLCdzZXJpZic7IENPTE9SOiAjMDEwMDAx
OyBGT05ULVNJWkU6IDlwdDsgbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6INDCy87M5TsgbXNvLWZv
bnQta2VybmluZzogMHB0OyBtc28tYXNjaWktZm9udC1mYW1pbHk6INDCy87M5TsgbXNvLW5vLXBy
b29mOiB5ZXMiIGxhbmc9IkVOLVVTIj4mbmJzcDs8L1NQQU4+PFNQQU4gc3R5bGU9IkZPTlQtRkFN
SUxZOiDQwsvOzOU7IENPTE9SOiAjMDEwMDAxOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2Vy
bmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28t
bm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5
bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3Jp
ZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxl
PSJGT05ULUZBTUlMWTog0MLLzszlOyBDT0xPUjogIzAxMDAwMTsgRk9OVC1TSVpFOiA5cHQ7IG1z
by1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJv
bWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj5HNFZQcmltaXRpdmVTY29yZXIq
IHRvdGFsZW5lcmd5ID0gbmV3IEc0UFNFbmVyZ3lEZXBvc2l0KCJUb3RhbEVuZXJneSIpOzwvU1BB
Tj48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6ICdUaW1lcyBOZXcgUm9tYW4nLCdzZXJpZic7IENP
TE9SOiAjMDEwMDAxOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZhcmVhc3QtZm9udC1mYW1pbHk6INDC
y87M5TsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28tYXNjaWktZm9udC1mYW1pbHk6INDCy87M
5TsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj4mbmJzcDs8L1NQQU4+PFNQQU4gc3R5
bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IENPTE9SOiAjMDEwMDAxOyBGT05ULVNJWkU6IDlwdDsg
bXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcg
Um9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjxvOnA+PC9vOnA+PC9TUEFO
PjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1z
by1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQi
PjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBDT0xPUjogIzAxMDAwMTsgRk9OVC1T
SVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAn
VGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj5HNFZQcmlt
aXRpdmVTY29yZXIqIHRvdGFsZG9zZSA9IG5ldyBHNFBTRG9zZURlcG9zaXQoIlRvdGFsRG9zZSIs
MCk7PG86cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFS
R0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNv
Tm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnVGltZXMgTmV3
IFJvbWFuJywnc2VyaWYnOyBDT0xPUjogIzAxMDAwMTsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mYXJl
YXN0LWZvbnQtZmFtaWx5OiDQwsvOzOU7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWFzY2lp
LWZvbnQtZmFtaWx5OiDQwsvOzOU7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+Jm5i
c3A7PC9TUEFOPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBDT0xPUjogIzAxMDAw
MTsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQt
ZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVT
Ij5teWRvc2VzY29yZXItJmd0O1JlZ2lzdGVyUHJpbWl0aXZlKHRvdGFsZG9zZSk7PG86cD48L286
cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTEFZT1VULUdSSUQt
TU9ERTogY2hhcjsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIj48U1BBTiBzdHlsZT0iRk9O
VC1GQU1JTFk6ICdBcmlhbCcsJ3NhbnMtc2VyaWYnOyBDT0xPUjogYmxhY2s7IEZPTlQtU0laRTog
MTAuNXB0IiBsYW5nPSJFTi1VUyI+Jm5ic3A7Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vPG86
cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTEFZT1VU
LUdSSUQtTU9ERTogY2hhcjsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIj48U1BBTiBzdHls
ZT0iRk9OVC1GQU1JTFk6ICdBcmlhbCcsJ3NhbnMtc2VyaWYnOyBDT0xPUjogYmxhY2s7IEZPTlQt
U0laRTogMTAuNXB0IiBsYW5nPSJFTi1VUyI+VGhlIGNvZGVzIG9mIHBhdGljbGVzIHNob290IGxp
a2UgYmVsb3c6PC9TUEFOPjwvUD48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6ICdBcmlhbCcsJ3Nh
bnMtc2VyaWYnOyBDT0xPUjogYmxhY2s7IEZPTlQtU0laRTogMTAuNXB0IiBsYW5nPSJFTi1VUyI+
CjxQIHN0eWxlPSJNQVJHSU46IDBjbSAwY20gMHB0OyBMQVlPVVQtR1JJRC1NT0RFOiBjaGFyOyBt
c28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTogJ0Fy
aWFsJywnc2Fucy1zZXJpZic7IENPTE9SOiBibGFjazsgRk9OVC1TSVpFOiAxMC41cHQiIGxhbmc9
IkVOLVVTIj4mbmJzcDsvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy88bzpwPjwvbzpwPjwvU1BB
Tj48L1A+PG86cD48L286cD48L1NQQU4+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJH
SU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29O
b3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgQ09M
T1I6ICMwMTAwMDE7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1o
YW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBs
YW5nPSJFTi1VUyI+Q29QcmltYXJ5R2VuZXJhdG9yQWN0aW9uPC9TUEFOPjxTUEFOIHN0eWxlPSJG
T05ULUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0
OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6
IHllcyIgbGFuZz0iRU4tVVMiPjo6PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5Db1ByaW1h
cnlHZW5lcmF0b3JBY3Rpb248L1NQQU4+KCk8bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxl
PSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQt
YWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0i
Rk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBw
dDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29m
OiB5ZXMiIGxhbmc9IkVOLVVTIj57PG86cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVY
VC1BTElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWdu
OiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQt
RkFNSUxZOiDQwsvOzOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1z
by1oYW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVz
IiBsYW5nPSJFTi1VUyI+PFNQQU4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9T
UEFOPjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+RzRpbnQ8L1NQQU4+IDxTUEFOIHN0eWxl
PSJDT0xPUjogIzAxMDAwMSI+bl9wYXJ0aWNsZTwvU1BBTj4gPSAxOzxTUEFOIHN0eWxlPSJDT0xP
UjogZ3JlZW4iPiA8bzpwPjwvbzpwPjwvU1BBTj48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1B
TElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBu
b25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFN
SUxZOiDQwsvOzOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1o
YW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBs
YW5nPSJFTi1VUyI+PFNQQU4gc3R5bGU9Im1zby1zcGFjZXJ1bjogeWVzIj4mbmJzcDsgPC9TUEFO
PjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+cGFydGljbGVHdW48L1NQQU4+ID0gPFNQQU4g
c3R5bGU9IkNPTE9SOiBibHVlIj5uZXc8L1NQQU4+IDxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAw
MSI+RzRQYXJ0aWNsZUd1bjwvU1BBTj4oPFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5uX3Bh
cnRpY2xlPC9TUEFOPik7PFNQQU4gc3R5bGU9IkNPTE9SOiBncmVlbiI+IDxvOnA+PC9vOnA+PC9T
UEFOPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAw
Y20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFs
aWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5
cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMg
TmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj48U1BBTiBzdHlsZT0i
bXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyA8L1NQQU4+PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEw
MDAxIj5wYXJ0aWNsZUd1bjwvU1BBTj4tJmd0OzxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+
U2V0UGFydGljbGVEZWZpbml0aW9uPC9TUEFOPig8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEi
Pkc0R2FtbWE8L1NQQU4+Ojo8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPkdhbW1hRGVmaW5p
dGlvbjwvU1BBTj4oKSk7PFNQQU4gc3R5bGU9IkNPTE9SOiBncmVlbiI+PG86cD48L286cD48L1NQ
QU4+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1BUkdJTjogMGNtIDBj
bSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxp
Z249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlw
dDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBO
ZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjxTUEFOIHN0eWxlPSJt
c28tc3BhY2VydW46IHllcyI+Jm5ic3A7IDwvU1BBTj48U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAw
MDEiPnBhcnRpY2xlR3VuPC9TUEFOPi0mZ3Q7PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5T
ZXRQYXJ0aWNsZVBvc2l0aW9uPC9TUEFOPig8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPkc0
VGhyZWVWZWN0b3I8L1NQQU4+KDAuKjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+bTwvU1BB
Tj4sMC4qPFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5tPC9TUEFOPiwwLio8U1BBTiBzdHls
ZT0iQ09MT1I6ICMwMTAwMDEiPm08L1NQQU4+KSk7PFNQQU4gc3R5bGU9IkNPTE9SOiBncmVlbiI+
PG86cD48L286cD48L1NQQU4+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7
IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9
Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszl
OyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1m
YW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMi
Pn08bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJH
SU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29O
b3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgQ09M
T1I6IGJsdWU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5z
aS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5n
PSJFTi1VUyI+dm9pZDwvU1BBTj48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9O
VC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5
OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj4gPFNQ
QU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5Db1ByaW1hcnlHZW5lcmF0b3JBY3Rpb248L1NQQU4+
Ojo8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPkdlbmVyYXRlUHJpbWFyaWVzPC9TUEFOPig8
U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPkc0RXZlbnQ8L1NQQU4+KiA8U1BBTiBzdHlsZT0i
Q09MT1I6ICMwMTAwMDEiPmFuRXZlbnQ8L1NQQU4+KTxTUEFOIHN0eWxlPSJDT0xPUjogZ3JlZW4i
Pi8vPG86cD48L286cD48L1NQQU4+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxl
ZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xh
c3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLL
zszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9u
dC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4t
VVMiPnsgPFNQQU4gc3R5bGU9Im1zby10YWItY291bnQ6IDEiPiZuYnNwOyZuYnNwOyA8L1NQQU4+
PG86cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lO
OiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9y
bWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IEZPTlQt
U0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTog
J1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+PFNQQU4g
c3R5bGU9Im1zby10YWItY291bnQ6IDEiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+
PFNQQU4gc3R5bGU9IkNPTE9SOiBibHVlIj5pZjwvU1BBTj4gKDxTUEFOIHN0eWxlPSJDT0xPUjog
IzAxMDAwMSI+RzRVbmlmb3JtUmFuZDwvU1BBTj4oKSZndDswLjUpPFNQQU4gc3R5bGU9IkNPTE9S
OiBncmVlbiI+IDxvOnA+PC9vOnA+PC9TUEFOPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFM
SUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5v
bmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1J
TFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhh
bnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxh
bmc9IkVOLVVTIj48U1BBTiBzdHlsZT0ibXNvLXRhYi1jb3VudDogMSI+Jm5ic3A7Jm5ic3A7Jm5i
c3A7Jm5ic3A7IDwvU1BBTj57PG86cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1B
TElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBu
b25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFN
SUxZOiDQwsvOzOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1o
YW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBs
YW5nPSJFTi1VUyI+PFNQQU4gc3R5bGU9Im1zby10YWItY291bnQ6IDIiPiZuYnNwOyZuYnNwOyZu
YnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+PFNQQU4gc3R5bGU9IkNP
TE9SOiAjMDEwMDAxIj5wYXJ0aWNsZUd1bjwvU1BBTj4tJmd0OzxTUEFOIHN0eWxlPSJDT0xPUjog
IzAxMDAwMSI+U2V0UGFydGljbGVFbmVyZ3k8L1NQQU4+KDEuMTcqPFNQQU4gc3R5bGU9IkNPTE9S
OiAjMDEwMDAxIj5NZVY8L1NQQU4+KTs8U1BBTiBzdHlsZT0iQ09MT1I6IGdyZWVuIj48bzpwPjwv
bzpwPjwvU1BBTj48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lO
OiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9y
bWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IEZPTlQt
U0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTog
J1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+PFNQQU4g
c3R5bGU9Im1zby10YWItY291bnQ6IDEiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+
fTxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1BUkdJ
TjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1zb05v
cm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBGT05U
LVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6
ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjxTUEFO
IHN0eWxlPSJtc28tdGFiLWNvdW50OiAxIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9TUEFO
PjxTUEFOIHN0eWxlPSJDT0xPUjogYmx1ZSI+ZWxzZTxvOnA+PC9vOnA+PC9TUEFOPjwvU1BBTj48
L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28t
bGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48
U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250
LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsg
bXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj48U1BBTiBzdHlsZT0ibXNvLXRhYi1jb3Vu
dDogMSI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvU1BBTj57PG86cD48L286cD48L1NQQU4+
PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNv
LWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+
PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9u
dC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7
IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+PFNQQU4gc3R5bGU9Im1zby10YWItY291
bnQ6IDIiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8
L1NQQU4+PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5wYXJ0aWNsZUd1bjwvU1BBTj4tJmd0
OzxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+U2V0UGFydGljbGVFbmVyZ3k8L1NQQU4+KDEu
MzMqPFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5NZVY8L1NQQU4+KTs8U1BBTiBzdHlsZT0i
Q09MT1I6IGdyZWVuIj48bzpwPjwvbzpwPjwvU1BBTj48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVY
VC1BTElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWdu
OiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQt
RkFNSUxZOiDQwsvOzOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1z
by1oYW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVz
IiBsYW5nPSJFTi1VUyI+PFNQQU4gc3R5bGU9Im1zby10YWItY291bnQ6IDEiPiZuYnNwOyZuYnNw
OyZuYnNwOyZuYnNwOyA8L1NQQU4+fTxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRF
WFQtQUxJR046IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGln
bjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05U
LUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBt
c28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHll
cyIgbGFuZz0iRU4tVVMiPjxTUEFOIHN0eWxlPSJtc28tdGFiLWNvdW50OiAxIj4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgPC9TUEFOPjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+cGFydGlj
bGVHdW48L1NQQU4+LSZndDs8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPlNldFBhcnRpY2xl
TW9tZW50dW1EaXJlY3Rpb248L1NQQU4+KDxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+RzRS
YW5kb21EaXJlY3Rpb248L1NQQU4+KCkpOzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9
IlRFWFQtSU5ERU5UOiAxMy41cHQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IExBWU9VVC1HUklELU1P
REU6IGNoYXI7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZTsgbXNvLWNoYXItaW5kZW50LWNv
dW50OiAxLjUiIGNsYXNzPSJNc29Ob3JtYWwiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLL
zszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9u
dC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4t
VVMiPjxTUEFOIHN0eWxlPSJtc28tc3BhY2VydW46IHllcyI+Jm5ic3A7IDwvU1BBTj48U1BBTiBz
dHlsZT0iQ09MT1I6ICMwMTAwMDEiPnBhcnRpY2xlR3VuPC9TUEFOPi0mZ3Q7PFNQQU4gc3R5bGU9
IkNPTE9SOiAjMDEwMDAxIj5HZW5lcmF0ZVByaW1hcnlWZXJ0ZXg8L1NQQU4+KDxTUEFOIHN0eWxl
PSJDT0xPUjogIzAxMDAwMSI+YW5FdmVudDwvU1BBTj4pOzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4K
PFAgc3R5bGU9IlRFWFQtSU5ERU5UOiAxMy41cHQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IExBWU9V
VC1HUklELU1PREU6IGNoYXI7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZTsgbXNvLWNoYXIt
aW5kZW50LWNvdW50OiAxLjUiIGNsYXNzPSJNc29Ob3JtYWwiPjxTUEFOIHN0eWxlPSJGT05ULUZB
TUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28t
aGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIg
bGFuZz0iRU4tVVMiPn08L1NQQU4+PC9QPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszl
OyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1m
YW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMi
Pgo8UCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTEFZT1VULUdSSUQtTU9ERTogY2hhcjsg
bXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIj48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6ICdB
cmlhbCcsJ3NhbnMtc2VyaWYnOyBDT0xPUjogYmxhY2s7IEZPTlQtU0laRTogMTAuNXB0IiBsYW5n
PSJFTi1VUyI+Jm5ic3A7Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vPG86cD48L286cD48L1NQ
QU4+PC9QPjwvU1BBTj48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6ICdBcmlhbCcsJ3NhbnMtc2Vy
aWYnIiBsYW5nPSJFTi1VUyI+PG86cD48L286cD48L1NQQU4+CjxQIHN0eWxlPSJNQVJHSU46IDBj
bSAwY20gMHB0OyBMQVlPVVQtR1JJRC1NT0RFOiBjaGFyOyBtc28tbGF5b3V0LWdyaWQtYWxpZ246
IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTogJ0FyaWFs
Jywnc2Fucy1zZXJpZiciIGxhbmc9IkVOLVVTIj5BbmQgdGhlIHNjb3JpbmcgY29kZSBsaWtlIGJl
bG93IGluIG15IHJ1bi5jYzwvU1BBTj48L1A+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnQXJp
YWwnLCdzYW5zLXNlcmlmJyIgbGFuZz0iRU4tVVMiPgo8UCBzdHlsZT0iTUFSR0lOOiAwY20gMGNt
IDBwdDsgTEFZT1VULUdSSUQtTU9ERTogY2hhcjsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25l
Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6ICdBcmlhbCcsJ3NhbnMtc2VyaWYnOyBDT0xPUjog
YmxhY2s7IEZPTlQtU0laRTogMTAuNXB0IiBsYW5nPSJFTi1VUyI+Jm5ic3A7Ly8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vPG86cD48L286cD48L1NQQU4+PC9QPjxvOnA+PC9vOnA+PC9TUEFOPgo8
UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91
dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4g
c3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IENPTE9SOiAjMDEwMDAxOyBGT05ULVNJWkU6IDlw
dDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBO
ZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPkNvUnVuPC9TUEFOPjxT
UEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQt
a2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBt
c28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjo6PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEw
MDAxIj5Db1J1bjwvU1BBTj4oKTo8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPm5FdmVudDwv
U1BBTj4oMCk8bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0
OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNz
PSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M
5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQt
ZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVT
Ij57PG86cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFS
R0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNv
Tm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IEZP
TlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWls
eTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+PFNQ
QU4gc3R5bGU9Im1zby10YWItY291bnQ6IDEiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQ
QU4+PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5HNFNETWFuYWdlcjwvU1BBTj4qIDxTUEFO
IHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+U0RtYW48L1NQQU4+ID0gPFNQQU4gc3R5bGU9IkNPTE9S
OiAjMDEwMDAxIj5HNFNETWFuYWdlcjwvU1BBTj46OjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAw
MSI+R2V0U0RNcG9pbnRlcjwvU1BBTj4oKTs8bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxl
PSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQt
YWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0i
Rk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBw
dDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29m
OiB5ZXMiIGxhbmc9IkVOLVVTIj48U1BBTiBzdHlsZT0ibXNvLXRhYi1jb3VudDogMSI+Jm5ic3A7
Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvU1BBTj48U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPnRv
dGFsZG9zZUlEPC9TUEFOPiA9IDxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+U0RtYW48L1NQ
QU4+LSZndDs8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPkdldENvbGxlY3Rpb25JRDwvU1BB
Tj4oPFNQQU4gc3R5bGU9IkNPTE9SOiAjYTMxNTE1Ij4iTXlTY29yZXIvVG90YWxEb3NlIjwvU1BB
Tj4pOzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1B
UkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1z
b05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBG
T05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1p
bHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPn08
bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46
IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3Jt
YWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgQ09MT1I6
IGJsdWU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1m
b250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJF
Ti1VUyI+dm9pZDwvU1BBTj48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1T
SVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAn
VGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj4gPFNQQU4g
c3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5Db1J1bjwvU1BBTj46OjxTUEFOIHN0eWxlPSJDT0xPUjog
IzAxMDAwMSI+UmVjb3JkRXZlbnQ8L1NQQU4+KDxTUEFOIHN0eWxlPSJDT0xPUjogYmx1ZSI+Y29u
c3Q8L1NQQU4+IDxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+RzRFdmVudDwvU1BBTj4qIDxT
UEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+ZXZ0PC9TUEFOPik8bzpwPjwvbzpwPjwvU1BBTj48
L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0OyBtc28t
bGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48
U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250
LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsg
bXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj57PFNQQU4gc3R5bGU9Im1zby10YWItY291
bnQ6IDEiPiZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+PG86cD48L286cD48L1NQQU4+PC9QPgo8
UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91
dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4g
c3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJu
aW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1u
by1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+PFNQQU4gc3R5bGU9Im1zby10YWItY291bnQ6IDEi
PiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEw
MDAxIj5HNEhDb2ZUaGlzRXZlbnQ8L1NQQU4+KiA8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEi
PkhDRTwvU1BBTj4gPSA8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPmV2dDwvU1BBTj4tJmd0
OzxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+R2V0SENvZlRoaXNFdmVudDwvU1BBTj4oKTs8
bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46
IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3Jt
YWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1T
SVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAn
VGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj48U1BBTiBz
dHlsZT0ibXNvLXRhYi1jb3VudDogMSI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvU1BBTj48
U1BBTiBzdHlsZT0iQ09MT1I6IGJsdWUiPmlmPC9TUEFOPighPFNQQU4gc3R5bGU9IkNPTE9SOiAj
MDEwMDAxIj5IQ0U8L1NQQU4+KSB7PFNQQU4gc3R5bGU9IkNPTE9SOiBibHVlIj5yZXR1cm48L1NQ
QU4+O308bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBN
QVJHSU46IDBjbSAwY20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJN
c29Ob3JtYWwiIGFsaWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5Tsg
Rk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFt
aWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj48
U1BBTiBzdHlsZT0ibXNvLXRhYi1jb3VudDogMSI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwv
U1BBTj48U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPm5FdmVudDwvU1BBTj4rKzs8bzpwPjwv
bzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAw
Y20gMHB0OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFs
aWduPSJsZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5
cHQ7IG1zby1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMg
TmV3IFJvbWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj48U1BBTiBzdHlsZT0i
bXNvLXRhYi1jb3VudDogMSI+Jm5ic3A7Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvU1BBTj48U1BBTiBz
dHlsZT0iQ09MT1I6ICMwMTAwMDEiPmV2ZW50dG90YWxkb3NlPC9TUEFOPiA9ICg8U1BBTiBzdHls
ZT0iQ09MT1I6ICMwMTAwMDEiPkc0VEhpdHNNYXA8L1NQQU4+Jmx0OzxTUEFOIHN0eWxlPSJDT0xP
UjogIzAxMDAwMSI+RzRkb3VibGU8L1NQQU4+Jmd0OyopKDxTUEFOIHN0eWxlPSJDT0xPUjogIzAx
MDAwMSI+SENFPC9TUEFOPi0mZ3Q7PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5HZXRIQzwv
U1BBTj4oPFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj50b3RhbGRvc2VJRDwvU1BBTj4pKTs8
U1BBTiBzdHlsZT0ibXNvLXRhYi1jb3VudDogMSI+Jm5ic3A7Jm5ic3A7Jm5ic3A7IDwvU1BBTj48
U1BBTiBzdHlsZT0ibXNvLXNwYWNlcnVuOiB5ZXMiPiZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+
PG86cD48L286cD48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lO
OiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9y
bWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IEZPTlQt
U0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250LWZhbWlseTog
J1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1VUyI+PFNQQU4g
c3R5bGU9Im1zby10YWItY291bnQ6IDEiPiZuYnNwOyZuYnNwOyZuYnNwOyZuYnNwOyA8L1NQQU4+
PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj50b3RhbGRvc2U8L1NQQU4+ICs9ICo8U1BBTiBz
dHlsZT0iQ09MT1I6ICMwMTAwMDEiPmV2ZW50dG90YWxkb3NlPC9TUEFOPjs8bzpwPjwvbzpwPjwv
U1BBTj48L1A+CjxQIHN0eWxlPSJURVhULUFMSUdOOiBsZWZ0OyBNQVJHSU46IDBjbSAwY20gMHB0
OyBtc28tbGF5b3V0LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiIGFsaWduPSJs
ZWZ0Ij48U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1z
by1mb250LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJv
bWFuJzsgbXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj59PG86cD48L286cD48L1NQQU4+
PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVmdDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNv
LWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+
PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvOzOU7IENPTE9SOiAjMDEwMDAxOyBGT05ULVNJ
WkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdU
aW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPkc0ZG91Ymxl
PC9TUEFOPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsg
bXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcg
Um9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPiA8U1BBTiBzdHlsZT0iQ09M
T1I6ICMwMTAwMDEiPkNvUnVuPC9TUEFOPjo6PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5H
ZXRUb3RhbDwvU1BBTj4oKSA8U1BBTiBzdHlsZT0iQ09MT1I6IGJsdWUiPmNvbnN0PC9TUEFOPjxT
UEFOIHN0eWxlPSJDT0xPUjogZ3JlZW4iPi8vZ2V0IHRoZSBkb3NlIHZhbHVlIHRvIGRvdWJsZSB2
YWw8bzpwPjwvbzpwPjwvU1BBTj48L1NQQU4+PC9QPgo8UCBzdHlsZT0iVEVYVC1BTElHTjogbGVm
dDsgTUFSR0lOOiAwY20gMGNtIDBwdDsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFz
cz0iTXNvTm9ybWFsIiBhbGlnbj0ibGVmdCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiDQwsvO
zOU7IEZPTlQtU0laRTogOXB0OyBtc28tZm9udC1rZXJuaW5nOiAwcHQ7IG1zby1oYW5zaS1mb250
LWZhbWlseTogJ1RpbWVzIE5ldyBSb21hbic7IG1zby1uby1wcm9vZjogeWVzIiBsYW5nPSJFTi1V
UyI+ezxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1B
UkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1z
b05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBG
T05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1p
bHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjxT
UEFOIHN0eWxlPSJtc28tdGFiLWNvdW50OiAxIj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9T
UEFOPjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+RzRkb3VibGU8L1NQQU4+IDxTUEFOIHN0
eWxlPSJDT0xPUjogIzAxMDAwMSI+dG90PC9TUEFOPj0wOzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4K
PFAgc3R5bGU9IlRFWFQtQUxJR046IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlv
dXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFO
IHN0eWxlPSJGT05ULUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2Vy
bmluZzogMHB0OyBtc28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28t
bm8tcHJvb2Y6IHllcyIgbGFuZz0iRU4tVVMiPjxTUEFOIHN0eWxlPSJtc28tdGFiLWNvdW50OiAx
Ij4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9TUEFOPjxTUEFOIHN0eWxlPSJDT0xPUjogIzAx
MDAwMSI+c3RkPC9TUEFOPjo6PFNQQU4gc3R5bGU9IkNPTE9SOiAjMDEwMDAxIj5tYXA8L1NQQU4+
Jmx0OzxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+RzRpbnQ8L1NQQU4+LDxTUEFOIHN0eWxl
PSJDT0xPUjogIzAxMDAwMSI+RzRkb3VibGU8L1NQQU4+KiZndDs6OjxTUEFOIHN0eWxlPSJDT0xP
UjogIzAxMDAwMSI+aXRlcmF0b3I8L1NQQU4+IDxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+
aXRyPC9TUEFOPiA9IDxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJR046
IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIg
Y2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTog
0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFuc2kt
Zm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFuZz0i
RU4tVVMiPjxTUEFOIHN0eWxlPSJtc28tdGFiLWNvdW50OiAyIj4mbmJzcDsmbmJzcDsmbmJzcDsm
bmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDsgPC9TUEFOPigmYW1wOzxTUEFOIHN0eWxlPSJD
T0xPUjogIzAxMDAwMSI+dG90YWxkb3NlPC9TUEFOPiktJmd0OzxTUEFOIHN0eWxlPSJDT0xPUjog
IzAxMDAwMSI+R2V0TWFwPC9TUEFOPigpLSZndDs8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEi
PmJlZ2luPC9TUEFOPigpOzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRFWFQtQUxJ
R046IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9u
ZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlM
WTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBtc28taGFu
c2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHllcyIgbGFu
Zz0iRU4tVVMiPjxTUEFOIHN0eWxlPSJtc28tdGFiLWNvdW50OiAxIj4mbmJzcDsmbmJzcDsmbmJz
cDsmbmJzcDsgPC9TUEFOPjxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+RzRkb3VibGU8L1NQ
QU4+IDxTUEFOIHN0eWxlPSJDT0xPUjogIzAxMDAwMSI+dmFsPC9TUEFOPiA9ICooPFNQQU4gc3R5
bGU9IkNPTE9SOiAjMDEwMDAxIj5pdHI8L1NQQU4+LSZndDs8U1BBTiBzdHlsZT0iQ09MT1I6ICMw
MTAwMDEiPnNlY29uZDwvU1BBTj4pOzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9IlRF
WFQtQUxJR046IGxlZnQ7IE1BUkdJTjogMGNtIDBjbSAwcHQ7IG1zby1sYXlvdXQtZ3JpZC1hbGln
bjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCIgYWxpZ249ImxlZnQiPjxTUEFOIHN0eWxlPSJGT05U
LUZBTUlMWTog0MLLzszlOyBGT05ULVNJWkU6IDlwdDsgbXNvLWZvbnQta2VybmluZzogMHB0OyBt
c28taGFuc2ktZm9udC1mYW1pbHk6ICdUaW1lcyBOZXcgUm9tYW4nOyBtc28tbm8tcHJvb2Y6IHll
cyIgbGFuZz0iRU4tVVMiPjxTUEFOIHN0eWxlPSJtc28tdGFiLWNvdW50OiAxIj4mbmJzcDsmbmJz
cDsmbmJzcDsmbmJzcDsgPC9TUEFOPjxTUEFOIHN0eWxlPSJDT0xPUjogYmx1ZSI+cmV0dXJuPC9T
UEFOPiA8U1BBTiBzdHlsZT0iQ09MT1I6ICMwMTAwMDEiPnZhbDwvU1BBTj47PG86cD48L286cD48
L1NQQU4+PC9QPgo8UCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTEFZT1VULUdSSUQtTU9E
RTogY2hhcjsgbXNvLWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIj48
U1BBTiBzdHlsZT0iRk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250
LWtlcm5pbmc6IDBwdDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsg
bXNvLW5vLXByb29mOiB5ZXMiIGxhbmc9IkVOLVVTIj59PG86cD48L286cD48L1NQQU4+PC9QPgo8
UCBzdHlsZT0iTUFSR0lOOiAwY20gMGNtIDBwdDsgTEFZT1VULUdSSUQtTU9ERTogY2hhcjsgbXNv
LWxheW91dC1ncmlkLWFsaWduOiBub25lIiBjbGFzcz0iTXNvTm9ybWFsIj48U1BBTiBzdHlsZT0i
Rk9OVC1GQU1JTFk6INDCy87M5TsgRk9OVC1TSVpFOiA5cHQ7IG1zby1mb250LWtlcm5pbmc6IDBw
dDsgbXNvLWhhbnNpLWZvbnQtZmFtaWx5OiAnVGltZXMgTmV3IFJvbWFuJzsgbXNvLW5vLXByb29m
OiB5ZXMiIGxhbmc9IkVOLVVTIj48bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxlPSJNQVJH
SU46IDBjbSAwY20gMHB0OyBMQVlPVVQtR1JJRC1NT0RFOiBjaGFyOyBtc28tbGF5b3V0LWdyaWQt
YWxpZ246IG5vbmUiPjxTUEFOIHN0eWxlPSJGT05ULUZBTUlMWTogJ0FyaWFsJywnc2Fucy1zZXJp
Zic7IENPTE9SOiBibGFjazsgRk9OVC1TSVpFOiAxMC41cHQiIGxhbmc9IkVOLVVTIj4mbmJzcDsv
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8v
Ly8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy88bzpwPjwvbzpwPjwvU1BBTj48L1A+CjxQIHN0eWxl
PSJNQVJHSU46IDBjbSAwY20gMHB0OyBMQVlPVVQtR1JJRC1NT0RFOiBjaGFyOyBtc28tbGF5b3V0
LWdyaWQtYWxpZ246IG5vbmUiIGNsYXNzPSJNc29Ob3JtYWwiPjxTUEFOIHN0eWxlPSJGT05ULUZB
TUlMWTogJ0FyaWFsJywnc2Fucy1zZXJpZiciIGxhbmc9IkVOLVVTIj5CdXQgdGhlIHJlc3VsdCBv
ZiBkb3NlIGlzIDEuMTA5NThlLTAxMCBHeSwgYW5kIGRpdmlkZWQgYnkgYWN0aXZpdHkgMi41TUJx
LCBJIGdldCB0aGUgYWlyIGtlcm1hIGNvbnN0YW50IGlzIDQ0LjM4ZS0xOCBHeW0yLyhCcXMpLiBZ
b3Uga25vdywgdGhhdCB2YWx1ZSBvZiBJQ1JVIG9yIE5JU1QgaXMgYWJvdXQgODVlLTE4LiBBbnli
b2R5IHRlbGwgbWUgV2h5PzxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFAgc3R5bGU9Ik1BUkdJTjog
MGNtIDBjbSAwcHQ7IExBWU9VVC1HUklELU1PREU6IGNoYXI7IG1zby1sYXlvdXQtZ3JpZC1hbGln
bjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCI+PFNQQU4gc3R5bGU9IkZPTlQtRkFNSUxZOiAnQXJp
YWwnLCdzYW5zLXNlcmlmJyIgbGFuZz0iRU4tVVMiPjxvOnA+Jm5ic3A7PC9vOnA+PC9TUEFOPjwv
UD4KPFAgc3R5bGU9Ik1BUkdJTjogMGNtIDBjbSAwcHQ7IExBWU9VVC1HUklELU1PREU6IGNoYXI7
IG1zby1sYXlvdXQtZ3JpZC1hbGlnbjogbm9uZSIgY2xhc3M9Ik1zb05vcm1hbCI+PFNQQU4gc3R5
bGU9IkZPTlQtRkFNSUxZOiAnQXJpYWwnLCdzYW5zLXNlcmlmJyIgbGFuZz0iRU4tVVMiPkZvciBh
bm90aGVyIHZlcmlmaWNhdGlvbiwgSSBjb25zdHJ1Y3QgdGhlIHNhbWUgZ2VvbWV0cnkgaW4gTUNO
UDUsIGFuZCB1c2UgRjYgdGFsbHkgYW5kIHBob3RvbiBtb2RlIG9ubHksIHRoZSByZXN1bHQgaXMg
dmVyeSBjbG9zZSB0byBjb3JyZWN0IHZhbHVlLjxvOnA+PC9vOnA+PC9TUEFOPjwvUD4KPFA+VGhh
bmtzIGluIGFkdmFuY2UgZm9yIHRoZSBoZWxwITwvUD48L2Rpdj48YnI+PGJyPjxzcGFuIHRpdGxl
PSJuZXRlYXNlZm9vdGVyIj48c3BhbiBpZD0ibmV0ZWFzZV9tYWlsX2Zvb3RlciI+PC9zcGFuPjwv
c3Bhbj4=
------=_Part_172804_30123313.1315494966144--
None Is there a good way to 'continuously bias' a particle by monkeying with weight?  by Peter Mardahl <Peter Mardahl>,   31 Aug, 2011
Hello,

  I've been reading the documentation on how to do biasing with interest, and I had a somewhat different idea than is currently implemented, and I am not sure if it is a good one.

  In particular, I'm looking at X-rays going through shielding.  One can do importance sampling on this, but you have to play with this to get it right.

  I'm wondering if I can just do this:  NEVER kill an x-ray as it goes through shielding.  Instead, whenever it has an event or process which WOULD kill it, just reduce the weight.

  The idea is that you can keep a constant number of particles and get good statistics, because one has lots, but still get the right answer because even though everyone survives, they have lost the right amount of weight.

  Does this make sense?  Can it work?  Has someone already done it successfully?  It seems like this *should* be pretty easy to do, but I am not confident I understand the issues properly.  Or is this already one of the options and I just failed to understand the documentation?  (If so, well, help please?)

Best,

--PeterM

1 None: Re: Is there a good way to 'continuously bias' a particle by monkeying with weight?   (Marc Verderi - 31 Aug, 2011)
(_ None: Re: Is there a good way to 'continuously bias' a particle by monkeying with weight?   (Peter Mardahl - 31 Aug, 2011)
None Biasing by physics process  by Tom Roberts <Tom Roberts>,   08 Aug, 2011
I want to bias events by physics process, by increasing the cross-section of a given process by name, optionally limited by particle, material, and volume names. G4VProcess has SetPILfactor() which seems specifically designed for this. Unfortunately, it does not affect the track weights.

Adjusting the weights requires the current interaction length for all processes affecting this particle. Fortunately, a quick test program shows that it is available (!= -1) for all processes of interest (processes like msc, Transportation, and step limiters don't matter).

In order to adjust the track weights, between detector construction and beamOn I will loop over all particles' process managers, inserting a process wrapper around all appropriate processes. This will not handle continuous processes properly, so I'll check and fail for them. The wrapper will adjust the interaction length, and adjust the weights of the particle being tracked and all secondaries. The wrapper must do *condition=Forced in the GPIL functions so it can adjust the weight at each step.

Any comments on this? Has anyone done this already?

1 Question: Re: Biasing by physics process   (Peter Broere - 01 Sep, 2014)
Question muon cross section  by Sean Turnbull <Sean Turnbull>,   29 Jul, 2011
Hello, I am simulating incident muons on a Pb detector, creating tertiary neutrons activating a Au disk.

I am wanting to alter the altitude between detector and initial muon starting position. I know that increasing this distance will increase the processing time as the muons interact with the air and am wanting to to increase the muon cross section to improve processing time.

I have looked at BiasCrossSectionByFactor but am not sure if applied to muons?

Any help is appreciated.

Thanks

None neutron activation problem  by Eleni <Eleni>,   29 Jun, 2011
Hello All,

I am trying to count U-239 produced by the U238(n,g) reaction. In my StackingAction class I added the following

G4String particleType = track->GetDefinition()->GetParticleType();
if (particleType == "nucleus" && track->GetParentID()>0)
   {
     G4Ions* ion = (G4Ions*) track->GetDefinition();
     G4int Z = ion->GetAtomicNumber();
     G4int A = ion->GetAtomicMass();
     if (Z==92 && A==239)
     runaction->CountU239();
    }
In the RunAction.hh I added the following 

void CountU239 ()
            { nbU239++ ;};

But when I run the programma I get the same number of gammas and U239 isotopes.

What do I do wrong in the code?

I attach the classes : StackingAction.cc RunAction.cc RunAction.hh

Thanks in advance

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/06/29/07.46-87559-StackingAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/06/29/07.46-61769-RunAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/06/29/07.46-61169-RunAction.hh

Question Transportation manager has too many active navigators  by Dylan <Dylan>,   25 May, 2011
I created a detector geometry with 30 alternating absorber and scintillator layers (a total of 60).

The width of the absorber layers is different to the width of the scintillator layers, so I had to create a macro which sets up 60 scorers, in turn, one for each layer, then runs an event, then outputs the value for energy deposited (eDep) in each layer, one by one.

However, on running the macro in UI mode, I get the following error:

### Run 0 start. Start Run processing.

---> Begin of event: 0

--------- Ranecu engine status ---------
 Initial seed (index) = 0
 Current couple of seeds = 9876, 54321
----------------------------------------
ERROR - G4PathFinder::PrepareNewTrack()
        Too many active Navigators. G4PathFinder fails.
        Transportation Manager has 9 active navigators.
        This is more than the number allowed = 8 !

*** G4Exception : TooManyNavigators
      issued by : G4PathFinder::PrepareNewTrack()
Too many active Navigators / worlds
*** Fatal Exception *** core dump ***

*** G4Exception: Aborting execution *** Abort trap

Does anyone know how I can get around this? When I run the macro with 3 absorber layers and 3 scintillator layers (6 total), the macro executes fine and I get the desired output. However, any more than this and I get this error.

Regards,

Dylan

1 Question: Re: Transportation manager has too many active navigators   (Stefan E. Mueller - 11 Mar, 2014)
(_ None: Re: Transportation manager has too many active navigators   (John Apostolakis - 11 Mar, 2014)
(_ Question: Re: Transportation manager has too many active navigators   (Stefan E. Mueller - 13 Mar, 2014)
(_ Ok: Re: Transportation manager has too many active navigators   (Stefan E. Mueller - 14 Mar, 2014)
Question Multiple scorers with multiple Logical Volumes  by Matt Worden <Matt Worden>,   16 May, 2011
I have a cellPassageCurrent scorer attached to a parameterized volume with 121 copy numbers. It keeps track of each of the 121 scorers per each event. This counts particles that pass through certain regions of my detector. I would also like to keep track of every secondary that is produced for each event. I made a nOfsecondary scorer and attached it to an outer logical volume.

Now with my output, I get a the count for the nOfsecondary in the first place of my hits map and one of the 121 copy numbers is lost. I thought that the new scorer just went on top of the others and I could have to output one more cell from the hits map, but there is nothing there. Also when I have a run of multiple events, the total of the cellPassageCurrent scorer out numbers the total number of secondaries produced. This is not right, the number of secondaries produced should always be greater than or equal to the particles counted by the passage current scorer.

I have included my run.cc , detectorGeometry detector and the final output.

Any help or insight would be greatly appreciated.

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/05/16/09.39-47081-ExN06Run.txt
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/05/16/09.39-68862-6DetectorConstruction.txt
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/05/16/09.37-25324-EndOfRun.csv

1 None: Re: Multiple scorers with multiple Logical Volumes   (Tsukasa Aso - 18 May, 2011)
None scoring/weighting/roulette for protons  by <tosieck@us.ibm.com>,   02 May, 2011
Hi,

  According to the geant4 documentation, none of the scoring/weighting/roulette variable reduction techniques work for protons, or charged particles in general.

  Is this true?  And if it is NOT, can anyone provide information for these techniques and charged particles?

Thanks much.

Tom.

1 None: Re: scoring/weighting/roulette for protons   (Marc Verderi - 06 May, 2011)
None Variance Techniques for charged particles  by <tosieck@us.ibm.com>,   28 Apr, 2011
Hi,

  I've been reading up on Geant4's variance reduction techniques and just want to verify some things that I think I understand.

It seems that if your beam consists solely of charged particles, then Geant4's variance reduction techniques will not work, EXCEPT for using the reverse/adjoint monte carlo. Scoring/roulette/weightwindow/etc do nothing for charged particles in geant as of now.

Is this true and if not, can someone point me to examples of these techniques for charged particles?

If this is true, is there a timescale for when this will be possible?

Tom.

1 None: Re: Variance Techniques for charged particles   (Marc Verderi - 29 Apr, 2011)
(_ None: Re: Variance Techniques for charged particles   (tosieck@us.ibm.com - 29 Apr, 2011)
None a question about the source code in G4PSSphereSurfaceFlux.cc  by Fada Guan <Fada Guan>,   17 Apr, 2011
Dear All:

I'm not if it is proper to ask this question in this category. I don't know how to contact with the authors: Tsukasa ASO, Akinori Kimura.

In G4PSSphereSurfaceFlux.cc

00079 G4bool G4PSSphereSurfaceFlux::ProcessHits(G4Step* aStep,G4TouchableHistory*) 00080 { 00081 G4StepPoint* preStep = aStep->GetPreStepPoint(); 00082 G4VPhysicalVolume* physVol = preStep->GetPhysicalVolume(); 00083 G4VPVParameterisation* physParam = physVol->GetParameterisation(); 00084 G4VSolid * solid = 0; 00085 if(physParam) 00086 { // for parameterized volume 00087 G4int idx = ((G4TouchableHistory*)(aStep->GetPreStepPoint()->GetTouchable())) 00088 ->GetReplicaNumber(indexDepth); 00089 solid = physParam->ComputeSolid(idx, physVol); 00090 solid->ComputeDimensions(physParam,idx,physVol); 00091 } 00092 else 00093 { // for ordinary volume 00094 solid = physVol->GetLogicalVolume()->GetSolid(); 00095 } 00096 00097 G4Sphere* sphereSolid = (G4Sphere*)(solid); 00098 00099 G4int dirFlag =IsSelectedSurface(aStep,sphereSolid); 00100 if ( dirFlag > 0 ) { 00101 if ( fDirection == fFlux_InOut || fDirection == dirFlag ){ 00102 00103 G4StepPoint* thisStep=0; 00104 if ( dirFlag == fFlux_In ){ 00105 thisStep = preStep; 00106 }else if ( dirFlag == fFlux_Out ){ 00107 thisStep = aStep->GetPreStepPoint(); 00108 }else{ 00109 return FALSE;

In line 00081   G4StepPoint* preStep = aStep->GetPreStepPoint();
        00105   thisStep = preStep;
in line 00107   thisStep = aStep->GetPreStepPoint();

Is there any difference between line 107 and line 105?

Thanks.

Fada

1 None: Re: a question about the source code in G4PSSphereSurfaceFlux.cc   (Tsukasa Aso - 18 Apr, 2011)
(_ None: Re: a question about the source code in G4PSSphereSurfaceFlux.cc   (Fada Guan - 18 Apr, 2011)
Question Nestedparameterisation in parallel world problem.  by Gianfranco Gargano <Gianfranco Gargano>,   15 Apr, 2011
Hy, in my geometry I've a nested parameterisation (NestedParamDicomDetectorConstruction) e another nested parameterisation in a parallel world. My simulation works well for 1 event and then gave a segmentation fault (It's a very strange!). If I eliminate the nested parameterisation in the parallel world all is ok, and the simulation works. In the same way if I eliminate the nested parameterisation in real world all works well. Why?

Question Nestedparameterisation in parallel world problem.  by Gianfranco Gargano <Gianfranco Gargano>,   15 Apr, 2011
Hy, in my geometry I've a nested parameterisation (NestedParamDicomDetectorConstruction) e another nested parameterisation in a parallel world. My simulation works well for 1 event and then gave a segmentation fault (It's a very strange!). If I eliminate the nested parameterisation in the parallel world all is ok, and the simulation works. In the same way if I eliminate the nested parameterisation in real world all works well. Why?

Question Dose deposition / scoring  by Andrew Voyles <Andrew Voyles>,   28 Mar, 2011
Hello all, I am quite new to GEANT4, and could use some help.

For background, I am modeling neutron activation in a thermal neutron irradiation facility. I am setting up sensitive detectors to calculate dose deposition from the secondary gammas produced in neutron activation.

First off, is the use of sensitive detectors the best method for calculating the dose from the irradiated sample?

Attached is a HepRep wireframe of the detector geometry, essentially a trapezoidal prism with a small cylinder (in yellow) near the center, representing the irradiated sample.

I am trying to find the best location/geometry for my detectors, that will not interfere with the planar neutron source (along the short base of the trapezoid), but still give an accurate dose calculation. I wanted to seek input as for any good starting points for this.

Thanks in advance for the help!

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/03/28/15.11-96196-side.jpg
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2011/03/28/15.11-98543-top2.jpg

1 Question: Re: Dose deposition / scoring   (Andrew Voyles - 28 Mar, 2011)
None Angles of emitted photons\collimator  by Vanessa La Rosa <Vanessa La Rosa>,   07 Mar, 2011
Hello, I need to create a sort of "collimator" to apply to my fluorescence detector. The setup is the following: an xray source hits a water phantom containing a small cylinder of gold that emits fluorescence. I pixelated the detector in order to create a sort of image of my phantom (obtaining the distribution of x rays in correspondance of the position of the cylinder). What I would like to do is to select the photons passing through my detector on an angular basis. Is it possible to store the exact position of emission (and then calculate the angle knowing the final position in the detector)?Or maybe is there another way to do that? Thank you so much for any suggestion

Vanessa

Question Retreiving Copy Number from Step  by <Dr_Cards>,   15 Feb, 2011
Hello,

I have a replicated geometry with approximately 1000 identical geometries placed at random positions within my world volume. I am recording and exporting information such as the process at each step and the particle involved. I am using commands such as:

s->GetPostStepPoint()->GetProcessDefinedStep()->GetProcessName()=="hEIoni"

to extract the process and:

s->GetTrack()->GetDynamicParticle()->GetDefinition() ->GetParticleName()== "proton"

to extract the particle involved.

I need a command to tell me the copy number of the replicated geometry that the physics process occured in.

Thanks

Kind Regards

Michael Douglass

1 None: Re: Retreiving Copy Number from Step   (michel maire - 16 Feb, 2011)
None accumulate value at event level  by ychen <ychen>,   14 Feb, 2011
HI, I am using mesh to accumulate energy deposit. Is there a way to not accumulate value at Run level but only at Event level? for example, after /run/beamOn 5 there will be 5 individuel files for the mesh.

Thanks!

1 None: Re: accumulate value at event level   (CHEN YONG - 14 Feb, 2011)
(_ None: Re: accumulate value at event level   (Tsukasa Aso - 14 Feb, 2011)
(_ None: Re: accumulate value at event level   (Tsukasa Aso - 14 Feb, 2011)
None How to score surface current for a ellipsoid   by Linxi Shi <Linxi Shi>,   25 Jan, 2011
Hi,

I want to score the surface current for a ellipsoid shell with innerxsemi=innerysemi=6.6cm, innerzsemi= 10.1cm and outtersemi=outterysemi=7cm,outtersemi= 10.5cm.

I have a gun source outside this geometry and I want to record how many photons will be hitten on the outter surface of the ellipsoid shell.

I can simply do this for sphere by using "G4PSSphereSurfaceCurrent" scorer, selecting direction as 'fCurrent_Out'. I was trying to modify "IsSelectedSurface()" function of "G4PSSphereSurfaceCurrent.cc" by changing the the sphere related parameter to elliptical parameter:

Original Sphere code:
    G4double kCarTolerance = G4GeometryTolerance::GetInstance()->GetSurfaceTolerance();
    G4double localR2 = localpos2.x()*localpos2.x()
                      +localpos2.y()*localpos2.y()
                      +localpos2.z()*localpos2.z();
    G4double InsideRadius = sphereSolid->GetInsideRadius();
    if ( localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
	 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
      return fCurrent_Out;

And since sllipsoid funtion is (x/xsemi)^2+(y/xysemi)^2+(z/zsemi)^2=1,
What I changed is: 
     G4double localR2 = localpos2.x()*localpos2.x()/(6.6*6.6)
                       +localpos2.y()*localpos2.y()/(6.6*6.6)
                       +localpos2.z()*localpos2.z()/(10.1*10.1);
     G4double InsideRadius = 1.0;//sphereSolid->GetInsideRadius();
     G4double kCarTolerance = 1E-8;
    if ( localR2 > (InsideRadius-kCarTolerance)*(InsideRadius-kCarTolerance)
	 &&localR2 < (InsideRadius+kCarTolerance)*(InsideRadius+kCarTolerance)){
      Passed = TRUE; 
    }
  }

But it recorded nothing,I'm also confuse with how to track G4GeometryTolerance in ellipsoid shape.

I'll be appreciated if anyone can give me some advices on this

Thanks, Linxi

1 None: Re: How to score surface current for a ellipsoid   (Tsukasa Aso - 28 Jan, 2011)
Question Example N02  by Matthew Gignac <Matthew Gignac>,   17 Nov, 2010
Does example N02 have a way to view the energy of the particles produced in the collision that go through the sensitive detectors?

Cheers, Matthew

1 Ok: Re: Example N02   (Matthew Gignac - 17 Nov, 2010)
Question Cell Charge Scoring Problem  by Ibrahim <Ibrahim>,   11 Nov, 2010
Hi,

I have the following problem with cell charge scoring: X rays are absorbed by Gd2O2S scintillating screen and optical photons are generated. Directly behind Gd2O2S there is pixelated Silicon which is considered as photocathode. I calculate the flux of optical photons in each pixel of silicon and it works well.

Now, Optical photons are absorbed by the pixelated Silicon and electrons are created. I would like to score the charge in each cell (pixel). I run my program but the result is ZERO charge in each pixel. Does anybody know why ?

I highly appreciate your help and cooperation.

Man kind regards

Ibrahym

Question Changing file format   by Ibrahim <Ibrahim>,   03 Nov, 2010
Hi,

I am using parallel volume to score the quantity in which I am interested .i.e. energy deposition. The quantity is saved in a file of .txt format but I would like to save the data in a file of another form such as .raw. What should I do?

Many thanks in advance and I appreciate your help

kind regards

Ibrahym

None Dose Deposit  by Adil MACHMACH <Adil MACHMACH>,   20 Oct, 2010
--20cf300fb3c911c93404930decf9
Content-Type: text/plain; charset=ISO-8859-1

Hello Everyone,
I work on the calculation of neutron dose on Geant4, but I found problems
when I work with Class G4PSDoseDeposit.cc with the use of
filters know that I want to store the dose of neutron and gamma on the
same simulation.
is that I have created for each type of particles a filter?
Thank you for your help.

--20cf300fb3c911c93404930decf9
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable

<div dir=3D"ltr"><div>Hello Everyone,</div><div>I work on the calculation o=
f neutron dose on Geant4, but I found problems when I work with Class G4PSD=
oseDeposit.cc with the use of</div><div>filters know that I want to store t=
he dose of neutron and gamma on the same=A0simulation.</div>
<div>is that I have created for each type of particles a filter?</div><div>=
Thank you for your help.</div>
</div>

--20cf300fb3c911c93404930decf9--

Question CellFlux Socring Problem  by Ibrahim <Ibrahim>,   14 Oct, 2010
Hi everybody,

I am using geant4 for X ray imaging physics purpose. When I irradiate the fluorescence screen Gd2O2S with X Rays, optical photons are created in Gd2O2S and spread into the Silicon where they must be detected.

 Silicon is divided into 2496 x 2304 pixels and the size of each pixel is 50 x 50 um. The program works well and I get the image of the object which I would like to image, but I am still having the following problem: If I want to get an image of high quality I have to irradiate the detector with 200 millions of X rays or 500 millions etc...

I irradiated the detector with only 100 millions of X Rays and the calculation started running on our cluster but after some hours the calculation was blocked and did not continue! Do you know why? by the way. I am scoring the flux per each pixel of the pixelated silicon.
Your cooperation and help is highly appreciated

With many kind regards .



Ibrahym

1 None: Re: CellFlux Socring Problem   (Tsukasa Aso - 14 Oct, 2010)
Question G4BestUnit for solid angle  by Neoh <Neoh>,   08 Aug, 2010
Hi,

When I check G4Unitstable.cc (in geant4.9.3.p01), I see the solid angle unit steradian is in same category as radian, miliradian, and degree.

So when I output a solid angle value with G4BestUnit(solidangle,"Angle") it gives me the value with unit mrad(miliradian) instead of steradian. I mean, aren't solid angle totally different from normal angles? Why put them in the same category?

Neoh

1 None: Re: G4BestUnit for solid angle   (michel maire - 09 Aug, 2010)
Question Scoring energy depositin in the range of eV  by Ibrahim <Ibrahim>,   25 Jun, 2010
Hi everybody,

is it possible to score the energy deposition of optical photons in a given medium. The energy deposition of optical photons is in the range of some eV. For instance, [2eV, 3.5 eV]. I appreciate your cooperation and help.

kind regards

Ibrahym

Question Scoring Parallel World Rotation  by Ibrahim <Ibrahim>,   15 Jun, 2010
 Hi,  

If I rotate the detector with 5°, do I have also to rotate the scoring parallel world, which overlay my detector, with 5°?

I highly appreciate your help

kind regards

Ibrahym

Question Scoring Parallel World Problem2  by Ibrahim <Ibrahim>,   14 Jun, 2010
Hi,

In my first program I used Gd2O2S detector (Gd2O2S scintillator screen) for X-ray Imaging purpose. It works well. I divided Gd2O2S detector into 1024 x 1024 pixels and I irradiated it with a beam of X-ray and I could image any object. For instance, a box made of Al. But in this case of X-ray imaging, I used the direct detection of X-ray (direct X-ray Imaging. That mean no optical photons are generated inside the scintillator are therefore they are not taken into account. My Simulation setup is the following:

Gd2O2S detector whose dimension is: 20.48 x 20.48 x 0.03 cm3 20.48 cm is the width and length of the detector and 0.03 cm it the thickness of the Gd2O2S screen.

Please, have a look on the image1 attached herewith to see the simulation setup. Gd2O2S detector is yellow and the object to be imaged is a blue box.

In this program, I used the scoring parallel word in order to overlay Gd2O2S detector and then collect the energy deposition in each pixel of the detector. This was my first program and it works well!

But now, I would like to detect indirectly the X-ray (idirect X-ray Imaging) which interact with Gd2O2S detector. That mean I have to deal with the optical photons generated in Gd2O2S detector and interact in Silicon. This is my new simulation setup: I have different volumes and they arranged from the top to the bottom in the following way as in the image2:

A box1 made of Aluminum (white box) A box2 made of Air (Blue box) A box3 made of Gd2O2S (yellow box) A box4 made of Silicon (Orange) A box5 made of copper (Cyan) A box6 made of Pb (Green)

Box1, box3, box5 and box6 are just the detector shielding.

Please see the attached image2 to easily visualize this simulation setup. The incident X-ray will interact in the Gd2O2S scintillator and then optical photons will be created. The so generated optical photons will also interact in the Silicon detector.

Now, this is my question:

I divided the silicon detector into pixels and I used scoring parallel word to overlay the silicon detector and collect the energy deposition in each pixel of the silicon detector. But the energy deposition which I got is ZERO in all pixels of Silicon detector! Does anybody know where is the problem?

I highly appreciate your cooperation and help and many thanks in advance.

Kind regards

Ibrahym

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/06/14/04.01-8063-07.14-45654-image1.eps
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/06/14/04.01-96137-07.14-69208-image2.eps

Question Scoring Parallel World Problem2  by Ibrahim <Ibrahim>,   14 Jun, 2010
Hi,

In my first program I used Gd2O2S detector (Gd2O2S scintillator screen) for X-ray Imaging purpose. It works well. I divided Gd2O2S detector into 1024 x 1024 pixels and I irradiated it with a beam of X-ray and I could image any object. For instance, a box made of Al. But in this case of X-ray imaging, I used the direct detection of X-ray (direct X-ray Imaging. That mean no optical photons are generated inside the scintillator are therefore they are not taken into account. My Simulation setup is the following:

Gd2O2S detector whose dimension is: 20.48 x 20.48 x 0.03 cm3 20.48 cm is the width and length of the detector and 0.03 cm it the thickness of the Gd2O2S screen.

Please, have a look on the image1 attached herewith to see the simulation setup. Gd2O2S detector is yellow and the object to be imaged is a blue box.

In this program, I used the scoring parallel word in order to overlay Gd2O2S detector and then collect the energy deposition in each pixel of the detector. This was my first program and it works well!

But now, I would like to detect indirectly the X-ray (idirect X-ray Imaging) which interact with Gd2O2S detector. That mean I have to deal with the optical photons generated in Gd2O2S detector and interact in Silicon. This is my new simulation setup: I have different volumes and they arranged from the top to the bottom in the following way as in the image2:

A box1 made of Aluminum (white box) A box2 made of Air (Blue box) A box3 made of Gd2O2S (yellow box) A box4 made of Silicon (Orange) A box5 made of copper (Cyan) A box6 made of Pb (Green)

Box1, box3, box5 and box6 are just the detector shielding.

Please see the attached image2 to easily visualize this simulation setup. The incident X-ray will interact in the Gd2O2S scintillator and then optical photons will be created. The so generated optical photons will also interact in the Silicon detector.

Now, this is my question:

I divided the silicon detector into pixels and I used scoring parallel word to overlay the silicon detector and collect the energy deposition in each pixel of the silicon detector. But the energy deposition which I got is ZERO in all pixels of Silicon detector! Does anybody know where is the problem?

I highly appreciate your cooperation and help and many thanks in advance.

Kind regards

Ibrahym

None Scoring Parallel World Problem2  by Ibrahim <Ibrahim>,   10 Jun, 2010
Hi,

In my first program I used Gd2O2S detector (Gd2O2S scintillator screen) for X-ray Imaging purpose. It works well. I divided Gd2O2S detector into 1024 x 1024 pixels and I irradiated it with a beam of X-ray and I could image any object. For instance, a box made of Al. But in this case of X-ray imaging, I used the direct detection of X-ray (direct X-ray Imaging. That mean no optical photons are generated inside the scintillator are therefore they are not taken into account. My Simulation setup is the following:

Gd2O2S detector whose dimension is: 20.48 x 20.48 x 0.03 cm3 20.48 cm is the width and length of the detector and 0.03 cm it the thickness of the Gd2O2S screen.

Please, have a look on the image1 attached herewith to see the simulation setup. Gd2O2S detector is yellow and the object to be imaged is a blue box.

In this program, I used the scoring parallel word in order to overlay Gd2O2S detector and then collect the energy deposition in each pixel of the detector. This was my first program and it works well!

But now, I would like to detect indirectly the X-ray (idirect X-ray Imaging) which interact with Gd2O2S detector. That mean I have to deal with the optical photons generated in Gd2O2S detector and interact in Silicon. This is my new simulation setup: I have different volumes and they arranged from the top to the bottom in the following way as in the image2:

A box1 made of Aluminum (white box) A box2 made of Air (Blue box) A box3 made of Gd2O2S (yellow box) A box4 made of Silicon (Orange) A box5 made of copper (Cyan) A box6 made of Pb (Green)

Box1, box3, box5 and box6 are just the detector shielding.

Please see the attached image2 to easily visualize this simulation setup. The incident X-ray will interact in the Gd2O2S scintillator and then optical photons will be created. The so generated optical photons will also interact in the Silicon detector.

Now, this is my question:

I divided the silicon detector into pixels and I used scoring parallel word to overlay the silicon detector and collect the energy deposition in each pixel of the silicon detector. But the energy deposition which I got is ZERO in all pixels of Silicon detector! Does anybody know where is the problem?

I highly appreciate your cooperation and help and many thanks in advance.

Kind regards

Ibrahym

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/06/10/07.14-45654-image1.eps
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/06/10/07.14-69208-image2.eps

1 None: Re: Scoring Parallel World Problem2   (Makoto Asai - 14 Jun, 2010)
(_ Sad: Re: Scoring Parallel World Problem2   (Ibrahim - 09 Jul, 2010)
Question Scoring Parallel World Problem  by Ibrahim <Ibrahim>,   10 Jun, 2010
Hi,

My Gd2O2S detector is divided into pixels. Irradiated with X-ray beam and I would like to calculate the energy deposition in each pixel. To do so, I create a scoring parallel word which overlay Gd2O2S detector, I used interactive mode for better visualization and checking whether the scoring works well or not. In the .mac file I defined my scoring parallel world as in the example RE03. It works well. For example, I can get the energy deposition in each pixel of the Gd2O2S detector and at the of the simulation the Gd2O2S detector is scanned and I can visualize this energy deposition in the detector in color scales. The size of the scoring parallel world in the .mac file matches the size of the detector:

###########################################################################
                     This is my .mac file
###########################################################################

# define scoring mesh
############## boxMesh_1 is just a name you can change it as you want  

/score/create/boxMesh boxMesh_1

############## this is the size of the detector ####################

/score/mesh/boxSize 10.24 10.24 0.02 cm

############# These are the number of pixels ###############

/score/mesh/nBin 1000 1000 1

/score/quantity/energyDeposit eDep

/score/list

/run/beamOn 20000000

# drawing projections

/score/drawProjection boxMesh_1 eDep

# Dump scores to a file

######### Output file contains 4 coloumns: X, Y, Z and energy deposition in that pixel.############## /score/dumpQuantityToFile boxMesh_1 eDep eDep.txt ###########################################################################

But the problem when I change the size of my Gd2O2S detector, I also change the size of the scoring parallel world in order to match the size of Gd2O2S detector. In this case it does not work well I cannot visualize the energy deposition in Gd2O2S detector and the detector is not scanned. Does anybody know where is the problem? For example, instead of

/score/mesh/boxSize 10.24 10.24 0.015 cm

I type

/score/mesh/boxSize 10.24 10.24 0.2 cm

In this case it does not work!

Another question: if a rotate my Gd2O2S detector, do I have also to rotate the scoring parallel world?

If I have more many volumes and I want to overly one of them which lies in (0, 0, 5) cm. in this case it is possible to translate the scoring parallel world? The command to do so is:

/score/mesh/translate/xyz 0.0 0.0 5.0 cm

Is it correct?

I highly appreciate your help!

With many kind regards

Ibrahym

Question Scoring Parallel World Problem  by Ibrahim <Ibrahim>,   10 Jun, 2010
Hi,

My Gd2O2S detector is divided into pixels. Irradiated with X-ray beam and I would like to calculate the energy deposition in each pixel. To do so, I create a scoring parallel word which overlay Gd2O2S detector, I used interactive mode for better visualization and checking whether the scoring works well or not. In the .mac file I defined my scoring parallel world as in the example RE03. It works well. For example, I can get the energy deposition in each pixel of the Gd2O2S detector and at the of the simulation the Gd2O2S detector is scanned and I can visualize this energy deposition in the detector in color scales. The size of the scoring parallel world in the .mac file matches the size of the detector:

###########################################################################
                     This is my .mac file
###########################################################################

# define scoring mesh
############## boxMesh_1 is just a name you can change it as you want  

/score/create/boxMesh boxMesh_1

############## this is the size of the detector ####################

/score/mesh/boxSize 10.24 10.24 0.02 cm

############# These are the number of pixels ###############

/score/mesh/nBin 1000 1000 1

/score/quantity/energyDeposit eDep

/score/list

/run/beamOn 20000000

# drawing projections

/score/drawProjection boxMesh_1 eDep

# Dump scores to a file

######### Output file contains 4 coloumns: X, Y, Z and energy deposition in that pixel.############## /score/dumpQuantityToFile boxMesh_1 eDep eDep.txt ###########################################################################

But the problem when I change the size of my Gd2O2S detector, I also change the size of the scoring parallel world in order to match the size of Gd2O2S detector. In this case it does not work well I cannot visualize the energy deposition in Gd2O2S detector and the detector is not scanned. Does anybody know where is the problem? For example, instead of

/score/mesh/boxSize 10.24 10.24 0.015 cm

I type

/score/mesh/boxSize 10.24 10.24 0.2 cm

In this case it does not work!

Another question: if a rotate my Gd2O2S detector, do I have also to rotate the scoring parallel world?

If I have more many volumes and I want to overly one of them which lies in (0, 0, 5) cm. in this case it is possible to translate the scoring parallel world? The command to do so is:

/score/mesh/translate/xyz 0.0 0.0 5.0 cm

Is it correct?

I highly appreciate your help!

With many kind regards

Ibrahym

None Recording species, location, energy, and angular distribution  by Peter Mardahl <Peter Mardahl>,   28 May, 2010
Sirs,

  I would like to write a scorer, either within GEANT4 or as a postprocessor, to record a detailed spectrum of particles passing through a plane.

  Postprocessing might be easiest, I'd just need to write out, for every particle that hits the plane,

species, weight, x, y, z, Vx, Vy, Vz (one of x, y, or z would be constant perhaps)

I could then postprocess this data into a 2D (in space) 3V histogram.

  However, it is probably more efficient to program this into GEANT4 and just write out the histogram I want instead of postprocessing a huge amount of data.

  Has anyone a suggestion about how best to accomplish this?

Thank you,

--PeterM

1 None: Re: Recording species, location, energy, and angular distribution   (Ibrahim - 29 May, 2010)
(_ None: Re: Recording species, location, energy, and angular distribution   (Peter Mardahl - 01 Jun, 2010)
(_ None: Re: Recording species, location, energy, and angular distribution   (michel maire - 01 Jun, 2010)
(_ None: Re: Recording species, location, energy, and angular distribution   (Peter Mardahl - 01 Jun, 2010)
(_ None: Re: Recording species, location, energy, and angular distribution   (Peter Mardahl - 15 Jun, 2010)
Question How score Kinetic Energy?  by lu luo <lu luo>,   03 May, 2010
Hello,

I'm a beginner with GEANT4, i would like to record the energy of gamma particles passing through a volume(water for instance) using Scoring functionality. But, i'm still not able to do it correctly. I constructed a Lead wall(or Fermion, material with a very high Z) behind the volume in oder to stop all gamma particles, and i scored the energy deposed in this material. But i know GEANT4 provides more simple method to record the total energy(kinetic energy of gamma) arriving in each pixel of my detector(or Mesh Box).

Can someone help me please, thanks in advance!

L.LUO

1 None: Re: How score Kinetic Energy?   (Ibrahim - 04 May, 2010)
1 Question: Re: How score Kinetic Energy?   (lu luo - 04 May, 2010)
2 None: Re: How score Kinetic Energy?   (Tsukasa Aso - 05 May, 2010)
1 Sad: Re: How score Kinetic Energy?   (lu luo - 06 May, 2010)
(_ Ok: Re: How score Kinetic Energy?   (lu luo - 07 May, 2010)
3 Question: Re: How score Kinetic Energy?   (Mahdi - 05 May, 2014)
1 None: Re: How score Kinetic Energy?   (michel maire - 07 May, 2014)
2 None: Re: How score Kinetic Energy?   (Tsukasa Aso - 11 May, 2014)
4 None: Re: How score Kinetic Energy?   (Mahdi - 08 May, 2014)
1 None: Re: How score Kinetic Energy?   (michel maire - 08 May, 2014)
5 None: Re: How score Kinetic Energy?   (Mahdi - 08 May, 2014)
6 None: Re: How score Kinetic Energy?   (Mahdi - 08 May, 2014)
Question nOfSecondary Weighting  by <Dr_Cards>,   02 May, 2010
Hello,

I am attempting to calculate the neutron energy spectra resulting from high energy alpha particles colliding with a lead target. I am using the scoring user commands:

/score/quantity noOfSecondary /score/filter/particlewithenergy neutron Emin Emax

for the energies I am interested in.

I understand a particle "weight" is applied to the noOfSecondary command.

Can someone please explain to me what the particle weighting factor is and how I can correct for it to give me the actual unweighted energy spectra of the neutrons.

Thanks in Advance

Kind Regards

Michael

1 None: Re: nOfSecondary Weighting   (Tsukasa Aso - 03 May, 2010)
(_ Question: please tell me what i am doing wrong for neutron flux in medical linac example   (Amjid Mahmood - 23 Jun, 2015)
Question Can G4PVReplica be used in constructing detector cells in Parallelworld?  by Colin Huang <Colin Huang>,   12 Apr, 2010
Please help me with this problem

I am trying to construct 3D detector voxels in parallelworld to score the energy deposited in each voxel. However, no energy deposition was recorded in any of these voxels.

I have referred to example RE02. The voxels in RE02DetectorConstruction were moved to the parallel world in my application. Instead of using nested parameterisation, I have used Replica in all three directions (X, Y, and Z). I have modified the PhysicsList and registered the ParallelWorld.

My scorer for energy deposition is defined the same as RE02PSEnergyDeposit, but nothing was scored in RunAction. ( No deposited energy was got from G4double* totED = (*totEdep)[CopyNo(ix,iy,iz)];)

Then for debug, I constructed a new PSEnergyDeposit class by directly modifying the G4PSEnergyDeposit class and adding the modified function GetIndex() as in RE02PSEnergyDeposit to it. So basically, This new class should be functioning the same as the RE02PSEnergyDeposit class. Then I added G4cout lines in ProcessHits() and GetIndex(), and I found that the program is not invoking the ProcessHits() or the GetIndex() functions defined in my new class (No G4cout output to the screen).

So I don't know what is the problem. Can the G4PVReplica class be used together with parallelworld to constructs 3D sensitive detectors? Any suggestion is appreciated.

Thanks in advance.

Colin

1 None: Re: Can G4PVReplica be used in constructing detector cells in Parallelworld?   (Seb Galer - 22 Apr, 2010)
Question How to G4MultiFunctionalDetector together with Multi-layer Readout Geometry?  by Colin Huang <Colin Huang>,   27 Mar, 2010
Hi there,

I have never used readout geometry before.

I was trying to construct a multi-layer Readout Geometry and using G4MultiFunctionalDetector to collect the energy deposited in each layer. I have done these in tracking geometry before by dividing the target into layers and set sensitivity for each layer with G4MultiFunctionalDetector.

Since the tracking geometry becomes irregular, I want to use readout geometry. But after dividing Readout geometry into layers, I don't know how to set sensitivity for each layer and implement G4MultiFunctionalDetector to collect the energy deposited in this layer. I refered to N04.

Any suggestion are appreciated. Thanks.

Colin

1 None: Re: How to G4MultiFunctionalDetector together with Multi-layer Readout Geometry?   (Tsukasa Aso - 28 Mar, 2010)
Question help on user specific primitive scorer  by Zhaowen Tang <Zhaowen Tang>,   27 Mar, 2010
Hi i am trying to create my own primitive scorer that is very similar to G4PSNofStep, but i am trying to only select the primary particle and possibly making it process dependent too. I was wondering if there is any literature on how to make an user specific primitive scorer, and also where should the code be compiled to. Thank you for the help in advance! -Zhaowen Tang

None cylindrical scrorer  by michel maire <michel maire>,   08 Mar, 2010
 In the attached code, concentric rings are built by replication. They are registered as cellFlux scorers.
 One shoots randomly a geantino perpendicular to the input surface, eg. parallel to z axis. I would expect the scorer response to be 1/dS, dS being the surface of corresponding ring.
 Output (run1.log) shows that it is not always the case. Do I miss something ?

   Cheers,  Michel

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/03/08/08.41-19094-tectorConstruction.cc.txt
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/03/08/08.42-68263-run1.log.txt
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2010/03/08/08.47-85280-run1.mac.txt

1 None: Re: cylindrical scrorer   (Tsukasa Aso - 12 Mar, 2010)
(_ None: Re: cylindrical scrorer   (michel maire - 16 Mar, 2010)
Question Recording energies of gammas passing through a volume  by Ben Ryan <Ben Ryan>,   28 Jan, 2010
Hi,

I am running a simulation in which I want to record the individual energies of gamma rays that pass through a volume where a detector would be (so that I can run my own calibration curves on that data for different detectors). I set up a thin G4Tubs with G4PSPassageCellCurrent but was only able to record the number of gammas that pass through it, and haven't been able to find another more suitable primitive scorer. I have heard rumors that what I want can be accomplished by recording the particle's energy with a sensitive detector class that records a hit whenever a particle crosses into the G4Tubs volume but I am unsure of how to do this. Could anyone point me in the right direction? Sorry for asking if this question has been answered in one of the obvious places but if it has I have not been able to find it.

Thanks in advance,

BR

1 None: Re: Recording energies of gammas passing through a volume   (Tsukasa Aso - 28 Jan, 2010)
Question G4PSDoseDeposit and G4PSEnergyDeposit classes  by Nesin Menduev <Nesin Menduev>,   21 Jan, 2010
Hi , I kindly request comment about , when we use scoring and G4PSDoseDeposit and PSenergyDeposit and when we dump information about dose and energy deposit for a specified mesh region into file , what are the units for these both written data. Only numbers are written to file.I am a beginner of Geant4 so lock of experience.But I am understanding that there is inconsistency because when data for energy deposit in x y mesh is 52.xxx ( probably it is MeV) then data for dose deposited is 2.3e-26 ( this is crazy value , if we think that dose dep= energy/kg ). So if energy dep, is 52 and dose dep. is 2.3e-26 then incredible amount of mass is there .But Not.So I need anybody just to tell me from his/her experience what a unit is given for dose deposit IN GEANT4 ( i know in general it is MeV/kg, but here it seem not to be so )

Regards,

1 None: RE: G4PSDoseDeposit and G4PSEnergyDeposit classes   (Asai, Makoto - 21 Jan, 2010)
(_ More: Re: RE: G4PSDoseDeposit and G4PSEnergyDeposit classes   (Nesin Menduev - 22 Jan, 2010)
1 None: RE: RE: G4PSDoseDeposit and G4PSEnergyDeposit classes   (Asai, Makoto - 22 Jan, 2010)
2 Question: Re: RE: G4PSDoseDeposit and G4PSEnergyDeposit classes   (Oscar García - 01 Feb, 2011)
1 Question: Re: RE: G4PSDoseDeposit and G4PSEnergyDeposit classes   (Oscar García - 01 Feb, 2011)
Question possible problem with my energy deposits  by Alex Leatherland <Alex Leatherland>,   14 Jan, 2010
I'm simulating the passage of protons through a spacecraft using what I've believe is the standard electromagnetic physics lists. The issue that is coming up is that too many my energy deposits are identical. More than half of the outputted total energy deposits from my sensitive detector come out as 1.00000000 MeV, despite inputting a spectra that varies the initial particle energy in terms of keV.

Which areas of my code should I be looking at to fix this?

Question Accumulate quantity in scoring mesh over multiple runs?  by Dr. Iwan Cornelius <Dr. Iwan Cornelius>,   07 Jan, 2010
Hi Guys!

I'm setting up a scoring mesh using the scoring manager and dumping the quantity to file at the end of the run. Everything is working well so far.

One question, are the contents of the scoring mesh reset at the start of a new run, or is it possible to accumulate the contents of the scoring mesh over multiple runs?

Basically I would like to do something like:

set up scoring mesh

set geometry and primary beam... run number of particles

change geometry and primary beam... run number of particles

change geometry and primary beam... run number of particles

etc etc

dump scoring mesh to file with accumulated dose grid

Thanks in advance. Iwan

1 None: Re: Accumulate quantity in scoring mesh over multiple runs?   (Tsukasa Aso - 07 Jan, 2010)
(_ Feedback: Re: Accumulate quantity in scoring mesh over multiple runs?   (Dr. Iwan Cornelius - 07 Jan, 2010)
(_ None: Re: Accumulate quantity in scoring mesh over multiple runs?   (Tsukasa Aso - 07 Jan, 2010)
Question 2-dimensional scoring only working in one dimension  by Matt Worden <Matt Worden>,   02 Jan, 2010
I am using a grid of 100 physical boxes in the y-z plane. I am using a MultiFunctionalDetector and G4PSPassageCellCurrent for the scorer.

If I shoot a geantino through different boxes along the y axis the scorer reports the detector. If I change the box that the particle goes through on the z axis, my map only reports a hit on the y axis reflection of the z axis box.

Any thoughts?

1 None: Re: 2-dimensional scoring only working in one dimension   (Tsukasa Aso - 03 Jan, 2010)
Question particleWithKineticEnergy filter for scoring (command lines based)   by Cristian Bungau <Cristian Bungau>,   10 Dec, 2009
Hi,

I am trying to count the number of certain particles in my detector that have energies in certain intervals, so the obvious choice was to use several scorers (population) and different particleWithKineticEnergy filters associated to each scorer.

However if the same particle looses energy, I want to make sure it is counted by every scorer with associated filter (if accepted by the associated filter of course). In other words I want to make sure that the same particle can be counted more than once if its energy is in more than one range of interest.

I am creating a score mesh (only one) and then several scorers each with associated filters and then I run /score/close at the end, only once.

However my first tests seem to indicate that once the particle has been counted, it will not be counted again by the additional scorers even if its energy decreases and falls into new energy intervals used in the additional filters.

I would be very grateful if you could please let me know how I could achieve this. Do I need more scoring meshes, each with one scorer and filter?

Thank you,

Cristian

1 None: Re: particleWithKineticEnergy filter for scoring (command lines based)   (Tsukasa Aso - 11 Dec, 2009)
(_ Ok: Re: particleWithKineticEnergy filter for scoring (command lines based)   (Cristian Bungau - 11 Dec, 2009)
Question adding an ion to the particle filter in G4SDParticleFilter::add()  by Cristian Bungau <Cristian Bungau>,   30 Nov, 2009
Hi,

I would like to count the number of ions in a particular region of the detector, and I am trying to use the available scoring methods.

Now, in G4SDParticleFilter, there is this condition:

   G4ParticleDefinition* pd = G4ParticleTable::GetParticleTable()->FindParticle(particleNames[i]);
   if(!pd)
   {
     G4String msg = "Particle <";
     msg += particleNames[i];
     msg += "> not found.";
     G4Exception("G4SDParticleFilter::G4SDParticleFilter()",
                "DetUtil0000",FatalException,msg);
   }

and obviously a "particle" name like Th232[0.0] will result in an error message.

Could you please let me know what would be the best way of counting ions/isotopes? Would it be to write a new G4SDIonFilter class?

Thank you,

Cristian

1 None: Re: adding an ion to the particle filter in G4SDParticleFilter::add()   (Tsukasa Aso - 11 Dec, 2009)
(_ Ok: Re: adding an ion to the particle filter in G4SDParticleFilter::add()   (Cristian Bungau - 11 Dec, 2009)
Question Peaks in PhotoPeak Efficiency  by KUKI <KUKI>,   26 Oct, 2009
I have recently started work in geant4. I am trying to calculate the efficiency of the NaI detector and HPGe detector.

I have defined the detector geometry, a simple cylinder. The total Efficiency has a normal decreasing trend with increasing gamma energy. However,Photo peak efficiency with gamma ray energy has certain peaks at about 1 MeV, 2 MeV, 4 Mev and 8 MeV from 0.5 to 10 MeV gamma energy range. This behavior is independent of detector's material. I am unable to sort the problem out. I would be grateful if you could help me in this regard. Following are the relevant portions of the code.

void SteppingAction::UserSteppingAction(const G4Step* aStep)
{
        G4StepPoint* prePoint = aStep->GetPreStepPoint();
 
 {
 const G4VPhysicalVolume* logvol = aStep->GetPreStepPoint()->GetTouchableHandle()->GetVolume();
 if (logvol==detector->GetphysiAbsorber())
  {
  G4double EdepStep = aStep->GetTotalEnergyDeposit();
 
  if (EdepStep > 0.)
 
  evtAct -> AddEdeposit(EdepStep);
  }
 }
 
}

void EventAction::EndOfEventAction(const G4Event* evt)
{
 
        if (Edeposit > 0.)
 {
 myRunAction -> TotalCounts(Edeposit);
 }
 ......
 ......
}

void RunAction::TotalCounts(G4double Ed)
{
 G4ParticleDefinition* particle =
                            primary->GetParticleGun()->GetParticleDefinition();
 Particle = particle->GetParticleName();   
 energy = primary->GetParticleGun()->GetParticleEnergy();
 Total ++;
 if (Ed==energy){
 pphoton++;
 }
}

void RunAction::EndOfRunAction(const G4Run* aRun)
{
        G4double PhotonEffic = pphoton/NbOfEvents;

 G4double TotalEffic = Total/NbOfEvents;
}


looking forward
best regards
 
Kuki
Question More than one detector  by Matt Worden <Matt Worden>,   18 Sep, 2009
Hello, I have constructed a block with many parrallel channels. I have one detector at the end catching particles coming down all the channels. I would like to have a separate detector at the end of each channel so I can tell which channel each particle went down. Does anyone have any suggestions. I am not sure if I should put a different detector and manager at the end of each channel, or if I should use one and report which area of the detector the hits happen.

Any advise or suggestions are welcome

Thanks for your time

Question ElectronNuclearProcess Biasing   by wangym <wangym>,   11 Aug, 2009
Hi, In my physicslist,I write as follow, G4ElectronNuclearProcess* theElectronNuclearProcess; G4ElectroNuclearReaction* theElectroReaction; theElectronNuclearProcess = new G4ElectronNuclearProcess; theElectroReaction = new G4ElectroNuclearReaction; theElectronNuclearProcess->RegisterMe(theElectroReaction); theElectronNuclearProcess->BiasCrossSectionByFactor(100); pmanager->AddDiscreteProcess(theElectronNuclearProcess);

so, My weight is 1/100, How many second protons producedHif a second proton produced, I multiply 1/100. then I plus them. But in your PPT, see Attach files ,the weight is not 1/100. Am I rightH

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/08/11/06.52-73537-E._biasing.hadronics.pdf

None Get Size of the Mesh RE03 and RE02 error compilation  by Olivier Dadoun <Olivier Dadoun>,   30 Jun, 2009
Hello,

I am playing with RE03 example to see how I can use the Scoring. I have a simple question: how can I retrieve the size of the mesh from the RE03UserScoreWriter class ?

by advance thank you Olivier

1 None: Re: Get Size of the Mesh RE03 and RE02 error compilation   (Akinori Kimura - 06 Jul, 2009)
Question why there are no entries in my G4HCofThisEvent ?   by <xfgu@ihep.ac.cn>,   13 May, 2009
I want use Sensitive Detector,Hit and Hits Collection to calculate energy deposit, but it doesn't work. There is no any entry in my G4HCofThisEvent.

And I have spent about one week to check and compares with other programs, just want to find whether there is a mistake in my program, but I didn't find.

Any answer will be helpful, thank you so much.

There must be somebody can take me away from this trouble.

I appreciate your help.

I have changed *.hh to *.h

   Attachment:
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-45513-EnDepMainTest.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-98391-epDetectorConstruction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-81116-EnDepEventAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-4194-EnDepHit.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-31459-EnDepPhysicsList.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-1854-PrimaryGeneratorAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-1804-EnDepRunAciton.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-58170-EnDepSD.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-94045-EnDepSteppingAction.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.26-59783-EnDepSteppingVerbose.cc
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.27-3956-DepDetectorConstruction.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-56108-EnDepHit.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-15281-EnDepEventAction.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-39497-EnDepPhysicsList.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-48130-pPrimaryGeneratorAction.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-21319-EnDepRunAction.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-11115-EnDepSD.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-34763-EnDepSteppingAction.h
      http://hypernews.slac.stanford.edu/HyperNews/geant4/get/AUX/2009/05/13/08.29-74816-EnDepSteppingVerbose.h

1 Note: Re: why there are no entries in my G4HCofThisEvent ?   (xfgu@ihep.ac.cn - 13 May, 2009)
Question GDML Scoring through G4MultiFunctionalDetector and Primitive Scorers ?  by Victor Gabriel <Victor Gabriel>,   24 Feb, 2009
Hello Everybody,

I've already installed Geant4.9.2 by CLHEP 2.0.4.2, GDML with Xerces 2.8.0, and AIDA on Ubuntu 8.10.

I've been modifying auxiliary.gdml example file within G01 example. The auxiliary information of geometry isn't coded in C++, so I couldn't get my logical volumes to assign with the primitive scorers (G4PSDoseScorer).

Where Will I need to modify DetectorConstruction.hh ?

Best regards,

Victor Gabriel

 Add Message Add Message
to: "Biasing and Scoring"

This site runs SLAC HyperNews version 1.11-slac-98, derived from the original HyperNews