Il codice non deve essere bello, deve essere ottimizzato.
Sono d'accordo, ma fino a un certo punto. Codice ottimizzato che però è scritto da cani, senza commento, senza consistenza interna nel naming delle variabili o delle funzioni, senza indentazione o con indentazione alla cazzo di cane potrà anche girare bene, ma quando si è in una collaborazione in cui spesso il codice di A finisce nelle mani di B sarebbe cosa buona che i listati fossero ordinati e comprensibili.
ma tu praticamente cosa devi fare?
Nulla di complicato, per la verità: mi è stata data da studiare una certa reazione fisica, un decadimento di un atomo di cesio che avviene in determinate condizioni e dal quale nascono ben precisi prodotti. In pratica devo implementare le equazioni che governano questo decadimento in modo tale che siano soddisfatte le varie conservazioni fisiche (essenzialmente quantità di moto ed energia); a partire da una cinematica in cui tutto è ben definito, devo randomizzare le direzioni di emissione di tutto il bordello e salvarmi tutte le variabili cinematiche associate. Quindi devo tracciare le particelle, il che significa che devo far considerare al programma il fatto che abbiano percorso un certo cammino, il tutto tenendo conto degli errori di una eventuale misura (quindi risoluzione degli strumenti, eventuali inefficienze e via dicendo).
Il tutto va ripetuto in svariate iterazioni per vedere che risultati escono alla fine, se sono consistenti tra loro o se vanno a cazzo.
In sè e per sè non è difficile, solo che è un po' lungo e io sto iniziando solo ora la parte del tracciamento delle particelle. Volendo scendere nei dettagli, ho creato una classe "particella" in cui ci sono le sue varie proprietà, tipo la massa, le tre componenti della quantità di moto, l'energia totale, l'energia cinetica, oltre a tutti i metodi set-get per impostarli e recuperarli. Il tutto verrà implementato nel framework di quesa piattaforma di analisi dati, ROOT, sviluppata al CERN, che permette di disegnare istogrammi, grafici, minimi quadrati ed in generale operazioni di analisi dati.