dc740de4 |
1 | /* $Id$ */ |
2 | |
75e130df |
3 | #include "AlidNdEtaAnalysisSelector.h" |
4 | |
5 | #include <TStyle.h> |
6 | #include <TSystem.h> |
7 | #include <TCanvas.h> |
75e130df |
8 | #include <TVector3.h> |
dc740de4 |
9 | #include <TH2F.h> |
7029240a |
10 | #include <TChain.h> |
11 | #include <TFile.h> |
75e130df |
12 | |
13 | #include <AliLog.h> |
14 | #include <AliGenEventHeader.h> |
7029240a |
15 | #include <AliHeader.h> |
75e130df |
16 | |
75e130df |
17 | #include "dNdEtaAnalysis.h" |
18 | |
19 | ClassImp(AlidNdEtaAnalysisSelector) |
20 | |
dc740de4 |
21 | AlidNdEtaAnalysisSelector::AlidNdEtaAnalysisSelector() : |
75e130df |
22 | AliSelector(), |
5fbd0b17 |
23 | fdNdEtaAnalysis(0) |
75e130df |
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 | |
7029240a |
48 | fdNdEtaAnalysis = new dNdEtaAnalysis("dndeta", "dndeta"); |
75e130df |
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 | { |
b8e8168f |
62 | AliDebug(AliLog::kError, Form("ERROR: Output list not initialized.")); |
75e130df |
63 | return; |
64 | } |
65 | |
7029240a |
66 | fOutput->Add(fdNdEtaAnalysis); |
75e130df |
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 | |
7029240a |
77 | fdNdEtaAnalysis = dynamic_cast<dNdEtaAnalysis*> (fOutput->FindObject("dndeta")); |
75e130df |
78 | |
7029240a |
79 | if (!fdNdEtaAnalysis) |
75e130df |
80 | { |
7029240a |
81 | AliDebug(AliLog::kError, Form("ERROR: Histograms not available %p", (void*) fdNdEtaAnalysis)); |
75e130df |
82 | return; |
83 | } |
84 | |
75e130df |
85 | TFile* fout = new TFile("out.root","RECREATE"); |
dc740de4 |
86 | WriteObjects(); |
75e130df |
87 | fout->Write(); |
88 | fout->Close(); |
75e130df |
89 | } |
dc740de4 |
90 | |
91 | void AlidNdEtaAnalysisSelector::WriteObjects() |
92 | { |
93 | // Write objects to output file |
94 | // this is an extra function to be overloaded... |
95 | // |
96 | |
7029240a |
97 | fdNdEtaAnalysis->SaveHistograms(); |
dc740de4 |
98 | } |