Hi rooters, i am trying to run a macro (run.C) that calls an other macro (writing.C), with command: gROOT->ProcessLine(.x writing.C); At command: .x run.C, ROOT executes all command line but does not execute the line gROOT->ProcessLine(.x writing.C); ROOT ends the main macro execution (run.C) without execute the macro writing.C . Only when you do the command to exit from ROOT (.q), ROOT executes the macro writing.C . I do not understand why. I send you two macro, if you want try to run them. Thank you in advance Annalisa ************************************************************************* * University of Bologna | | decaro@bo.infn.it * * Physics Department | +39 051 20 91103 | * *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* * University of Salerno | | * * Physics Sciences Department | +39 089 96 5359 | * * (INFN of Napoli) | | * *-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* * CERN - EP division | | decaro@mail.cern.ch * * (Bld.29 R019) | +41 22 76 77767 | * ************************************************************************* void writing() { //cout<<" The strip number is "<<istrip<<endl; //cout<<" The run number is "<<irun<<endl; cout<<" The HV is "<<hv<<'\n'; cout<<" The rate is "<<rate<<'\n'; if (iscan==0) then { cout<<" The scanning is in X direction (iscan = "<<iscan<<")"<<'\n'; }elseif (iscan==1) then { cout<<" The scanning is in Z direction (iscan = "<<iscan<<")"<<'\n'; } cout<<" The channel number is "<<nch<<'\n'; } /* **************************************************** * * This is the main program for test beam data analysis * * **************************************************** */ #include <iostream.h>; Float_t hv = 13; Float_t rate = 450; Int_t iscan = 2; Int_t nch = 0; void run() { do { cout<<"The scanning is in x (0) or in z (1) direction? "; cin >> iscan; } while (iscan>=2); if (iscan==0) { do { cout<<"Give me the channel number (1,2,3,4,5), please "; cin >> nch; } while (nch==0||nch>5); } elseif (iscan==1) { do { cout<<"Give me the channel number (1,2), please "; cin >> nch; } while (nch==0||nch>2); } //Open data file TFile* file = new TFile("strip4_z2.root"); file->Print(); gROOT->ProcessLine(".x writing.C"); file->ls(); file->Close(); }
This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:40 MET