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