Re: [ROOT] problem with MakeClass()

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Sep 20 2002 - 22:04:32 MEST


Hi Francesco,

It is difficult to come with a diagnostic without a full copy of your
code. One thing wrong for sure, You should remove the line#
  gROOT->Reset();

This statement should be used only in unnamed macros executing in the
global scope. In your case, this has the effect to remove all the
definitions in #include "ana_dali_mc.h"

Rene Brun

On Fri, 20 Sep 2002, Perfetto Francesco wrote:

> Hi Rooters,
> I have a problem with a MakeClass().
> I have do a chain of root files and to this chain I have applicate
> MakeClass() method that crete me the two files analisi.C and analisi.h.
> In the file analisi.C I have put my analisys program; this program recall
> a function (that I have put out the function analisi::Loop() and is
> important that it stay out) that use variables included in the chain,
> the problem is that after load the program (.L analisi.C, analisi
> mio),when use the loop function (mio.Loop() ) it say me :
> root [0] .L ana_dali_mc.C
> root [1] ana_dali_mc mio
> root [2] mio.Loop(110)
> Error: < Error: Symbol ntv is not defined in current scope
> FILE:ana_dali_mc.C LINE:13
> Error: Binary operator oprand missing FILE:ana_dali_mc.C LINE:13
> *** Interpreter error recovered ***
> root [3]
> 
> Someone can tell me where i mistake ?
> 
> Double_t delta_egamma()
> {
>   const Double_t Mpich = 139.56995;
> ..
> 
>    for(Int_t i=0;i<ntv;i++) // ntv = numero tracce da un vertice.
>      {
>        num_v = iv[i];       // iv[ntv] = indice di vertice.
>  ...
> }
> 
> #define ana_dali_mc_cxx
> #include "ana_dali_mc.h"
> 
> gROOT->Reset();
> 
> void ana_dali_mc::Loop(Int_t howMany)
> {
> ...
>        taglio = delta_egamma();
>         tmc ->Fill();
>     ...
>   tmc->Write();
>   f1->Write();
>   f1->Close();
> }
> 
> 					Regards,
> 					Francesco.
> 



This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:10 MET