Hi Susana, After reviewing your macro I noticed the following: The histogram you create have very large ranges (they all set to cover from 0 to 10000). Some of the variables in your tree have ranges much smaller. From example MET_met varies only from 0 to 30. The consequence is that the histrogram you create only has 1 bin filled up (the first one). Since you also are using a large number of bins (1000), the width of the bin is minimal. Thus in that case, you histogram is proper but resumed to a single line that was overlapping the axis line! Also in your macro, only the variable MET_met and L2CalJet_NclusT were properly set up. The interface that you are using on top of ROOT (HepTuple), bunch up together all the variable of a 'block' into a single branch. In your case all the L2CalJet_XXX are in one branch and all the MET_XXX are in an other. In order to properly set up the reading of your file you need to pass the address of struct containing all the variables of a block. For example you need to define: struct { Float_t met; Float_t sumet; Float_t xsum; Float_t ysum; } MET; .... t->SetBranchAddress("MET",&MET); .... met_b3->Fill(MET.met); Better yet, instead of using MakeCode to create a stub, use MakeClass. MakeCode does NOT produce proper code for this type of ROOT files. Philippe. > -----Original Message----- > From: owner-roottalk@pcroot.cern.ch > [mailto:owner-roottalk@pcroot.cern.ch]On Behalf Of Susana Cabrera > Sent: Wednesday, October 25, 2000 4:55 PM > To: roottalk@pcroot.cern.ch > Subject: [ROOT] Question about modular ntuples. > > > > Hello, > I am trying to write a CINT program to read some > blocks of my ntuple, here I send to you an example of the booking > of two blocks of this ntuple. > > if(_L2_process.value()==true) { > > _ntuple=&_manager->ntuple("MyNtuple",1); > _ntuple->setColumnWise(); > _ntuple->setDiskResident(); > > _ntuple->columnAt("L2CalJet::NclusT",&_nclusL2Jet,(Int4)1); > _ntuple->span("L2CalJet::NclusT",0,_n2clst); > _ntuple->columnAt("L2CalJet::sumEtT",&_sumEtL1,(Float4)0.); > > } > > if(_Met_process.value()==true) { > _ntuple->columnAt("MET::met",&_uncorrMet,(Float4)0.); > _ntuple->columnAt("MET::xsum",&_xSum,(Float4)0.); > _ntuple->columnAt("MET::ysum",&_ySum,(Float4)0.); > _ntuple->columnAt("MET::sumet",&_sumEt,(Float4)0.); > } > > I can have a look to the leaves. I start clicking on different > buttons. Finally the canvas appear in the screen without problems. > TFile f("stnmaker.root") > TBrowser b > > > However, when I try to use the autogenerated code (equivalent of > PAW's UWFUNC) in my CINT program: > > TFile *file = new TFile("ntuple.root","READ","RUN-II") > TTree *t; > file->cd("MyDirectory"); > t = (TTree*)gDirectory->Get("Myntuple"); > t->MakeClass("MyAna") > > I introduce the next declarations following a similar syntax > than in MyAna: > > //Declaration of leaves types > Int_t L2CalJet_NclusT; > Float_t L2CalJet_sumEtT; > Float_t MET_met; > Float_t MET_sumet; > Float_t MET_xsum; > Float_t MET_ysum; > > // List of branches > TBranch *b_L2CalJet; > TBranch *b_MET; > // Set branch addresses > t->SetBranchAddress("L2CalJet",&L2CalJet_NclusT); > t->SetBranchAddress("MET",&MET_met); > > > When I try to access to the information in the branches > with my loop I can not get the information of the leaves, > for example, the variable MET_met is always zero. > > > void MetAnal() { > Int_t nbytes = 0; > Int_t i; > > // ...........loop over entries.................. > > Int_t nentries = chain->GetEntries(); > printf("Total number of entries in chain = %d\n",nentries); > for (i=0; i<nentries;i++) { > if(i % 1000 ==0) printf("analysed:%d\n",i); > nbytes += chain.GetEvent(i); > cout << MET_met <<endl; > } > } > > Thanks for your help, > Susana Cabrera. > > ************************************************************** > * Susana Cabrera Urban cabrera@cdfsga.fnal.gov * > * * > * Fermilab Tf: (630)840-5003 * > * P.O. Box 500, MS 318 Fax: (630)840-2968 * > * Batavia, IL 60510 * > * U.S.A. * > ************************************************************** > > >
This archive was generated by hypermail 2b29 : Tue Jan 02 2001 - 11:50:36 MET