// $Header: /data/reve-cvs/reve/revecore/VSD.cxx,v 1.1.1.1 2005/12/04 19:42:49 aljam Exp $
#include "VSD.h"
using namespace Reve;
//______________________________________________________________________
// VSD
//
ClassImp(VSD);
VSD::VSD()
{
mFile = 0;
mDirectory = 0;
InitTreeVars();
}
VSD::VSD(const Text_t* name, const Text_t* title)
{
mFile = 0;
mDirectory = 0;
InitTreeVars();
}
void VSD::InitTreeVars()
{
fBuffSize = 128*1024;
mTreeK = 0;
//mTreeTR = 0;
mTreeH = 0;
mTreeC = 0;
mTreeR = 0;
mTreeKK = 0;
mTreeV0 = 0;
mTreeGI = 0;
mpK = &mK;
mpH = &mH;
mpC = &mC;
mpV0 = &mV0;
mpKK = &mKK;
mpR = &mR;
mpGI = &mGI;
}
/**************************************************************************/
/**************************************************************************/
void VSD::SetDirectory(TDirectory* dir)
{
mDirectory = dir;
}
/**************************************************************************/
/**************************************************************************/
void VSD::CreateTrees()
{
mDirectory->cd();
// TR missing ...
mTreeK = new TTree("Kinematics", "Simulated tracks.");
mTreeH = new TTree("Hits", "Combined detector hits.");
mTreeC = new TTree("Clusters", "Reconstructed clusters.");
mTreeR = new TTree("RecTracks", "Reconstructed tracks.");
mTreeKK = new TTree("RecKinks", "Reconstructed kinks.");
mTreeV0 = new TTree("RecV0s", "Reconstructed V0s.");
mTreeGI = new TTree("GenInfo", "Objects prepared for cross query.");
}
void VSD::DeleteTrees()
{
delete mTreeK; mTreeK = 0;
// delete mTreeTR; mTreeTR = 0;
delete mTreeH; mTreeH = 0;
delete mTreeC; mTreeC = 0;
delete mTreeR; mTreeR = 0;
delete mTreeV0; mTreeV0 = 0;
delete mTreeKK; mTreeKK = 0;
delete mTreeGI; mTreeGI = 0;
}
void VSD::CreateBranches()
{
// TR missing ...
if(mTreeK)
mTreeK ->Branch("K", "Reve::MCTrack", &mpK, fBuffSize);
if(mTreeH)
mTreeH ->Branch("H", "Reve::Hit", &mpH, fBuffSize);
if(mTreeC)
mTreeC ->Branch("C", "Reve::Cluster", &mpC, fBuffSize);
if(mTreeR)
mTreeR ->Branch("R", "Reve::RecTrack", &mpR, fBuffSize);
if(mTreeKK)
mTreeKK->Branch("KK", "Reve::RecKink", &mpKK, fBuffSize);
if(mTreeV0)
mTreeV0->Branch("V0", "Reve::RecV0", &mpV0, fBuffSize);
if(mTreeGI) {
mTreeGI->Branch("GI", "Reve::GenInfo", &mpGI, fBuffSize);
mTreeGI->Branch("K.", "Reve::MCTrack", &mpK);
mTreeGI->Branch("R.", "Reve::RecTrack", &mpR);
}
}
void VSD::SetBranchAddresses()
{
// TR missing ...
if(mTreeK)
mTreeK ->SetBranchAddress("K", &mpK);
if(mTreeH)
mTreeH ->SetBranchAddress("H", &mpH);
if(mTreeC)
mTreeC ->SetBranchAddress("C", &mpC);
if(mTreeR)
mTreeR ->SetBranchAddress("R", &mpR);
if(mTreeKK)
mTreeKK->SetBranchAddress("KK", &mpKK);
if(mTreeV0)
mTreeV0->SetBranchAddress("V0", &mpV0);
if(mTreeGI) {
mTreeGI->SetBranchAddress("GI", &mpGI);
mTreeGI->SetBranchAddress("K.", &mpK);
mTreeGI->SetBranchAddress("R.", &mpR);
}
}
void VSD::WriteTrees()
{
// Does nothing here ...
}
/**************************************************************************/
/**************************************************************************/
void VSD::LoadTrees()
{
static const Exc_t _eh("VSD::LoadTrees ");
if(mDirectory == 0)
throw(_eh + "directory not set.");
printf("Reading kinematics.n");
mTreeK = (TTree*) mDirectory->Get("Kinematics");
if(mTreeK == 0) {
printf("%s Kinematics not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
printf("Reading hits.n");
mTreeH = (TTree*) mDirectory->Get("Hits");
if(mTreeH == 0) {
printf("%s Hits not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
printf("Reading clusters.n");
mTreeC = (TTree*) mDirectory->Get("Clusters");
if(mTreeC == 0) {
printf("%s Clusters not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
printf("Reading reconstructed tracks.n");
mTreeR = (TTree*) mDirectory->Get("RecTracks");
if(mTreeR == 0) {
printf("%s RecTracks not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
printf("Reading reconstructed kinks. n");
mTreeKK = (TTree*) mDirectory->Get("RecKinks");
if(mTreeKK == 0) {
printf("%s Kinks not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
printf("Reading Reconstructed V0s.n");
mTreeV0 = (TTree*) mDirectory->Get("RecV0s");
if(mTreeV0 == 0) {
printf("%s V0 not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
printf("Reading GenInfo.n");
mTreeGI = (TTree*)mDirectory->Get("GenInfo");
if(mTreeGI == 0) {
printf("%s GenInfo not available in mDirectory %s.n",
_eh.Data(), mDirectory->GetName());
}
}
void VSD::LoadVSD(const Text_t* vsd_file_name, const Text_t* dir_name)
{
static const Exc_t _eh("VSD::LoadVSD ");
mFile = TFile::Open(vsd_file_name);
if(mFile == 0)
throw(_eh + "can not open VSD file '" + vsd_file_name + "'.");
mDirectory = (TDirectory*) mFile->Get(dir_name);
if(mDirectory == 0)
throw(_eh + "directory '" + dir_name + "' not found in VSD file '" + vsd_file_name + "'.");
printf("%pn", mDirectory);
LoadTrees();
SetBranchAddresses();
}
/**************************************************************************/
/**************************************************************************/
ROOT page - Class index - Class Hierarchy - Top of the page
This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.