Tags:
create new tag
, view all tags

Jak analizowac dane rzeczywiste za pomocą DaVinci i Gangi

Dane

Analize zaczynamy od wyboru odpowiednich danych. Ustawiamy proxy komenda:
lhcb-proxy-init

Po zalogowaniu na lxplus i wpisaniu komendy:

lhcb_bkk
w oknie terminala, zostanie wyswietlone okno umozliwiajace wybor danych. W zaleznosci od tego, jakich danych szukamy, mozemy je posortowac wykorzystujac np. EventType, SimulationCondition lub Run/Production number. Dane rzeczywiste z eksperymentu znajduja sie w katalogu: LHCb/Collision10/...

Dokladny opis bookkeepingu mozna znalezc w BookKeeping

Analiza danych w DaVinci

Dzialajacy (w wersji DaVinci v26r1), minimalny skrypt DaVinci do analizowania danych:

from Gaudi.Configuration import *
from Configurables import DaVinci
from Configurables import AuditorSvc, ChronoAuditor
AuditorSvc().Auditors.append( ChronoAuditor("Chrono") )


##### tylko dla najnowszych danych 
from Configurables import CondDB
CondDB().IgnoreHeartBeat = True  
##############################


##### opcjonalnie mozna tez wstepnie przefiltrowac czastki (ciecie na TrChic2) i odrzucic przypadki beam gas, microbias ...
# Mimic the new default tracking cuts
from CommonParticles.Utils import DefaultTrackingCuts
DefaultTrackingCuts().Cuts = { "Chi2Cut" : [0,5] }
 # Remove the microbias and beam gas etc events before doing the tagging step
regexp = "HLT_PASS_RE('Hlt1(?!ODIN)(?!L0)(?!Lumi)(?!Tell1)(?!MB)(?!NZS)(?!Velo)(?!BeamGas)(?!Incident).*Decision')"
from Configurables import LoKi__HDRFilter
filterHLT = LoKi__HDRFilter("FilterHLT",Code = regexp )
################################


##### konfiguracja opcji DaVinci

DaVinci().PrintFreq = 500
DaVinci().EvtMax = 100000

#pliki wyjsciowe
DaVinci().HistogramFile = 'DV_histo.root'
DaVinci().ETCFile = "etc.root"

#opcjonalnie - jezeli wczesniej zdefiniujemy filterHLT
DaVinci().EventPreFilters = [ filterHLT ]

#ustawienie danych
DaVinci().DataType = "2010"
DaVinci().InputType = 'SDST'

##### plik z danymi
importOptions("$STRIPPINGSELECTIONSROOT/tests/data/RUN_79646_RealData+Reco06-Stripping10_90000000_SDST.py")

MessageSvc().Format = "% F%60WPICK7W%R%T %0W%M"

Do tak skonfigurowanego pliku DaVinci.py mozna zaimportowac plik z nasza selekcja (lub dowolny plik z jakims zadaniem), uzywajac opcji:

importOptions("my_DaVinci_selection.py") 

Zadanie mozna przeliczyc interakcyjnie, za pomoca komendy:

gaudirun.py DaVincy.py

Analiza danych w Gandze

Mozna tez do obliczen wykorzystac srodowisko Ganga. W tym celu modyfikujemy plik DaVinci_Ganga.py , znajdujacy sie w katalogu DaVinci_v*/Phys/DaVinci/job . Miminalny plik DaVinci_Ganga.py wyglada nastepujaco:

 
j = Job( application = DaVinci( version = 'v26r1' ) )
j.name = 'MyDaVinci'

# ustawienie odpowiedniej sciezki i dolaczenie pliku DaVinci.py z konfiruracja zadania
appOpts = j.application.user_release_area + '/DaVinci_' + j.application.version + '/Phys/DaVinci/options/'
j.application.optsfile = [ File ( appOpts+'DaVinci.py' ) ]

#wybor danych, np.:
j.inputdata = LHCbDataset( files = [
'LFN:/lhcb/MC/MC09/DST/00005113/0000/00005113_00000001_1.dst',
'LFN:/lhcb/MC/MC09/DST/00005113/0000/00005113_00004196_1.dst' ] )
#UWAGA - jezeli zdefiniujemy dane zarowno w DaVinci, jak i w Gandze, to priorytet maja dane z Gangi

#dalsze opcje Gangi
j.splitter = 
j.merger = 
j.outputdata =
j.backend  =

Wybor splittera/mergera/outputdata i backend, a takze sposob wysylania zadan poprzez Gange zostaly opisane dokladnie w sekcji ObslugaGangi

-- KatarzynaSenderowska - 26 Paz 2010

Topic revision: r5 - 2010-10-28 - KatarzynaSenderowska
 
This site is powered by the TWiki collaboration platform Powered by Perl This site is powered by the TWiki collaboration platformCopyright © 2008-2019 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback