15 Anni di programmazione

Aneddoti e Codici di un inguaribile ottimista

PAW

PAW (Physics Analysis Workstation) è un’applicazione CERN  usata per analizzare e rappresentare graficamente dati. La documentazione disponibile al seguente indirizzo è ottima e vi consentirà in breve tempo di diventare padroni del software. E’ possibile installare PAW anche sotto piattaforma Windows (consiglio fino a Windows XP per evitare bizzarri messaggi di errore) ma il mio suggerimento è di lavorare su una Ubuntu Desktop 9.10 dove sia stato installato l’intero pacchetto cernlib.

Il programma parte da linea di comando e si presenta come una sessione interattiva in attesa di istruzione dell’utente.

Strutture Dati

Ci sono diversi possibilità per organizzare e manipolare dati in PAW:

  • Histograms – Una serie di bin, ciascuno dei quali associati a un valore. Uno degli usi più comuni di un istogramma è rappresentare la distribuzione dei dati in uno o più variabili. Gli istogrammi possono essere mono o bi-dimensionali.
  • Vectors – L’equivalente degli array che ben conosciamo nei linguaggi di programmazione.
  • Ntuples – La classica definizione è quella di un Data Summary Tape (DST) che contenga 10000 eventi relativi a un certo esperimento. Ogni evento consiste di molte variabili (tipicamente nell’ordine delle centinaia) che descrivono completamente un certo stato. Se ci pensate bene, è quella che in un database chiamiamo tabella.
  • Functions – Funzioni mono e bi-dimensionali.

Kumac e Macro

Ogni commando PAW, oltre ad essere eseguito interattivamente, può essere salvato in un file di comandi, chiamato KUMAC. (Kuip MACROS) e successivamente eseguito tramite il comando EXEC. Una macro importante è .pawlogon.kumac che si trova nella home directory scelta per il programma. Tale kumac contiene tutte le nostre impostazioni preferite (pensate ad esempio alle impostazioni di un istogramma) e viene eseguita all’inizio di ogni sessione di PAW.

 

 

In allegato troverete due Kumac di esempio.

La prima (Vettori.kumac) è molto semplice nella sintassi; con esso definiamo, assegniamo valori e rappresentiamo graficamente alcuni vettori.

La seconda (histo.kumac) mostra un’altra grande capacità di PAW: eseguire dinamicamente codice Fortran caricato sotto forma di file esterno. L’allegato contiene due file di codice Fortran: il primo (htfun1.f) calcola i valori di una una funzione della variabile x mentre il secondo (urout.f) estrae dei numeri casuali (tramite una funzione delle CERLIB) e con essi riempie l’istogramma 110 definito nella kumac stessa. E’ ovvia che l’istruzione CALL HFILL(110,X,0.,1.) darebbe errore in fase di esecuzione se l’istogramma non fosse stato definito nella kumac.

 

Riassumendo, con PAW abbiamo a disposizione uno strumento matematico potentissimo per l’analisi dei dati (Ricordate,infatti, che esso è linkato alle CERNLIB!) Possiamo usarlo interattivamente o caricando codice scritto in opportune kumac. E’ possibile invocare codice fortran esterno nel caso di analisi più complesse ed esso stesso sarà in grado di riempire istogrammi.

Il grosso inconveniente è che occorre conoscere il Fortran, Tuttavia, la buona notizia è che PAW è evoluto in un altro framework, chiamato ROOT, che è un interprete di istruzioni C++ (immagino già l’entusiasmo dei lettori!).

Scriverò un altro posto dedicato a PAW, e in particolare sull’I/O.

 

Published 17 lug 2010 18:33 da Salvatore Sorrentino