Tracce in CMSSW Giuseppe Cerati Università e INFN Milano Bicocca CMS Italia - Tutorial di Software e Calcolo – Napoli, 12/02/2006
Outline Ricostruzione di Tracce in CMS Implementazione in CMSSW Come runnare un job di ricostruzione Semplice accesso alle Tracce ricostruite: bare ROOT Esempio di EDAnalyzer Informazioni extra
Combinatorial Track Finder Algoritmo di ricostruzione di default in CMSSW (come in ORCA) Basato sul Kalman Filter. Parte da una coppia di hit consecutivi (seed) e costruisce la traccia scegliendo gli hit compatibili nei layer successivi. Una volta selezionati gli hit viene eseguito un fit finale (smoothing: avanti e poi indietro) della traccia per una migliore stima dei parametri in ogni punto della traccia. Per maggiori dettagli vedi talk di Boris a CMS Italia 2006: http://indico.cern.ch/materialDisplay.py?contribId=s1t4&sessionId=s1&materialId=0&confId=a06646 2) 3) 1) Seed Hit compatibili Hit non compatibili
Struttura di CMSSW Event È la classe che raccoglie le informazioni del singolo evento in analisi, e.g. hit, tracce, depositi calorimetrici... I moduli che inseriscono nell'evento queste informazioni sono chiamati EDProducer; la collezione degli oggetti di ogni tipo puo' essere presa da Event con il metodo getByLabel(...) EventSetup È la classe che raccoglie tutti i servizi comuni a tutti gli eventi, e.g. campo magnetico, geometria, algoritmi di ricostruzione... Questi servizi sono creati da appositi moduli chiamati ESProducer e possono essere ottenuti dalla classe EventSetup con il metodo get<ServiceName>() cmsRun Esiste un unico eseguibile: cmsRun. Vengono passati in input dei file di configurazione (.cfg) dove sono dichiarati i moduli da eseguire e con quali parametri. I moduli (di analisi e non) agiscono sull'evento utilizzando i servizi messi a disposizione dell'event setup.
Track Reconstruction Steps Il processo di ricostruzione inizia con la ricostruzione locale dei digis e termina producendo le Tracce. input RecHitCollection TrackCandidateCollection TrajectorySeedCollection Digis operazione Ricostruzione Locale Seeding Pattern Recognition Final Fit prodotto RecHitCollection TrackCandidateCollection TrackCollection TrajectorySeedCollection Event Event Tutti i moduli necessari per questo processo sono stati raccolti in due file cff: RecoLocalTracker.cff e RecoTracker.cff. RecoLocalTracker.cff e' responsabile della ricostruzione locale, mentre RecoTracker.cff della ricostruzione globale. RecoLocalTracker.cff e RecoTracker.cff sono inclusi, tra gli altri, in un file di configurazione piu' generale: Reconstruction.cff. Questo file raccoglie i parameters set per laricostruzione locale and globale di tutti i detector e degli oggetti di piu' alto livello (e.g. Vertici).
ctfWithMaterialTracks Moduli and file cfi modulo package, cfi/cff RecoLocalTracker/SiStripRecHitConverter/data/SiStripRecHitConverter.cfi RecoLocalTracker/SiStripRecHitConverter/data/SiStripRecHitMatcher.cfi RecoLocalTracker/SiStripRecHitConverter/data/StripCPEfromTrackAngle.cfi RecoLocalTracker/SiStripClusterizer/data/SiStripClusterizer.cfi RecoLocalTracker/SiPixelClusterizer/data/SiPixelClusterizer.cfi RecoLocalTracker/SiPixelRecHits/data/SiPixelRecHits.cfi siPixelClusters, siPixelRecHits, siStripClusters, siStripMatchedRecHits RecoTracker/TkSeedGenerator/data/GlobalMixedSeeds.cff RecoTracker/TkSeedGenerator/data/GlobalMixedSeeds.cfi globalMixedSeeds ckfTrackCandidates RecoTracker/CkfPattern/data/CkfTrackCandidates.cff RecoTracker/CkfPattern/data/CkfTrackCandidates.cfi RecoTracker/TrackProducer/data/CTFFinalFitWithMaterial.cff RecoTracker/TrackProducer/data/CTFFinalFitWithMaterial.cfi ctfWithMaterialTracks
Come runnare la ricostruzione setup di CMSSW: scramv1 p CMSSW CMSSW_1_2_0 cd CMSSW_1_2_0/src eval `scramv1 runtime -csh` cmscvsroot CMSSW cvs login [98passwd] disporre di un file con campione di eventi gia' digitalizzato (digitizedSample.root) https://twiki.cern.ch/twiki/bin/view/CMS/WorkBookSimDigi editare un file RecoTracks.cfg: sequence trackerlocalreco = {siPixelClusters, siPixelRecHits, siStripClusters, siStripMatchedRecHits} eseguire: cmsRun RecoTracks.cfg
La classe Track (Base) DataFormats/TrackReco/interface/TrackBase.h DataFormats/TrackReco/interface/Track.h Accesso a: reference point (point closest approach to beam line per tracce “standard”) momento al reference point errori (sui singoli parametri, matrice di covarianza) carica chi2, gradi di liberta' hit (vettore, numero di validi, invalidi) innermost e outermost measurement (pos, mom, errors, detId)
Semplice analisi con ROOT Prendere un file contenente tracce ricostruite con CMSSW, chiamato recoTracks.root. Eseguire: root recoTracks.root TBrowser b;
Per accedere ai dati in modo da poterli rielaborare: Creare un EDAnalyzer Per accedere ai dati in modo da poterli rielaborare: Script di ROOT (FWLite mode). Carica le librerie di CMSSW in ROOT e permette di usare le classi ed I metodi di CMSSW. EDAnalyzer. EDAnalyzer è lo strumento più completo perchè parte integrante di CMSSW: permette di riprocessare i dati accedendo nuovamente all’Event, all’EventSetup ed ai suoi servizi. Il comando mkedanalzr crea la struttura di un EDAnalyzer. L’opzione -track lo predispone ad analizzare le tracce dell’evento. da CMSSW_1_2_0/src: mkdir Demo cd Demo mkedanlzr -track DemoTrackAnalyzer cd DemoTrackAnalyzer/src Vengono creati il BuildFile e DemoTrackAnalyzer.cc. Non resta che editarli a piacere.
Semplice esempio di EDAnalyzer... Aggiungere la seguente riga al BuildFile: <use name=root> Includere in DemoTrackAnalyzer.cc le classi di ROOT per salvare istogrammi in un file di output: Aggiungere come variabili private i puntatori a un file di root e a un istogramma: Nel metodo beginJob(...) aprire il file di output (chiamato outfile.root) e creare l'istogramma: Nel metodo endJob() scrivere l'istogramma nel file di output: Nel metodo analyze() calcolare la massa invariante e riempire l'istogramma:
... e relativo DemoTrackAnalyzer.cfg da CMSSW_1_2_0/src/Demo/DemoTrackAnalyzer: cmsRun test/TrackAnalyzer.cfg root outfile.root TBrowser b;
Altri algoritmi Road Search Ulteriore algoritmo di ricostruzione tracce. Partendo da due hit di cui uno nei layer interni ed uno nei layer esterni, seleziona gli hit lungo “road” predefinite che collegano gli hit iniziali. http://indico.cern.ch/getFile.py/access?contribId=s16t4&sessionId=s16&resId=0&materialId=0&confId=a056066 http://indico.cern.ch/getFile.py/access?contribId=s2t3&sessionId=s2&resId=0&materialId=0&confId=a058543 http://indico.cern.ch/getFile.py/access?contribId=s1t1&sessionId=s1&resId=0&materialId=0&confId=a057610 Gaussian Sum Filter Gli elettroni nel tracker perdono energia soprattutto per bremsstrahlung. Pertanto la distribuzione di energia persa non può essere bene approssimata con una semplice gaussiana (Kalman Filter) ma con una mistura di più gaussiane (Gaussian Sum Filter). http://indico.cern.ch/getFile.py/access?contribId=s8t9&sessionId=s8&resId=0&materialId=0&confId=a022015 http://indico.cern.ch/getFile.py/access?contribId=s2t10&sessionId=s2&resId=2&materialId=0&confId=a041643
Altre operazioni avanzate + un esempio Refitting Nuovo final fit dopo aver, ad esempio, cambiato la geometria. Permette inoltre di accedere ai TrajectoryMeasurement ad ogni punto di misura (info non persistente). https://twiki.cern.ch/twiki/bin/view/CMS/WorkBookTrackReco#RefTr https://twiki.cern.ch/twiki/bin/view/CMS/WorkBookTrackReco#TrajLay Transient Tracks Estensione della classe Track. Accede ad ulteriori informazioni/caratteristiche: ad esempio permette di propagare i parametri ad ogni punto dello spazio, cosa utile per i vertici. https://twiki.cern.ch/twiki/bin/view/CMS/WorkBookVertexFittingTutorial#UseTransientTracks https://twiki.cern.ch/twiki/bin/view/CMS/TTUsage090l Associatori e Filtri Per analisi più complete è utile associare le tracce ricostruite a quelle simulate, ed applicare tagli opportuni. http://indico.cern.ch/materialDisplay.py?contribId=44&sessionId=19&materialId=slides&confId=6067 http://indico.cern.ch/materialDisplay.py?contribId=6&sessionId=3&materialId=slides&confId=10927 Validation Esempio di analisi completa si trova nel codice di validazione: Validation/RecoTrack. http://indico.cern.ch/getFile.py/access?contribId=0&resId=0&materialId=slides&confId=11930