Pachetul SUSYDPDMaker este un utilitar creat pentru utilizatorii SUSY WG pentru a crea DPD-uri primare și, în cele din urmă, și pentru a crea DPD-uri secundare și terțiare. Este nevoie de ESD-uri, AOD-uri și SUSYDPD-uri ca intrare și creează DPD-uri subțiri/subțiate/degresate ca ieșire sub formă de fișiere pool.root. Lucrarea AOD-> DPD (precum și D1PD-> D2PD-> D3PD) este configurată de scripturi python. Slimming/thinning/skimming of containers/events sunt conduse de același fișier SUSYDPD_jobOption.py, dar sunt toate independente unul de celălalt și vor crea fluxuri diferite și ieșiri separate. PyParticleTools sunt folosite pentru a crea DPD-urile primare și secundare. Algoritmul de slăbire care este utilizat pentru a crea DPD-urile primare sunt cele definite în pachetul DPDUtils.

twiki

Versiunea actuală a SUSYDPDMaker este 00-00-02. Aceasta include toate scripturile/exemplele de slăbire/subțire/descompunere definite mai jos.

Orice comentariu/sugestie poate fi postat în hypernews SUSY WG sau direct la Fabrizio Salvatore.

În cele ce urmează puteți găsi instrucțiunile despre cum să instalați SUSYDPDMaker într-o versiune 13.0.40 la CERN.

- Mai întâi, pregătiți-vă contul pentru a rula pachetul; în cele ce urmează, pachetul este instalat într-un director numit „test” care este definit în „test” în directorul dvs. $ HOME:

- Faceți fișierul de cerințe în cmthome, apoi rulați config și setup.sh:

- Apoi, obțineți (și compilați) pachetele necesare:

- Acum creați un director „run” pe care îl veți folosi pentru a rula joburile AOD-> DPD:

În acest moment, instalarea este terminată și vă puteți configura lucrarea pentru a face DPD-urile.

Principalul script pentru a rula jobul AOD-> DPD este share/SUSYDPDMaker.py.

share/SUSYDPD_PoolOutput.py este scriptul care conține lista de containere care sunt selectate pentru DPD-urile primare (și, de asemenea, secundare/terțiare). O listă a tuturor containerelor AOD/ESD disponibile poate fi găsită pe pagina Atlas.AODClassSummary.

Partajarea fișierului jobOptions/SUSYDPD_jobOptions.py este utilizat pentru a personaliza lucrarea și este obținut de scriptul SUSYDPDMaker.py.

Pentru a crea sau modifica DPD-uri pool.root, exemple de slăbire, subțire și degresare sunt furnizate în SUSYDPDMaker/share. Pentru producția DPD primară, vor fi aplicați doar algoritmii de slăbire. Algoritmii de subțiere și descuamare care sunt descriși mai jos sunt doar exemple de ceea ce s-ar putea face pentru a produce DPD-uri secundare și terțiare și sunt furnizate pentru a ajuta utilizatorii să își scrie proprii algoritmi de subțiere/descuamare.

Slăbire

Prin slăbirea containerelor, un obiect care nu prezintă interes pentru analiză este eliminat pentru a reduce dimensiunea totală a containerului în sine (de exemplu, matricea de erori pentru piesele cu Pt GeV). În SUSYDPDMaker sunt folosite scripturile de slăbire jet și track definite în DPDUtils/share și scriptul de slăbire adevăr definit în SUSYDPDMaker/share/TruthSlimming.py. Exemplul de slăbire poate fi văzut în share/SUSYDPD_PoolOutput.py. Dacă doriți să adăugați și apoi să executați mai multe scripturi de slăbire în definiția jobului, scripturile de slăbire trebuie definite în SUSYDPDMaker/share/SUSYDPD_Slimming.py.

Variabila de mediu:

este definit în SUSYDPD_jobOptions.py pentru a rula jetul și urmărirea slăbirii în jobul AOD-> DPD. Dacă de asemenea

slăbirea adevărului este aplicată și pentru a obține DPD primar. Containerele „slimmed” sunt apoi adăugate la un în SUSYDPD_PoolOutput.py. Algoritmii de slăbire trebuie să fie înregistrați la un flux de ieșire în SUSYDPD_PoolOutput.py astfel:

Subțierea

Subțierea constă în scrierea doar a unei fracțiuni dintr-un container. Recipientele „subțiate” sunt adăugate la un

flux în SUSYDPD_PoolOutput.py (ca pentru „slmming” de mai sus).

În această versiune a SUSYDPDMaker există 2 moduri diferite de a efectua subțierea containerelor.

