introduction to simtools
Skip this Video
Download Presentation
Introduction to SimTools

Loading in 2 Seconds...

play fullscreen
1 / 42

Introduction to SimTools - PowerPoint PPT Presentation

  • Uploaded on

Introduction to SimTools. Akiya Miyamoto KEK Jan 2006. Plan of Tutorials. KEK ILC Computing JSF Intorudction, Go through examples learn how to access JSF classes Jupiter / Satellites Intorudction Go through examples Kick-off studies. KEK ILC Computing. Outside KEK. KEK DMZ Zone.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
Download Presentation

PowerPoint Slideshow about 'Introduction to SimTools' - Sophia

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
introduction to simtools

Introduction to SimTools

Akiya Miyamoto


Jan 2006

plan of tutorials
Plan of Tutorials
  • KEK ILC Computing
  • JSF
    • Intorudction,
    • Go through examples
    • learn how to access JSF classes
  • Jupiter / Satellites
    • Intorudction
    • Go through examples
  • Kick-off studies
kek ilc computing
KEK ILC Computing

Outside KEK






FJ Network










cpu configuration
CPU Configuration


RedHat 9.0

Will be terminated


/data, /data2, /data3





/home/data2, /daat3, /data4 ( NFS mount of jlclogin disk)

/data5, /data6 : for public soft files.

local commands
Local commands
  • Submit job
    • $ submit [-h host] command
  • Submit job as a batch job
    • $ submit command > log 2>&1 & ( in case of bash )
  • Show job status in CPU server
    • $ showjob
  • Monitor CPU loads of each CPU server
    • $ cpui
  • To kill job running at CPU server
    • $ rsh jlccpuXX “ps –ef | grep username”
    • $ rsh jlccpuXX “kill –15 XXXX”
how to setup your account
How to setup your account

$ cd

$ cp /home/miyamoto/Tutorials/misc/dot.rootrc ~/.rootrc

$ mkdir Tutorials

$ cd Tutorials

$ cp /proj/soft/Release/1.21/setup.bash .

$ source setup.bash

  • You are ready to run jsf/jupiter/satellites program
information on the web
Information on the web
files in simtools
Files in SimTools



















functions of each components
Functions of each components
  • lcbase : configuration files
  • Leda : Analysis tools (Kalman fitter, 4vector and jet findinder utilities )
  • jsf : Root-based framework
  • lclib : QuickSim and other fortran based utilities
  • physsim : Helas-based generator
  • Jupiter : Full simulation based on Geant4
  • Uranus : Data analysis packages
  • Satellites : Data analysis packages for MC data
  • We use only C++, except old fortran tools.
  • Link to various tools at
  • All packages are kept in the CVS. Accessible from
  • JSF provides common framework for studies using
    • Quick Simulator
    • Jupiter/Satellites
  • To start interactive session of jsf, do$ jsf gui.CJSF control panel popes up
using jsf control panel
Using JSF Control Panel
  • Controls menu
    • run mode
    • generator type
    • generator parameters
      • pythia
        • event type
          • zh
    • save parameters
  • Next Event button
batch run
Batch Run
  • root option:
    • -b : run without X
    • -q : quit at the end
  • jsf option
    • --maxevt=N : N is number of events

$jsf -b -q --maxevt=100 gui.C

jsf features 1
JSF features - 1
  • JSF is based on ROOT
    • User needs to lean just one language, C+
  • JSF provides a framework for modular analyses
    • Common framework for event generation, detector simulation, and analyses.
    • Same framework for beam test data analysis
  • Unified framework for interactive and batch jobs
    • GUI for control of an interactive run Histogram and event display packages included
    • A file similar to .rootrc is used to set parameter.
    • Default values an be overidden by command line argument at run time.
jsf features 2
JSF Features – 2
  • Object I/O
    • Each modules can save/read their event data as branches of a root tree.
    • Job parameters, histograms, ntuples and private analysis tree can be saved in the same file
  • Packages
    • Included in the release
      • Pythia6.3, Bases/Spring++, ZVTOP, JETNET, BSGEN
  • Provided as separated packages
    • Physsim (Event generators and analysis utilities)
    • LCLIB (QuickSim, Helas)
    • Jupiter (Geant4)
    • Uranus/Satellites
