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