[ROOT] fUniqueId and fBits

From: K. Hauschild (karlhaus@hep.saclay.cea.fr)
Date: Fri Nov 16 2001 - 15:40:22 MET


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