Rivet - Indico

Transkript

Rivet - Indico
Yüksek Enerji Fiziğinde Rivet
Sercan Sen
HUPP Grup Toplantısı, 8 Ocak 2013
Plan / Amaç
• Rivet nedir ?
• Nasıl yüklenir ?
• (Local makineye) Yüklenmeden nasıl kullanır ?
• AGILe
• Rivet komutları & dizin hiyerarşisi
• Rivet içindeki standart analizlerin çalıştırılması
• Bir deneysel paper’ın Rivet plug-in’inin yazılması
Sercan Sen
2
2/29
8 Ocak 2013
Rivet Nedir ? Genel
• Rivet: Robust Independent Validation of Experiment and Theory
• Monte Carlo olay üreteçleri için ayar (tuning) ve doğrulama
(validation) aracı.
• MC yazarları, geliştiricileri (ayarlar yapanlar), YEF fenomolojisi
çalışanlar, YEF deneylerinde çalışanlar.
• HepMC formatında olay üreten MC üreteçleri için fizik plotları
(detektör etkileri için düzeltilmiş / hadron düzeyi) oluşturabilmeye
yarar.
• Rivet, kullanılan MC olay üretecinden bağımsızdır. Olayların
HepMC formatında üretilmiş olması yeterlidir.
Sercan Sen
3
3/29
8 Ocak 2013
Rivet Nedir ? Avantajları
• Yeni deneysel gözlenebilirlerin araştırılması.
Farklı olay sınıflarında, farklı kesimler uygulayarak detektör
limitlerinde yada tüm faz uzayında kolay kullanım.
• Detektör etkilerinin
çalışılması ve deney sonuçlarının
başka deney sonuçları ile karşılaştırılmasının yapılması
• Modeller arası farkların çalışılması
MC olay üreteçleri ve(ya) ayarları arasındaki farkları çalışılması
• MC olay üreteçlerinin doğrulanması ve yeniden ayar
edilmesi
Versiyonlar arasındaki farklar vb.
Sercan Sen
4
4/29
8 Ocak 2013
Rivet Nedir ? Teknik olarak
• C++/Python.
girdi: HepMC olay dosyaları (ASCII)
çıktı: AIDA format. (bir sonraki Rivet versiyonu 2xx ile YODA’ya
geçilmesi planlanmakta)
• AIDA dosyalarından ROOT, Html, pdf, png, latex... formatlarına
dönüşüm için python scriptleri mevcut.
aida2root Python scripti ile aida dosyalarını ROOT dosyalarına
dönüştürmek mümkün.
• Analiz için gerekli araçlar (örneğin jet algoritmaları, Math
class’ları...)
Sercan Sen
5
5/29
8 Ocak 2013
Rivet Nasıl Yüklenir ?
Rivet paketi Hepforge’dan indirilebilir:
https://rivet.hepforge.org/
Kurulum için:
https://rivet.hepforge.org/trac/wiki/GettingStarted
Mac kullanıcıları için:
https://rivet.hepforge.org/trac/wiki/MacInstallationIssues
User manual:
arXiv:1003.0694 [hep-ph]
Kurulum ve sonrasında sorunsuz kullanım için:
Boost, Yaml, GSL, Swig, Fastjet, Python, LHApdf, HepMC, MC olay üreteci
destek için yazışma listesi:
[email protected]
Sercan Sen
6
6/29
8 Ocak 2013
Rivet Yüklenmeden Nasıl Kullanılır ?
Bu seçenek sadece AFS’e bağlı makineler için geçerlidir !
AFS’e bağlı bir makinede (ornegin lxplus.cern.ch) çalışılıyorsa Rivet ve
onun bağlı olduğu hiç bir paketin kurulumuna gerek yoktur. Çünkü tüm
paketlerin kütüphaneleri/executable’lari genser altinda mevcut.
Genser’de (Generator Services) bulunan paketler:
http://sftweb.cern.ch/generators/
lxplus’tan genser’e erişim:
lxplus:/afs/cern.ch/sw/lcg/external/
Bu paketlerin genser üzerinden kullanılabilmesi için ilgili path’lerin,
environment’in tanımlanması gerekmektedir. Hangi paketler gerekli ?
Sercan Sen
7
7/29
8 Ocak 2013
Rivet Environment
Lxplus’ta:
source ~ssen/public/setupHuppRivet.sh
Bunu source ettikten sonra fortran tabanlı birçok MC olay üreteceni
kullanarak HepMC formatında olaylar üretebilir ve Rivet ile analiz
yapabilirsiniz !
Sercan Sen
8
8/29
8 Ocak 2013
AGILe
agile-runmc --help
agile-runmc --list-gens (AGILe arayüzü ile run edebileceğiniz MC
generatörlerinin listesi). örneğin Pythia6:426.
agile-runmc Pythia6:422 --beams=LHC:7000 -n 100 -o myfile.hepmc
(beam parametresinin default değeri 7 TeV. O parametre verilmezse de default değerini
alır)
myfile.hepmc:
Herbir olayın bilgisini tutan ASCII formatında size’ı oldukça büyük dosyalar
Sercan Sen
9
9/29
8 Ocak 2013
AGILe
HepMC dosylarının boyutu çok büyük olduğu için alternatif yöntem
UNIX pipe özelliğini kullanmak -- HepMC olaylarını fifo dosyalarına
yönlendirmek
fifo sadece non-AFS dizinlerde çalışır ! bu yüzden örneğin lxplus’ta “tmp”
dizinleri kullanilabilir.
mkfifo /tmp/$USER/myFIFOfile.hepmc
agile-runmc Pythia6:422 --beams=LHC:7000 -n 100 -o
/tmp/$USER/myFIFOfile.hepmc
Buraya kadar: birçok fortran tabanlı generatorla nasıl HepMC formatında
olaylar üretebileceğimizi ve bunları fifo dosyalarına nasıl
yönlendirebileceğimizi biliyoruz.
Şimdi Rivet’le bu olay dosyasını analiz edelim !
Sercan Sen
10
10/29
8 Ocak 2013
AGILe
Rivet’e HepMC dosyalarının girdi vererek analiz yapmaya hazırız. Öncelikle
bir MC olay üreteç programı kullanarak HepMC formatında
olaylar üretelim !
HepMC formatında olay üretmek:
• C++ tabanlı olay üreteçleri Pythia8, Herwig++, Sherpa...
ile oldukça
kolay
• Fortran tabanlı olay üreteçleri Pythia6, Herwig, Phojet... ile AGILe
arayüzünü kullanarak çok daha kolay.
AGILe:
Fortran tabanlı MC olay üreteçleri ile HepMC formatında olaylar üretmek
için arayüz. http://agile.hepforge.org/
Sercan Sen
11
11/29
8 Ocak 2013
Rivet komutları & dizin hiyerarşisi
Rivet içindeki herbir analiz (routine yada plug-in) bir deneysel paper’a karşılık
gelir. Plug-inlerin adlandırılması ilgili paper’ın INSPIRE (SPIRES) id’si ile yapılır.
Herbir Rivet plug-in’i 4 dosyadan oluşur:
Rivet/src/Analyses/*cc : Tüm standart analizlerin *cc dosyaları
Rivet/data/anainfo/*info: Analiz hakkındaki bilgileri içeren *info dosyaları
Rivet/data/plotinfo/*plot: Histogram başlıkları, eksen adlandırması
Rivet/data/refdata/*aida: Deney paper’ının histogramlarına ait bilgi -- binning,
ölçüm değeri.
bash shell’de komut tamamlama özelliği mevcut.
rivet --help (rivet’le birlikte kullanılabilecek komutların listesi vb.)
rivet --list-analyses (mevcut analizlerin listesi ve analize ait kısa bilgi)
rivet --show-analysis=ANALİZ_ADI (analizle ilgili daha detaylı bilgi)
Son Rivet versiyonunda (v1.8.2) 200‘den fazla plug-in bulunmakta.
Sercan Sen
12
12/29
8 Ocak 2013
Standart Analizlerin Çalıştırılması
rivet --list-analyses
mkfifo /tmp/$USER/myFIFOfile.hepmc
agile-runmc Pythia6:422 --beams=LHC:7000 -n 100 -o
/tmp/$USER/myFIFOfile.hepmc
rivet -a MC_GENERIC /tmp/$USER/myFIFOfile.hepmc
oluşan çıktı dosyasının adı:
Rivet.aida
Sercan Sen
13
13/29
8 Ocak 2013
Standart Analizlerin Çalıştırılması
PLOTLARI OLUŞTURMAK
rivet-mkhtml Rivet.aida (oluşan histogramlar bir HTML sayfasında
görüntülenir)
compare-histos Rivet.aida
make-plots --pdfpng *.dat
Sercan Sen
14
14/29
8 Ocak 2013
Standart Analizlerin Çalıştırılması
DATA analizlerinin run edilmesi
rivet --list-analyses ATLAS (Tüm ATLAS analizlerini listeler)
herhangi bir MC generatörü ile olayların HepMC formatında üretilmesi...
rivet -a ATLAS_2010_S8591806 /tmp/$USER/myFIFOfile.hepmc
-H ATLAS.aida
Sercan Sen
15
15/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı
Bir deneysel paper için Rivet plug-in’i yazılması
1. Rivet plug-in’inin adının belirlenmesi
2. DATA.aida dosyasının HepDATA’dan bulunması yada oluşturulması.
3. Rivet plug-in’i için *cc, *info ve *plot dosyalarinin hazırlanması
4. Plug-in derlenmesi, çalıştırılması ve plot edilmesi
Rivet hadron düzeyindeki generator outputlarını okuduğu için,
yalnızca deneysel paper’daki detektör etkileri için düzeltilmiş
ölçüm sonuçları (plotları) ile ilgileniyoruz.
Sercan Sen
16
16/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı
CMS ve ATLAS’ın sqrt(s)=7 TeV’deki pp inelastic cross section ölçümleri
Hadron düzeyindeki tanım
yüklü parçacıklar için:
http://arxiv.org/pdf/1210.6718v1.pdf
ξ yöntemi ile:
ATLAS: http://arxiv.org/pdf/1104.0326v1.pdf, 2. sayfa
Sercan Sen
17
17/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 1.adım
1. Rivet plug-in’inin adının belirlenmesi
Öncelikle bu paperların INSPIRE (SPIRES) id’leri belirlenmeli
rivet-find-id
Rivet plug-in’inin adı: CMS_2012_I119338
Sercan Sen
18
18/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 2.adım
2. DATA.aida dosyasının HepDATA’dan bulunması yada oluşturulması.
HepDATA: HEP paperları için database http://durpdg.dur.ac.uk/
Aranılan paper için datanın nümerik değerlerini içeren aida dosyası
HepDATA’dan alınır. HepDATA’da henüz yoksa (paper bir journalda
yayınlanmadıysa aida file’ı şu şekilde oluşturabilir)
root2flat name.root
cat *.dat > analiz_adi.dat
flat2aida analiz_adi.dat
Histogram binleri ve karşılık
gelen değerler (deneyin ölçüm
sonuçları) aida dosyasında tutulur.
Sercan Sen
19
19/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
CMS_2012_I119338.info dosyasının oluşturulması
*.info dosyaları
analiz hakkında kısa bilgileri
run bilgisini
cross section
beam
BibTeX
id, reference
gibi bilgileri içeren Text dosyalarıdır.
Sercan Sen
20
20/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
CMS_2012_I119338.plot dosyasının oluşturulması
*plot dosyası histogram başlığını, eksen adlarını, Log / Lin, Legend pozisyonunu vb
içeren text dosyalarıdır.
histogramlar en genel şekilde n=0,1,2... olmak üzere dn1-xn1-yn1 olarak adlandırılır.
Sercan Sen
21
21/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
CMS_2012_I119338.cc dosyasının oluşturulması
Rivet analizi C++ dilinde yazılır.
Projectionlar (ChargedFinalState, FinalState, IdentifiedFinalState,
VisibleFinalState, VetoedFinalState, NeutralFinalState...) kullanılarak gerekli son
durum parçacıkları çağırılabilir.
Bining otomatik olarak aida file’dan alınır.
Sercan Sen
22
22/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
Projectionlar event loop’u içerisinde uygulanır.
Event weight’lerine dikkat edilmesi önemlidir.
Aşağıdaki satırlarda charged particles üzerinden
yapılan ölçümlere karşılık gelen “bin”ler
doldurulmakta. initialize metodunda eta ve pt
kesimleri uygulandığı için burada tekrar
uygulanmasına gerek kalmıyor !
Sercan Sen
23
23/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
Rivet içerisinde aranılan birçok function vb mevcut.
sort by rapidity, sort by pseudorapidity, deltaPhi ... Bu functionlar pluginlerin daha kısa şekilde yazılmasını ve hata oranını, kullanıcı bağımlı
fonksyionları ortadan kaldırıyor.
Sercan Sen
24
24/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
C++ STL kullanılabilir.
Bu kısımda \xi yöntemi kullanılarak histogramın ilk bin
değeri doldurulmakta. vetoEvent return’a karşılık
geliyor.
Sercan Sen
25
25/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 3.adım
Finalize metodunda histogramlar normalize veya scale edilebilir.
Plug-inlerin Rivet içindeki class’lar ile linkte belirtilen style kullanılarak
yazılması tercih edilir.
https://rivet.hepforge.org/trac/wiki/CodingStyleGuide
Benzer şekilde başka bir deneysel paper alarak o papera ait Rivet plug-inini
yazabilir ve bir sonraki Rivet paketine eklenmesi için istekte bulunabilirsiniz.
Sercan Sen
26
26/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 4.adım
4. Plug-in derlenmesi, çalıştırılması ve plot edilmesi
Kendi yazdığınız analizini derlemek, fifo dosyasına HepMC olayları
üretmek ve Rivet analizi ile bunları okumak, sonra da plot etmek için
aşağıdaki shell script yeterli.
Lxplus’ta:
cd ~ssen/public
./run.sh
Sercan Sen
27
27/29
8 Ocak 2013
Kendi Rivet analizinizin yazımı / 4.adım
plotların html sayfasında görünümü
Oluşturulan aida dosyası rivet-mkhtml python scripti kullanılarak plot
edilebilir. data noktaları dataya ait aida dosyasından otomatik olarak
alınır.
Sercan Sen
28
28/29
8 Ocak 2013
Sonuç
Rivet nedir ?
Monte Carlo olay üreteçleri için ayar (tuning) ve doğrulama
(validation) aracı ve çok daha fazlası
Nasıl yüklenir ?
https://rivet.hepforge.org/trac/wiki/GettingStarted
Yüklenmeden nasıl kullanır ?
Genser üzerinden.
lxplus:/afs/cern.ch/sw/lcg/external/
Rivet komutları
rivet --help :)
Rivet içindeki standart analizlerin çalıştırılması
rivet -a ANALİZ_ADI
Bir deneysel paper’ın Rivet plug-inin yazılması
örnek olarak Rivet 1.8.2 paketi içerisindeki
CMS_2012_I119338 analizi yazıldı.
Slaytlarla ilgili sorular için: [email protected]
Sercan Sen
29
29/29
8 Ocak 2013
Backup
Sercan Sen
30
8 Ocak 2013