8 //______________________________________________________________________
21 VSD::VSD(const Text_t* , const Text_t* )
28 void VSD::InitTreeVars()
50 /**************************************************************************/
51 /**************************************************************************/
53 void VSD::SetDirectory(TDirectory* dir)
58 /**************************************************************************/
59 /**************************************************************************/
61 void VSD::CreateTrees()
65 mTreeK = new TTree("Kinematics", "Simulated tracks.");
66 mTreeH = new TTree("Hits", "Combined detector hits.");
67 mTreeC = new TTree("Clusters", "Reconstructed clusters.");
68 mTreeR = new TTree("RecTracks", "Reconstructed tracks.");
69 mTreeKK = new TTree("RecKinks", "Reconstructed kinks.");
70 mTreeV0 = new TTree("RecV0s", "Reconstructed V0s.");
71 mTreeGI = new TTree("GenInfo", "Objects prepared for cross query.");
74 void VSD::DeleteTrees()
76 delete mTreeK; mTreeK = 0;
77 // delete mTreeTR; mTreeTR = 0;
78 delete mTreeH; mTreeH = 0;
79 delete mTreeC; mTreeC = 0;
80 delete mTreeR; mTreeR = 0;
81 delete mTreeV0; mTreeV0 = 0;
82 delete mTreeKK; mTreeKK = 0;
83 delete mTreeGI; mTreeGI = 0;
86 void VSD::CreateBranches()
90 mTreeK ->Branch("K", "Reve::MCTrack", &mpK, fBuffSize);
92 mTreeH ->Branch("H", "Reve::Hit", &mpH, fBuffSize);
94 mTreeC ->Branch("C", "Reve::Cluster", &mpC, fBuffSize);
96 mTreeR ->Branch("R", "Reve::RecTrack", &mpR, fBuffSize);
98 mTreeKK->Branch("KK", "Reve::RecKink", &mpKK, fBuffSize);
100 mTreeV0->Branch("V0", "Reve::RecV0", &mpV0, fBuffSize);
103 mTreeGI->Branch("GI", "Reve::GenInfo", &mpGI, fBuffSize);
104 mTreeGI->Branch("K.", "Reve::MCTrack", &mpK);
105 mTreeGI->Branch("R.", "Reve::RecTrack", &mpR);
109 void VSD::SetBranchAddresses()
113 mTreeK ->SetBranchAddress("K", &mpK);
115 mTreeH ->SetBranchAddress("H", &mpH);
117 mTreeC ->SetBranchAddress("C", &mpC);
119 mTreeR ->SetBranchAddress("R", &mpR);
121 mTreeKK->SetBranchAddress("KK", &mpKK);
123 mTreeV0->SetBranchAddress("V0", &mpV0);
126 mTreeGI->SetBranchAddress("GI", &mpGI);
127 mTreeGI->SetBranchAddress("K.", &mpK);
128 mTreeGI->SetBranchAddress("R.", &mpR);
132 void VSD::WriteTrees()
134 // Does nothing here ...
137 /**************************************************************************/
138 /**************************************************************************/
140 void VSD::LoadTrees()
142 static const Exc_t eH("VSD::LoadTrees ");
145 throw(eH + "directory not set.");
147 printf("Reading kinematics.\n");
148 mTreeK = (TTree*) mDirectory->Get("Kinematics");
150 printf("%s Kinematics not available in mDirectory %s.\n",
151 eH.Data(), mDirectory->GetName());
154 printf("Reading hits.\n");
155 mTreeH = (TTree*) mDirectory->Get("Hits");
157 printf("%s Hits not available in mDirectory %s.\n",
158 eH.Data(), mDirectory->GetName());
161 printf("Reading clusters.\n");
162 mTreeC = (TTree*) mDirectory->Get("Clusters");
164 printf("%s Clusters not available in mDirectory %s.\n",
165 eH.Data(), mDirectory->GetName());
168 printf("Reading reconstructed tracks.\n");
169 mTreeR = (TTree*) mDirectory->Get("RecTracks");
171 printf("%s RecTracks not available in mDirectory %s.\n",
172 eH.Data(), mDirectory->GetName());
175 printf("Reading reconstructed kinks. \n");
176 mTreeKK = (TTree*) mDirectory->Get("RecKinks");
178 printf("%s Kinks not available in mDirectory %s.\n",
179 eH.Data(), mDirectory->GetName());
182 printf("Reading Reconstructed V0s.\n");
183 mTreeV0 = (TTree*) mDirectory->Get("RecV0s");
185 printf("%s V0 not available in mDirectory %s.\n",
186 eH.Data(), mDirectory->GetName());
189 printf("Reading GenInfo.\n");
190 mTreeGI = (TTree*)mDirectory->Get("GenInfo");
192 printf("%s GenInfo not available in mDirectory %s.\n",
193 eH.Data(), mDirectory->GetName());
198 void VSD::LoadVSD(const Text_t* vsd_file_name, const Text_t* dir_name)
200 static const Exc_t eH("VSD::LoadVSD ");
202 mFile = TFile::Open(vsd_file_name);
204 throw(eH + "can not open VSD file '" + vsd_file_name + "'.");
206 mDirectory = (TDirectory*) mFile->Get(dir_name);
208 throw(eH + "directory '" + dir_name + "' not found in VSD file '" + vsd_file_name + "'.");
209 printf("%p\n", (void*)mDirectory);
211 SetBranchAddresses();
214 /**************************************************************************/
215 /**************************************************************************/