Passare un vettore da un file a un altro

di il
8 risposte

Passare un vettore da un file a un altro

Ciao a tutti,
ho quwsta funzione
void B1DetectorConstruction::PassSamplePosition(){
	sampleLabPos=NfilledchamberRelPos+sampleRelPos;	
	
        
}
nel file B1detectorconstruction.cc

sampleLabPos è un vettore che mi da una posizione (x,y,z)

io devo mandare questo vettore a un altro file chiamato B1PrimaryGeneratorAction. Qualcuno sa come posso fare?

8 Risposte

  • Re: Passare un vettore da un file a un altro

    Quello che chiedi non è chiaro. Che intendi con mandare ad altro file? Stai mostrando solo un metodo di una classe sconosciuta che fa una chiamata che non dice molto.

    Parliamo di due programmi che girano indipendentemente tra loro?

    O di un solo programma? E in questo caso come è organizzato? Di che tipo è quantità di dati parliamo?
  • Re: Passare un vettore da un file a un altro

    oregon ha scritto:


    Quello che chiedi non è chiaro. Che intendi con mandare ad altro file?
    Ciao, oregon, innanzitutto grazie.
    Nel file B1DetectorConstruction.cc calcolo il valore del vettore sampleLabPos nella funzione
    void B1DetectorConstruction::PassSamplePosition(){
    	sampleLabPos=NfilledchamberRelPos+sampleRelPos;	
    	
            
    }
    
    Questo valore, devo passarlo a un altro file, dello stesso programma, chiamato B1PrimaryGeneratorAction.cc
    Ovvero, in questo file ho la funzione:
    void B1PrimaryGeneratorAction::GeneratePrimaries(G4Event* anEvent)
    {
    fGeneralParticleSource->SetParticlePosition(sampleLabPos);
      fGeneralParticleSource->GeneratePrimaryVertex(anEvent);
    }
    
    Quindi, come vedi, mi serve che
    sampleLabPos
    sia "letto" da B1PrimaryGeneratorAction.cc per essere qui utilizzato. Cioè B1PrimaryGeneratorAction deve sapere che sampleLabPos è un vettore (0,0,n) dove valore n è il numero calcolato



    Questi sono i files https://we.tl/t-fFoX7bixN




    Ps. Il programma, in realtà è una simulazione Geant4, ovvero un toolkit per simulare interazioni di particelle. In pratica, ci sono delle librerie che vengono chiamate..ma è codice c++.

    Ha di diverso solo qualche nome...ad esempio le variabili anzichè double, si chiamano G4double, ecc. ma in realtà ovviamente funziona anche chiamando con i nomi propri del c++...quindi double, ecc.
  • Re: Passare un vettore da un file a un altro

    Il vector sampleLabPos è un membro public della classe B1DetectorConstruction

    Quindi, da una istanza di quella classe, puoi accedere direttamente a sampleLabPos
  • Re: Passare un vettore da un file a un altro

    Ciao oregon, potresti scrivermi un pezzo di codice di esempio per far questo per favore?
  • Re: Passare un vettore da un file a un altro

    Scusa ma non ha senso. Tu non hai un mail in cui usi quelle classi? Lo vediamo?
  • Re: Passare un vettore da un file a un altro

    Si, ecco il main https://we.tl/t-4g1GzVVmu
  • Re: Passare un vettore da un file a un altro

    Identifica i due oggetti delle due classi istanziati nel tuo main (non sono al computer, posso solo darti indicazioni, ma tu devi saper usare la OOP con il C++ se vuoi risolvere).

    Il vettore di cui parli è pubblica quindi, una volta istanziato un oggetto che usa quel vettore, passa il riferimento dell'oggetto all'altro oggetto che lo deve usare tramite apposito metodo che lo accetta.
  • Re: Passare un vettore da un file a un altro

    Ma come si fa a instanziare?
Devi accedere o registrarti per scrivere nel forum
8 risposte