[ROOT] Peculiar "feature" in TSelector decendant.

From: Jens Ivar Jordre (jensivar.jordre@fi.uib.no)
Date: Tue Feb 25 2003 - 21:13:36 MET


Howdy rooters.

Processing some trees with a class inheriting from a TSelector I noticed 
some unexpected RTTI info. I've made the attached MySelector which 
illustrates the problem on ROOT checked out from CVS yesterday (Feb. 
24th) and compiled on an x86 running RH8.0.

First I create an instance of TChain and add two files to it, the trees 
in the files and the instance of TChain having the same name. Then I 
call TTree::MakeSelector(<selector name>), i.e. the member of my chain.

The only lines I add to the output from 
TTree::MakeSelector("MySelector") are the following lines at the end of 
MySelector::Begin(TTree* tree):

    Info("Begin", "fChain is %s", fChain->ClassName());
    Info("Begin", "\n\tfChain->Class() = 0x%x
	\n\tTChain::Class() = 0x%x
	\n\tTTree::Class() = 0x%x",
	fChain->Class(), TChain::Class(), TTree::Class());

When I run TChain::Process("MySelector.C") the output from 
MySelector::Begin(TTree* tree) is the following:
....
Info in <TSelector::Begin>: fChain is TChain
Info in <TSelector::Begin>:
         fChain->Class() = 0x8c59948
         TChain::Class() = 0x916d3d0
         TTree::Class() = 0x8c59948
....

So, on the one hand fChain clames to be an instance of TChain (the first 
line) while its TClass pointer indicates that it is an instance of 
TTree. Is this the intention?

Best wishes from
Jens Ivar

