[ROOT] Question about modular ntuples.

From: Susana Cabrera (cabrera@fnal.gov)
Date: Wed Oct 25 2000 - 23:55:11 MEST


	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