maxim komogorov, alexandre pavliouk, nikolai amelin jinr, lhe – dubna, russia development and...
Post on 21-Jan-2016
216 Views
Preview:
TRANSCRIPT
Maxim Komogorov, Alexandre Pavliouk, Nikolai Amelin
JINR, LHE – Dubna, Russia
DEVELOPMENT AND APPLICATION OF THE NUMERICAL MODEL COMPONENTS
FOR NUCLEAR COLLISIONS
XXXII International Symposium on Multiparticle Dynamics, Alushta, Ukraine, September 7-13, 2002
XXXII International Symposium on Multiparticle Dynamics, Alushta, Ukraine, September 7-13, 2002
OSCAR’s MC model collection for RHIC
1. Parton/String/ Transport: HIJING, HIJING/B-antiB, MPC, neXus, PCPC, VNI, VNIb, ZPC ...
2. String/Hadron/ Transport: UrQMD, ART BEM, BNC, HSD, JAM, JPCIAE, LEXUS, LUCIAE ...
3. ”Old” models:JETSET PYTHIA FRITIOF VENUS RQMD QGSM ...
OSCAR = Open Standard Codes And Routines, http://rhic.phys.columbia.edu/rhic/
These models are different physical models, however, they have very much in common: 1. they are phenomenological models with many parameters 2. they operate with similar objects: 4-vectors,... 3. they are multi-component models 4. they are complicated numerical models 5. they produce complicated output data 6. ...
Let’s look at existing RHIC models as software products
Usually, they are not user-friendly– There are no graphical user interfaces (GUI) and their users
have to touch (!) and change the model source codes with aims, e.g., to change model parameters, substitute sub-models, obtain relaible ouput, re-direct output for analysis, etc.
Usually, they are implemented as ”monolithic” codes– There are many code duplications, no possibilities to extend
(without learning) sub-model codes, no possibilities to re-use (without re-writting) foreign sub-model codes, the ”algorithm” influences on physical results, etc.
A model user as a standard software user should not be forced to write or modify (to learn any computer language) chosen model code!
Our goals for the development and use of complicated numerical models
We choose the object-oriented programming based on C++ language to write new model codes as well as the system!
We are going to take into account model commonalities as well as user and developer requirements and for that:
– We apply a component approach to develop and use numerical models. In this approach a complex model is assembled from more simple model components that are self-contained entities.
– We develop a software system (framework) referred as the NiMax system to support our approach as well as to support the analysis of generated and measured data.
Tiny C++ and object-oriented programming dictionary
C++ supports the object-oriented programming (OOP). OOP is based on several ideas such as objects, class inheritance and
polymorphism. An object has state (data) and behaviour (methods). Each object is
created from a C++ class (an abstraction data type). A C++ class is an specification of its object data and methods. Interactions among objects are mediated by messages (calls of object’s methods) that may modify object’s states.
A class could be derived from another class (referred as the base class) by means of the inheritance mechanism. Thus, one can create class hierarchies.
Polymorphism is the capability of objects derived from a common base class to respond differently to the same message.
Why C++ and object-oriented programming?
Very important advantage of C++ and OOP for high energy physics (HEP) programmers is that they are able to define “native” objects (classes) for HEP domain: 4-momentum, particle, parton, field, etc along with the operations that are used to manipulate these objects. The objects are counterparts of the real HEP objects (see, e.g., CERN CLHEP library).
Vectors Particles Strings Nuclei
We have also developed a library of such objects (classes). We refer it as a library of application data types:
More advantages of C++ and object-oriented programming
Inheritance enables a class hierarchy development. The classes at the lower levels of the class hierarchy inherit some methods from the classes above and such methods need not be reprogrammed. Thus, a programmer can modify and extend codes in safely and economic way!
Polymorphism is the capability of objects derived from a common base class to respond differently to the same message. Thus, it felicitates the development of universal (usable) codes, it allows runtime object substitutions, i.e., a possibility to change a model content by its user.
What is the meaning of a component?
For a physicist:
For a code developer:
The component can represent a model of either single physical process, e.g., particle elastic scattering, or very complicated physical phenomenon, e.g., ultra-relativistic heavy-ion collision.
The component includes a numerical algorithm and consists of a set of interfaces between its algorithm and outside world.
We define a component as a set of standard interfaces
Start componentInput
interface
API
Tuning interface
Output interface
Matching interface
API
Tuning interface
Output interface
Typical component
API: Application Programming Interface
·An interface includes several public methods and some related data.·Only through the interfaces a component communicates with outside world.·By means of the input interface a user sends a request for the component and privides necessary input data to fulfil this request. ·Output interface is needed to obtain the result of a component execution in required form.·Tuning interface provides a possibility to tune a component with aim to obtain reliable results from its execution.·Matching interface is needed for intercomponent communications.·...
How to handle a component?
Several component interface views for a component user:
Matching map view
Output configuration
view
Parameter view
Input map view
Component
Input maps are user-friendly linearly structured data.Output configuration is a tree-structured set of output channel definitions.Matching maps are developer-defined data configurations.
How to develop a new component?
Standard interface part of a component code for a componet developer:
Component factory
Sub-component proxies
Input maps
Matching maps
Output data configurations
Parameter group
. . .
Thus, a component developer should mainly work on the implementation of numerical algorithm! Nevertheless, we shall help him/her, e.g., a) application data types class library, b) component inheritance and aggregation.
Component wizard could be provided for automatic generation of the interface part of a component code!
How to extend a component?
By inheritance
Matching interface
API
Output interface
API '
Tuning interface
By the inheritance one can extend the interface part functionality (e.g., adding new input map) as well as functionality of the algorithm part!
How to develop a new composite component?
By aggregationThe aggregation does not limit standard C++ programming technique.Coding becomes even more simplified, e.g., no necessity to worry about the sub-component object creations and destructions. A user can see the component structure and has access to any sub-component by graphical user interface (GUI).A user can exchange any sub-component on an alternative sub-component by GUI.
Input interface
Tuning interface
C2
C1
API
Packaging of components with related software into the application modules
•They are developer’s units.• They are complete applications for particular application domains. •They are self-sufficient units for distribution (dynamically linked libraries).•They hide all software from a user excepting their components.•They are transparent on the component level.
Application data types
Units and constants
Utility functions and classes
Components
Tables
...
Our application software is organized into three application layers
Vectors Particles Strings Nuclei
Runge-Kutta solver
Ground state nucleus model
Two-body scatterer
Particledecayer
Numericaltools
Hadronicmodels
Universal kineticmodel
Nucleusdeexcitationmodels
Applicationmodules:
Applicationcomponents:
Applicationdata types:
An example of the hadronic module content
Parton string model (PSM)
Physics formulation (see, Amelin N.S, et al., Eur. Phys. J. C22 (2001) 1, 149-163)
– It is a Monte Carlo model to simulate nuclear collisions in the energy range going from SPS to LHC.
– The model includes in its initial stage both soft and semihard parton collisions, which lead to the formation of color strings. String breaking leads to the production of stable and resonance hadrons. The resonance hadrons are forced to decay.
PSM component design– It has a tree structure. The PSM component aggregates
nucleus model component, parton participant component, string formation component, string decay component and resonance decay component. These sub-components include other sub-components. Thus, the PSM component includes totally 12 self-contained sub-components.
Input maps of the PSM component
An example of the parameter edition for the string decay component
Runtime substitution of the string decay sub-component inside PSM component
An example of the output event configuration for the nucleus initial state sub-component
PSM application: ppbar collisions at s1/2=1.8 TeV
CDF data ---- hard p_t switched off
PSM application: central PbPb collisionsat SPS:
at RHIC and LHC:
NA49 data
BRAHMS data
PSM application: central AuAu collisions
BRAHMS
0-5%
5-10%
10-20
Components as data generators and data processors
A component can generate data events (“quanta of data”) and write them in the data file.
A component can generate data events and send them to other components.
A component can read data events in the data file. A component can accept either whole or selected data from an event.
A component can receive data events generated by other components. A component can accept either whole or selected data from an event.
Data event
It is a structured portion of data that consists of only values of the basic data types.
Any data event has its definition. Definition includes unique event identifier and describes event configuration.
Event data can be placed directly into memory or stored in disk in accordance with data event configuration.
Basic data types: int, float, double, char, ...
Data file structure (simplified)
Tree of channel
definitions
List of event definitions
Channel definition
Event records
Event header
Event data
Data file
An example of the data written in the data file
Component collaboration by the data file
Component C1 produces many events with different configurations: C1E1, C1E2, … and writes these events in the data file.Component C2 reads data file and selects data according to the matching maps: C2M1, C2M2, … .
Output interfaceC1
Output interface
Input interface
Data file
C2Matching interface
C1E1,C1E2,... C2E1,C2E2,...C2M1,C2M2,...
To remind! Matching maps are developer-defined data configurations.
An example of the matching maps
An example of the matching of data configuration
Component net as an assembly of the collaborated components
Several components inside a net collaborate through their output and matching interfaces by sending and receiving data event messages.
Component C1 produces a data event having configurations C1E1, then components C2 receives and selects data from this event according to the matching map C2M1 and produces a new event configured as C2E1. The last event is written in the data file.
C2C1 C1E1
C2E1
C2M1
How to analyse and visualise data?
Views of the pre-defined data events and pre-defined channels
Pre-defined data events are associated with definite services for users that are offered by our system.
The system knows (due to the event identifiers) how to display table view and graphical views of the one- and two-dimensional histograms and two-dimensional plots that are written as pre-defined groups of channels.
Data file
One-dimensional histogram
views
Two-dimensional histogram
views
Two-dimensional plot views
An example of the two-dimensional plot views
The NIMAX software system
Framework
Windows NT/98 GUI
Data file
Application module
Component
Component net
NIMAX Manual:N.S. Amelin, M.E. Komogorov,
JINR Report, D11-2001-175, p. 1-
112
Universal kinetic model (UKM)
UKM is a solver of 3+1D covariant kinetic theory. It finds solutions of the Boltzmann equations:
where , and , for on-shell single particle distributions fk(x,pk).
– Collision terms Ck (x,pk ) describe particle scattering, particle decay and interaction of particle with boundary.
– To solve these equation one has to specify the initial particle distributions and collision terms.
– Covariant cascade algorithm (see, e.g., B. Zhang, M. Gyulassy and Y. Pang, Phys. Rev. C58, (1998) 1175) is applied to find the solutions.
Why it is a universal model?
UniversalKineticModel----------------------------------- #theProjectiles#theTargets #theSecondaries #theLastSecondaries
#theListOfCollisions
-----------------------------------+ParticleEvolution()+AfterInteractionTest()=0+Camera()= 0
UKVParticleScatterer-----------------------------------
-----------------------------------+CalculateCollisionTime()=0+Scatter()=0
UKVParticleInitializer-----------------------------------
-----------------------------------+InitializeProjectileTarget()=0
UKVParticleDecayer-----------------------------------
-----------------------------------+CalculateDecayTime()=0+Decay()=0
UKVBoundaryCondition-----------------------------------
-----------------------------------+CalculateTimeToBoundary()=0+FulfilCondition()=0
Nucleon-nucleus cascade model class design
UKNucleonNucleus Initializer
-----------------------------------nucleusModel
-----------------------------------+InitializeProjectileTarget()
UKNucleonNucleus CascadeModel
----------------------------------- -thearticleInitializer
-theParticleScatterer-theParticleDecayer
-theBoundaryCondition
-----------------------------------+AfterInteractionTest()
+Camera()+InitializeReaction()+FinalizeReaction()
UKHadronElastic Scatterer
----------------------------------- -hadronDistanceCalculator
-----------------------------------+CalculateCollisionTime()
+Scatter()
UKEmptyParticle Decayer
-----------------------------------
-----------------------------------+CalculateDecayTime()
+Decay()
UKNucleonBoundary Condition
----------------------------------- -theSphere
-----------------------------------+CalculateTimeToBoundary()
+FulfilCondition()
UniversalKineticModel----------------------------------- #theProjectiles#theTargets #theSecondaries #theLastSecondaries
#theListOfCollisions
-----------------------------------+ParticleEvolution()+AfterInteractionTest()=0+Camera()= 0
UKM application components
Simple nucleon-nucleus cascade model.– Fermi model for target nuclei, only elastic nucleon scatterings, Pauli blocking for
scattered nucleons, spherical nuclear boundaries.– Model predicts outgoing nucleons double cross sections and defines characteristics of
residual target nuclei. Hadron kinetic model for relativistic nuclear collisions.
– Fermi model for colliding nuclei, 2->2 elastic and inelatic hadron scatterings as well as 2->1 meson and antibaryon fusion, resonance decay, Pauli blocking for 1/2 and 3/2 scattered fermions, spherical nuclear boundaries.
– Model could be used to study hadron-nucleon, hadron-nucleus and nucleus-nucleus collisions at intermediate energies (s1/2 < 5 GeVA).
Hadrons in box.– Periodic boundary condition.– Model could be used to study thermodynamic properties of the infinite hadron matter.
Parton kinetic model for ultra-relativistic nuclear collisions.– Initial parton distribution from parton structure functions, 2->2 parton scatterings,
2->1 gluon-gluon and quark-gluon fusions, 1->2 parton decays.– Model could be used to study nucleon-nucleon, nucleon-nucleus and nucleus-nucleus
collisions at collider energies (s1/2 > 100 GeVA).
Partons in box.– Periodic boundary condition.– Model could be used to study thermodynamic properties of the infinite quark-gluon
matter.
Conclusions
We have suggested a new component approach to develop and use complicated numerical models.
– For it we have defined a ”standard” component, suggested several mechanisms of the component development and extension and offered different ways of component management.
To support this approach we have developed the NiMax software system (framework).
– Within the system we have realized a data model. Thus, the system user has obtained a possibility to configure a component for reliable input and output, navigate through the stored data, select and visualize data and assemble several components into a component net for execution.
In the frame of our system we have created several application modules consisting of many components that allow us to perform numerical simulation and analysis of the generated and measured data.
– Particularly, the parton string model, universal kinetic model, nucleus deexcitation models and other application modules are suitable tools for fundamental and applied studies of ultra-relativistic heavy-ion collisions.
top related