160 likes | 231 Views
Physics list update. CERN 31/3 -04 Rikard Sandström Geneva University. Purpose. Make sure all relevant particles are simulated. Make sure all relevant processes to these particles are simulated. Use the correct energy scale for our purposes.
E N D
Physics list update CERN 31/3 -04 Rikard Sandström Geneva University
Purpose • Make sure all relevant particles are simulated. • Make sure all relevant processes to these particles are simulated. • Use the correct energy scale for our purposes. • Optimize performance -> Not simulate particles and processes that does not improve results but still uses computing resources.
Structure of PhysicsList.cc • First the “old” code, treating in turn • gamma • e- • e+ • mu+ • mu- • Then mesons • pi+ • pi- • Next baryons • proton • antiproton • Neutron • Last ions
Lepton & gamma processes • Lepton and gamma processes left as is, to most extent • Changes in muon decay • For optical photons, tried to add • G4Cerenkov • G4Scintillation • G4OpAbsorption • G4OpRayleigh • G4OpBoundaryProcess as is done in Geant4 examples but failed.
Meson processes • For all mesons • Decay • Ionisation (if charged) • For pi+ and pi- • Multiple scattering • Elastic processes • Low E inelastic processes
Hadronic processes • For all hadrons • Decay (if unstable) • Ionisation (if charged) • For proton, antiproton • Multiple scattering • Elastic processes • Low E inelastic processes • (no annihilation for antiproton) • For neutron • Elastic processes • Low E inelastic processes • Neutron capture
Ionic processes • Treating all ions and atoms as generic ions • Decay (if unstable) • Ionisation (if charged)
MICEStepStatistics • In order to make an inventory of processes and particles a class was created that handles the information at each step for a track. • It keeps track of • To what type of particle does this track belong? • What process is this particular step? • This gives an array of step statistics, written to file “StepStat.out”. • The statistitics collection is activated by the dataCard parameter • StepStatisticsOutput 1 (default unactivated)
1. Ionisaton, e- (843.4) 2. Ionisaton, mu+ (418.5) 3. Transportation, mu+ (236.6) 4. Transportation, gamma (10.42) 5. MSC, e- (6.154) 6. Transportation, e- (5.599) 7. Ionisation, e+ (5.476) 8. Ionisation, proton (1.604) 9. Photoelectric effect, gamma (1.093) 10. Bremsstrahlung, e- (0.9616) 11. Transportation, e+ (0.8046) 12. Compton scattering, gamma (0.5706) 13. Bremsstahlung, e+ (0.3177) 14. MSC, e+ (0.1036) 15. Transportation, nu_e (0.1544) 16. Transportation, anti nu_mu (0.1554) 17. Ionisation, pi+ (0.154) 18. Ionisation, K+ (0.08336) 19. Annihilatioin, e+ (0.07114) 20. E-pair conversion, gamma (0.05019) Top 20 particles and processes (TPG detOnly:)
Cuts • Support added for cuts per G4Region • I suggest this kind of code in the DetectorConstuctor classes for every object in G4MICE that needs it: // // Regions // // Individual logical volumes are // registered as "root logical volume" so that all daughter volumes in // these logical volumes are also affected by the corresponding regions. // std::vector<G4LogicalVolume*> logVols; logVols.push_back(fLogicGasVolumeTPG); //contains also HV-plane and GEMs // ...add more logical volumes here to the array of logical volumes int size = logVols.size(); for (int i = 0; i < size; i++) { G4Region* aRegion = new G4Region(logVols[i]->GetName()); logVols[i]->SetRegion(aRegion); aRegion->AddRootLogicalVolume(logVols[i]); }
Cuts (cont.) • The cuts per G4Region is then invoked in MICEPhysicsList.cc: if (MyDataCards.fetchValueString("TrackerOption") == "TPG") { // This is the sensitive gas region of the TPG and the volumes inside it. G4Region* reg = G4RegionStore::GetInstance()->GetRegion("lGasVolumeTPG"); G4ProductionCuts* cuts = new G4ProductionCuts; cuts->SetProductionCut(0.5*mm); reg->SetProductionCuts(cuts); } • Parameters in dataCards should be used for setting the cuts in these special regions (here hard coded). • The cuts can be checked with DumpCutValuesTable();
GEANT 4 Interactive commands • /process/list gives list of processes used • /process/dump hIoni lists all particles using this process • /process/inactivate MuIoni inactivate muon ionisation • /process/activate hIoni proton activate ionisation for protons • /particle/list lists all particles used • /particle/select e- selects e- as active particle • /particle/process/dump prints process information for particle • /particle/property/dump prints particle attributes • /run/dumpCouples list all regions with cuts and thresholds • /run/setCut 1 cm set default cut to 1cm • /run/setCutForRegion lGasVolumeTPG 1 set cut to 1mm for TPG gas
Proposals, cuts & thresholds • We set a fairly high default cut value. • Detectors that need lower energy simulation defines regions (as in the example), and PhysicsList reads in the special cut values from dataCards.
Proposals, particles & processes • Keep particles needed to avoid crashes (ions, anti protons) • Keep processes needed to avoid crashes (no ionisation for pi+ causes crash for example) • We set general switches in dataCards to control processes. Now I have as example • HadronScatteringOption (None/All/Meson/Hadron) • HadronIonisationOption (None/All/Meson/Hadron/Ion) • HadronDecayOption None (None/All/Meson/Hadron/Ion) • Detailed process switches can be controlled by macrofiles/interactive commands.
To discuss • What should be controlled by dataCards and what by macrofiles (interactive commands)? • What should the default cut value be? • What interface should be used to turn on/off processes? • What processes should be on by default? • Should we use low energy version of the processes everywhere?
Still to do • Add Cherenkov etc if need be. • Run the tests with cooling channel on. (Still problem with what I think is the reference particle, which also prevents me from examining RF background behaviour.) • Once we can run with cooling channel, look in detail on the interesting processes to verify validity. • Have a closer look on leptons. Will confirm with theory, and fix if necessary. Possibly the process ordering is vital here.