> 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); Can the simple C-approach help you: #include "writing.C" instead of your gROOT->ProcessLine(.x writing.C); Valeri > 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() { > file://cout<<" The strip number is "<<istrip<<endl; > file://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); > } > > file://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