]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG0/dNdEta/AlidNdEtaAnalysisSelector.cxx
o) moving includes to cxx
[u/mrichter/AliRoot.git] / PWG0 / dNdEta / AlidNdEtaAnalysisSelector.cxx
1 /* $Id$ */
2
3 #include "AlidNdEtaAnalysisSelector.h"
4
5 #include <TStyle.h>
6 #include <TSystem.h>
7 #include <TCanvas.h>
8 #include <TVector3.h>
9 #include <TH2F.h>
10 #include <TChain.h>
11 #include <TFile.h>
12
13 #include <AliLog.h>
14 #include <AliGenEventHeader.h>
15 #include <AliHeader.h>
16
17 #include "dNdEtaAnalysis.h"
18
19 ClassImp(AlidNdEtaAnalysisSelector)
20
21 AlidNdEtaAnalysisSelector::AlidNdEtaAnalysisSelector() :
22   AliSelector(),
23   fdNdEtaAnalysis(0)
24 {
25   //
26   // Constructor. Initialization of pointers
27   //
28 }
29
30 AlidNdEtaAnalysisSelector::~AlidNdEtaAnalysisSelector()
31 {
32   //
33   // Destructor
34   //
35
36   // histograms are in the output list and deleted when the output
37   // list is deleted by the TSelector dtor
38 }
39
40 void AlidNdEtaAnalysisSelector::SlaveBegin(TTree * tree)
41 {
42   // The SlaveBegin() function is called after the Begin() function.
43   // When running with PROOF SlaveBegin() is called on each slave server.
44   // The tree argument is deprecated (on PROOF 0 is passed).
45
46   AliSelector::SlaveBegin(tree);
47
48   fdNdEtaAnalysis = new dNdEtaAnalysis("dndeta", "dndeta");
49 }
50
51 void AlidNdEtaAnalysisSelector::SlaveTerminate()
52 {
53   // The SlaveTerminate() function is called after all entries or objects
54   // have been processed. When running with PROOF SlaveTerminate() is called
55   // on each slave server.
56
57   AliSelector::SlaveTerminate();
58
59   // Add the histograms to the output on each slave server
60   if (!fOutput)
61   {
62     AliDebug(AliLog::kError, Form("ERROR: Output list not initialized."));
63     return;
64   }
65
66   fOutput->Add(fdNdEtaAnalysis);
67 }
68
69 void AlidNdEtaAnalysisSelector::Terminate()
70 {
71   // The Terminate() function is the last function to be called during
72   // a query. It always runs on the client, it can be used to present
73   // the results graphically or save the results to file.
74
75   AliSelector::Terminate();
76
77   fdNdEtaAnalysis = dynamic_cast<dNdEtaAnalysis*> (fOutput->FindObject("dndeta"));
78
79   if (!fdNdEtaAnalysis)
80   {
81     AliDebug(AliLog::kError, Form("ERROR: Histograms not available %p", (void*) fdNdEtaAnalysis));
82     return;
83   }
84
85   fdNdEtaAnalysis->Finish();
86
87   TFile* fout = new TFile("out.root","RECREATE");
88   WriteObjects();
89   fout->Write();
90   fout->Close();
91
92   fdNdEtaAnalysis->DrawHistograms();
93 }
94
95 void AlidNdEtaAnalysisSelector::WriteObjects()
96 {
97   // Write objects to output file
98   // this is an extra function to be overloaded...
99   //
100
101   fdNdEtaAnalysis->SaveHistograms();
102 }