Gå til innhold

Erklære og sette variable i headerfil


Anbefalte innlegg

Skrevet (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 av kyrsjo
Videoannonse
Annonse
Skrevet

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 ?

Skrevet

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

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...