Re: [ROOT] Problems merging ntuples with Version 3.05/07

From: Rene Brun (Rene.Brun@cern.ch)
Date: Fri Sep 24 2004 - 15:52:55 MEST


Alessio,

Instead of:

   TFile h("run340.root");
   data->Show(33);
   TFile h2("merged.root");
   data->Show(33);

do:

   TFile h("run340.root");
   TTree *data1 = (TTree*)h.Get("data");
   data1->Show(33);

   TFile h2("merged.root");
   TTree *data2 = (TTree*)h.Get("data");
   data2->Show(33);

Rene Brun

Alessio Sarti wrote:
> 
> On Fri, 24 Sep 2004, Rene Brun wrote:
> 
> > Could you send the shortest possible running script AND DATA SETS
> > reproducing this problem?
> 
> I have attached two root files:
> run347.root and run340.root that have no problems with the "Show" method
> and the merge.cc cpp file that should be compiled (I've also attached the
> Makefile I'm using) and that I use in the following way:
> 
> merge data all.root run340.root run347.root
> 
> to produce the all.root merged file that has problems with the
> data->Show() method.
> 
> Let me know if you need more material.
> 
> Cheers,
> alessio
> 
> >
> > Rene Brun
> >
> > Alessio Sarti wrote:
> > >
> > > Hi all,
> > > after migrating my code to the new root version (thanks to Rene) I still
> > > have problems with the merged file:
> > >
> > > below run360.root is obtained with v 040102 and merged.root merging
> > > run360,361 and 362 root files....
> > >
> > > root [0] TFile h("run360.root");
> > > root [1] data->Show(33);
> > > ======> EVENT:33
> > >  evt             = 42
> > >  nadc            = 1
> > >  ntdc            = 1
> > >  ntdc128         = 1
> > >  adcM            = 974,
> > >                   1519, 1488, 901, 1329, 0, 164, 174
> > >  tdcM            = 1761,
> > >                   1763, 1777, 1787, 1907, 1826, 1628, 228
> > >  Shit            = 0
> > >
> > >  Sch             = 0
> > >
> > > root [2] TFile h2("merged.root");
> > > root [3] h2.cd();
> > > root [4] data->Show(33);
> > >
> > >  *** Break *** segmentation violation
> > >  Generating stack trace...
> > >  0x40e08144 in TLeafObject::ReadBasket(TBuffer&) + 0x1b6 from
> > > /home/Packages/root/lib/libTree.so
> > >  0x40dec8a1 in TBranch::ReadLeaves(TBuffer&) + 0x2f from
> > > /home/Packages/root/lib/libTree.so
> > >  0x40debaf5 in TBranch::GetEntry(long long, int) + 0x24f from
> > > /home/Packages/root/lib/libTree.so
> > >  0x40df7139 in TBranchObject::GetEntry(long long, int) + 0x139 from
> > > /home/Packages/root/lib/libTree.so
> > >  0x40e12cf3 in TTree::GetEntry(long long, int) + 0xa7 from
> > > /home/Packages/root/lib/libTree.so
> > >  0x40e16208 in TTree::Show(long long, int) + 0x34 from
> > > /home/Packages/root/lib/libTree.so
> > >  0x40e325b3 in <unknown> from /home/Packages/root/lib/libTree.so
> > >  0x406e60d6 in G__call_cppfunc + 0x263 from
> > > /home/Packages/root/lib/libCint.so
> > >  0x406d58b6 in G__interpret_func + 0x6ee from
> > > /home/Packages/root/lib/libCint.so
> > >  0x406bd4c1 in G__getfunction + 0x134a from
> > > /home/Packages/root/lib/libCint.so
> > >  0x40741a74 in G__getstructmem + 0x82a from
> > > /home/Packages/root/lib/libCint.so
> > >  0x4073bb8d in G__getvariable + 0x4db from
> > > /home/Packages/root/lib/libCint.so
> > >  0x406b4a4e in G__getitem + 0x5c1 from /home/Packages/root/lib/libCint.so
> > >  0x406b4c44 in G__getitem + 0x7b7 from /home/Packages/root/lib/libCint.so
> > >  0x406b3666 in G__getexpr + 0x783e from /home/Packages/root/lib/libCint.so
> > >  0x406fb1e6 in G__exec_function + 0x1d5 from
> > > /home/Packages/root/lib/libCint.so
> > >  0x40701e33 in G__exec_statement + 0x23eb from
> > > /home/Packages/root/lib/libCint.so
> > >  0x4069c83f in G__exec_tempfile_core + 0x2ce from
> > > /home/Packages/root/lib/libCint.so
> > >  0x4069ca1c in G__exec_tempfile_fp + 0x22 from
> > > /home/Packages/root/lib/libCint.so
> > >  0x4070a0c6 in G__process_cmd + 0x45f7 from
> > > /home/Packages/root/lib/libCint.so
> > >  0x4019dbbd in TCint::ProcessLine(char const*, TInterpreter::EErrorCode*)
> > > + 0xa9 from /home/Packages/root/lib/libCore.so
> > >  0x40106cd6 in TApplication::ProcessLine(char const*, bool, int*) + 0x670
> > > from /home/Packages/root/lib/libCore.so
> > >  0x41051ee9 in TRint::HandleTermInput() + 0x1dd from
> > > /home/Packages/root/lib/libRint.so
> > >  0x41050d5a in TTermInputHandler::Notify() + 0x24 from
> > > /home/Packages/root/lib/libRint.so
> > >  0x41052818 in TTermInputHandler::ReadNotify() + 0x12 from
> > > /home/Packages/root/lib/libRint.so
> > >  0x402244c9 in TUnixSystem::CheckDescriptors() + 0x143 from
> > > /home/Packages/root/lib/libCore.so
> > >  0x40223aa3 in TUnixSystem::DispatchOneEvent(bool) + 0x161 from
> > > /home/Packages/root/lib/libCore.so
> > >  0x40169190 in TSystem::InnerLoop() + 0x18 from
> > > /home/Packages/root/lib/libCore.so
> > >  0x40169135 in TSystem::Run() + 0x6f from
> > > /home/Packages/root/lib/libCore.so
> > >  0x4010774a in TApplication::Run(bool) + 0x32 from
> > > /home/Packages/root/lib/libCore.so
> > >  0x410519e5 in TRint::Run(bool) + 0x327 from
> > > /home/Packages/root/lib/libRint.so
> > >  0x0804886d in main + 0x71 from /home/Packages/root/bin/root.exe
> > >  0x42015704 in __libc_start_main + 0xe4 from /lib/tls/libc.so.6
> > >  0x0804876d in _Unwind_Resume + 0x31 from /home/Packages/root/bin/root.exe
> > > Root >
> > >
> > > I've attached the routine for the file merge that I've recompiled without
> > > problems on v 040102..
> > >
> > > Thanks in advance for any other advice that will come,
> > > alessio
> > >
> > > ______________________________________________________
> > > Alessio Sarti     INFN Frascati
> > >
> > > >>>I'm in Frascati<<<
> > >
> > > Cell   +39-06-94038166
> > > Office +39-06-94032776
> > > Fax    +39-06-94032427
> > >
> > > "... e a un Dio 'fatti il culo' non credere mai..."
> > > (F. De Andre')
> > >
> > > "He was turning over in his mind an intresting new concept in
> > > Thau-dimensional physics which unified time, space, magnetism, gravity
> > > and, for some reason, broccoli".  (T. Pratchett: "Pyramids")
> > >
> > > On Fri, 24 Sep 2004, Rene Brun wrote:
> > >
> > > > Hi Alessio,
> > > >
> > > > Move to a more recent version, eg 4.01/02
> > > >
> > > > Rene Brun
> > > >
> > > > Alessio Sarti wrote:
> > > > >
> > > > > Hi all,
> > > > > I'm trying to merge some ntuples with Version 3.05/07 and I'm having
> > > > > problems with the produced ntuple.
> > > > > The merging of the trees shows no problem:
> > > > > the macro runs fine and I can open the "merged" file.
> > > > > I can even call the Draw() function on the merged TTree.
> > > > > But when I try to use the Scan() function or the Show or the Loop one I
> > > > > have problems.
> > > > >
> > > > > The merged ntuple contains TVectors (below I show the content of my
> > > > > ntuple...)
> > > > >
> > > > > //Declaration of leaves types
> > > > >    Int_t           evt;
> > > > >    Int_t           nadc;
> > > > >    Int_t           ntdc;
> > > > >    Int_t           ntdc128;
> > > > >    Int_t           adcM[8][1];
> > > > >    Int_t           tdcM[8][1];
> > > > >    TVector         *Shit;
> > > > >    TVector         *Sch;
> > > > >
> > > > > //List of branches
> > > > >    TBranch        *b_evt;   //!
> > > > >    TBranch        *b_nadc;   //!
> > > > >    TBranch        *b_ntdc;   //!
> > > > >    TBranch        *b_ntdc128;   //!
> > > > >    TBranch        *b_adcM;   //!
> > > > >    TBranch        *b_tdcM;   //!
> > > > >    TBranch        *b_Shit;   //!
> > > > >    TBranch        *b_Sch;   //!
> > > > >
> > > > > Here's my problem..
> > > > >
> > > > > root [1] ((TTree*)gDirectory->Get("data"))->Scan();
> > > > > ************************************************************************************************************
> > > > > *    Row   *       evt *      nadc *      ntdc *   ntdc128 *      adcM *
> > > > > tdcM *      Shit *       Sch *
> > > > > ************************************************************************************************************
> > > > >
> > > > >  *** Break *** segmentation violation
> > > > >  Generating stack trace...
> > > > > /usr/bin/c++filt: unknown demangling style `gnu-new-abi'
> > > > > Root >
> > > > >
> > > > > I've used the merging routine to merge other root files and everything
> > > > > works fine: am I doing something wrong or there's a problem merging
> > > > > TVectors?
> > > > >
> > > > > Thanks for any advice or help,
> > > > > alessio
> > > > >
> > > > > ______________________________________________________
> > > > > Alessio Sarti     INFN Frascati
> > > > >
> > > > > >>>I'm in Frascati<<<
> > > > >
> > > > > Cell   +39-06-94038166
> > > > > Office +39-06-94032776
> > > > > Fax    +39-06-94032427
> > > > >
> > > > > "... e a un Dio 'fatti il culo' non credere mai..."
> > > > > (F. De Andre')
> > > > >
> > > > > "He was turning over in his mind an intresting new concept in
> > > > > Thau-dimensional physics which unified time, space, magnetism, gravity
> > > > > and, for some reason, broccoli".  (T. Pratchett: "Pyramids")
> > > >
> > >
> > >   --------------------------------------------------------------------------------
> > >                Name: merge.cc
> > >    merge.cc    Type: Plain Text (TEXT/plain)
> > >            Encoding: BASE64
> >
> 
>   --------------------------------------------------------------------------------
>                Name: merge.cc
>    merge.cc    Type: Plain Text (TEXT/plain)
>            Encoding: BASE64
> 
>                Name: Makefile
>    Makefile    Type: Plain Text (TEXT/PLAIN)
>            Encoding: BASE64
> 
>                      Name: run347.root.gz
>    run347.root.gz    Type: unspecified type (APPLICATION/octet-stream)
>                  Encoding: BASE64
> 
>                      Name: run340.root.gz
>    run340.root.gz    Type: unspecified type (APPLICATION/octet-stream)
>                  Encoding: BASE64



This archive was generated by hypermail 2b29 : Sun Jan 02 2005 - 05:50:09 MET