Title: TUTORIEL CMS Simulation
1TUTORIEL CMS Simulation Septembre
2003 http//www.fynu.ucl.ac.be/themes/he/cms/docum
ents/talks.html
2Contenu du tutoriel
- 1. La chaine de simulation CMS
- Infrastructure a LLN
- Generateur devenements Pythia/CMKIN
- Outil de soumission de jobs Condor
- Simulation Geant du detecteur CMSIM
- Simulation de lelectronique et Reconstruction
ORCA - ? Generation devenements digitizes
- 3. La chaine de reconstruction des evenements
- Trigger de niveau 1 (L1)
- High Level Trigger (HLT)
- ? Lecture des evenements generes et calcul du
resultat du HLT.
3La chaine de simulation
Principaux elements Pythia/CMKIN generation des
evenements. Cree une liste departicule avec
leursquadrivecteurs (HepEvt) G3/CMSIM 131
Propage les particules dans lensemble de la
geometrie dudetecteur stocke les hits dansun
fichier fz (Energie/volume position) ORCA
7.2.2/WriteHits conversion de fichiers fz vers
une db ORCA ORCA 7.2.2/WriteDigis simule
lelectronique du detecteur. Ajoutesi
necessaire les evenements mbiaspour simuler le
PileUp
4Infrastructure _at_ LLN (1)
5Infrastructure _at_ LLN (2)
- Machines avec ORCA installe
- cmsfm001 contient lensemble des softs CMS pour
realiser la chaine de simulation. - clxfm101-112 fynulab01-fynulab08
- contient egalement ces softs.
-
- Pour condor
- La plupart des machines sont installees avec
condor - sauf cmsfm001
- Pour le stockage
- disques scratch /scratch/nommachine/v/vanderaa
- stockage de masse cmsst001 accessible de
clxfm101-112 - et de cmsfm001 ainsi que de fynulab
- /nfs/cms/mass1/USERS/v/vanderaa --gt non
securise - /nfs/cms/mass2/USERS/v/vanderaa --gt securise
(raid5)
6Infrastructure _at_ LLN (3)
Pour obtenir une reponse rapidement Pour toute
question relative au soft CMS orca_at_fynu.ucl.ac.be
cette liste est archivee a lurl
http//orca.fynu.ucl.ac.be Concernant le HLT
voir la page http//www.fynu.ucl.ac.be/themes/he
/cms/activities/tridas/HLT/index.html Pour le
monitoring de letat de la ferme http//www.fynu.
ucl.ac.be/links/cacti/graph_view.php?actiontreet
ree_id3 http//www.fynu.ucl.ac.be/themes/he/cms/a
ctivities/tridas/farm.html
7Serveur CVS
- Tous les codes developpes a lln sont stockes sur
un serveur CVS. - Le repository se trouve sur /disks/mass2/cvshome,
ne jamaistoucher aux fichiers dans ce directory.
Pour y avoir accessil suffit de suivre la
procedure suivante - ? Ajouter la ligne suivante dans votre .ksh_user
ou .bashrc - alias 'cvsfynuexport CVSROOTpserverlogin_at_cms
st001.fynu.ucl.ac.be/disks/mass2/cvshome - Dans ce repository se trouve lensemble des
scripts necessaires - aux productions.
- Pour acceder au CVS de CMS voir la page
suivante - http//cmsdoc.cern.ch/cmsoo/projects/cvs_server.ht
ml
8Repertoires utilises dans ce tutoriel (1)
- votre scratch
- on notera SCRATCH
- cela signifie /scratch/fynulab0X/n/name
- n/name remplacer par votre lettre et login
- X a remplacer par 1-gt8 selon la machine
- votre home directory
- on notera (linux le comprend et le traduit en
/home/votre login - donc pour visiter /home/vanderaa lt--gt vanderaa
- Les repertoires crees dans votre scratch pendant
le tutoriel - SCRATCH/CMKIN_Workdir
- SCRATCH/condor_cmkin_scripts/ (le contenu a ete
copie dans SCRATCH/CMKIN_Workdir) - SCRATCH/examples/cmsim/
- SCRATCH/ORCA_7_2_2 --gt votre installation
dorca. - SCRATCH/condor_orca_scripts
9Repertoires utilises dans ce tutoriel (2)
- Les repertoires cree pour contenir les logs
condor - /condorlog/cmkin
- /condorlog/cmsim
- /condorlog/orca
- Les repertoires de la base de donnees utilises
pour ce tutoriel - /nfs/cms/mass1/DATABASES/CMKIN/CMKIN_1_3_0/TUTORIA
L/labX - /nfs/cms/mass1/DATABASES/CMSIM/cms131/TUTORIQL/lab
X - /nfs/cms/mass1/DATABASES/O722TUTORIAL/labX
- Les fichiers crees dans les differents
repertoires dependent du nom - dans les scripts.
10Pythia/CMKIN (1)
- Input --gt process card
- Output--gt ntpl file with in HepEvt format
- Compiler votre CMKIN
- 1 cd /scratch/fynulabXX/lettre/login
- 2a . /cms/bin/llncmkin.env pour ksh
- 2b source /cms/bin/llncmkin.env pour bash
- 3 /cms/bin/cmkinget
- 4 cd CMKIN_Workdir
- 6 repeat 2a or 2b
- 5 ./kine_make_ntpl_pyt.com
- A partir de la cmkin est compile dans le
directory ./ - pour info pour éxecuter CMKIN en mode interactif
- Pour demarrer CMKIN en mode interactif editer le
fichier - ./kine_make_ntpl_pyt.run et executer
./kine_make_ntpl_pyt.run
11Data Card
- Verifier ce que lon veut tourner
- Liste des parametres obligatoires (principalement
la PDF des protons). - Choix du processus MSEL 0 -gt lutilisateur
choisi lui meme un MSUB (La liste est dans le
manuel Pythia. Pour les tt, il existe un MSEL
defini. Dans la carte mettre MSEL 6. - Switch de Decay Commande MDME. 1 (voir example)
etudie, 0 est utilise dans le calcul des ME et
de la section efficace totale (mais pas dans
loutput de Pythia) -1 (processus interdit, ex
une 4eme famille de fermion) - Faire toujours verifier les cartes avant de
lancer une grosse production - Les ntuples, une fois verifiés, doivent etre mis
a lendroit suivant /nfs/cms/mass1/DATABASES/CMKI
N/CMKIN_VERSION/nom_du_signal/.ntpl
12Example MSSM Higgs
- MSSM Quelle masse? Quelle tan beta? Quel etat
final? - Quest ce quun KSEL?
- Example MSUB 26 1 ff -gt HW
- KSEL 412 -gt Switch pour etudier le canal etau.
- Pour le canal ff -gt HW, pas de selection a coder
dans CMKIN. - Le tuning des generateurs sont imposes par
dancienne mesures. - MSTJ 11 3 !Choice of the fragmentation function
- MSTP 2 1 !which order running alphaS (default)
- MSTP 51 7 !structure function chosen (CTEQ5L,
default) - MSTP 81 1 !multiple parton interactions 1 is
Pythia default - MSTP 82 4 !Defines the multi-parton model
- PARP 82 1.9 !pt cutoff for multiparton
interactions - PARP 84 0.4 !Multiple interactions matter
distribution parameter
13Pythia or not pythia
- Nouvelle version de CMKIN (avant la fin du mois)
avec - Nouvelle version de PYTHIA
- Nouvelle Version de ISAJET
- Nouvelle Version de Herwig
- Pour les analyses a LLN, on reste avec la version
de CMKIN_1_3_0 - (Cette version est la version officielle du DC04)
- Il est egalement possible dutiliser des packages
associes - Tauola (mettre dans la carte CMKIN une ligne
tau0 0 0) - Photo (souvent avec Tauola)
- CompHep
14Pythia/CMKIN job (2)
Suivez les instructions 1. cd directory where
you have installed cmkin/.. 2. cvsfynu 3. cvs
login (type your password) 4. cvs co
condor_cmkin_scripts 5. cp condor_cmkin_scripts/
directory cmkin 6. cd directory
cmkin Preparer une carte CMKIN, il faudra
donner la path complet de ce fichier au script
makecmkinjob.py. Pour des exemples de cartes vous
pouvez aller voir sur la page http//cmsdoc.cern
.ch/cms/production/www/cgi/SQL/List_FileURL.php?fi
leTypePythiacards Attention certaines cartes
sont fausses! cp datacards/tt_2l.txt . enlever
les trois lignes for testing
15Pythia/CMKIN job (3)
- Pour preparer un job
- 1. cd condor_cmkin_scripts
- 2. ./makecmkinjob.py
- Repondre aux questions
- nom du job par exemple le nom du signal produit
- path pour les fichiers de log par defaut
/condorlog/cmkin! il faut que le directory soit
cree - path complet vers le directory cmkin (nfs)
- Path ou seront stockes les fichiers ntpl un
directory sera creeavec comme nom le job - Path complet vers la carte
- nom du binaire a executer
- Le job est maitenant pret a etre lance. Suivre
linstruction a la fin - du script.
16condor et la soumission de jobs
- condor est un gestionnaire de jobs.
- La page http//www.cs.wisc.edu/condor/ donne
plus dinfos ainsi - que lacces au manuel.
- the Condor Team has been building software tools
that enable - scientists and engineers to increase their
computing throughput. - Pour soumettre des jobs condor_submit
- Pour tuer un job condor_rm numero de job
- Pour voir ce qui se trouve dans les queues
condor_q - Pour voir le status de la ferme condor_status
-run - cd directory contenant le script cmkin
- chmod x nomdujob
- condor_submit nomdujob
- condor_q -submitter login
17CMSIM/Geant 3 (1)
CMSIM contains the geometry description of the
detector and simulates the energy loss of the
particles passing trough the detector. Input
--gt ntpl files produced by CMKIN Output --gt .fz
with geant hits geometry file (only need
ones)
18CMSIM/Geant 3 (2)
- compiling your cmsim version
- 1. Go into a directory that is nfs exported to
the farm - 2. cp -r /cms/cmsim/cms131/examples .
- 3. cd examples/cmsim
- 4a.(for bash) source /cms/bin/llncmsim.sh cms131
- 4b.(for ksh) . /cms/bin/llncmsim.ksh cms131
- 5. ./cmsbuild -b
- 6. from there the cms131.exe binary will be put
in - the current directory
- 2) Preparing a CMSIM job
- cvs co condor_cmsim_scripts
- cd condor_cmsim_scripts
- ./makecmsimjob.py
19CMSIM/G3 jobs
- Preparer un fichier de carte (cmsim.card par
defaut). Il doitcontenir 5 colonnes - nom du fichier ntpl
- nom du fichier fz
- nombre devenements a generer
- numero de run
- premier evenement a lire
- repondre aux questions du script
- nom du job
- path vers le fichier de log (par defaut
/condorlog/cmsim - version de cmsim (131 est la seule installe et
compat avec O722) - directory ou se trouve le binaire cmsim
- fichier de carte.
- path du directory ou se trouvent les ntpl a lire
- path du directory qui va contenir les fz generes
- Soumettre le job condor_submit your job
20ORCA
- ORCAObject-oriented Reconstruction for Cms
Analysis - two main task
- simulate the detector response
- reconstruct the events as it will be online
(same soft) - Production sequence
SimHits
RecHits (Digis)
21ORCA Workspace read events
- Preparer votre environnement ORCA.
- go to your favorite directory (eg scratch)
- scram project ORCA ORCA_7_2_2
- cd ORCA_7_2_2 cd src
- cmsget Workspace cd Workspace
- Lire des evenements generes
- editer le fichier .orcarc
- FilePath/nfs/cms/mass1/DATABASES/O722
- InputCollections/System/NoPileup/etau_z_gamma_90
- commenter les lignes 33-46
- enlever la ligne FileProtocol
-
- editer le BuildFile
- enlever le premier couple de tag ltignoregt
lt/ignoregt - scram b eval scram runtime -sh
- ExRunEventInfo --gt tourne sur 10 evts
22ORCA hit writing (1)
- Remarque generale pour les jobs orca
- Une production se fait toujours en 3 etapes.
- 1. Initialisation de la database
- 2. Ecriture dans la database (the real jobs)
- 3. Finalisation de la db.
Preparing the jobs cd your place, favorite
directory cvs co condor_orca_scripts cd
condor_orca_scripts préparer une carte Nom du
fichier fz, nombre dévénements,
run ./makejobinput.py et repondre aux questions
23ORCA hit writing questions
- As usual the name of the job
- The orca version, only ORCA_7_2_2 is installed
now - Full Path of your orca installation (your
ORCA_7_2_2 directory) - The Path where the Database will stand
- (/nfs/cms/mass1/DATABASES/O722TUTORIAL/labxx)
- Path of the log files (default is
/condorlog/orca) - Respond 2 to have jobs writing hits
- Full path the the fz directory
- (/nfs/mass1/DATABASES/CMSIM/cms131/TUTORIAL/labx)
- Full path of the geometry file, the proposed one
is valid for cms131 - Full path of the card file. Explained later
- Output dataset for the Hits (ex
/System/SimHits/signal) - The script will create 3 scripts.
- job.init.sh job to run from cmsfm00 first in
order to init the database - job.cmd job to submit with condor to fill the
db - job.finalize.sh job to run to finalize the
database
24ORCA digitization
- Lecriture des hits nest quune conversion de
format entre - les fichiers fz et la base de donnee ORCA.
- La digitization simule la reponse de
lelectronique et stocke dans - la base de donnees des digis qui sont le resultat
de la simulation. - Avant de soumettre un job de digitization il faut
savoir si on veut - le faire avec pileup ou sans pileup. La
digitization avec pileup met - sensiblement plus temps etant donne que pour 1
evenement lu - on superpose jusque a 100 evts dont 20 dans le
bunch courant. - Une base de donnee de minimum bias a ete cree et
elle contient - 100000 evts. /System/SimHits/mbias
- Il faut egalement faire attention a la luminosite
(basse ou haute)
25ORCA digitization NoPileup
- Lutilisation du script est similaire au cas des
hits. - Les questions differentes sont
- Nombre devenement a processer
- Nombre devts par job 500 est une bonne valeur
- Input dataset dataset de hit a digitizer
/System/SimHits/signal - Output dataset dataset de sortie
/System/NoPileup/signal - A nouveau il faut faire tourner trois scripts
dans lordre - myjob.init.sh condor_submit myjob.cmd
myjob.final.sh
- A partir de ce point vous pouvez analyser les
donnees - visualiser avec iguana
- faire tourner vos algorithmes de
reconstructionet/ou le L1/HLT
26Visualisation avec iguana
Pour utiliser iguana il suffit daller dans votre
directory ORCA_7_2_2/src/Workspace. Modifiez
.orcarc en mettant une collection que vous avez
genere /System/NoPileup/signal. eval scram
runtime -sh export GEANEUSEDTRUE et tapez
iguana.
iguana permet de visualiser le detecteur et une
partie des objets reconstruits jets, traces,
ecal digis, hcal digis, muons
27Quelques questions pratiques
- Eviter de lancer de larges productions sans en
parler surla mailing list orca. Lutilisation de
plus de 1jour de calcul sur le cluster
correspond a une large production. - Une fois une production terminee veuillez
documenter ce quia ete produit dans le fichier
excel que vous pouvez trouveren suivant la
procedure - cvsfynu
- cvs login (tapez votre password fynu)
- cvs co prodinfo
- le fichier prodinfo/prodlln.xls contient tout ce
qui existe deja - Si vous avez un probleme dacces demandez a
A.Ninane de vousmettre dans le groupe cmsuser.
28Analysis L1/HLT
29HLT steering code tutorial
- Nous avons produit des événements
- semblables à des données ...
- Que se passe-t-il avec les données ?
- Sélection par le L1
- Sélection par le HLT
- Stockage pour analyse
On-line off-line
- Objectifs de cette présentation
- Montrer comment utiliser HLT
- (Montrer comment ca marche)
30Traitement on-line
Symboliquement, les données sortent du détecteur,
traversent le réseau et aboutissent dans la ferme
de 1000 PCs ou est fait le HLT.
Concrètement, une telle colonne est repésentée
ci-contre...
31Un peu de C...
Pour réaliser une sélection (simulation du
trigger) il faut coder soi-meme -gt C Il y a
de tres bons livres et sites de référence.
Example http//www.cplusplus.com Un point
important la notion de classe.
- Classe
- Constructeur
- Destructeur
- Méthodes
- variables
Le constructeur est appelé lorsque l'on crée une
classe Le destructeur est appelé lorsque l'on
détruit une classe Les méthodes sont des
fonctions / des procédures Les variables sont
globales à la classe
32Le L1 L1GlobalTrigger
Le L1 est simulé par une classe C
L1GlobalTrigger
Après avoir déclaré les classes dont on a besoin
(début du fichier) include "Trigger/L1GlobalTrig
ger/interface/L1GlobalTriggerSetup.h" include
"Trigger/L1GlobalTrigger/interface/L1GlobalTrigger
.h" Une ligne suffit à évaluer la réponse du
L1 if(!SingletonltL1GlobalTriggerSetupgtinstance
()-gtGlobalTrigger()-gtResult().getGlobalDecision())
return Si besoin est, la classe
L1GlobalTrigger peut fournir une liste des
candidats, ainsi que d'autres informations
détaillées. La configuration se fait en
choisissant un menu dans le .orcarc
La classe L1GlobalTrigger devrait changer sous
peu. Il y a d'ailleur des problèmes avec le
trigger tau .
33HLT un arbre logique
Toute équation logique peut etre représentée par
un arbre binaire
Elements
interfaces software entre la structure
logique et le code de reconstruction
Steering code !
Dynamic prescale
- Typiquement, dans VOTRE classe
- création du trigger dans le constructeur
- utilisation du trigger dans la méthode appelée
pour chaque événement - récapitulatif dans le destructeur
34HLT un example
class HighLevelTriggerTest public
HighLevelTrigger public virtual void
setup() // this is
mandatory we are deriving from a LazyObserver
init() // now we
build the structure we want to have
HighLevelTriggerElement ele1a new
HLGL2EleTriggerElement()
HighLevelTriggerElement ele1b new
HLGL25EleTriggerElement(ele1a)
HighLevelTriggerElement ele2a new
HLGL2EleTriggerElement()
HighLevelTriggerElement ele2b new
HLGL25EleTriggerElement(ele2a)
HighLevelTriggerElement tau1a new
HLGL2TauTrigger()
HighLevelTriggerElement tau1b new
HLGL25PixelTauTrigger(tau1a)
HighLevelTriggerElement node new
HighLevelTriggerCombAndNode(ele2b,tau1b)
// the last element is the rte (Root
Trigger Element) member. rte
new HighLevelTriggerOrNode(node1,node2)
// First use the TriggerSetup singleton to
retrieve the Trigger instance. //
retrieve the trigger response and decision.
HighLevelTriggerSetup setup SingletonltHighLevel
TriggerSetuplt HighLevelTriggerTest gt
gtinstance()
HLGlobalTrigger trigger setup-gtglobalTrigger()
bool decision trigger-gtgetResult().getGlobalDeci
sion() bit_vector response trigger-gtgetResult()
.getGlobalResponse() if(decision) goodevents
35Ou trouver plus d'info ?
Page générale CCS http//cms-project-ccs.web.ce
rn.ch/cms-project-ccs/ Lien vers le CVS
http//cmsdoc.cern.ch/swdev/viewcvs/viewcvs.cgi/
Page dédiée à ORCA http//cmsdoc.cern.ch/orca
Bug tracking http//savannah.cern.ch/bugs/?group
orca
Vous y trouverez l'ensemble des classes, leur
dépendances, ... -gt toutes les classes ORCA sont
maintenant documentées Tel n'est malheureusement
pas le cas des classes COBRA
36Downloading the package
HLT is commited to ORCA...
_at_ CERN
_at_ LLN
- There are examples in
- HLT/HLTElements/test
- HLT/HLTXMLFactory/test
- Examples/ExHLT
cvs co -rORCA_7_3_0 HLT cvs co -rORCA_7_3_0
Examples/ExHLT
cmsget Examples/ExHLT