1 /*************************************************************************
2 * Copyright(c) 1998-2009, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
16 ///////////////////////////////////////////////////////////////////////////
17 // Dielectron DebugTree //
21 register variables from the variable manager. The output will be written
24 NOTE: Please use with extream care! Only for debugging and test purposes!!!
28 ///////////////////////////////////////////////////////////////////////////
31 #include <TTreeStream.h>
34 #include <AliAnalysisManager.h>
36 #include "AliDielectronPair.h"
38 #include "AliDielectronDebugTree.h"
40 ClassImp(AliDielectronDebugTree)
42 AliDielectronDebugTree::AliDielectronDebugTree() :
44 fFileName("jpsi_debug.root"),
50 // Default Constructor
52 for (Int_t i=0; i<AliDielectronVarManager::kNMaxValues;++i){
58 //______________________________________________
59 AliDielectronDebugTree::AliDielectronDebugTree(const char* name, const char* title) :
61 fFileName("jpsi_debug.root"),
69 for (Int_t i=0; i<AliDielectronVarManager::kNMaxValues;++i){
75 //______________________________________________
76 AliDielectronDebugTree::~AliDielectronDebugTree()
82 fStreamer->GetFile()->Write();
87 //______________________________________________
88 void AliDielectronDebugTree::Fill(AliDielectronPair *pair)
91 // Fill configured variables to the tree
94 //is there anything to fill
95 if (fNVars==0&&fNVarsLeg==0) return;
97 //only in local mode!!!
98 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
99 if (man && man->GetAnalysisType()!=AliAnalysisManager::kLocalAnalysis) return;
101 if (!fStreamer) fStreamer=new TTreeSRedirector(fFileName.Data());
104 Double_t values[AliDielectronVarManager::kNMaxValues];
105 Double_t valuesLeg1[AliDielectronVarManager::kNMaxValues];
106 Double_t valuesLeg2[AliDielectronVarManager::kNMaxValues];
109 AliDielectronVarManager::Fill(pair,values);
111 for (Int_t i=0; i<fNVars; ++i){
113 (*fStreamer) << "Pair"
114 << Form("%s=",AliDielectronVarManager::GetValueName(var))
121 AliDielectronVarManager::Fill(pair->GetFirstDaughter(),valuesLeg1);
123 AliDielectronVarManager::Fill(pair->GetSecondDaughter(),valuesLeg2);
125 for (Int_t i=0; i<fNVarsLeg; ++i){
126 var=fVariablesLeg[i];
127 (*fStreamer) << "Pair"
128 << Form("Leg1_%s=",AliDielectronVarManager::GetValueName(var))
130 << Form("Leg2_%s=",AliDielectronVarManager::GetValueName(var))
136 (*fStreamer) << "Pair" << "\n";
141 //______________________________________________
142 void AliDielectronDebugTree::DeleteStreamer()
145 // delete the streamer
147 if (!fStreamer) return;
153 //______________________________________________
154 void AliDielectronDebugTree::WriteTree()
159 if (!fStreamer) return;
160 fStreamer->GetFile()->Write();