// @(#)root/eve:$Id$
// Authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/*************************************************************************
 * Copyright (C) 1995-2007, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TEveVSD
#define ROOT_TEveVSD

#include "TEveUtil.h"
#include "TEveVSDStructs.h"
#include "TTree.h"

class TEveVSD : public TObject
{
   TEveVSD(const TEveVSD&);            // Not implemented
   TEveVSD& operator=(const TEveVSD&); // Not implemented

protected:
   TFile             *fFile;        //!
   TDirectory        *fDirectory;   //!

   Int_t              fBuffSize;    //!
   Int_t              fVerbose;     //!

public:
   TTree*             fTreeK;       //! Kinematics.
   TTree*             fTreeH;       //! Hits.
   TTree*             fTreeC;       //! Clusters.
   TTree*             fTreeR;       //! Reconstructed tracks.
   TTree*             fTreeKK;      //! Kinks.
   TTree*             fTreeV0;      //! VO's.
   TTree*             fTreeCC;      //! Cascades.
   TTree*             fTreeGI;      //! Sim-Rec cross references.

   TEveMCTrack        fK,  *fpK;    //!
   TEveHit            fH,  *fpH;    //!
   TEveCluster        fC,  *fpC;    //!
   TEveRecTrack       fR,  *fpR;    //!
   TEveRecKink        fKK, *fpKK;   //!
   TEveRecV0          fV0, *fpV0;   //!
   TEveRecCascade     fCC, *fpCC;   //!
   TEveMCRecCrossRef  fGI, *fpGI;   //!

public:
   TEveVSD(const char* name="TEveVSD", const char* title="");
   virtual ~TEveVSD();

   virtual void SetDirectory(TDirectory* dir);

   virtual void CreateTrees();
   virtual void DeleteTrees();

   virtual void CreateBranches();
   virtual void WriteTrees();

   virtual void LoadTrees();
   virtual void SetBranchAddresses();

   static void DisableTObjectStreamersForVSDStruct();

   ClassDef(TEveVSD, 1); // Visualization Summary Data - a collection of trees holding standard event data in experiment independent format.
};

#endif
 TEveVSD.h:1
 TEveVSD.h:2
 TEveVSD.h:3
 TEveVSD.h:4
 TEveVSD.h:5
 TEveVSD.h:6
 TEveVSD.h:7
 TEveVSD.h:8
 TEveVSD.h:9
 TEveVSD.h:10
 TEveVSD.h:11
 TEveVSD.h:12
 TEveVSD.h:13
 TEveVSD.h:14
 TEveVSD.h:15
 TEveVSD.h:16
 TEveVSD.h:17
 TEveVSD.h:18
 TEveVSD.h:19
 TEveVSD.h:20
 TEveVSD.h:21
 TEveVSD.h:22
 TEveVSD.h:23
 TEveVSD.h:24
 TEveVSD.h:25
 TEveVSD.h:26
 TEveVSD.h:27
 TEveVSD.h:28
 TEveVSD.h:29
 TEveVSD.h:30
 TEveVSD.h:31
 TEveVSD.h:32
 TEveVSD.h:33
 TEveVSD.h:34
 TEveVSD.h:35
 TEveVSD.h:36
 TEveVSD.h:37
 TEveVSD.h:38
 TEveVSD.h:39
 TEveVSD.h:40
 TEveVSD.h:41
 TEveVSD.h:42
 TEveVSD.h:43
 TEveVSD.h:44
 TEveVSD.h:45
 TEveVSD.h:46
 TEveVSD.h:47
 TEveVSD.h:48
 TEveVSD.h:49
 TEveVSD.h:50
 TEveVSD.h:51
 TEveVSD.h:52
 TEveVSD.h:53
 TEveVSD.h:54
 TEveVSD.h:55
 TEveVSD.h:56
 TEveVSD.h:57
 TEveVSD.h:58
 TEveVSD.h:59
 TEveVSD.h:60
 TEveVSD.h:61
 TEveVSD.h:62
 TEveVSD.h:63
 TEveVSD.h:64
 TEveVSD.h:65
 TEveVSD.h:66
 TEveVSD.h:67
 TEveVSD.h:68
 TEveVSD.h:69
 TEveVSD.h:70