jsf conponents
JSF Conponents
  • Libraries ( $JSFROOT/lib )
    • Pre-compiled C++ classes to build JSF applicationsuch as,, …
  • Executables (main program ) ($JSFROOT/bin)
    • “jsf” command : built with
  • Macros ($JSFROOT/macro)
    • C++ program is used as Macro thanks to CINT(No need to compile and link)
    • In JSF, Macros are used to set run parametersand provide a simple analysis code.gui.C, GUIMainMacro.C, UserAnalysis.C
jsf kernel

Create modules

  • Jon Initialization
    • Begin Run
      • Event analysis
    • End Run
  • Job Termination
JSF Kernel
  • JSF is a framework for event-by-event data analysis
  • Provides a modular framework suitable for analysis consists of several sub-detectors
  • Job flow control
  • Job flow is controlled by a class, JSFSteer
  • Analysis modules are inherited from a class, JSFModule
    • Member functions of JSFModuleInitialize(), BeginRun(..), Process(…), EndRun(), Terminate()

JSF job flow concept

A simple example without Macros

is prepared in $JSFROOT/example/ZHStudy

jsf kernel fileio
JSF Kernel - FileIO
  • A class, JSFEventBuf, is defined by JSFModule
    • It is used to define branch of a ROOT Tree ( used to save/get event data )
    • JSFModule JSFEventBuf : 1-to-1 correspondance
    • Information of JSFModule written in a root file is used to define branch for read-in data.
  • In a user program,
    • To get pointer to JSFModule objects,

mod= (JSFModule*) gJSF->FindModule(“module_name”)

    • To get pointer to JSFEventBuf objects,


access to jsfmodule and jsfeventbuf
Access to JSFModule and JSFEventBuf
  • In script
    • JSFSteer *jsf (defined in gui.C)jsf->GetEventNumber(); JSFXXX *mod=(JSFXXX*)jsf->FindModule("JSFXXX"); JSFXXXBuf *buf=(JSFXXXBuf*)mod->EventBuf();
  • In compiled code,
    • JSFSteer *gJSF (defined in JSFSteer.h)
useful web information
Useful Web information
  • JSF Class Documents
  • CVS
parameter file
Parameter file
  • All parameters are managed by JSFEnv class
    • In the userprogram, they are obtained by a method,JSFEnv::GetValue(“”,default)
  • At run time, paremetercan be changed by three method
    • In a file, jsf.confParameter.Name: value #!argname # comments ….
    • As a command line argument, like $ jsf –argname=value gui.C
    • Through the popup menues of JSF Control Panel Each user can add their own menu by a function, UserMenu()

argname is an alias of Parameter.Nameused to parse command line argument

macro in jsf
Macro in JSF
  • In JSF, macros ( xxx.C file ), are used extensively to define type of jobs and job parameters.

Important macro files in $JSFROOT/macro directory

GUIMainMacro.C : Define a standard set of modules and their parameters

gui.C : Load GUIMainMacro.C and libraries for GUI

UserAnalysis.C : An sample user macro file for Initialization, event analysis and drawing histogram

jsf first example in simtols
JSF – First example in SimTols
  • Examples inSimTools$ cd [SimTools]/examples/JSF_QuickSim/exam01$ jsf gui.CJSF control panel popes up
useranalsis c
  • Example in $JSFROOT/macro/UserAnalysis.C
  • Three functions:
    • UserInitialize() : Called at Job initializationdefine Histgrams, etc.
    • UserAnalysis() : Called at each eventfor event analysis
    • DrawHist() : Called to draw histogram
build compilied library
Build Compilied library
  • buildjsf command
other examples
Other examples
  • Exam02
  • Exam03
  • Exam04
