a.f. barfussréunion de groupe - 31/03/20061 commencer une analyse sur caf didacticiels et aide...

23
A.F. Barfuss Réunion de groupe - 31/03 /2006 1 Commencer une analyse sur Commencer une analyse sur CAF CAF • Didacticiels et aide • Framework : CAF, CAFE, etc. • Installation • Outils : fichier de configuration • Ecrire son processeur • Output et histogrammes • Batch

Upload: margot-rivet

Post on 03-Apr-2015

107 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

1

Commencer une analyse sur Commencer une analyse sur CAFCAF

• Didacticiels et aide

• Framework : CAF, CAFE, etc.

• Installation

• Outils : fichier de configuration

• Ecrire son processeur

• Output et histogrammes

• Batch

Page 2: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

2

• Page d’accueil de CAF : http://www-d0.fnal.gov/Run2Physics/cs/caf/

• Le didacticiel complet : http://www-d0.fnal.gov/Run2Physics/cs/caf/docs/Tutorial-Vancouver.pdf

• Un didacticiel sommaire sur les outils de base de CAF :http://www-d0.fnal.gov/Run2Physics/cs/caf/docs/tutorial_CAFTools.pdf

• Production de CAF trees : http://www-d0.fnal.gov/Run2Physics/cs/howto/tmb_analyze/TMBAnalyze.html

• Mailing list : [email protected] archives : http://listserv.fnal.gov/archives/d0-caf-users.html

Didacticiels et aide

Page 3: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

3

CAF ? CAFE ?…

CAF = Common Analysis Format.Structure arborescente ROOTesque. Voir structure :

http://www-d0.fnal.gov/Run2Physics/working_group/data_format/caf/

CAFe est le framework pour l’analyse. Ses fonctionnalités de base permettent l’analyse des

CAF trees (packages cafe, cafe_sam). http://www-d0.fnal.gov/d0dist/dist/packages/cafe/devel/doc/UserGuide.html

CAF UTILITIES est une boîte à outils standards pour réaliser les sélections courantes, appliquer des corrections à l’efficacité des MC,… (packages caf_util, caf_mc_util)

caf_tools contient des outils pour lancer des jobs en batch.

Page 4: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

4

Installation> setup D0RunII p18.05.00 –O SRT_QUAL=maxopt *> setup d0cvs> setenv LINK_SHARED yes> newrel –t p18.05.00 myworkarea> cd myworkarea> d0setwa> set path = ($SRT_PRIVATE_CONTEXT/shbin/$SRT_SUBDIR $path)> addpkg… (Voir http://www-d0.fnal.gov/Run2Physics/cs/caf/Packages.html) S’ils ne figurent pas sur la page web : (voir

/D0/users/barfuss/180500WA/<pkg>/CVS/Tag)

> addpkg cafe> addpkg tmb_tree

> gmake (Message à ignorer : ERROR: multiply defined symbol: _moddi3…)

> cp caf_util/configs/test.config . > cp emid_cuts/support/emid_cuts.txt .> ./test.config

* Pour données p17.09.01(3), CAF p18.03(5).00

En rouge, à saisir à chaque fois

Page 5: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

5

Pas de recompilation, un enregistrement suffit !

Ligne d’exécution ordonnée des processeurs (petite liste page 16)

Déclaration ordonnée des packages utilisés Spécifications pour chaque processeur (e.g. nombre d’e…) Lecture partielle des branches (gain de temps sensible) Déclaration des histogrammes (nom, binning,…) Organisation des fichiers et branches d’output (rootuples)

contenant les objets sélectionnés Traitement possible d’une liste de fichiers ou d’un SAM

dataset

CAFe gère la boucle sur tous les événements.

Fichier de configuration

Page 6: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

6

Fichier de configuration (suite)

1. Configuration généraleVoir exemple p. 17

2. Sélecteurs d’objets : outils pour appliquer les critères de sélection classiques (nombre min, max, pT, JES, tri…)

Voir exemple p.18

3. Outils de qualité des données : fichiers contenant les mauvais runs et LBN pour le calo, le SMT, le CFT et les muons

Voir exemple p.19

4. Efficacité des coupures et statistiquesVoir exemple p.20

5. Création d’histogrammes et écriture du fichier skim.root

Voir exemple p.21

Page 7: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

7

Ecrire son propre processeur

