Hi Rene, thanks for your prompt response! Please find an attatched script to illustrate my finding (for_rene.C). This puts 16 values of 'a' into an ntuple then projects 'a' first into a variable binned histo (twalk1) then into an equal binned histo (twalk2). The bin boundaries for twalk1 are calculated as the mid points between the data values. The root version I am using is 2.21/08 (Solaris). By the way, a quick question about ntuple plotting... If I want to histogram one parameter from an ntuple (a) and use another (b) as the weight, how do I do this? In paw I used to just put the name of the 'weight variable' in the logic string defining the cuts e.g. n/proj 200 100.a b.and.c<100 I've tried to do this kind of thing: ntuple1->Project("twalk2","a","(b)&&(c<100.0)","") without success. Thanks, John On Sun, 13 Jun 1999, Rene Brun wrote: > Hi John, > This should work. > Can you tell me what is the version of root ? > Could you send me a small file with a 5 lines long macro showing the > problem? > > Rene Brun > > > On Sun, 13 Jun 1999, John Richardson wrote: > > > > > Has anyone attempted to project ntuple data into a histogram > > with non-equal bin widths? > > > > I find that using > > > > ntuple->Draw("a>>histid","",""); > > or > > ntuple->Project("histid","a","",""); > > > > work just fine so long as the TH1F called histid has equal bins. > > If histid has been set up with variable binning however, the > > bin assignment of the data seems to be corrupt. > > Perhaps there is something special I need to do for this > > case. Can anyone comment? > > > > John Richardson. > > > > { gROOT->Reset(); TNtuple *ntuple1 = new TNtuple("ntuple1","","a:b"); Float_t outer_values[16]; Float_t bin_edges[17]; Int_t ii; Int_t nouter; outer_values[0] = 2590.0; outer_values[1] = 2666.0; outer_values[2] = 2781.0; outer_values[3] = 2933.0; outer_values[4] = 3124.0; outer_values[5] = 3352.0; outer_values[6] = 3619.0; outer_values[7] = 3924.0; outer_values[8] = 4267.0; outer_values[9] = 4648.0; outer_values[10] = 5181.0; outer_values[11] = 6324.0; outer_values[12] = 7848.0; outer_values[13] = 10134.0; outer_values[14] = 14706.0; outer_values[15] = 24963.0; /* Calculate the bin boundaries */ bin_edges[0] = outer_values[0]-(outer_values[1]-outer_values[0])/2.0; for (ii=0; ii<16; ii++) { bin_edges[ii+1] = 2.0*outer_values[ii]-bin_edges[ii]; } for (ii=0; ii<16; ii++) { ntuple1->Fill(outer_values[ii],0.0); } /* Variable bin histo */ TH1F *twalk1 = new TH1F("twalk1","Timewalk1", 16, bin_edges); /* Equal bin histo */ TH1F *twalk2 = new TH1F("twalk2","Timewalk2", 100, 0.0, 30000.0); ntuple1->Draw("a>>twalk1","",""); ntuple1->Draw("a>>twalk2","",""); }
This archive was generated by hypermail 2b29 : Tue Jan 04 2000 - 00:43:34 MET