Pietro,
It looks like you do not create a dictionary for your classes (your tar
file had no Makefile).
Just using ACLIC (see below), I can create a Tree with your class.
Rene
//file test.C
{
gROOT->ProcessLine(".L BlockClasses.cc+");
m_file = new TFile ("junk.root","RECREATE") ; m_tree = new TTree ("T","Analysis tree") ; m_tree->SetAutoSave (10000000) ;
TClonesArray *m_data = new TClonesArray (TRootCalibObj::Class(), 1) ; m_data->ExpandCreateFast (1) ;
m_tree->Branch ("EGCO", &m_data, 64000, 2) ;
m_tree->Print () ;
}
root -b test.C
produces:
tree *root [1] .q
*Entries : 0 : Total = 26114 bytes File Size
= 0 *
* : : Tree compression factor =
1.00 *
******************************************************************************
*Br 0 :EGCO :
EGCO_ *
*Entries : 0 : Total Size= 26256 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 1 :EGCO.fUniqueID :
fUniqueID[EGCO_] *
*Entries : 0 : Total Size= 752 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 2 :EGCO.fBits :
fBits[EGCO_] *
*Entries : 0 : Total Size= 728 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 3 :EGCO.electronSCEnocorr_ :
electronSCEnocorr_[EGCO_] *
*Entries : 0 : Total Size= 806 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 4 :EGCO.electronSCE_ :
electronSCE_[EGCO_] *
*Entries : 0 : Total Size= 770 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 5 :EGCO.electronSCEta_ :
electronSCEta_[EGCO_] *
*Entries : 0 : Total Size= 782 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 6 :EGCO.electronSCPhi_ :
electronSCPhi_[EGCO_] *
*Entries : 0 : Total Size= 782 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 7 :EGCO.electronSCNDigis_ :
electronSCNDigis_[EGCO_] *
*Entries : 0 : Total Size= 800 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 8 :EGCO.electronSCNClus_ :
electronSCNClus_[EGCO_] *
*Entries : 0 : Total Size= 794 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 9 :EGCO.electronTRvhits_ :
electronTRvhits_[EGCO_] *
*Entries : 0 : Total Size= 794 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 10 :EGCO.electronTRlhits_ :
electronTRlhits_[EGCO_] *
*Entries : 0 : Total Size= 794 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 11 :EGCO.electronTRihits_ :
electronTRihits_[EGCO_] *
*Entries : 0 : Total Size= 794 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 12 :EGCO.electronTRinvps_ :
electronTRinvps_[EGCO_] *
*Entries : 0 : Total Size= 794 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 13 :EGCO.electronTRdegOfFreedom_ :
electronTRdegOfFreedom_[EGCO_] *
*Entries : 0 : Total Size= 836 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 14 :EGCO.electronTRcharge_ :
electronTRcharge_[EGCO_] *
*Entries : 0 : Total Size= 800 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 15 :EGCO.electronTRtip_ :
electronTRtip_[EGCO_] *
*Entries : 0 : Total Size= 782 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 16 :EGCO.electronTRlip_ :
electronTRlip_[EGCO_] *
*Entries : 0 : Total Size= 782 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 17 :EGCO.electronISiso_ :
electronISiso_[EGCO_] *
*Entries : 0 : Total Size= 782 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 18 :EGCO.electronPXLlines_ :
electronPXLlines_[EGCO_] *
*Entries : 0 : Total Size= 800 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 19 :EGCO.electron_Tr_Pmag_ :
electron_Tr_Pmag_[EGCO_] *
*Entries : 0 : Total Size= 800 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 20 :EGCO.electron_Tr_Peta_ :
electron_Tr_Peta_[EGCO_] *
*Entries : 0 : Total Size= 800 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 21 :EGCO.electron_Tr_Pphi_ :
electron_Tr_Pphi_[EGCO_] *
*Entries : 0 : Total Size= 800 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 22 :EGCO.electron_Tr_Out_Pmag_ :
electron_Tr_Out_Pmag_[EGCO_] *
*Entries : 0 : Total Size= 824 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 23 :EGCO.electron_Tr_Out_Peta_ :
electron_Tr_Out_Peta_[EGCO_] *
*Entries : 0 : Total Size= 824 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 24 :EGCO.electron_Tr_Out_Pphi_ :
electron_Tr_Out_Pphi_[EGCO_] *
*Entries : 0 : Total Size= 824 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 25 :EGCO.electronHoE_ :
electronHoE_[EGCO_] *
*Entries : 0 : Total Size= 770 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 26 :EGCO.electronTRstat_ :
electronTRstat_[EGCO_] *
*Entries : 0 : Total Size= 788 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 27 :EGCO.myCalibrationMap[11][21] :
myCalibrationMap[EGCO_] *
*Entries : 0 : Total Size= 818 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 28 :EGCO.centralCrystalIndex_ :
centralCrystalIndex_[EGCO_] *
*Entries : 0 : Total Size= 818 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 29 :EGCO.centralCrystalEnergy_ :
centralCrystalEnergy_[EGCO_] *
*Entries : 0 : Total Size= 824 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 30 :EGCO.centralCrystalEta_ :
centralCrystalEta_[EGCO_] *
*Entries : 0 : Total Size= 806 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 31 :EGCO.centralCrystalPhi_ :
centralCrystalPhi_[EGCO_] *
*Entries : 0 : Total Size= 806 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
*Br 32 :EGCO.mcEle_ :
mcEle_[EGCO_] *
*Entries : 0 : Total Size= 734 bytes One basket in
memory *
*Baskets : 0 : Basket Size= 64000 bytes Compression=
1.00 *
*............................................................................*
> Dear Rene, > > thank you very much for your quick answer; please find in > > /afs/cern.ch/user/g/govoni/public/TClonesArraySaving.tar.gz > > the class code. > > pietro > > > On 30 May, 2006, at 15:36, Rene Brun wrote: > >> What you do should work. However, you forgot to attach your class (at >> least the class header), >> so it is difficult to come with better diagnostics. >> >> Rene Brun >> >> Pietro Govoni wrote: >>> dear Rooters, >>> >>> I am trying to save a TClonesArray in a TTree in the following way: >>> >>> CalibTree::CalibTree (const std::string & fileName, >>> const std::string & treeName): >>> m_file (0), m_tree (0), m_data (0), m_dataSize (0) >>> { >>> TDirectory *dir = gDirectory; >>> m_file = new TFile (fileName.c_str (),"RECREATE") ; >>> m_file->cd () ; >>> m_tree = new TTree (treeName.c_str(),"Analysis tree") ; >>> m_tree->SetAutoSave (10000000) ; >>> dir->cd(); >>> >>> // m_tree->cd () ; >>> m_data = new TClonesArray (TRootCalibObj::Class(), 1) ; >>> m_data->ExpandCreateFast (1) ; >>> >>> m_tree->Branch ("EGCO", &m_data, 64000, 2) ; >>> m_tree->Print () ; >>> } >>> >>> >>> The content of the TClonesArray, that is a TRootCalibObj, inherits >>> from a TObject. >>> As far as I understood, I would expect the TTree to be filled by a >>> set of branches, each of them corresponding to a variable of the >>> TRootCalibObj. >>> Nevertheless, the Print () of the Tree only gives as output: >>> >>> Warning in <TTree::Bronch>: Using split mode on a class: TObject >>> with a custom Streamer >>> ****************************************************************************** >>> >>> *Tree :Analysis : Analysis >>> tree * >>> *Entries : 0 : Total = 2591 bytes File Size >>> = 0 * >>> * : : Tree compression factor = >>> 1.00 * >>> ****************************************************************************** >>> >>> *Br 0 :EGCO : >>> EGCO_ * >>> *Entries : 0 : Total Size= 2726 bytes One basket in >>> memory * >>> *Baskets : 0 : Basket Size= 64000 bytes Compression= >>> 1.00 * >>> *............................................................................* >>> >>> *Br 1 :EGCO.fUniqueID : >>> fUniqueID[EGCO_] * >>> *Entries : 0 : Total Size= 766 bytes One basket in >>> memory * >>> *Baskets : 0 : Basket Size= 64000 bytes Compression= >>> 1.00 * >>> *............................................................................* >>> >>> *Br 2 :EGCO.fBits : >>> fBits[EGCO_] * >>> *Entries : 0 : Total Size= 742 bytes One basket in >>> memory * >>> *Baskets : 0 : Basket Size= 64000 bytes Compression= >>> 1.00 * >>> *............................................................................* >>> >>> >>> >>> What I am missing? >>> >>> >>> Thank you very much, >>> >>> pietro >Received on Tue May 30 2006 - 16:44:12 MEST
This archive was generated by hypermail 2.2.0 : Mon Jan 01 2007 - 16:31:58 MET