jsf generators
JSF Generators
  • JSFGenerator
  • PythiaGenerator
  • JSFBases - JSFSpring - JSFHadronizer
  • JSFMEGenerator - JSFSHGenerator JSFReadMEGenerator - JSFPythiaHadronizer
  • Parameters
    • Process : ZH, ZZ, WW, enW, eeZ, gammaZ
    • BeamStrahlung
    • Decay: Z, W, H
  • InitPythia.C
  • Particle informationID, Mass, Charge, P, X, DLPointers to Mother, 1st_Daughter, NDaughter
  • Example
    • jsf/generator
      • using JSFGeneratorParticle
      • EventShape
  • Quick Simulator module
    • Detector parameter file
      • $(LCLIBROOT)/simjlc/param/ "JLC-I” Green Book Detector (2 Tesla) , default
      • $(LCLIBROOT)/simjlc/param/ "ACFA Report" (3 Tesla)
      • $(LCLIBROOT)/simjlc/param/ “GLD_V1" (3 Tesla) (performance needs to be checked.)
    • JSFQuickSimParam : parameter class
    • JLCQuickSim.ParameterFile: env. param.
  • Simulator Output data
    • JSFQuickSimBufVTX (+IT), CDC, EMC, HDC, LTKCLTrack
  • The format agreed among ACFA group.
  • JSFQuickSIM + JSFGenerator
  • Same information can be written to a fileaccesible by FORTRAN program.
classes for quicksim output jsfsimdstbuf
Classes for QuickSim OutputJSFSIMDSTBuf

important Member functions:

  • Int_t GetNLTKCLTracks();
  • Int_t GetNCDCTracks();
  • Int_t GetNVTXHits();
  • Int_t GetNEMCHits();
  • Int_t GetNHDCHits();
  • Int_t GetNSMHits();
  • Int_t GetNGeneratorParticles();
  • TObjArray *GetLTKCLTracks(); // Pointers to LTKCLTracks objects array
  • TClonesArray *GetCDCTracks(); // Pointers to CDCTracks object array
  • TClonesArray *GetVTXHits(); // Pointers to VTXhits object array
  • TClonesArray *GetEMCHits(); // Pointers to EMhits object array
  • TClonesArray *GetHDCHits(); // Pointers to HDhits object array
  • TClonesArray *GetSMHits(); // Pointers to SMhits object array
  • TClonesArray *GetGeneratorParticles(); // Pointers to GeneratorParticle objects array
  • Information based on "Combined Track Bank"
  • Data in class
    • P at closest approach to IP
    • Particle type: 1=Pure gamma, 2=Gamma in mixed EMC, 3=Pure neutral Hadron, 4=Hadron in mixed HDC, 5=Pure charged hadron, 6=Unmached Track 11=Electron candidate, 13=muon candidate
    • Source of information : 100*IHDC + 10*IEMC + ICDC
    • Nsig
    • Pointer to CDC Tracks
  • ANL4DVector: TLorentz , Lockable
  • ANLEventSahpe
    • Using TObjArray of ANL4DVector
    • Calculate Thrust, Oblateness, Major/Minor Axis
  • ANLJetFinder
    • base class for Jade, JadeE, Durham jet finder
  • ANLJet : ANL4DVectorSee examples in $(LEDAROOT)/Anlib/examples
  • Latest packages are available at
  • How to get:$ cvs -d :pserver:[email protected]/home/cvs/soft login <RETURN>Password: <RETURN>$ cvs -d :pserver:[email protected]:/home/cvs/soft co jsf <RETURN>
  • Update$ cvs update -P
  • See CVS log$ cvs log
  • Web interface to see a code history
information on web
Information on Web
  • Home page of ACFA-Sim group
  • SimTools

IsBatch ?

jsf gui.C

Construct JSFSteer



gui=new JSFGUIFrame()

Start Interactive session


setup bash
  • # .bashrc
  • # Following two lines are essential
  • export SIMTOOLS_DIR=/home/sample/SimTools
  • export ROOTSYS=/home/root/root-4.03.04
  • # next three lines are required to compile package
  • export JDK_HOME=/home/soft/JDK/j2sdk1.4.2_06
  • export G4INSTALL=/home/soft/Geant4/geant4.6.1
  • export LCIO=/home/soft/lcio/v01-03
  • ..........
  • ROOT uses .rootrc file to set configuration parameters.
  • Following two parameters must be defined to run JSF.
  • .rootrc file is in your current directory or in your home directory.