-- 
           _____________________________________________________
  ________|                  Jens Ivar Jřrdre                   |_______
  \       | Dept. of Physics                        Office: 521 |      /
   \      | Allégt 55                    Phone: +47 55 58 27 92 |     /
    \     | 5007 Bergen                    Fax: +47 55 58 94 40 |    /
    /     | Norway            E-mail: jensivar.jordre@fi.uib.no |    \
   /      |_____________________________________________________|     \
  /__________)                                               (_________\


//////////////////////////////////////////////////////////
//   This class has been automatically generated 
//     (Tue Feb 25 20:48:46 2003 by ROOT version3.05/02)
//   from TChain T1/
//////////////////////////////////////////////////////////


#ifndef MySelector_h
#define MySelector_h

#include <TROOT.h>
#include <TChain.h>
#include <TFile.h>
#include <TSelector.h>
   const Int_t kMaxG = 1;
   const Int_t kMaxFS = 10;
   const Int_t kMaxT1RDO = 1;
   const Int_t kMaxT2RDO = 1;

class MySelector : public TSelector {
   public :
   TTree          *fChain;   //!pointer to the analyzed TTree or TChain
//Declaration of leaves types
   Int_t           G_;
   Int_t           G_fTrigger[kMaxG];   //[G_]
   UShort_t        G_fBbMethod[kMaxG];   //[G_]
   UShort_t        G_fNoMrsTrack[kMaxG];   //[G_]
   UShort_t        G_fNoFfsTrack[kMaxG];   //[G_]
   UShort_t        G_fNoBfsTrack[kMaxG];   //[G_]
   UShort_t        G_fNoT1Track[kMaxG];   //[G_]
   UShort_t        G_fNoT2Track[kMaxG];   //[G_]
   UShort_t        G_fNoT3Track[kMaxG];   //[G_]
   UShort_t        G_fNoT4Track[kMaxG];   //[G_]
   UShort_t        G_fNoT5Track[kMaxG];   //[G_]
   UShort_t        G_fNoTpm1Track[kMaxG];   //[G_]
   UShort_t        G_fNoTpm2Track[kMaxG];   //[G_]
   UShort_t        G_fRunNumber[kMaxG];   //[G_]
   UShort_t        G_fEventNumber[kMaxG];   //[G_]
   Float_t         G_fBbVtxZ[kMaxG];   //[G_]
   Float_t         G_fTMACent[kMaxG];   //[G_]
   Float_t         G_fTMAMult[kMaxG];   //[G_]
   Float_t         G_fSiCent[kMaxG];   //[G_]
   Float_t         G_fSiMult[kMaxG];   //[G_]
   Float_t         G_fCent[kMaxG];   //[G_]
   Float_t         G_fZdcVtxZ[kMaxG];   //[G_]
   Float_t         G_fZdcCfdVtxZ[kMaxG];   //[G_]
   Float_t         G_fZdcEnergy[kMaxG];   //[G_]
   Int_t           FS_;
   Float_t         FS_fTheta[kMaxFS];   //[FS_]
   Float_t         FS_fPhi[kMaxFS];   //[FS_]
   Float_t         FS_fVtxX[kMaxFS];   //[FS_]
   Float_t         FS_fVtxY[kMaxFS];   //[FS_]
   Float_t         FS_fVtxZ[kMaxFS];   //[FS_]
   Int_t           FS_fSwimD1[kMaxFS];   //[FS_]
   Int_t           FS_fH1slat[kMaxFS];   //[FS_]
   Float_t         FS_fH1x[kMaxFS];   //[FS_]
   Float_t         FS_fH1y[kMaxFS];   //[FS_]
   Double_t        FS_fT1_fOrigin_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT1_fOrigin_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT1_fOrigin_fZ[kMaxFS];   //[FS_]
   Double_t        FS_fT1_fDirection_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT1_fDirection_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT1_fDirection_fZ[kMaxFS];   //[FS_]
   Float_t         FS_fT1_fQuality[kMaxFS];   //[FS_]
   Float_t         FS_fD2_fDy[kMaxFS];   //[FS_]
   Float_t         FS_fD2_fDang[kMaxFS];   //[FS_]
   Float_t         FS_fD2_fDay[kMaxFS];   //[FS_]
   Float_t         FS_fD2_fChi2[kMaxFS];   //[FS_]
   Float_t         FS_fD2_fP[kMaxFS];   //[FS_]
   Int_t           FS_fD2_fStatus[kMaxFS];   //[FS_]
   Double_t        FS_fT2_fOrigin_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT2_fOrigin_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT2_fOrigin_fZ[kMaxFS];   //[FS_]
   Double_t        FS_fT2_fDirection_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT2_fDirection_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT2_fDirection_fZ[kMaxFS];   //[FS_]
   Float_t         FS_fT2_fQuality[kMaxFS];   //[FS_]
   Int_t           FS_fH1_fSlat[kMaxFS];   //[FS_]
   Float_t         FS_fH1_fDx[kMaxFS];   //[FS_]
   Float_t         FS_fH1_fDy[kMaxFS];   //[FS_]
   Float_t         FS_fH1_fBeta[kMaxFS];   //[FS_]
   Float_t         FS_fH1_fLength[kMaxFS];   //[FS_]
   Float_t         FS_fH1_fMass2[kMaxFS];   //[FS_]
   Float_t         FS_fH1_fEnergy[kMaxFS];   //[FS_]
   Float_t         FS_fC1_fEnergy[kMaxFS];   //[FS_]
   Short_t         FS_fT2UsedInBfs[kMaxFS];   //[FS_]
   Double_t        FS_fBfsFront_fOrigin_fX[kMaxFS];   //[FS_]
   Double_t        FS_fBfsFront_fOrigin_fY[kMaxFS];   //[FS_]
   Double_t        FS_fBfsFront_fOrigin_fZ[kMaxFS];   //[FS_]
   Double_t        FS_fBfsFront_fDirection_fX[kMaxFS];   //[FS_]
   Double_t        FS_fBfsFront_fDirection_fY[kMaxFS];   //[FS_]
   Double_t        FS_fBfsFront_fDirection_fZ[kMaxFS];   //[FS_]
   Float_t         FS_fBfsFront_fQuality[kMaxFS];   //[FS_]
   Float_t         FS_fD3_fDy[kMaxFS];   //[FS_]
   Float_t         FS_fD3_fDang[kMaxFS];   //[FS_]
   Float_t         FS_fD3_fDay[kMaxFS];   //[FS_]
   Float_t         FS_fD3_fChi2[kMaxFS];   //[FS_]
   Float_t         FS_fD3_fP[kMaxFS];   //[FS_]
   Int_t           FS_fD3_fStatus[kMaxFS];   //[FS_]
   Double_t        FS_fT4_fOrigin_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT4_fOrigin_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT4_fOrigin_fZ[kMaxFS];   //[FS_]
   Double_t        FS_fT4_fDirection_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT4_fDirection_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT4_fDirection_fZ[kMaxFS];   //[FS_]
   Float_t         FS_fT4_fQuality[kMaxFS];   //[FS_]
   Float_t         FS_fD4_fDy[kMaxFS];   //[FS_]
   Float_t         FS_fD4_fDang[kMaxFS];   //[FS_]
   Float_t         FS_fD4_fDay[kMaxFS];   //[FS_]
   Float_t         FS_fD4_fChi2[kMaxFS];   //[FS_]
   Float_t         FS_fD4_fP[kMaxFS];   //[FS_]
   Int_t           FS_fD4_fStatus[kMaxFS];   //[FS_]
   Double_t        FS_fT5_fOrigin_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT5_fOrigin_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT5_fOrigin_fZ[kMaxFS];   //[FS_]
   Double_t        FS_fT5_fDirection_fX[kMaxFS];   //[FS_]
   Double_t        FS_fT5_fDirection_fY[kMaxFS];   //[FS_]
   Double_t        FS_fT5_fDirection_fZ[kMaxFS];   //[FS_]
   Float_t         FS_fT5_fQuality[kMaxFS];   //[FS_]
   Int_t           FS_fH2_fSlat[kMaxFS];   //[FS_]
   Float_t         FS_fH2_fDx[kMaxFS];   //[FS_]
   Float_t         FS_fH2_fDy[kMaxFS];   //[FS_]
   Float_t         FS_fH2_fBeta[kMaxFS];   //[FS_]
   Float_t         FS_fH2_fLength[kMaxFS];   //[FS_]
   Float_t         FS_fH2_fMass2[kMaxFS];   //[FS_]
   Float_t         FS_fH2_fEnergy[kMaxFS];   //[FS_]
   Int_t           FS_fH2slat[kMaxFS];   //[FS_]
   Float_t         FS_fH2x[kMaxFS];   //[FS_]
   Float_t         FS_fH2y[kMaxFS];   //[FS_]
   Float_t         FS_fRich_fRadius[kMaxFS];   //[FS_]
   Float_t         FS_fRich_fMass[kMaxFS];   //[FS_]
   Int_t           FS_fRich_fHits[kMaxFS];   //[FS_]
   BrTpcRdo        *T1RDO.;
   UInt_t          T1RDO_BrDataObject_fUniqueID;
   UInt_t          T1RDO_BrDataObject_fBits;
   UChar_t         T1RDO_BrDataObject_fIsPersistent;
   Char_t          T1RDO_BrDataObject_fName[64];
   Char_t          T1RDO_BrDataObject_fTitle[64];
   Int_t           T1RDO_fNclusters;
   Int_t           T1RDO_fCStatus;
   Int_t           T1RDO_fNseqs;
   Int_t           T1RDO_fNallHits;
   Int_t           T1RDO_fNtrack;
   Int_t           T1RDO_fNsingleHit;
   Int_t           T1RDO_fNsingleHitDec;
   Int_t           T1RDO_fNmultHitDec;
   BrTpcRdo        *T2RDO.;
   UInt_t          T2RDO_BrDataObject_fUniqueID;
   UInt_t          T2RDO_BrDataObject_fBits;
   UChar_t         T2RDO_BrDataObject_fIsPersistent;
   Char_t          T2RDO_BrDataObject_fName[64];
   Char_t          T2RDO_BrDataObject_fTitle[64];
   Int_t           T2RDO_fNclusters;
   Int_t           T2RDO_fCStatus;
   Int_t           T2RDO_fNseqs;
   Int_t           T2RDO_fNallHits;
   Int_t           T2RDO_fNtrack;
   Int_t           T2RDO_fNsingleHit;
   Int_t           T2RDO_fNsingleHitDec;
   Int_t           T2RDO_fNmultHitDec;

//List of branches
   TBranch        *b_G_;   //!
   TBranch        *b_G_fTrigger;   //!
   TBranch        *b_G_fBbMethod;   //!
   TBranch        *b_G_fNoMrsTrack;   //!
   TBranch        *b_G_fNoFfsTrack;   //!
   TBranch        *b_G_fNoBfsTrack;   //!
   TBranch        *b_G_fNoT1Track;   //!
   TBranch        *b_G_fNoT2Track;   //!
   TBranch        *b_G_fNoT3Track;   //!
   TBranch        *b_G_fNoT4Track;   //!
   TBranch        *b_G_fNoT5Track;   //!
   TBranch        *b_G_fNoTpm1Track;   //!
   TBranch        *b_G_fNoTpm2Track;   //!
   TBranch        *b_G_fRunNumber;   //!
   TBranch        *b_G_fEventNumber;   //!
   TBranch        *b_G_fBbVtxZ;   //!
   TBranch        *b_G_fTMACent;   //!
   TBranch        *b_G_fTMAMult;   //!
   TBranch        *b_G_fSiCent;   //!
   TBranch        *b_G_fSiMult;   //!
   TBranch        *b_G_fCent;   //!
   TBranch        *b_G_fZdcVtxZ;   //!
   TBranch        *b_G_fZdcCfdVtxZ;   //!
   TBranch        *b_G_fZdcEnergy;   //!
   TBranch        *b_FS_;   //!
   TBranch        *b_FS_fTheta;   //!
   TBranch        *b_FS_fPhi;   //!
   TBranch        *b_FS_fVtxX;   //!
   TBranch        *b_FS_fVtxY;   //!
   TBranch        *b_FS_fVtxZ;   //!
   TBranch        *b_FS_fSwimD1;   //!
   TBranch        *b_FS_fH1slat;   //!
   TBranch        *b_FS_fH1x;   //!
   TBranch        *b_FS_fH1y;   //!
   TBranch        *b_FS_fT1_fOrigin_fX;   //!
   TBranch        *b_FS_fT1_fOrigin_fY;   //!
   TBranch        *b_FS_fT1_fOrigin_fZ;   //!
   TBranch        *b_FS_fT1_fDirection_fX;   //!
   TBranch        *b_FS_fT1_fDirection_fY;   //!
   TBranch        *b_FS_fT1_fDirection_fZ;   //!
   TBranch        *b_FS_fT1_fQuality;   //!
   TBranch        *b_FS_fD2_fDy;   //!
   TBranch        *b_FS_fD2_fDang;   //!
   TBranch        *b_FS_fD2_fDay;   //!
   TBranch        *b_FS_fD2_fChi2;   //!
   TBranch        *b_FS_fD2_fP;   //!
   TBranch        *b_FS_fD2_fStatus;   //!
   TBranch        *b_FS_fT2_fOrigin_fX;   //!
   TBranch        *b_FS_fT2_fOrigin_fY;   //!
   TBranch        *b_FS_fT2_fOrigin_fZ;   //!
   TBranch        *b_FS_fT2_fDirection_fX;   //!
   TBranch        *b_FS_fT2_fDirection_fY;   //!
   TBranch        *b_FS_fT2_fDirection_fZ;   //!
   TBranch        *b_FS_fT2_fQuality;   //!
   TBranch        *b_FS_fH1_fSlat;   //!
   TBranch        *b_FS_fH1_fDx;   //!
   TBranch        *b_FS_fH1_fDy;   //!
   TBranch        *b_FS_fH1_fBeta;   //!
   TBranch        *b_FS_fH1_fLength;   //!
   TBranch        *b_FS_fH1_fMass2;   //!
   TBranch        *b_FS_fH1_fEnergy;   //!
   TBranch        *b_FS_fC1_fEnergy;   //!
   TBranch        *b_FS_fT2UsedInBfs;   //!
   TBranch        *b_FS_fBfsFront_fOrigin_fX;   //!
   TBranch        *b_FS_fBfsFront_fOrigin_fY;   //!
   TBranch        *b_FS_fBfsFront_fOrigin_fZ;   //!
   TBranch        *b_FS_fBfsFront_fDirection_fX;   //!
   TBranch        *b_FS_fBfsFront_fDirection_fY;   //!
   TBranch        *b_FS_fBfsFront_fDirection_fZ;   //!
   TBranch        *b_FS_fBfsFront_fQuality;   //!
   TBranch        *b_FS_fD3_fDy;   //!
   TBranch        *b_FS_fD3_fDang;   //!
   TBranch        *b_FS_fD3_fDay;   //!
   TBranch        *b_FS_fD3_fChi2;   //!
   TBranch        *b_FS_fD3_fP;   //!
   TBranch        *b_FS_fD3_fStatus;   //!
   TBranch        *b_FS_fT4_fOrigin_fX;   //!
   TBranch        *b_FS_fT4_fOrigin_fY;   //!
   TBranch        *b_FS_fT4_fOrigin_fZ;   //!
   TBranch        *b_FS_fT4_fDirection_fX;   //!
   TBranch        *b_FS_fT4_fDirection_fY;   //!
   TBranch        *b_FS_fT4_fDirection_fZ;   //!
   TBranch        *b_FS_fT4_fQuality;   //!
   TBranch        *b_FS_fD4_fDy;   //!
   TBranch        *b_FS_fD4_fDang;   //!
   TBranch        *b_FS_fD4_fDay;   //!
   TBranch        *b_FS_fD4_fChi2;   //!
   TBranch        *b_FS_fD4_fP;   //!
   TBranch        *b_FS_fD4_fStatus;   //!
   TBranch        *b_FS_fT5_fOrigin_fX;   //!
   TBranch        *b_FS_fT5_fOrigin_fY;   //!
   TBranch        *b_FS_fT5_fOrigin_fZ;   //!
   TBranch        *b_FS_fT5_fDirection_fX;   //!
   TBranch        *b_FS_fT5_fDirection_fY;   //!
   TBranch        *b_FS_fT5_fDirection_fZ;   //!
   TBranch        *b_FS_fT5_fQuality;   //!
   TBranch        *b_FS_fH2_fSlat;   //!
   TBranch        *b_FS_fH2_fDx;   //!
   TBranch        *b_FS_fH2_fDy;   //!
   TBranch        *b_FS_fH2_fBeta;   //!
   TBranch        *b_FS_fH2_fLength;   //!
   TBranch        *b_FS_fH2_fMass2;   //!
   TBranch        *b_FS_fH2_fEnergy;   //!
   TBranch        *b_FS_fH2slat;   //!
   TBranch        *b_FS_fH2x;   //!
   TBranch        *b_FS_fH2y;   //!
   TBranch        *b_FS_fRich_fRadius;   //!
   TBranch        *b_FS_fRich_fMass;   //!
   TBranch        *b_FS_fRich_fHits;   //!
   TBranch        *b_T1RDO_BrDataObject_fUniqueID;   //!
   TBranch        *b_T1RDO_BrDataObject_fBits;   //!
   TBranch        *b_T1RDO_BrDataObject_fIsPersistent;   //!
   TBranch        *b_T1RDO_BrDataObject_fName;   //!
   TBranch        *b_T1RDO_BrDataObject_fTitle;   //!
   TBranch        *b_T1RDO_fNclusters;   //!
   TBranch        *b_T1RDO_fCStatus;   //!
   TBranch        *b_T1RDO_fNseqs;   //!
   TBranch        *b_T1RDO_fNallHits;   //!
   TBranch        *b_T1RDO_fNtrack;   //!
   TBranch        *b_T1RDO_fNsingleHit;   //!
   TBranch        *b_T1RDO_fNsingleHitDec;   //!
   TBranch        *b_T1RDO_fNmultHitDec;   //!
   TBranch        *b_T2RDO_BrDataObject_fUniqueID;   //!
   TBranch        *b_T2RDO_BrDataObject_fBits;   //!
   TBranch        *b_T2RDO_BrDataObject_fIsPersistent;   //!
   TBranch        *b_T2RDO_BrDataObject_fName;   //!
   TBranch        *b_T2RDO_BrDataObject_fTitle;   //!
   TBranch        *b_T2RDO_fNclusters;   //!
   TBranch        *b_T2RDO_fCStatus;   //!
   TBranch        *b_T2RDO_fNseqs;   //!
   TBranch        *b_T2RDO_fNallHits;   //!
   TBranch        *b_T2RDO_fNtrack;   //!
   TBranch        *b_T2RDO_fNsingleHit;   //!
   TBranch        *b_T2RDO_fNsingleHitDec;   //!
   TBranch        *b_T2RDO_fNmultHitDec;   //!

   MySelector(TTree *tree=0) { }
   ~MySelector() { }
   void    Begin(TTree *tree);
   void    Init(TTree *tree);
   Bool_t  Notify();
   Bool_t  Process(Int_t entry);
   Bool_t  ProcessCut(Int_t entry);
   void    ProcessFill(Int_t entry);
   void    SetOption(const char *option) { fOption = option; }
   void    SetObject(TObject *obj) { fObject = obj; }
   void    SetInputList(TList *input) {fInput = input;}
   TList  *GetOutputList() const { return fOutput; }
   void    Terminate();
   ClassDef(MySelector,0);
};

#endif

#ifdef MySelector_cxx
void MySelector::Init(TTree *tree)
{
//   Set branch addresses
   if (tree == 0) return;
   fChain    = tree;
   fChain->SetMakeClass(1);

   fChain->SetBranchAddress("G",&G_);
   fChain->SetBranchAddress("G.fTrigger",G_fTrigger);
   fChain->SetBranchAddress("G.fBbMethod",G_fBbMethod);
   fChain->SetBranchAddress("G.fNoMrsTrack",G_fNoMrsTrack);
   fChain->SetBranchAddress("G.fNoFfsTrack",G_fNoFfsTrack);
   fChain->SetBranchAddress("G.fNoBfsTrack",G_fNoBfsTrack);
   fChain->SetBranchAddress("G.fNoT1Track",G_fNoT1Track);
   fChain->SetBranchAddress("G.fNoT2Track",G_fNoT2Track);
   fChain->SetBranchAddress("G.fNoT3Track",G_fNoT3Track);
   fChain->SetBranchAddress("G.fNoT4Track",G_fNoT4Track);
   fChain->SetBranchAddress("G.fNoT5Track",G_fNoT5Track);
   fChain->SetBranchAddress("G.fNoTpm1Track",G_fNoTpm1Track);
   fChain->SetBranchAddress("G.fNoTpm2Track",G_fNoTpm2Track);
   fChain->SetBranchAddress("G.fRunNumber",G_fRunNumber);
   fChain->SetBranchAddress("G.fEventNumber",G_fEventNumber);
   fChain->SetBranchAddress("G.fBbVtxZ",G_fBbVtxZ);
   fChain->SetBranchAddress("G.fTMACent",G_fTMACent);
   fChain->SetBranchAddress("G.fTMAMult",G_fTMAMult);
   fChain->SetBranchAddress("G.fSiCent",G_fSiCent);
   fChain->SetBranchAddress("G.fSiMult",G_fSiMult);
   fChain->SetBranchAddress("G.fCent",G_fCent);
   fChain->SetBranchAddress("G.fZdcVtxZ",G_fZdcVtxZ);
   fChain->SetBranchAddress("G.fZdcCfdVtxZ",G_fZdcCfdVtxZ);
   fChain->SetBranchAddress("G.fZdcEnergy",G_fZdcEnergy);
   fChain->SetBranchAddress("FS",&FS_);
   fChain->SetBranchAddress("FS.fTheta",FS_fTheta);
   fChain->SetBranchAddress("FS.fPhi",FS_fPhi);
   fChain->SetBranchAddress("FS.fVtxX",FS_fVtxX);
   fChain->SetBranchAddress("FS.fVtxY",FS_fVtxY);
   fChain->SetBranchAddress("FS.fVtxZ",FS_fVtxZ);
   fChain->SetBranchAddress("FS.fSwimD1",FS_fSwimD1);
   fChain->SetBranchAddress("FS.fH1slat",FS_fH1slat);
   fChain->SetBranchAddress("FS.fH1x",FS_fH1x);
   fChain->SetBranchAddress("FS.fH1y",FS_fH1y);
   fChain->SetBranchAddress("FS.fT1.fOrigin.fX",FS_fT1_fOrigin_fX);
   fChain->SetBranchAddress("FS.fT1.fOrigin.fY",FS_fT1_fOrigin_fY);
   fChain->SetBranchAddress("FS.fT1.fOrigin.fZ",FS_fT1_fOrigin_fZ);
   fChain->SetBranchAddress("FS.fT1.fDirection.fX",FS_fT1_fDirection_fX);
   fChain->SetBranchAddress("FS.fT1.fDirection.fY",FS_fT1_fDirection_fY);
   fChain->SetBranchAddress("FS.fT1.fDirection.fZ",FS_fT1_fDirection_fZ);
   fChain->SetBranchAddress("FS.fT1.fQuality",FS_fT1_fQuality);
   fChain->SetBranchAddress("FS.fD2.fDy",FS_fD2_fDy);
   fChain->SetBranchAddress("FS.fD2.fDang",FS_fD2_fDang);
   fChain->SetBranchAddress("FS.fD2.fDay",FS_fD2_fDay);
   fChain->SetBranchAddress("FS.fD2.fChi2",FS_fD2_fChi2);
   fChain->SetBranchAddress("FS.fD2.fP",FS_fD2_fP);
   fChain->SetBranchAddress("FS.fD2.fStatus",FS_fD2_fStatus);
   fChain->SetBranchAddress("FS.fT2.fOrigin.fX",FS_fT2_fOrigin_fX);
   fChain->SetBranchAddress("FS.fT2.fOrigin.fY",FS_fT2_fOrigin_fY);
   fChain->SetBranchAddress("FS.fT2.fOrigin.fZ",FS_fT2_fOrigin_fZ);
   fChain->SetBranchAddress("FS.fT2.fDirection.fX",FS_fT2_fDirection_fX);
   fChain->SetBranchAddress("FS.fT2.fDirection.fY",FS_fT2_fDirection_fY);
   fChain->SetBranchAddress("FS.fT2.fDirection.fZ",FS_fT2_fDirection_fZ);
   fChain->SetBranchAddress("FS.fT2.fQuality",FS_fT2_fQuality);
   fChain->SetBranchAddress("FS.fH1.fSlat",FS_fH1_fSlat);
   fChain->SetBranchAddress("FS.fH1.fDx",FS_fH1_fDx);
   fChain->SetBranchAddress("FS.fH1.fDy",FS_fH1_fDy);
   fChain->SetBranchAddress("FS.fH1.fBeta",FS_fH1_fBeta);
   fChain->SetBranchAddress("FS.fH1.fLength",FS_fH1_fLength);
   fChain->SetBranchAddress("FS.fH1.fMass2",FS_fH1_fMass2);
   fChain->SetBranchAddress("FS.fH1.fEnergy",FS_fH1_fEnergy);
   fChain->SetBranchAddress("FS.fC1.fEnergy",FS_fC1_fEnergy);
   fChain->SetBranchAddress("FS.fT2UsedInBfs",FS_fT2UsedInBfs);
   fChain->SetBranchAddress("FS.fBfsFront.fOrigin.fX",FS_fBfsFront_fOrigin_fX);
   fChain->SetBranchAddress("FS.fBfsFront.fOrigin.fY",FS_fBfsFront_fOrigin_fY);
   fChain->SetBranchAddress("FS.fBfsFront.fOrigin.fZ",FS_fBfsFront_fOrigin_fZ);
   fChain->SetBranchAddress("FS.fBfsFront.fDirection.fX",FS_fBfsFront_fDirection_fX);
   fChain->SetBranchAddress("FS.fBfsFront.fDirection.fY",FS_fBfsFront_fDirection_fY);
   fChain->SetBranchAddress("FS.fBfsFront.fDirection.fZ",FS_fBfsFront_fDirection_fZ);
   fChain->SetBranchAddress("FS.fBfsFront.fQuality",FS_fBfsFront_fQuality);
   fChain->SetBranchAddress("FS.fD3.fDy",FS_fD3_fDy);
   fChain->SetBranchAddress("FS.fD3.fDang",FS_fD3_fDang);
   fChain->SetBranchAddress("FS.fD3.fDay",FS_fD3_fDay);
   fChain->SetBranchAddress("FS.fD3.fChi2",FS_fD3_fChi2);
   fChain->SetBranchAddress("FS.fD3.fP",FS_fD3_fP);
   fChain->SetBranchAddress("FS.fD3.fStatus",FS_fD3_fStatus);
   fChain->SetBranchAddress("FS.fT4.fOrigin.fX",FS_fT4_fOrigin_fX);
   fChain->SetBranchAddress("FS.fT4.fOrigin.fY",FS_fT4_fOrigin_fY);
   fChain->SetBranchAddress("FS.fT4.fOrigin.fZ",FS_fT4_fOrigin_fZ);
   fChain->SetBranchAddress("FS.fT4.fDirection.fX",FS_fT4_fDirection_fX);
   fChain->SetBranchAddress("FS.fT4.fDirection.fY",FS_fT4_fDirection_fY);
   fChain->SetBranchAddress("FS.fT4.fDirection.fZ",FS_fT4_fDirection_fZ);
   fChain->SetBranchAddress("FS.fT4.fQuality",FS_fT4_fQuality);
   fChain->SetBranchAddress("FS.fD4.fDy",FS_fD4_fDy);
   fChain->SetBranchAddress("FS.fD4.fDang",FS_fD4_fDang);
   fChain->SetBranchAddress("FS.fD4.fDay",FS_fD4_fDay);
   fChain->SetBranchAddress("FS.fD4.fChi2",FS_fD4_fChi2);
   fChain->SetBranchAddress("FS.fD4.fP",FS_fD4_fP);
   fChain->SetBranchAddress("FS.fD4.fStatus",FS_fD4_fStatus);
   fChain->SetBranchAddress("FS.fT5.fOrigin.fX",FS_fT5_fOrigin_fX);
   fChain->SetBranchAddress("FS.fT5.fOrigin.fY",FS_fT5_fOrigin_fY);
   fChain->SetBranchAddress("FS.fT5.fOrigin.fZ",FS_fT5_fOrigin_fZ);
   fChain->SetBranchAddress("FS.fT5.fDirection.fX",FS_fT5_fDirection_fX);
   fChain->SetBranchAddress("FS.fT5.fDirection.fY",FS_fT5_fDirection_fY);
   fChain->SetBranchAddress("FS.fT5.fDirection.fZ",FS_fT5_fDirection_fZ);
   fChain->SetBranchAddress("FS.fT5.fQuality",FS_fT5_fQuality);
   fChain->SetBranchAddress("FS.fH2.fSlat",FS_fH2_fSlat);
   fChain->SetBranchAddress("FS.fH2.fDx",FS_fH2_fDx);
   fChain->SetBranchAddress("FS.fH2.fDy",FS_fH2_fDy);
   fChain->SetBranchAddress("FS.fH2.fBeta",FS_fH2_fBeta);
   fChain->SetBranchAddress("FS.fH2.fLength",FS_fH2_fLength);
   fChain->SetBranchAddress("FS.fH2.fMass2",FS_fH2_fMass2);
   fChain->SetBranchAddress("FS.fH2.fEnergy",FS_fH2_fEnergy);
   fChain->SetBranchAddress("FS.fH2slat",FS_fH2slat);
   fChain->SetBranchAddress("FS.fH2x",FS_fH2x);
   fChain->SetBranchAddress("FS.fH2y",FS_fH2y);
   fChain->SetBranchAddress("FS.fRich.fRadius",FS_fRich_fRadius);
   fChain->SetBranchAddress("FS.fRich.fMass",FS_fRich_fMass);
   fChain->SetBranchAddress("FS.fRich.fHits",FS_fRich_fHits);
   fChain->SetBranchAddress("T1RDO.BrDataObject.fUniqueID",&T1RDO_BrDataObject_fUniqueID);
   fChain->SetBranchAddress("T1RDO.BrDataObject.fBits",&T1RDO_BrDataObject_fBits);
   fChain->SetBranchAddress("T1RDO.BrDataObject.fIsPersistent",&T1RDO_BrDataObject_fIsPersistent);
   fChain->SetBranchAddress("T1RDO.BrDataObject.fName[64]",T1RDO_BrDataObject_fName);
   fChain->SetBranchAddress("T1RDO.BrDataObject.fTitle[64]",T1RDO_BrDataObject_fTitle);
   fChain->SetBranchAddress("T1RDO.fNclusters",&T1RDO_fNclusters);
   fChain->SetBranchAddress("T1RDO.fCStatus",&T1RDO_fCStatus);
   fChain->SetBranchAddress("T1RDO.fNseqs",&T1RDO_fNseqs);
   fChain->SetBranchAddress("T1RDO.fNallHits",&T1RDO_fNallHits);
   fChain->SetBranchAddress("T1RDO.fNtrack",&T1RDO_fNtrack);
   fChain->SetBranchAddress("T1RDO.fNsingleHit",&T1RDO_fNsingleHit);
   fChain->SetBranchAddress("T1RDO.fNsingleHitDec",&T1RDO_fNsingleHitDec);
   fChain->SetBranchAddress("T1RDO.fNmultHitDec",&T1RDO_fNmultHitDec);
   fChain->SetBranchAddress("T2RDO.BrDataObject.fUniqueID",&T2RDO_BrDataObject_fUniqueID);
   fChain->SetBranchAddress("T2RDO.BrDataObject.fBits",&T2RDO_BrDataObject_fBits);
   fChain->SetBranchAddress("T2RDO.BrDataObject.fIsPersistent",&T2RDO_BrDataObject_fIsPersistent);
   fChain->SetBranchAddress("T2RDO.BrDataObject.fName[64]",T2RDO_BrDataObject_fName);
   fChain->SetBranchAddress("T2RDO.BrDataObject.fTitle[64]",T2RDO_BrDataObject_fTitle);
   fChain->SetBranchAddress("T2RDO.fNclusters",&T2RDO_fNclusters);
   fChain->SetBranchAddress("T2RDO.fCStatus",&T2RDO_fCStatus);
   fChain->SetBranchAddress("T2RDO.fNseqs",&T2RDO_fNseqs);
   fChain->SetBranchAddress("T2RDO.fNallHits",&T2RDO_fNallHits);
   fChain->SetBranchAddress("T2RDO.fNtrack",&T2RDO_fNtrack);
   fChain->SetBranchAddress("T2RDO.fNsingleHit",&T2RDO_fNsingleHit);
   fChain->SetBranchAddress("T2RDO.fNsingleHitDec",&T2RDO_fNsingleHitDec);
   fChain->SetBranchAddress("T2RDO.fNmultHitDec",&T2RDO_fNmultHitDec);
}

Bool_t MySelector::Notify()
{
   // Called when loading a new file.
   // Get branch pointers.
   b_G_ = fChain->GetBranch("G");
   b_G_fTrigger = fChain->GetBranch("G.fTrigger");
   b_G_fBbMethod = fChain->GetBranch("G.fBbMethod");
   b_G_fNoMrsTrack = fChain->GetBranch("G.fNoMrsTrack");
   b_G_fNoFfsTrack = fChain->GetBranch("G.fNoFfsTrack");
   b_G_fNoBfsTrack = fChain->GetBranch("G.fNoBfsTrack");
   b_G_fNoT1Track = fChain->GetBranch("G.fNoT1Track");
   b_G_fNoT2Track = fChain->GetBranch("G.fNoT2Track");
   b_G_fNoT3Track = fChain->GetBranch("G.fNoT3Track");
   b_G_fNoT4Track = fChain->GetBranch("G.fNoT4Track");
   b_G_fNoT5Track = fChain->GetBranch("G.fNoT5Track");
   b_G_fNoTpm1Track = fChain->GetBranch("G.fNoTpm1Track");
   b_G_fNoTpm2Track = fChain->GetBranch("G.fNoTpm2Track");
   b_G_fRunNumber = fChain->GetBranch("G.fRunNumber");
   b_G_fEventNumber = fChain->GetBranch("G.fEventNumber");
   b_G_fBbVtxZ = fChain->GetBranch("G.fBbVtxZ");
   b_G_fTMACent = fChain->GetBranch("G.fTMACent");
   b_G_fTMAMult = fChain->GetBranch("G.fTMAMult");
   b_G_fSiCent = fChain->GetBranch("G.fSiCent");
   b_G_fSiMult = fChain->GetBranch("G.fSiMult");
   b_G_fCent = fChain->GetBranch("G.fCent");
   b_G_fZdcVtxZ = fChain->GetBranch("G.fZdcVtxZ");
   b_G_fZdcCfdVtxZ = fChain->GetBranch("G.fZdcCfdVtxZ");
   b_G_fZdcEnergy = fChain->GetBranch("G.fZdcEnergy");
   b_FS_ = fChain->GetBranch("FS");
   b_FS_fTheta = fChain->GetBranch("FS.fTheta");
   b_FS_fPhi = fChain->GetBranch("FS.fPhi");
   b_FS_fVtxX = fChain->GetBranch("FS.fVtxX");
   b_FS_fVtxY = fChain->GetBranch("FS.fVtxY");
   b_FS_fVtxZ = fChain->GetBranch("FS.fVtxZ");
   b_FS_fSwimD1 = fChain->GetBranch("FS.fSwimD1");
   b_FS_fH1slat = fChain->GetBranch("FS.fH1slat");
   b_FS_fH1x = fChain->GetBranch("FS.fH1x");
   b_FS_fH1y = fChain->GetBranch("FS.fH1y");
   b_FS_fT1_fOrigin_fX = fChain->GetBranch("FS.fT1.fOrigin.fX");
   b_FS_fT1_fOrigin_fY = fChain->GetBranch("FS.fT1.fOrigin.fY");
   b_FS_fT1_fOrigin_fZ = fChain->GetBranch("FS.fT1.fOrigin.fZ");
   b_FS_fT1_fDirection_fX = fChain->GetBranch("FS.fT1.fDirection.fX");
   b_FS_fT1_fDirection_fY = fChain->GetBranch("FS.fT1.fDirection.fY");
   b_FS_fT1_fDirection_fZ = fChain->GetBranch("FS.fT1.fDirection.fZ");
   b_FS_fT1_fQuality = fChain->GetBranch("FS.fT1.fQuality");
   b_FS_fD2_fDy = fChain->GetBranch("FS.fD2.fDy");
   b_FS_fD2_fDang = fChain->GetBranch("FS.fD2.fDang");
   b_FS_fD2_fDay = fChain->GetBranch("FS.fD2.fDay");
   b_FS_fD2_fChi2 = fChain->GetBranch("FS.fD2.fChi2");
   b_FS_fD2_fP = fChain->GetBranch("FS.fD2.fP");
   b_FS_fD2_fStatus = fChain->GetBranch("FS.fD2.fStatus");
   b_FS_fT2_fOrigin_fX = fChain->GetBranch("FS.fT2.fOrigin.fX");
   b_FS_fT2_fOrigin_fY = fChain->GetBranch("FS.fT2.fOrigin.fY");
   b_FS_fT2_fOrigin_fZ = fChain->GetBranch("FS.fT2.fOrigin.fZ");
   b_FS_fT2_fDirection_fX = fChain->GetBranch("FS.fT2.fDirection.fX");
   b_FS_fT2_fDirection_fY = fChain->GetBranch("FS.fT2.fDirection.fY");
   b_FS_fT2_fDirection_fZ = fChain->GetBranch("FS.fT2.fDirection.fZ");
   b_FS_fT2_fQuality = fChain->GetBranch("FS.fT2.fQuality");
   b_FS_fH1_fSlat = fChain->GetBranch("FS.fH1.fSlat");
   b_FS_fH1_fDx = fChain->GetBranch("FS.fH1.fDx");
   b_FS_fH1_fDy = fChain->GetBranch("FS.fH1.fDy");
   b_FS_fH1_fBeta = fChain->GetBranch("FS.fH1.fBeta");
   b_FS_fH1_fLength = fChain->GetBranch("FS.fH1.fLength");
   b_FS_fH1_fMass2 = fChain->GetBranch("FS.fH1.fMass2");
   b_FS_fH1_fEnergy = fChain->GetBranch("FS.fH1.fEnergy");
   b_FS_fC1_fEnergy = fChain->GetBranch("FS.fC1.fEnergy");
   b_FS_fT2UsedInBfs = fChain->GetBranch("FS.fT2UsedInBfs");
   b_FS_fBfsFront_fOrigin_fX = fChain->GetBranch("FS.fBfsFront.fOrigin.fX");
   b_FS_fBfsFront_fOrigin_fY = fChain->GetBranch("FS.fBfsFront.fOrigin.fY");
   b_FS_fBfsFront_fOrigin_fZ = fChain->GetBranch("FS.fBfsFront.fOrigin.fZ");
   b_FS_fBfsFront_fDirection_fX = fChain->GetBranch("FS.fBfsFront.fDirection.fX");
   b_FS_fBfsFront_fDirection_fY = fChain->GetBranch("FS.fBfsFront.fDirection.fY");
   b_FS_fBfsFront_fDirection_fZ = fChain->GetBranch("FS.fBfsFront.fDirection.fZ");
   b_FS_fBfsFront_fQuality = fChain->GetBranch("FS.fBfsFront.fQuality");
   b_FS_fD3_fDy = fChain->GetBranch("FS.fD3.fDy");
   b_FS_fD3_fDang = fChain->GetBranch("FS.fD3.fDang");
   b_FS_fD3_fDay = fChain->GetBranch("FS.fD3.fDay");
   b_FS_fD3_fChi2 = fChain->GetBranch("FS.fD3.fChi2");
   b_FS_fD3_fP = fChain->GetBranch("FS.fD3.fP");
   b_FS_fD3_fStatus = fChain->GetBranch("FS.fD3.fStatus");
   b_FS_fT4_fOrigin_fX = fChain->GetBranch("FS.fT4.fOrigin.fX");
   b_FS_fT4_fOrigin_fY = fChain->GetBranch("FS.fT4.fOrigin.fY");
   b_FS_fT4_fOrigin_fZ = fChain->GetBranch("FS.fT4.fOrigin.fZ");
   b_FS_fT4_fDirection_fX = fChain->GetBranch("FS.fT4.fDirection.fX");
   b_FS_fT4_fDirection_fY = fChain->GetBranch("FS.fT4.fDirection.fY");
   b_FS_fT4_fDirection_fZ = fChain->GetBranch("FS.fT4.fDirection.fZ");
   b_FS_fT4_fQuality = fChain->GetBranch("FS.fT4.fQuality");
   b_FS_fD4_fDy = fChain->GetBranch("FS.fD4.fDy");
   b_FS_fD4_fDang = fChain->GetBranch("FS.fD4.fDang");
   b_FS_fD4_fDay = fChain->GetBranch("FS.fD4.fDay");
   b_FS_fD4_fChi2 = fChain->GetBranch("FS.fD4.fChi2");
   b_FS_fD4_fP = fChain->GetBranch("FS.fD4.fP");
   b_FS_fD4_fStatus = fChain->GetBranch("FS.fD4.fStatus");
   b_FS_fT5_fOrigin_fX = fChain->GetBranch("FS.fT5.fOrigin.fX");
   b_FS_fT5_fOrigin_fY = fChain->GetBranch("FS.fT5.fOrigin.fY");
   b_FS_fT5_fOrigin_fZ = fChain->GetBranch("FS.fT5.fOrigin.fZ");
   b_FS_fT5_fDirection_fX = fChain->GetBranch("FS.fT5.fDirection.fX");
   b_FS_fT5_fDirection_fY = fChain->GetBranch("FS.fT5.fDirection.fY");
   b_FS_fT5_fDirection_fZ = fChain->GetBranch("FS.fT5.fDirection.fZ");
   b_FS_fT5_fQuality = fChain->GetBranch("FS.fT5.fQuality");
   b_FS_fH2_fSlat = fChain->GetBranch("FS.fH2.fSlat");
   b_FS_fH2_fDx = fChain->GetBranch("FS.fH2.fDx");
   b_FS_fH2_fDy = fChain->GetBranch("FS.fH2.fDy");
   b_FS_fH2_fBeta = fChain->GetBranch("FS.fH2.fBeta");
   b_FS_fH2_fLength = fChain->GetBranch("FS.fH2.fLength");
   b_FS_fH2_fMass2 = fChain->GetBranch("FS.fH2.fMass2");
   b_FS_fH2_fEnergy = fChain->GetBranch("FS.fH2.fEnergy");
   b_FS_fH2slat = fChain->GetBranch("FS.fH2slat");
   b_FS_fH2x = fChain->GetBranch("FS.fH2x");
   b_FS_fH2y = fChain->GetBranch("FS.fH2y");
   b_FS_fRich_fRadius = fChain->GetBranch("FS.fRich.fRadius");
   b_FS_fRich_fMass = fChain->GetBranch("FS.fRich.fMass");
   b_FS_fRich_fHits = fChain->GetBranch("FS.fRich.fHits");
   b_T1RDO_BrDataObject_fUniqueID = fChain->GetBranch("T1RDO.BrDataObject.fUniqueID");
   b_T1RDO_BrDataObject_fBits = fChain->GetBranch("T1RDO.BrDataObject.fBits");
   b_T1RDO_BrDataObject_fIsPersistent = fChain->GetBranch("T1RDO.BrDataObject.fIsPersistent");
   b_T1RDO_BrDataObject_fName = fChain->GetBranch("T1RDO.BrDataObject.fName[64]");
   b_T1RDO_BrDataObject_fTitle = fChain->GetBranch("T1RDO.BrDataObject.fTitle[64]");
   b_T1RDO_fNclusters = fChain->GetBranch("T1RDO.fNclusters");
   b_T1RDO_fCStatus = fChain->GetBranch("T1RDO.fCStatus");
   b_T1RDO_fNseqs = fChain->GetBranch("T1RDO.fNseqs");
   b_T1RDO_fNallHits = fChain->GetBranch("T1RDO.fNallHits");
   b_T1RDO_fNtrack = fChain->GetBranch("T1RDO.fNtrack");
   b_T1RDO_fNsingleHit = fChain->GetBranch("T1RDO.fNsingleHit");
   b_T1RDO_fNsingleHitDec = fChain->GetBranch("T1RDO.fNsingleHitDec");
   b_T1RDO_fNmultHitDec = fChain->GetBranch("T1RDO.fNmultHitDec");
   b_T2RDO_BrDataObject_fUniqueID = fChain->GetBranch("T2RDO.BrDataObject.fUniqueID");
   b_T2RDO_BrDataObject_fBits = fChain->GetBranch("T2RDO.BrDataObject.fBits");
   b_T2RDO_BrDataObject_fIsPersistent = fChain->GetBranch("T2RDO.BrDataObject.fIsPersistent");
   b_T2RDO_BrDataObject_fName = fChain->GetBranch("T2RDO.BrDataObject.fName[64]");
   b_T2RDO_BrDataObject_fTitle = fChain->GetBranch("T2RDO.BrDataObject.fTitle[64]");
   b_T2RDO_fNclusters = fChain->GetBranch("T2RDO.fNclusters");
   b_T2RDO_fCStatus = fChain->GetBranch("T2RDO.fCStatus");
   b_T2RDO_fNseqs = fChain->GetBranch("T2RDO.fNseqs");
   b_T2RDO_fNallHits = fChain->GetBranch("T2RDO.fNallHits");
   b_T2RDO_fNtrack = fChain->GetBranch("T2RDO.fNtrack");
   b_T2RDO_fNsingleHit = fChain->GetBranch("T2RDO.fNsingleHit");
   b_T2RDO_fNsingleHitDec = fChain->GetBranch("T2RDO.fNsingleHitDec");
   b_T2RDO_fNmultHitDec = fChain->GetBranch("T2RDO.fNmultHitDec");
   return kTRUE;
}

#endif // #ifdef MySelector_cxx






This archive was generated by hypermail 2b29 : Thu Jan 01 2004 - 17:50:09 MET