Introduction to simtools
1 / 42

Introduction to SimTools - PowerPoint PPT Presentation

  • Updated 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.

Related searches for Introduction to SimTools

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 l.jpg

Introduction to SimTools

Akiya Miyamoto


Jan 2006

Plan of tutorials l.jpg
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 l.jpg
KEK ILC Computing

Outside KEK






FJ Network










Cpu configuration l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
Information on the web




Files in simtools l.jpg
Files in SimTools



















Functions of each components l.jpg
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

Slide10 l.jpg

  • 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 l.jpg
Using JSF Control Panel

  • Controls menu

    • run mode

    • generator type

    • generator parameters

      • pythia

        • event type

          • zh

    • save parameters

  • Next Event button

Batch run l.jpg
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 l.jpg
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 l.jpg
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 l.jpg
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 l.jpg

  • 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 l.jpg
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 l.jpg
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 l.jpg
Useful Web information

  • JSF Class Documents

  • CVS


Parameter file l.jpg
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 l.jpg
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 l.jpg
JSF – First example in SimTols

  • Examples inSimTools$ cd [SimTools]/examples/JSF_QuickSim/exam01$ jsf gui.CJSF control panel popes up

Useranalsis c l.jpg

  • 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 l.jpg
Build Compilied library

  • buildjsf command

Other examples l.jpg
Other examples

  • Exam02

  • Exam03

  • Exam04

Jsf generators l.jpg
JSF Generators

  • JSFGenerator

  • PythiaGenerator

  • JSFBases - JSFSpring - JSFHadronizer

  • JSFMEGenerator - JSFSHGenerator JSFReadMEGenerator - JSFPythiaHadronizer

Pythiagenerator l.jpg

  • Parameters

    • Process : ZH, ZZ, WW, enW, eeZ, gammaZ

    • BeamStrahlung

    • Decay: Z, W, H

  • InitPythia.C

Jsfgeneratorparticle l.jpg

  • Particle informationID, Mass, Charge, P, X, DLPointers to Mother, 1st_Daughter, NDaughter

  • Example

    • jsf/generator

      • using JSFGeneratorParticle

      • EventShape

Jsfquicksim l.jpg

  • 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

Simdstbuf l.jpg

  • The format agreed among ACFA group.

  • JSFQuickSIM + JSFGenerator

  • Same information can be written to a fileaccesible by FORTRAN program.

Classes for quicksim output jsfsimdstbuf l.jpg
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

Jsfltkcltrack l.jpg

  • 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

Anlib l.jpg

  • 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

Jlccvs l.jpg

  • Latest packages are available at

  • How to get:$ cvs -d login <RETURN>Password: <RETURN>$ cvs -d co jsf <RETURN>

  • Update$ cvs update -P

  • See CVS log$ cvs log

  • Web interface to see a code history

Information on web l.jpg
Information on Web

  • Home page of ACFA-Sim group

  • SimTools


Slide40 l.jpg

IsBatch ?

jsf gui.C

Construct JSFSteer



gui=new JSFGUIFrame()

Start Interactive session


Setup bash l.jpg

  • # .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

  • ..........

Rootrc l.jpg

  • 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.