Hi - I followed the procedure listed below in your example. It doesn't
seem to work. Instead of using Float_t like you do in your example, I use a
Bool_t cutLepCharge;
defined in cutplots.h.
Then I run:
{
gROOT->LoadMacro("cutplots.C++");
cutplots cut1;
gROOT->Macro("esigtight.cc"); // creates chain
cutLepCharge = kTRUE;
ntp1->Process(&cut1);
}
I get the following:
The value of cutLepCharge is 0
which is called in cutplots::ProcessCut().
I also set the value of cutLepCharge in my chain file esigtight.cc, which
is an unnamed macro. That doesn't work either.
I'm using 3.03/08. Any idea why this doesn't work?
-Ed
On Thu, 22 Aug 2002, Rene Brun wrote:
> Hi Ed,
>
> Let's take the example we have in $ROOTSYS/tutorials/h1analysis.h,C
> This is a simple example of a TSelector.
> We had the following declration in h1analyis.h, eg
> #include <TChain.h>
> #include <TFile.h>
> #include <TSelector.h>
>
> R__EXTERN Float_t R2; //we add this line
>
> class h1analysis : public TSelector {
>
> then in h1analysis.C, we declare a default value for R2, eg:
>
> TH1F *hdmd;
> TH2F *h2;
>
> Float_t R2=123.456; //we add this line, that' all
>
> Now run the following session
> root > .L h1analysis.C++
> root > h1analysis h1; //this will set the default value for R2=123.456
> root > R2 = 44.33; //we set a new value via the interpreter
> root > .x h1chain.C this creates a TChain with 4 files (see h1analysis
> comments)
> root > chain.Process(&h1);
>
> at this point the TSelector will execute with the new value of R2.
>
> Rene Brun
>
>
> On Wed, 21 Aug 2002, Edward Chen wrote:
>
> > Hi Rene - I don't explicitly call gROOT-Reset() in my selector. It's
> > pretty much the standard selector generated from TChain::MakeSelector(),
> > with a couple modifications that I don't think call gROOT->Reset().
> >
> > However, when I do .g at the command line, I see (for example):
> >
> > (compiled) 0x2ae4d680 const Int_t kMaxInt=2147483647
> >
> > vs.
> >
> > 11 0x8733ca0 Float_t R2=0.607421
> >
> > so my R2 variable doesn't have this (compiled) status. And I can print
> > out the value of kMaxInt from my selector. R2 is declared at the command
> > line (or via unnamed macro) - how do I get it into compiled status?
> >
> > Thanks.
> >
> > -Ed
> >
> > On Wed, 21 Aug 2002, Rene Brun wrote:
> >
> > > Hi Ed,
> > >
> > > If you define a global variable with CINT (eg float R2), this variable
> > > must be visible in any interpreted function.
> > > My guess is that you are calling "gROOT->Reset()" somewhere
> > > in your selector.
> > >
> > > A CINT global variable cannot be seen from the compiled code
> > > if it is not declared to CINT as well (like we do for globals
> > > like gFile, gDirectory,etc).
> > >
> > > Rene Brun
> > >
> > > On Tue, 20 Aug 2002, Edward Chen wrote:
> > >
> > > > Hi - I have a global variable which shows up when I do .g:
> > > >
> > > >
> > > > 11 0x8733bf0 Float_t R2=0
> > > >
> > > >
> > > > I want to access the value of R2 in TSelector::ProcessCut(). Is that
> > > > possible? I'm getting the following error message:
> > > >
> > > >
> > > > /data1/babar/edward/root/temp.C:67: `R2' undeclared (first use this
> > > > function)
> > > >
> > > > Thanks. (I'm using ROOT 3.03/06)
> > > >
> > > > -Ed
> > > >
> > >
> > >
> >
>
>
This archive was generated by hypermail 2b29 : Sat Jan 04 2003 - 23:51:06 MET