// Navod na spocitanie procesu pp -> gg -> W+,W-,t, antit v CompHEP // a jeho dalsie spracovanie cez Athenu pomocou Pythie, Atlfast a Rootu // Instalacia CompHEPu v.4.2.p1 // 4.2.p1 verzia generuje eventy v starom i novom formate. Stary format je 41.10, // novy 4.4.3. V sucasnosti nam nasa athena rozumie iba staremu formatu. // Existuje vsak praca, ktora robi interface v.4.4.3 s najnovsou Athenou, vid // http://atlas-physics.phyast.pitt.edu/~vikas/comphep/comphep_i_4.4.3.html // 4.2.p1 davam prednost pred 41.10 preto, lebo je to jedna z oficialnych CERN // verzii a jednak preto, ze 41.10 je na CompHEP homepage oznacena za obsolete. cd /afs/cern.ch/sw/lcg/app/releases/GENSER/GENSER_1_1_0/src/comphep cd 4.2.p1/ cd data/ cp comphep-4.2p1.tgz ~/comptemp - Tieto prve 4 kroky nemusis robit, ak uz si raz instaloval comphep vo svojom direktoriu - Teraz urob instalaciu comphepu do svojho working directory (napr. comphep-final): cd ~/comptemp (alebo len "cd comptemp", ak uz si raz instaloval comphep) gzip -d comphep-4.2p1.tgz tar -xf comphep-4.2p1.tar - Potom chod do direktoria comphep-4.2p1 (stale si v comptemp), t.j. cd comphep-4.2p1 ./configure make - Stale v direktoriu comptemp/comphep-4.2p1 vytvor working directory, t.j. comphep-final, ktory bude umiestneny v tvojom home directory make setup WDIR=../../comphep-final - nastartuj comphep v direktoriu comphep-final prikazom ./comphep - skopiruj cpart11.mdl, func11.mdl, lgrng11.mdl, prtcls11.mdl, vars11.mdl z COMPHEP2006/models v Ziline do CERN: ~/comphep-final/models/ ./comphep & (start comphepu) // Priprava eventov // Potrebny pocet eventov treba generovat v CompHEP v. 4.2p1 v CERN na // pckeatlas03 - v CERN-e ssh pckeatlas03 (alebo pckeatlas04) // pp -> gg -> W+,W-,t, antit - symbolicky vypocet trva 20 minut, kompilaciu nemam poznacenu, ale v Ziline to trvalo 90 minut - S.F.1 CTEQ5L (proton) - S.F.2 CTEQ5L (proton) - Vstupne data: EE=0.314398, g1=0.668153, v=240.868, a=0.337343, gv=10, b1=0, b2=0.08, Gama=3.9499 GeV - Regularizacia: 34 0 0 2 34 91.1876 2.49444 2 34 700 3.9499 2 - statistics: 2 runs 5 x 10 000 events each sigma = 9.93 - 10.43 fb +- 1.28 - 1.38 % sigmaaverage = 10.095 fb +- 0.589 % - Generate events subcubes = 1000 calls = 500 simplex search /ON search of maxima start 9:38, finish 10:36 hod. N of events = sigma Luminosity = 1009.5 -> 1000 MAX*2 Generator (old) start 10:38, finish 10:48 hod. Eff: 1.2 x 10^-2 Reached max.: 4.4 Mult. events: 0.001 Neg. events : 0 // Vystup generovania eventov je do suboru events_1.txt, ktory treba konvertovat // na format 41.10 nasledovne (vysledok editovania je subor Mixed.PEV): - dopln ako prvy riadok #PEVLIB_v.1.0 ============================================= - a uprav structure functions na: StrFun1: PDF:CTEQ5L(proton) StrFun2: PDF:CTEQ5L(proton) // AtlfastWWtt.py // jobOptions file, ktory v prostredi Athena precita CompHEP eventy zo suboru // Mixed.PEV (na Mixed.PEV poukaze subor inparmCompHep.dat), necha tieto eventy // rozpadnut v Pythii, zavola Atlfast, ktory zahrnie detektorove efekty (parametre // pre Atlfast su v subore AtlfastStandardOptions.py) a rekonstruuje jety. // Napokon AtlfastWWtt.py ulozi vysledky vo forme ntuples do suboru atlfastWWtt1.root // Cele sa to bezi takto (dolezita je aj pritomnost file-u PDGTABLE.MeV): athena.py AtlfastWWtt.py > resultsWWtt1.txt // Priprava AtlfastWWtt.py - Skopiruj si stary AtlfastWWtt.py - Najdi line: NtupleSvc.Output = ["FILE1 DATAFILE='atlfastWWtt1.root' TYP='ROOT' OPT='NEW'"] a pripadne zmen meno .root suboru - Nastav pocet eventov v line theApp.EvtMax = 1000 - Najdi line: Pythia = Algorithm( "Pythia" ) a pod nu zarad nasledovnu line Pythia.PythiaCommand = ["pyinit user comphep", "pyinit pylistf 1", "pyinit dumpr 1 10"] - dolezita je aj pritomnost tejto line: include( "AtlfastStandardOptions.py" ) // Priprava inparmCompHep.dat 1) PATH/FileName for event file (PATH is optional) Mixed.PEV 2) Process string (just for comment in PYTHIA output) p,p -> W+,W-,t,t 3) Number of events to be generated by PYTHIA 1000 // Priprava AtlfastStandardOptions.py // b-tagging efficiency is given by AtlfastB.AtlfBNSet = 1; co znamena m_epsib=0.5; -> b eff. of 50 % m_epsic=1./10.9; -> should look at the code??? m_epsij=1./231.; -> should look at the code ??? AtlfastB.AtlfBNSet = 2; m_epsib=0.60; m_epsic=1./6.7; m_epsij=1./93.; Pozri subor (riadok 487): http://alxr.usatlas.bnl.gov/lxr/source/atlas/Simulation/Atlfast/AtlfastAlgs/src/AtlfastB.cxx#480 // Rekonstrukcia WWtt castic z ntuplov ulozenych v atlfastWWtt1.root // Najskor si vygenerujeme z atlfastWWtt1.root subory 51.h a 51.C, // ktore budu zakladom rekonstrukcneho algoritmu a potom ich budeme editovat > root [0] TFile a("atlfastWWtt1.root") [1] .ls [2] TTree * tt = (TTree*) a->Get("Atlfast/51") [3] tt->MakeClass() [4] .q // This procedure produces two files: 51.C and 51.h > cp 51.h analysis1.h // analysis1.h // pomocny subor pre analysis1.C - inside analysis1.h change all 51 to analysis1 except the line tree = (TTree*)gDirectory->Get("51"); instead change this line to tree = (TTree*)gDirectory->Get("Atlfast/51"); je to dolezite, inak neskor prikaz root launch1.C nenajde atlfastWWtt1.root a nevytvori analysis1.root file ! - look for line analysis1(TTree *tree=0); just below it functions are defined, add these 5 lines: void init(); void end(); bool cut(); void process(); Bool_t matchw(Int_t*, Int_t*, Int_t*); - look for lines TFile *f = (TFile*)gROOT->GetListOfFiles()->FindObject("atlfastWWtt1.root"); if (!f) { f = new TFile("atlfastWWtt1.root"); and make sure the .root file name is what you need (atlfastWWtt1.root in this case) > cp 51.C analysis1.C // analysis1.C // subor na rekonstrukciu WWtt (hmotnosti, energie, rapidity, priecne hybnosti // castic W,W,t,t a rho) // vystup je analysis1.root // pomocny subor analysis1.h - inside analysis1.C change all 51 to analysis1 - dopln celu rekonstrukciu (v praxi si skopiruj fungujuci stary analysis1.C, porovnaj hlavicku s 51.C (t.j. novym analysis1.C), skopiruj cely stary, resp. jeho relevantne casti do noveho a urob zmeny, ak chces robit zmeny - v riadku nt = new TFile("analysis1.root","RECREATE"); si pomenuj vystupny .root file > root launch1.C // Prikaz spusti rekonstrukciu cez analysis1.C a analysis1.h s vystupom do analysis1.root [0] .q Velmi rychla alternativa k root launch1.C (bezi mimo root): Posielam Ti dva subory: Makefile a test.cxx. Musis ich mat v rovnakom direktoriu ako prislusne analysis1.C, analysis1.h a atlfastWWtt1.root. Nesmu byt v direktoriu athena904/TestRelease/TestRelease-00-18/run. Jonathan mi napisal, ze vtedy athena s tym nieco robi a nebezi to. V analysis1.C treba doplnit hned v uvode riadok #include Dalej vymazat riadok na konci match_w: cout Helloworld Dalej zmenit velkosti poli z 8 000 000 na 200 000 Kompilujes prikazom make a bezis prikazom ./test.exe. *** este 1 sposob spustenia C programu pod Root *** ulozis si ten program (v tomto pripade readloop) do souboru napr. readloopdat.cpp. Pak si spustis root a v nem pouzijes prikazy: root[0] .L readloopdat.cpp root[1] readloop() Prvni prikaz je na naloadovani souboru do pameti rootu, druhy uz pak na spusteniprocedury readloop. Nektere dalsi root-ovske prikazy (debugging atd.) uvidis, pokud pouzijes ".h" v prikazove radce rootu. Pavel *** > root analysis1.root // Kreslenie distribucii v root [0] t2->Print() [1] t2->Draw("masswl") // Vyrob .ps subor: V okne s grafom chod na File, Save as, dopln masswl.ps [2] t2->Draw("massw1") [3] t2->Draw("massw2") [4] t2->Draw("massw3") [5] t2->Draw("masstop1") [6] t2->Draw("masstop2") [7] t2->Draw("massrho") // respektive cez vytvorenie histogramu, v ktorom ovladam pocet binov, ich zaciarok a koniec: [0] TH1F *h1 = new TH1F("h1","name",nbin,start,end) [1] t2->Draw("massrho>>h1") [2] h1->Draw() Ako vyuzit vacsiu kapacitu pckeatlas04: fs listquota (zisti kapacitu a vytazenost konta na lxplus) prihlas sa na pckeatlas04 v domacom direktoriu /afs/cern.ch/user/m/melo urob cd / ls cd data/ cd melo/ a prestahuj tam svoje subory a vypocty. Tam by malo byt k dispozicii 80 GB. Bezanie batch jobov: - vytvor scriptovy subor, napr. run1 (tento je na bezanie atheny pocnuc eventami z CompHEP cez Pythiu a Atlfast): #!/bin/sh mkdir MyWorkingDir cd MyWorkingDir # Copy entire run directory in my working place cp -r /afs/cern.ch/user/m/melo/athena904/TestRelease/TestRelease-00-00-18/run/WWtt3/* ./ # Setup Athena environment # Have some experience with newer Athena releases, # that first setup.sh have to be done in its directory export CURRENTDIR=`pwd` cd /afs/cern.ch/user/m/melo/ source work.sh # source ./setup.sh -tag=opt # source TestRelease/TestRelease-00-00-18/cmt/setup.sh # Go back to working directory and run the job cd $CURRENTDIR athena.py AtlfastWWtt.py > resultsWWtt.txt # Copy out the results if exist if [ -e atlfastWWtt1.root ] ; then rfcp atlfastWWtt1.root /afs/cern.ch/user/m/melo/athena904/TestRelease/TestRelease-00-00-18/run/WWtt3/atlfastWWtt1.root rfcp resultsWWtt.txt /afs/cern.ch/user/m/melo/athena904/TestRelease/TestRelease-00-00-18/run/WWtt3/resultsWWtt.txt fi # List content of the working directory for debugging purposes ls -lRt # Clean workspace before exit cd .. rm -fR MyWorkingDir - chmod +x run1 (urobi z run1 exe subor) - run1 musi byt v direktoriu, kde sum aj AtlfastStandardOptions.py, AtlfastWWtt.py, inparmCompHep.dat, Mixed.PEV, PDGTABLE.MeV - bsub -q 8nh run1 (spusti batch job, pod pckeatlas04 to nefunguje, len pod lxplus) - bjobs [jobID] (ukaze stav jobu)