Title: Introduction to SimTools
1Introduction to SimTools
- Akiya Miyamoto
- KEK
- Feb 2007
2Plan 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
3CPU Configuration
jlclogin2
SL4.2
/home/data4/jlc, /data7/jlc generic user
files /data5, /data6 for soft files.
4Local commands
- Submit job
- submit -h host command
- Submit job as a batch job
- submit command gt log 2gt1 ( 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
5How to setup your account
- cd
- cp /home/miyamoto/Tutorials/misc/dot.rootrc
/.rootrc - mkdir Tutorials
- cd Tutorials
- cp /proj/soft/Release/1.35/setup.bash .
- source setup.bash
- You are ready to run jsf/jupiter/satellites
program -
6Information on the web
- http//acfahep.kek.jp/subg/sim/simtools
- http//www-jlc.kek.jp/subg/offl/jsf
- http//jlccvs.kek.jp/
7Files in SimTools
SimTools
tools
lcbase
Leda
jsf
Physsim
Jupiter
Uranus
Satellites
docs
examples
exam01
QuickSim
.....
Jupiter
Satellites
setup.bash
Readme
8Functions 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 http//acfahep.kek.jp/su
bg/sim/soft - All packages are kept in the CVS. Accessible
from http//jlccvs.kek.jp/
9JSF
- 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
10Using JSF Control Panel
- Controls menu
- run mode
- generator type
- generator parameters
- pythia
- event type
- zh
- save parameters
- Next Event button
11Batch Run
jsf -b -q --maxevt100 gui.C
- root option
- -b run without X
- -q quit at the end
- jsf option
- --maxevtN N is number of events
12JSF Basics
13JSF 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.
14JSF 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
15JSF Conponents
- Libraries ( JSFROOT/lib )
- Pre-compiled C classes to build JSF
applicationsuch as libJSFGenerator.so,
libJSFQuickSim.so, - Executables (main program ) (JSFROOT/bin)
- jsf command built with ROOTlibJSF.so
- 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
16JSF 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 JSFModule Initialize(),
BeginRun(..), Process(), EndRun(), Terminate()
JSF job flow concept
A simple example without Macros is prepared in
JSFROOT/example/ZHStudy
17JSF 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-gtFindModule(module_name)
- To get pointer to JSFEventBuf objects,
- buf(JSFEventBuf)mod-gtEventBuf()
18Access to JSFModule and JSFEventBuf
- In script
- JSFSteer jsf (defined in gui.C)
jsf-gtGetEventNumber() JSFXXX
mod(JSFXXX)jsf-gtFindModule("JSFXXX")
JSFXXXBuf buf(JSFXXXBuf)mod-gtEventBuf() - In compiled code,
- JSFSteer gJSF (defined in JSFSteer.h)
19Useful Web information
- JSF Class Documents
- CVS
- http//jlccvs.kek.jp/
20Parameter file
- All parameters are managed by JSFEnv class
- In the userprogram, they are obtained by a
method, JSFEnvGetValue(Parameter.name,defaul
t) - At run time, paremetercan be changed by three
method - In a file, jsf.conf Parameter.Name value
!argname comments . - As a command line argument, like jsf
argnamevalue 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.Name used to
parse command line argument
21Macro 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
22JSF First example in SimTols
- Examples inSimTools cd SimTools/examples/JSF_
QuickSim/exam01 jsf gui.CJSF control panel
popes up
23UserAnalsis.C
- Example in JSFROOT/macro/UserAnalysis.C
- Three functions
- UserInitialize() Called at Job
initialization define Histgrams, etc. - UserAnalysis() Called at each event for
event analysis - DrawHist() Called to draw histogram
24GUIMainMacro
25Build Compilied library
26Other examples
27JSF Generators
- JSFGenerator
- PythiaGenerator
- JSFBases - JSFSpring - JSFHadronizer
- JSFMEGenerator - JSFSHGenerator
JSFReadMEGenerator - JSFPythiaHadronizer
28PythiaGenerator
- Parameters
- Process ZH, ZZ, WW, enW, eeZ, gammaZ
- BeamStrahlung
- Decay Z, W, H
- InitPythia.C
29(No Transcript)
30JSFGeneratorParticle
- Particle informationID, Mass, Charge, P, X,
DLPointers to Mother, 1st_Daughter, NDaughter - Example
- jsf/generator
- using JSFGeneratorParticle
- EventShape
31JSFQuickSim
- Quick Simulator module
- Detector parameter file
- (LCLIBROOT)/simjlc/param/detect7.com-- "JLC-I
Green Book Detector (2 Tesla) , default - (LCLIBROOT)/simjlc/param/jlc3T.com-- "ACFA
Report" (3 Tesla) - (LCLIBROOT)/simjlc/param/gld_v1.com-- 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
32SIMDSTBuf
- The format agreed among ACFA group.
- JSFQuickSIM JSFGenerator
- Same information can be written to a
fileaccesible by FORTRAN program.
33Classes 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
34JSFLTKCLTrack
- Information based on "Combined Track Bank"
- http//www-jlc.kek.jp/subg/offl/lib/docs/cmbtrk/m
ain.html - Data in class
- P at closest approach to IP
- Particle type 1Pure gamma, 2Gamma in mixed
EMC, 3Pure neutral Hadron, 4Hadron in
mixed HDC, 5Pure charged hadron, 6Unmached
Track 11Electron candidate, 13muon candidate - Source of information 100IHDC 10IEMC
ICDC - Nsig
- Pointer to CDC Tracks
35Anlib
- 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
36JLCCVS
- Latest packages are available at
http//jlccvs.kek.jp. - How to get cvs -d pserveranonymous_at_jlccvs.kek
.jp/home/cvs/soft login ltRETURNgtPassword
ltRETURNgt cvs -d pserveranonymous_at_jlccvs.kek.jp
/home/cvs/soft co jsf ltRETURNgt - Update cvs update -P
- See CVS log cvs log
- Web interface to see a code history
http//jlccvs.kek.jp/cgi-bin/cvsweb.cgi/jsf/
37Information on Web
- Home page of ACFA-Sim grouphttp//acfahep.kek.jp/
subg/sim - SimTools
- http//acfahep.kek.jp/subg/sim/simtools
38Backup slides
39jsf gui.C
Construct JSFSteer
no
yes
guinew JSFGUIFrame() Start Interactive session
BatchRun()
40Setup.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
- ..........
41.rootrc
- 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.
42Getting started with SimTools
- SimTools is a collection of precompiled binaries
of JSF, Jupiter, Satellites and related package. - Compiled on Redhat 9 linux, using gcc 2.2.2
- Requires ROOT-4.03.04
- Package will be updated every 1 or 2 months
- Web site - http//acfahep.kek.jp/subg/sim/simtools
- For installation,
- Download from the web site
- Edit setup.bash properly
- Do "source setup.bash"