Hi Robert,
Robert Feuerbach wrote:
>
> Hi Zhou,
>
> While this doesn't answer your path question, I believe you can get
> the behaviour you want by doing the nt1->Project without first changing
> directories. You would first have to modify declare the nt1 variable.
>
> This is what I find quite useful about ROOT -- you can declare your object
> and pass it around to different routines, not worrying about if you are in
> the same directory as the object (Ntuple in this case).
>
> Rene, perhaps a variation on TTree::Project that takes the pointer to a
> TH1 or TH2 object would be useful?
Yes, I agree. Samething for all fitting functions.
Rene Brun
>
> You might want to try:
> {
> TFile* f = new TFile("data.root");
>
> TNtuple *nt1 = (TNtuple *)f->Get("nt1"); // Added to declare nt1
>
> f->mkdir("analysis");// make a subdirectory to hold the result
>
> f->cd("analysis"); // change to the created subdirectory
>
> TH1F* p1 = TH1F("h1","h1",100, 0., 120.); //create some result histograms
> TH1F* p2 = TH1F("h2","h2",100, 0., 1000.);
> TH1F* p3 = TH1F("h3","h3",100, 0., 10.);
>
> // gFile->cd(); // go back to the top directory // Not needed
> nt1->Project("h1","t0"); //fill the histogram in the subdirectory
>
> }
>
> Take care.
> /***************************************************
> * Robert Feuerbach feuerbac@ernest.phys.cmu.edu *
> * CMU Physics Department (412) 268-2772 *
> * Pittsburgh, PA 15213 FAX: (412) 681-0648 *
> ***************************************************/
>
> On Mon, 12 Jun 2000, Zhou Zhang wrote:
>
> > Hi rooters,
> >
> > I have a root file which contains some ntuples. Now I want to write a
> > macro to do some analysis on these ntuples and put the results which are
> > also some histograms and ntuples under a created analysis subdirectory
> > which are associated with the root file. My macro is such as:
> > {
> > TFile* f = new TFile("data.root");
> >
> > f->mkdir("analysis");// make a subdirectory to hold the result
> >
> > f->cd("analysis"); // change to the created subdirectory
> >
> > TH1F* p1 = TH1F("h1","h1",100, 0., 120.); //create some result histograms
> > TH1F* p2 = TH1F("h2","h2",100, 0., 1000.);
> > TH1F* p3 = TH1F("h3","h3",100, 0., 10.);
> >
> > gFile->cd(); // go back to the top directory
> > nt1->Project("h1","t0"); //fill the histogram in the subdirectory
> >
> > }
> >
> > It failed because h1 is not in the current directory. But I don't know how
> > to specify the path for the h1. Who could tell me how to do it?
> >
> > regards,
> >
> > zhou
> >
> >
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:27 MET