Re: [ROOT] fUniqueId and fBits

From: Rene Brun (Rene.Brun@cern.ch)
Date: Sat Nov 17 2001 - 09:31:29 MET


Hi Klaus,

I cannot reproduce your problem. Please indicate which version of ROOT
you are using and which system.
>From the bits of information you give, I have build a small class Data8pi
like yours below and created a test program in the attachement.
Untar this file, then do:
.x pi8.C
This will generate a file pi8.root
You can generate the corresponding code with MakeClass with:
root > TFile f("pi8.root")
root > T.MakeClass("T")

You can test the code in T.C and T.h. It should work.
You can compare the files T.C and T.h with the ones I generated
from the small program (files TPI.C,h in the tar file)

Rene Brun

On Fri, 16 Nov 2001, K. Hauschild wrote:

> To save space I have removed the fUniqueId and fBits using
> 
>   Data8pi::Class()->IgnoreTObjectStreamer(); //Remove fUniqueId, fBits
> 
> for example.
> 
>   
> This also has the unwanted side effect of removing the leaves
> fH and fK in of the Data class below.
> 
> So, how can I save space by removing the unwanted fUniqueId fBits
> and keep the UShort_t data fH and fK ?
> 
> 
> 
> I also noticed  that fNGe, fNBGO and fNCsI (which
> are used for the size of the TClonesArrays) are redundant since
> the branches fGes, fBGO and fCsI contain this information so I
> remove these from the tree using the //! comment. This saved further
> space.
> 
> ie
> 
> tree.Show(13)
> ======> EVENT:13
>  fUniqueID       = 0
>  fBits           = 50331648
>  fH              = 846
>  fK              = 13
>  fGes            = 1
>  fGes.fId        = 14 
>  fGes.fChan      = 1358 
>  fGes.fTac       = 141 
>  fCsIs           = 2
>  fCsIs.fId       = 10 36 
>  fCsIs.fChan     = 747 73 
>  fCsIs.fTac      = 2421 1920 
> 
> 
> Could someone point me in the right direction to help me understand
> how I can selectively read the fGes, fCsIs and fBGOs information.....
> 
> Many thanks,
> 
> Karl
> 
> 
> Also below is a partial listing from tree->MakeClass() :
> 
> //============================================================================
> 
> class Data8pi : public TObject{
>  private:
>   UShort_t      fH;            // BGO ball sum energy
>   UShort_t      fK;            // BGO ball multiplicity
>   UShort_t      fNGe;          //! HPGe multiplicity : this info is stored in
>   UShort_t      fNBGO;         //! BGO  multiplicity : the TClonesArray below
>   UShort_t      fNCsI;         //! CsI  multiplicity : so not wirtten to file
> 
>   TClonesArray *fGes;          //   Ge  Data  (always non-zero)
>   TClonesArray *fBGOs;         //   BGO Data
>   TClonesArray *fCsIs;         //   CsI Data
>   
>   static TClonesArray *fgGes;  // these are used for
>   static TClonesArray *fgBGOs; // the initialisation
>   static TClonesArray *fgCsIs; // of TClonesArray
>   
>  public:
>   Data8pi();
>   virtual ~Data8pi();
> 
>   void        Clear(Option_t *option = "");
>   static void Reset(Option_t *option = "");
> 
>   //setters
>   void SetHK(UShort_t h, UShort_t k) { fH = h; fK = k; }
>   
>   void AddGe(UShort_t id, UShort_t chan, UShort_t tac);
>   void AddBGO(UShort_t id, UShort_t chan, UShort_t tac);
>   void AddCsI(UShort_t id, UShort_t chan, UShort_t tac);
> 
>   //getters
>   TClonesArray   *GetGes()  const {return fGes;}
>   TClonesArray   *GetBGOs() const {return fBGOs;}
>   TClonesArray   *GetCsIs() const {return fCsIs;}
>   
>   ClassDef (Data8pi,1)  //8pi Data class
> };
> 
> class Ge8pi : public TObject {
>   
>  private:
>   UShort_t    fId;       //Germanium Id
>   UShort_t    fChan;     //Germanium chan (8pi => 0.25 keV/chan)
>   UShort_t    fTac;      //Germanium TAC wrt RF
>   
>  public:
>   Ge8pi()  {;}
>   Ge8pi(UShort_t id, UShort_t chan, UShort_t tac);
>   virtual ~Ge8pi() {;}
>   
>   //setters and getters
>   UShort_t    GetId()    const {return fId;}
>   UShort_t    GetChan()  const {return fChan;}
>   UShort_t    GetTac()   const {return fTac;}
>   
>   ClassDef (Ge8pi,1)  //8pi Ge Data class
> };
> 
> The BGO and CsI classes are the same as Data8pi.
> 
> -----------------MakeClass------------------------------------------------
>    const Int_t kMaxfGes = 4;
>    const Int_t kMaxfBGOs = 1;
>    const Int_t kMaxfCsIs = 5;
> 
> class T {
>    public :
>    TTree          *fChain;   //pointer to the analyzed TTree or TChain
>    Int_t           fCurrent; //current Tree number in a TChain
> //Declaration of leaves types
>    UInt_t          fUniqueID;
>    UInt_t          fBits;
>    UShort_t        fH;
>    UShort_t        fK;
>    Int_t           fGes_;
>    UShort_t        fGes_fId[kMaxfGes];
>    UShort_t        fGes_fChan[kMaxfGes];
>    UShort_t        fGes_fTac[kMaxfGes];
>    Int_t           fBGOs_;
>    UShort_t        fBGOs_fId[kMaxfBGOs];
>    UShort_t        fBGOs_fChan[kMaxfBGOs];
>    UShort_t        fBGOs_fTac[kMaxfBGOs];
>    Int_t           fCsIs_;
>    UShort_t        fCsIs_fId[kMaxfCsIs];
>    UShort_t        fCsIs_fChan[kMaxfCsIs];
>    UShort_t        fCsIs_fTac[kMaxfCsIs];
> 
> //List of branches
>    TBranch        *b_fUniqueID;
>    TBranch        *b_fBits;
>    TBranch        *b_fH;
>    TBranch        *b_fK;
>    TBranch        *b_fGes;
>    TBranch        *b_fGes_fId;
>    TBranch        *b_fGes_fChan;
>    TBranch        *b_fGes_fTac;
>    TBranch        *b_fBGOs;
>    TBranch        *b_fBGOs_fId;
>    TBranch        *b_fBGOs_fChan;
>    TBranch        *b_fBGOs_fTac;
>    TBranch        *b_fCsIs;
>    TBranch        *b_fCsIs_fId;
>    TBranch        *b_fCsIs_fChan;
>    TBranch        *b_fCsIs_fTac;
> 
>    T(TTree *tree=0);
>    ~T();
>    Int_t  Cut(Int_t entry);
>    Int_t  GetEntry(Int_t entry);
>    Int_t  LoadTree(Int_t entry);
>    void   Init(TTree *tree);
>    void   Loop();
>    Bool_t Notify();
>    void   Show(Int_t entry = -1);
> };
> 
> #endif
> 
> 
> ==========================================================================
> 
> CEA Saclay, DAPNIA/SPhN                Phone  : (33) 01 69 08 7553
> Bat 703 - l'Orme des Merisiers         Fax    : (33) 01 69 08 7584
> F-91191 Gif-sur-Yvette                 E-mail :  khauschild@cea.fr
> France                                           karl_hauschild@yahoo.co.uk
>                                        WWW: http://www-dapnia.cea.fr/Sphn
> 





This archive was generated by hypermail 2b29 : Tue Jan 01 2002 - 17:51:08 MET