kyrsjo Skrevet 24. juli 2009 Del Skrevet 24. juli 2009 (endret) Hei! Jeg holder på å simulere et partikkelfysikkeksperiment, og må derfor "plassere ut" en del utstyr. Jeg har en klasse som gjør dette, og det hadde vært mest oversiktlig om jeg kunne satt koordinatene i form av variable i en headerfil, noe ala: //header #include "globals.hh" class myDetectorConstruction :public G4VUserDetectorConstruction { public: myDetectorConstruction(); private: static const G4double DIM_BAT_x(25*cm), DIM_BAT_y(6*cm), DIM_BAT_y(3*cm); (osv.) }; //implementasjon #include "myDetectorConstruction.hh" myDetectorConstruction::myDetectorConstruction() { (...massevisavkode...) G4Box* BAT_box = new G4Box(blablaba, DIM_BAT_x, DIM_BAT_y, DIM_BAT_z); (..massevisavkode...) } (Mulig at noen av funksjonskallene etc. ikke er riktige, men poenget er å erklære dimensjoner i header. "cm" etc. er erklært i globals.hh, som kommer fra rammeverket GEANT4. GCC 4.3.2 er kompilatoren, om det har noe å si. *EDIT: Fiksa på bbcode så det så penere ut Endret 24. juli 2009 av kyrsjo Lenke til kommentar
kyrsjo Skrevet 25. juli 2009 Forfatter Del Skrevet 25. juli 2009 Det ser ut til at jeg kan bruke globale preprosessordirektiver ala #define DIM_DUT_DZ 200*um[\code] på toppen av den aktuelle headerfila, men det er jo ganske stygt. Ingen som vet om en bedre måte ? Lenke til kommentar
Giddion Skrevet 26. juli 2009 Del Skrevet 26. juli 2009 Nå har ikke jeg en komplator tilgjengelig, men jeg mener at du kan vel gjøre noe ala dette: static const double[3] SensorDimXYZ = {25*cm, 6*cm, 3*cm}; for så (...massevisavkode...) G4Box* BAT_box = new G4Box(blablaba, SensorDimXYZ[0], SensorDimXYZ[1], SensorDimXYZ[2]); (...massevisavkode...) Lykke til Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå