Re: [ROOT] TProfile::Add(TF1*,Double_t) ?

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sat Jun 02 2001 - 23:10:50 MEST


Hi Yannick,

The simplest solution to prototype quickly a user class deriving
from a ROOT class is to use ACLIC, the automatic interface to
the compiler and linker. In your case, do, eg

root > .L p2d.cxx+
root > TProfile2DY p;
root > etc

//file p2d.cxx
#include "TProfile2D.h"
   
class TProfile2DY : public TProfile2D {
   
public:
   TProfile2DY();
   virtual ~TProfile2DY() {;}
   void Add(TProfile2DY *p);
   
   ClassDef(TProfile2DY,1)
};
   ClassImp(TProfile2DY)
      
TProfile2DY::TProfile2DY()
{
}   

void TProfile2DY::Add(TProfile2DY *p)
{
}

Rene Brun

On Sat, 2 Jun 2001, Patois Yannick wrote:

> Hi Rooters,
> 
> Thanx to Rene for his latest answers :)
> There is a few more question...
> 
> I wanted to use TPRofile2D to represent the average of a value depending
> on two differents parameters (until now, I fill 2 TH2F and Divide).
> 
> But, this value has to be zeroed at some point (there is some noise
> offset to correct from). It seems to me that TProfile2D::Add, with a
> constant function is the way to go... But it was not implemented.
> 
> Could it be implemented this way ?:
> 
> (significativ extract -unchecked- for the loop, the rest is a mix of
> TH1::Add(TH1*,Double_t) and TProfile::Add(TProfile*,Double_t))
> <<<<
> 	cu  = c1*f1->EvalPar(xx);	
> 	fArray[bin]     += cu*fBinEntries.fArray[bin];
> >>>>
> For me, errors doesnt have to change in such an operation, that would
> only shift the mean.
> 
> I tried to derivate a 'TProfile2DY' from TProfile2D with only this
> method changed, but it seems that I also have to write a lot of things I
> really dont know about, because at link I got:
> 
> /home/patois/work/root/analyse_tree/TProfile2DY.cpp:24: undefined
> reference to `TProfile2DY::TAttLine virtual table'
> [snip a few other similar lines with AttFill and such]
> 
> The above line is when I dont try to generate a dictionnary for the
> class, if I do, and link with it:
> 
> TProfile2DY.o: In function `TProfile2DY::Dictionary(void)':
> /home/patois/work/root/analyse_tree/TProfile2DY.cpp:21: undefined
> reference to `TProfile2DY::DeclFileLine(void)'
> 
> And a lot more errors... Well the easiest for me would be that
> TProfile2D::Add(TF1..) would be implemented in ROOT :)
> 
> 	Yannick
> 
> -- 
>  _/ Yannick Patois _________________ Address (home) __________________
> | irc(undernet): Garp on #france25+  | La Villa des Sciences           |
> | email : patois@calvix.org          | 12, avenue de Cambridge         |
> | http://garp.feelingsurfer.net/     | 14200 Herouville-Saint-Clair    |
> | Tel/Fax-home:+33 (0)2 31 94 50 32  | FRANCE                          |
> | Petit Portail en Bois, Modeste et Génial : http://www.rezo.net/      |
> 



This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:50:47 MET