Francesco Perfetto a écrit : >Hi All, > >I have the following problem: >I use the TVectorD class in my program, >... >/ definizione della Fermi Dirac e della tripla gaussiana >Double_t norm_FD[] = {474.76,466.72,459.35,423.14}; >Double_t parFD[4][4]; >Double_t par3G[9][21]; > >void riempi() >{ > Int_t kfd = 0; > for(Int_t i=1; i<=4; i++){ > for(Int_t j=0; j<4; j++){ > TVectorD *par = (TVectorD*)fpar->Get(Form("par%d",i)); > parFD[j][kfd] = par(j); <<<<<<<---------THIS IS LINE 81 > } > kfd++; > } > > Int_t kg3 = 0; > for(Int_t i=5;i<=25; i++){ > for(Int_t j=0;j<9; j++){ > TVectorD *par = (TVectorD*)fpar->Get(Form("par%d",i)); > par3G[j][kg3] = par(j); <<<<------THIS IS LINE 90 > } > kg3++; > } >} > >... > >when I compile my program I have the following errors: > >likelihood.cc: In function `void riempi()': >likelihood.cc:81: `par' cannot be used as a function >likelihood.cc:90: `par' cannot be used as a function >gmake: *** [Linux/likelihood.o] Error 1 > >Can anyone help me? > >I use root 4.00/04 on linux redhat 9.0 > >P.S. The same function riempi() work very well from the root prompt: > >root [0] .L inserimento_numeri.C >root [1] riempi() > > >Thanks >Francesco. > > > > > Hello Francesco, The parenthesis cannot be used directly on a pointer to a TVector. Instead of parFD[j][kfd] = par(j); par3G[j][kg3] = par(j); type parFD[j][kfd] = (*par)(j); par3G[j][kg3] = (*par)(j); I hope this helps. -- Daniel CUSSOL LPC Caen IN2P3/ENSICAEN/Universite de Caen Boulevard du Marechal Juin 14050 CAEN CEDEX e-mail : cussol@in2p3.fr Tel : +33-(0)2-31-45-29-73 FAX : +33-(0)2-31-45-25-49
This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:08 MET