• Les sélecteurs et autres outils inclus dans les packages conviennent à une analyse standard.

• Mais il devient rapidement nécessaire d’étendre les fonctionnalités de ces processeurs pour un usage plus personnalisé.

• On peut toujours améliorer le code existant. Mais se pose alors le problème de la compatibilité au passage de version…

Ecrire son propre processeur est donc la solution la

plus flexible et la plus adaptée à l’analyse.

Page 8: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

8

Ecrire son propre processeur (suite)

• Il existe 2 types de processeurs : – ceux qui produisent des histos et qui doivent obligatoirement renvoyer “true”– ceux effectuant des coupures qui renvoient “true” pour garder l’événement ou “false” pour le rejeter

• Ils contiennent config.get pour récupérer les paramètres dans le fichier de configuration

• Ce qu’il faut faire pour qu’un nouveau processeur soit utilisable :

– dans pkg/scripts/rootrc, +Plugin.Processor: myProc pkg::myProc…– ajouter son processeur à la liste des pkg/src/COMPONENTS

Note : on peut aussi écrire son propre package, auquel cas il faut le lier dans include/, recompiler et l’appeler dans test.config (cafe.Packages: …)

Page 9: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

9

Ecrire son propre processeur (suite)

Un exemple de package “fait maison” (Samuel) à Lyon :/afs/in2p3.fr/home/s/scalvet/public/Btagging_p18.05.00/mypackage

• Exemple d’un processeur qui fait des coupures : AngleSelector constructeur : AngleSelector(const char *name); où “name”

est le nom donné au processeur dans test.config.

On y récupère aussi les paramètres fixés par test.config :_DeltaPhiMIN_JETMET_sup = config.get(“DeltaPhiMIN_JETMET_sup”,

180.);

180 est la valeur par défaut de _DeltaPhiMIN_JETMET_sup.

pour récupérer une branche : _jetBranch = config.get(“jetBranch”,

“JCCB”);

processEvent récupère les objets (pointeur ou Collection<TMB…

>)

true or false? une fois les objets récupérés, coupures et T ou F.

Page 10: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

10

Output et histogrammes

• Output : rootuple contenant les objets sélectionnés

• Histogrammes éventuellement dans un .root séparé cafe.Output: histos.root

• Comment traiter le résultat sous root :

> autoroot.py tmb_tree cafe

> root skim.root histos.root (ou, si ça ne marche pas :

> $SRT_PUBLIC_CONTEXT/tmb_tree/tmb_tree/scripts/autoroot.py tmb_tree

cafe)

% TBrowser…

Page 11: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

11

Batch

Tutorial complet p. 54 – 57> setup caf_tools> runcafe –h …

Exemples à partir de myworkarea : > runcafe -clued0 --test.config> runcafe -cabsrv1 -outdir=/work/host/scratch --test.config> runcafe -cabsrv2 -def=caf_test_1 --test.config> runcafe -clued0 -tar=/path/my.tar.gz --test.config> …

Temps d’exécution

Page 12: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

BACK UP

Page 13: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

13

• Pour utiliser des fichiers sur HPSS :

cafe.Input: stageinlist: mylist.list

cafe.Stager: /afs/in2p3.fr/home/throng/d0/scripts/D0rfcp

(cafe.StagingDirectory: .)

Chaque fichier est alors copié sur le worker avant d’être ouvert puis effacé lorsqu’il est fermé.

Prévoir de l’espace scratch pour le job !

HPSS

Page 14: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

14

Triggers

Quels triggers pour mon état final ?

https://plone4.fnal.gov/P1/D0Wiki/tsg/caftrigger/

Page 15: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

A.F. Barfuss Réunion de groupe - 31/03/2006

15

Calcul de luminosité

Avec l’outil lm_tools> setup lm_tools > getLuminosity source [flags] [options] [input files]

lm_tools documentation: getLuminosity http://www-d0.fnal.gov/d0dist/dist/packages/lm_tools/devel/doc/

Avec l’outil lm_access> addpkg -h lm_access > gmake lm_access

Si erreur à la compilation concernant lm_access_interface, ajouter aussi ce package dans myworkarea (addpkg -h lm_access_interface).Pour l’exécuter, il est également nécessaire de faire setup d0_config.

Access Luminosity information:http://www-d0.fnal.gov/phys_id/luminosity/data_access/

