Physics Lists Design.

Slides:



Advertisements
Similar presentations
Construction process lasts until coding and testing is completed consists of design and implementation reasons for this phase –analysis model is not sufficiently.
Advertisements

Ministère de la Recherche,
Spring Semester 2013 Lecture 5
Automate Integrate Innovate fenyaAST : Asset Tracking Made Easy.
Composition CMSC 202. Code Reuse Effective software development relies on reusing existing code. Code reuse must be more than just copying code and changing.
Computer Monitoring System for EE Faculty By Yaroslav Ross And Denis Zakrevsky Supervisor: Viktor Kulikov.
Polymorphism From now on we will use g++!. Example (revisited) Goal: Graphics package Handle drawing of different shapes Maintain list of shapes.
Factory Design Pattern, cont’d COMP 401 Fall 2014 Lecture 13 10/2/2014.
13-Jul-15 Refactoring II. Books Design Patterns is the classic book by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides Basically a catalog.
1)Never start coding unless you understand the task! 2)Gather requirements first. This means identify the problem and ask questions about it. Now you kind.
A Short Guide to Choosing a Physics List Geant4 Tutorial at Marshall Space Flight Center 19 April 2012 Dennis Wright (SLAC) Geant4 9.5.
The Design Discipline.
REFACTORING Lecture 4. Definition Refactoring is a process of changing the internal structure of the program, not affecting its external behavior and.
Chapter 8: Writing Graphical User Interfaces
Copyright © 2014 by John Wiley & Sons. All rights reserved.1 Chapter 9 - Inheritance.
Geant4 Electromagnetic Physics Introduction V.Ivanchenko, M.Maire, M.Verderi  Process interface  Physics categories  Electromagnetic physics  PhysicsList.
Physics I: Physics Lists Geant4 Tutorial at Jefferson Lab 10 July 2012 Dennis Wright (SLAC) Geant4 9.6 beta.
Hadronic Physics Lists Gunter Folger CERN PH/SFT Geant4 workshop 26-Sep /09/2013 Hadronic Physics Lists1.
Java Event Handling CSIS 3701: Advanced Object Oriented Programming.
Systems Analysis and Design in a Changing World, 3rd Edition
Dependency Injection Technion – Institute of Technology Author: Gal Lalouche - Technion 2015 ©
Hadronic schower models in geant4 The frameworks J.P. Wellisch, CERN/EP, CHEP J.P. Wellisch, CERN/EP, CHEP 2000.
1 Physics I: Physics Lists Paris Geant4 Tutorial 4 June 2007 Marc Verderi Laboratoire Leprince-Ringuet (Heavily copied from D. Wright) Geant4 V8.3.
Chapter 12 1 TOPIC 13B l Buttons and Action Listeners Window Interfaces Using Swing Objects.
CSCI-383 Object-Oriented Programming & Design Lecture 18.
Design Patterns -- Omkar. Introduction  When do we use design patterns  Uses of design patterns  Classification of design patterns  Creational design.
Database Design – Lecture 4 Conceptual Data Modeling.
Class Builder Tutorial Presented By- Amit Singh & Sylendra Prasad.
Chapter 4 Grouping Objects. Flexible Sized Collections  When writing a program, we often need to be able to group objects into collections  It is typical.
Physics I: Physics Lists Puebla Geant4 Tutorial 15 June 2010 Dennis Wright Geant4 V9.3.p01.
Experience with XML Schema Ashok Malhotra Schema Usage  Mapping XML Schema and XML documents controlled by the Schema to object classes and instances.
Recap Introduction to Inheritance Inheritance in C++ IS-A Relationship Polymorphism in Inheritance Classes in Inheritance Visibility Rules Constructor.
Chapter 10 - Writing Graphical User Interfaces1 Chapter 10 Writing Graphical User Interfaces.
Software Maintenance1 Software Maintenance.
1 DemoBasic_v3, DemoBasic_v4 JButton JLabel. 2 Registering an ActionListener Register by invoking the following from within constructor DemoBasicFrame.
Chapter 8: Understanding Collections Textbook: Chapter 4.
E. Mendoza, D.Cano-Ott Nuclear Innovation Unit (CIEMAT)
Translation Lookaside Buffer
Unit 3 Selecting the physics configuration in the simulation
Lecture 8 D&D Chapter 9 Inheritance Date.
Sections Inheritance and Abstract Classes
Electromagnetic and hadronic physics in Geant4
Oracle Application Express (APEX)
A First Look at GUI Applications Radio Buttons and Check Boxes
Delegates and Events 14: Delegates and Events
ECE 551: Digital System Design & Synthesis
Status of CHIPS cross sections and migration of the physics lists
Object-Oriented Programming & Design Lecture 18 Martin van Bommel
Object-Oriented Programming
Inheritance & Polymorphism
UNIT - V STORED PROCEDURE.
Chap 7. Building Java Graphical User Interfaces
Winter 2018 CMPE212 9/21/2018 CMPE212 – Stuff…
Database Management System
Multiuser Protection and the Mediator Pattern
CSCI 1260 – Lecture 2: Instantiation, Aggregation, and Composition
FenyaAST : Asset Tracking Made Easy
Physics I: Physics Lists
Exceptions 2 CMSC 202.
ACT English:.
This presentation document has been prepared by Vault Intelligence Limited (“Vault") and is intended for off line demonstration, presentation and educational.
The Hadrontherapy Geant4 advanced example
Computational Urban Modelling and Simulation
Overview of C++ Polymorphism
Makoto Asai (SLAC) Geant4 Users CERN Nov. 13th, 2002
Introduction to One View Service Center (OVSC)
The while Looping Structure
Static Binding Static binding chooses the function in the class of the base class pointer, ignoring any versions in the class of the object actually.
Presentation transcript:

Physics Lists Design

Design choices, my personal opinion Readability Maintainability try a new option in a new PL variant Model Cross section Consistency checks Have all physics, no duplicates Performance less important

G4VModularPhysicsList Physics list needs to implement using public: // with description // This method will be invoked in the Construct() method. // each particle type will be instantiated virtual void ConstructParticle(); // each physics process will be instantiated and // registered to the process manager of each particle type virtual void ConstructProcess(); void RegisterPhysics(G4VPhysicsConstructor* ); // Replace Physics Constructor // The existing physics constructor with same physics_type as one of // the given physics constructor is replaced // (existing physics will be deleted) // If any corresponding physics constructor is found, // the given physics constructor is just added void ReplacePhysics(G4VPhysicsConstructor* );

Hierarchy in constrcuting Physics list Example FTFP_BERT Checks user environment for needed data Constructs physics using  Physics Constructors HadronPhysicsFTFP_BERT, G4EmStandardPhysics, ….  Physics Builders now only for hadron inelastic

An example: HadronPhysicsFTFP_BERT ConstructProcess: G4NeutronBuilder has processes for Neutron CreateModels() registers (G4VNeutronBuilder) ‘models’ to G4NeutronBuilder G4FTFPNeutronBuilder G4BertiniNeutronBuilder G4LEPNeutronBuilder ( using capture & fission) G4NeutronBuilder::Build() calls Build() for all ‘models’ and physics (elastic,inelastic, capture, fission) and then registers the process with the particle G4LEPNeutronBuilder::Build(G4Hadron”physics” Process) HadronPhysicsFTFP_BERT(G4int verbose =1); HadronPhysicsFTFP_BERT(const G4String& name, G4bool quasiElastic=false); virtual ~HadronPhysicsFTFP_BERT(); public: virtual void ConstructParticle(); virtual void ConstructProcess(); private: void CreateModels(); CreateModels(); (G4NeutronBuilder*) theNeutrons->Build(); thePro->Build(); … //may add cross section data sets

Strong & weak points Is strongly typed strong typing in part forces to repeat similar code Some checks on completeness of a physics list Keeps types of physics in one class per particle Forces to implement all physics components This contributes to code repetition as well. Cross sections not handled consistently Cross section added in builder for a model Could be or partially is done in Physics Constructor But HP cross sections are model cross sections, valid over the energy of the model