Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //DEFINIRE UN MESSENGER
- //si usa per manipolare alcuni parametri, come il particlegun in run time.
- //ad esempio nella giometria lo si può usare per manipolare lo spessore del radiator, grazie al numero di fotosensori.
- mettiamoci nel detector construction.
- 1) ci sono molti messenger disponibili in geant4, quello generico è il più semplice da implementare
- nel detectorconstruction.hh si implementa
- #include G4GenericMessenger.hh
- adesso possiamo create oggetti ad esempio nella nostra sessione privata della classe MydetectorConstruction
- ...........
- private:
- G4GenericMessenger* fMessenger; //nome dell'oggetto
- .......
- adesso mi sposto in Mydetectorconstruction.cc
- nel costruttore scriviamo
- fMessenger* new G4GenericMessenger("this, "/detector/", "Detector Construction");
- //si definisce l'oggetto a cui ci riferiamo, noi scriviamo this perchè ci riferiamo al nostro detector construction, "detector" è il nome della cartella root in cui da adesso in poi si troveranno tutti i comandi, Detector Construction" è un tipo di help-test che sarà utile all'user per identificare che tipo di cose posso fare con questo messenger.
- //adesso possiamo usare questo messenger per definire i nostri comandi, DeclareProperty è la funzione da usare per definire i comandi.
- fMessenger->DeclareProperty("nCols", nCols, "Number of Columns");
- //mettiamo dentro i nomi dei comandi che vogliamo ripetere in geant4: "nCols=voglio cambiare i numeri dei fotosensori, il nome della variabile sarà ancora nCols , e poi metto un altro help-test per dire all'user quello che voglio fare con questo.
- //analogamente posso farlo con le righe
- fMessenger->DeclareProperty("nRows", nRows, "Number of Rows");
- //adesso dichiariamo queste due variabili nella parte privata della classe in detectorconstruction.hh
- private:
- G4int nCols, nRows
- //adesso definiamo in .cc il valore di queste variabili
- ncols=100;
- nrows=100;
- //adesso vediamo se compilando ci sono stati errori. la geometria non cambia ma nella visualizzazione grafica adesso ci sarà una cartella con scritto detector e il numero di colonne e righe da poter modificare. a questo punto sarebbe una buona cosa parametrizzare il codice.
Add Comment
Please, Sign In to add comment