Page 16: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Liste de quelques processeurs

Retour

Package Processeur Fonction cafe.Run: Utilisation

caf_util

*SelectorSélecteurs d’objets

(* = Electron, Muon, Jet, MET, Vertex,…)

JetSelector (myjet)

myjet.From: JCCBmyjet.pT: 25.

CafeDataQualityProcessor

Supprime les evts bruitésCafeDataQualityProcessor(mydq

)mydq.dqdef: filedq.dqdef

ApplyJESApplique les corrections JES

à une liste de jetsApplyJES(myjes)

myjes.Tree: OutputTreeNamemyjes.doJESMU: false

cafe

ForkExécute les processeurs en

parallèleFork(myfork)

myfork.Run: Group(gr1) Group(gr2)

GroupExécute tous ses proc. fils en

séquence jusqu’à un falseGroup(gr1)

gr1: JetSelector(myjet) Hist1D(h)

Hist*D Trace des histos *=1, 2,3 Hist1D(jetpT)jetpT.Bins: 100, 0., 100.jetpT.Draw:selectedJets.pT

StatCollecte les stats des

sélections et affiche les efficacités

Stat(eff)eff.Output: testeff.Update: 1000

Trigger Sélectionne les evts triggésTrigger(DiEMEvt

s)DiEMEvts.Triggers: 2EM_HI

Write Ecrit les fichiers d’output Write(skim) skim.File: skim.root

PassedAffiche le nombre d’evts qui

ont passé la coupure.Passed

cafe.Run: EventFlags(myFlags) PassedPages web : http://www-d0.fnal.gov/d0dist/dist/packages/<pkg>/devel/doc/html/index.html

Page 17: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Commanded’exécution

Déclarationdes packages

Configuration générale

Retour

# commentaire

Page 18: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Prenons l’exemple des jets :

Sélecteurs d’objets

Retour

Page 19: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Il existe des fichiers contenant les bad LBN et bad runs pour tous les sous-systèmes :

Cependant, on peut les utiliser séparément :

Outils de qualité des données

Retour

Page 20: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Outil de calcul de l’efficacité :

L’output est un fichier html :

Efficacité

Retour

Page 21: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Méthodes plutôt intuitives… :

Création d’histogrammes

Écriture du fichier

Retour

Page 22: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Batch

> runcafe [ options ] [ -- arguments ]Runcafe

-help|-h|--help print this help

-dest=<CLUSTER>submit job to destination [ required ]currently: clued0, cabsrv1, cabsrv2

-clued0 shortcut for -dest=clued0

-cabsrv1 shortcut for -dest=cabsrv1

-cabsrv2 shortcut for -dest=cabsrv2

-def=<DEFINITION> SAM dataset definition [ default: “” ]

-filelist=<LISTFILE.LST> File with filename list [ default: “” ]

-project=<NAME> SAM project name [ default: rhauser_[date] ]

-jobs=<NUMBER> number of parallel SAM jobs [ default: 1 ]

-exec=<EXECUTABLE> name of executable [ default: cafe ]

-name=<NAME> name of job in batch system [ default: run_jobs.sh ]

-outhost=<HOSTNAME> name of output host [ default: hostname ]

-outdir=<DIRECTORY> name of output directory [ default: pwd ]

-outfiles='...' list of files/directories to copy back as result

-inputdir=<DIRECTORY> name of input directory [ default: pwd ]

-tar=<TARFILE.tar.gz> alternative .tar.gz file for input directory

-infiles='...' list of input files/directories to copy in

-queue=<QUEUE> name of queue in batch system

-debug print out debug statements of script

All command line parameter after the -- are assumed to be arguments to the executable runcafe

Page 23: A.F. BarfussRéunion de groupe - 31/03/20061 Commencer une analyse sur CAF Didacticiels et aide Framework : CAF, CAFE, etc. Installation Outils : fichier

Temps d’exécution

Batch

Question : dois-je faire un sous-skim des événements EM1TRK ?

– terminaux 3GHz sélectionnent les runs par flags à ~8kHz– sélection par triggers à ~6kHz– sélection par expression arbitraire 500 à 1kHz

Le conseil de Slava : “Au lieu de vous embêter à faire des sous-skims géants, utilisez vos critères spécifiques et n’écrivez que les événements qui vous intéressent.”