Subțierea utilizând ThinningSvcWrapper în DPDUtils

Pentru a utiliza această metodă, setați fișierul UseAtlas.ThinningSvc variabilă la Adevărat SUSYDPD_jobOptions.py. Există un exemplu de algoritm de subțiere în SUSYDPDMaker/share/EleThinAlgo.py care poate fi folosit ca șablon. Acest algoritm va diminua ElectronAODContainer selectând doar acei candidați cu:

Algoritmii de subțiere trebuie să fie declarați în share/SUSYDPD_Atlas.ThinningSvc.py și apoi înregistrați într-un flux de ieșire în SUSYDPD_PoolOutput.py, astfel:

Containerul subțiat din ieșirea DPD va avea același nume al containerului original (de exemplu, ElectronAODContainer în exemplul furnizat). Numai următoarele containere pot fi diluate folosind acest serviciu:

Subțierea utilizând metoda src/DPDThinner.cxx (copie profundă)

Pentru a utiliza această metodă, setați fișierul UseAtlas.ThinningSvc variabilă la Fals SUSYDPD_jobOptions.py.

Un exemplu de subțiere poate fi găsit în SUSYDPDMaker/src/DPDThinner.cxx, care este utilizat pentru a selecta doar candidații în containerele Electron, Photon, Muon Tau și Jet care îndeplinesc o anumită cerință (de exemplu, Pt> 5 GeV). Algoritmii de subțiere pot fi controlați prin fișierul jobOptions SUSYDPDMaker/share/SUSYDPD_Thinning.py.

Containerele de ieșire rezultate sunt o „copie profundă” a containerelor originale, iar numele containerelor subțiate va trebui să fie diferit de numele celor originale (de exemplu, în cazul subțierii Containerului ElectronAOD, containerul subțiat din DPD va trebui apelat de exemplu NewElectronAODContainer)

Desfrânare

Skimming este o metodă de filtrare a evenimentelor care trebuie scrise în ieșirea DPD. Unii algoritmi de skimming sunt disponibili în prezent în SUSYDPDMaker pentru a skim evenimente folosind tăieturi specifice pe containere Electron, Photon, Muon, MissingET, Tau, Jet și/sau Track. Exemple pot fi găsite în:

Pentru ca algoritmii de skimming să fie eficienți, trebuie să fie înregistrați într-un flux de ieșire în SUSYDPD_PoolOutput.py, astfel: dacă urmează să fie aplicați în SAU sau așa: dacă trebuie să fie aplicați în ȘI. Algoritmii de filtrare trebuie să fie declarați în SUSYDPDMaker/share/SUSYDPD_Skimming.py pentru a putea fi aplicați în scriptul poolOutput. Containerele „degresate” sunt apoi adăugate la un în SUSYDPD_PoolOutput.py (la fel ca pentru „slăbirea” și „subțierea” de mai sus).

Rularea SUSYDPDMaker interactiv în scopuri de testare

Pentru a face unele teste interactive AOD-> DPD, un fișier DPD de intrare și ieșire poate fi definit în acest fișier SUSYDPD_jobOptions.py. Odată ce lucrarea este configurată, mergeți în directorul „rulați” și faceți:

Acest lucru este util pentru a face un test interactiv că instalarea și configurarea funcționează corect. Pentru a rula producția primară DPD, vor fi utilizate instrumentele Grid (a se vedea mai jos un exemplu).

O modalitate ușoară de a produce DPD-uri și de a le pune la dispoziția tuturor prin intermediul dq2 este de a rula SUSYDPDMaker cu „pathena”. Pentru a putea face acest lucru, PandaTools trebuie să fie instalat în „test”, urmând instrucțiunile de mai jos.

- Accesați zona de testare:

- Instalați instrumentele Atlas.Panda:

- Accesați directorul SUSYDPDMaker/cmt

- Modificați „cerințele” necomentând următoarea linie:

- Rulați config, setup.sh și apoi faceți:

- Mergeți în directorul „rulați” și rulați „pathena”:

unde este setul de date AOD de intrare care trebuie procesat și este setul de date de ieșire corespunzător. Numele setului de date de ieșire trebuie să fie de tipul:

După finalizarea lucrării, setul de date de ieșire va fi disponibil pe dq2. Consultați instrucțiunile din registrul de lucru de pe DQ2 pentru a obține informații despre modul de recuperare a unui set de date folosind comenzile dq2.

Mai multe informații despre Atlas.Panda pot fi găsite aici.

Actualizări majore:
-- Fabrizio Salvatore - 17 martie 2008

% RESPONSABIL% FabrizioSalvatore
% REVIZUIRE% Niciodată revizuit