Re: [ROOT] Using a declared variable in a root command line

From: Christian Holm Christensen (cholm@hehi03.nbi.dk)
Date: Mon Mar 18 2002 - 22:54:39 MET


Hi Reinhardt, 

On Mon, 18 Mar 2002 12:17:22 +0000 (GMT)
Reinhardt Chamonal <chamonal@ph.ed.ac.uk> wrote
concerning "[ROOT] Using a declared variable in a root command line":
> Hi the experts,
> 
> First that's going be a very very basic question. I had a look at
> various examples around but I am stuck and frustrated. (I am started
> at Root) What I would like to do is a little simple script to take a
> number and then plot the histogram corresponding to this number Here
> is what I do: 
> 
> #include <iostream.h> 
>  
> int show(Int_t nb) {
>   gROOT->Reset();
>   c1 = new TCanvas("mapmt","MAPMTs",10,40,800,600);
>   TFile f("r99.root"); 
>   //TFile *f = new TFILE("r99.root");
>   gPad->SetLogy();
>   TH1F *boundary = new TH1F("boundary","Channel Signal",500,-0.5,250.5);
>   h10->Draw("norm>>+boundary","pdid==0 && pixid==nb");
>   c1->Update();
>   //return 0; 
> 
> }
> 
> so calling show(2) should draw the  histogram cooresponding to
> pixid=2  when calling h10->Draw("norm>>+boundary","pdid==0 &&
> pixid==nb"); where I put my variable nb. 

Erh, no it shouldn't.  The two characters, `n' & `b' in your string
has nothing to do with the function argument `nb'.  The proper way to
do this is: 

  int show(Int_t nb) {
    gROOT->Reset();
    c1 = new TCanvas("mapmt","MAPMTs",10,40,800,600);
    TFile f("r99.root"); 
    gPad->SetLogy();
    TH1F *boundary = new TH1F("boundary","Channel Signal",500,-0.5,250.5);
    h10->Draw("norm>>+boundary", Form("pdid==0 && pixid==%d", nb));
    c1->Update();
    return 0;
  }

Hence, inserting the value stored in `nb' into the string.  
 
> It obviously doesn't like it certainly because  of the "". What is
> the correct declaration in this case ?  

Has nothing to do with declarations, but everything to do how you pass
values into a string. 

Yours, 

Christian Holm Christensen -------------------------------------------
Address: Sankt Hansgade 23, 1. th.           Phone:  (+45) 35 35 96 91 
         DK-2200 Copenhagen N                Cell:   (+45) 28 82 16 23
         Denmark                             Office: (+45) 353  25 305 
Email:   cholm@nbi.dk                        Web:    www.nbi.dk/~cholm



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