]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGCF/FEMTOSCOPY/AliFemtoUser/AliFemtoPairOriginMonitor.cxx
Split: fixed incpaths for ANALYSISalice -> OADB
[u/mrichter/AliRoot.git] / PWGCF / FEMTOSCOPY / AliFemtoUser / AliFemtoPairOriginMonitor.cxx
CommitLineData
1859bfae 1#include "AliFemtoPairOriginMonitor.h"
2#include <TH1D.h>
3#include <TH3D.h>
4#include <TList.h>
5#include "AliFemtoModelHiddenInfo.h"
6
7AliFemtoPairOriginMonitor::AliFemtoPairOriginMonitor():
8 fParticle1Origin(0),
9 fParticle2Origin(0),
10 fParticle1Id(0),
11 fParticle2Id(0)
12{
13 // Default constructor
14
15 fParticle1Origin = new TH1D("POriginFirst", "Mothers PDG Codes", 6000, 0.0, 6000.0);
16 fParticle1Id = new TH1D("PIdFirst", "Particle PDG Codes", 6000, 0.0, 6000.0);
17 fParticle2Origin = new TH1D("POriginFirst", "Mothers PDG Codes", 6000, 0.0, 6000.0);
18 fParticle2Id = new TH1D("PIdFirst", "Particle PDG Codes", 6000, 0.0, 6000.0);
19
20}
21AliFemtoPairOriginMonitor::AliFemtoPairOriginMonitor(const char *aName):
22 AliFemtoCutMonitor(),
23 fParticle1Origin(0),
24 fParticle2Origin(0),
25 fParticle1Id(0),
26 fParticle2Id(0)
27{
28 // Normal constructor
29 char name[200];
30
31 snprintf(name, 200, "POriginFirst%s", aName);
32 fParticle1Origin = new TH1D(name, "Mothers PDG Codes", 6000, 0.0, 6000.0);
33 snprintf(name, 200, "PIdFirst%s", aName);
34 fParticle1Id = new TH1D(name, "Particle PDG Codes", 6000, 0.0, 6000.0);
35
36 snprintf(name, 200, "POriginSecond%s", aName);
37 fParticle2Origin = new TH1D(name, "Mothers PDG Codes", 6000, 0.0, 6000.0);
38 snprintf(name, 200, "PIdSecond%s", aName);
39 fParticle2Id = new TH1D(name, "Particle PDG Codes", 6000, 0.0, 6000.0);
40
41}
42
43AliFemtoPairOriginMonitor::AliFemtoPairOriginMonitor(const AliFemtoPairOriginMonitor &aCut):
44 AliFemtoCutMonitor(),
45 fParticle1Origin(0),
46 fParticle2Origin(0),
47 fParticle1Id(0),
48 fParticle2Id(0)
49{
50 // copy constructor
51
52 if (fParticle1Origin) delete fParticle1Origin;
53 fParticle1Origin= new TH1D(*aCut.fParticle1Origin);
54 if (fParticle1Id) delete fParticle1Id;
55 fParticle1Id= new TH1D(*aCut.fParticle1Id);
56
57 if (fParticle1Origin) delete fParticle2Origin;
58 fParticle1Origin= new TH1D(*aCut.fParticle2Origin);
59 if (fParticle1Id) delete fParticle2Id;
60 fParticle1Id= new TH1D(*aCut.fParticle2Id);
61
62}
63
64void AliFemtoPairOriginMonitor::Fill(const AliFemtoPair* aPair) {
65
66 AliFemtoParticle *first = (AliFemtoParticle*)aPair->Track1();
67 AliFemtoParticle *second = (AliFemtoParticle*)aPair->Track2();
68
69 if(first!=NULL && second!=NULL) {
70
71 AliFemtoModelHiddenInfo *tInfo1 = (AliFemtoModelHiddenInfo*)first->GetHiddenInfo();
72 AliFemtoModelHiddenInfo *tInfo2 = (AliFemtoModelHiddenInfo*)second->GetHiddenInfo();
73 if(tInfo1!=NULL && tInfo2!=NULL) {
74 Int_t part1ID = TMath::Abs(tInfo1->GetPDGPid());
75 Int_t mother1ID = TMath::Abs(tInfo1->GetMotherPdgCode());
76
77 Int_t part2ID = TMath::Abs(tInfo2->GetPDGPid());
78 Int_t mother2ID = TMath::Abs(tInfo2->GetMotherPdgCode());
79
80 fParticle1Id->Fill(part1ID);
81 fParticle1Origin->Fill(mother1ID);
82 fParticle2Id->Fill(part2ID);
83 fParticle2Origin->Fill(mother2ID);
84 }
85 }
86}
87
88AliFemtoPairOriginMonitor::~AliFemtoPairOriginMonitor()
89{
90 // Destructor
91
92 delete fParticle1Origin;
93 delete fParticle1Id;
94 delete fParticle2Origin;
95 delete fParticle2Id;
96}
97
98AliFemtoPairOriginMonitor& AliFemtoPairOriginMonitor::operator=(const AliFemtoPairOriginMonitor& aCut)
99{
100 // assignment operator
101 if (this == &aCut)
102 return *this;
103
104
105 if (fParticle1Origin) delete fParticle1Origin;
106 fParticle1Origin= new TH1D(*aCut.fParticle1Origin);
107 if (fParticle1Id) delete fParticle1Id;
108 fParticle1Id= new TH1D(*aCut.fParticle1Id);
109
110 if (fParticle2Origin) delete fParticle2Origin;
111 fParticle2Origin= new TH1D(*aCut.fParticle2Origin);
112 if (fParticle2Id) delete fParticle2Id;
113 fParticle2Id= new TH1D(*aCut.fParticle2Id);
114
115
116 return *this;
117}
118
119AliFemtoString AliFemtoPairOriginMonitor::Report(){
120 // Prepare report from the execution
121 string stemp = "*** AliFemtoPairOriginMonitor report";
122 AliFemtoString returnThis = stemp;
123 return returnThis;
124}
125
126
127void AliFemtoPairOriginMonitor::Write()
128{
129 // Write out the relevant histograms
130
131 fParticle1Id->Write();
132 fParticle1Origin->Write();
133 fParticle2Id->Write();
134 fParticle2Origin->Write();
135
136}
137
138TList *AliFemtoPairOriginMonitor::GetOutputList()
139{
140 // Get the list of histograms to write
141 TList *tOutputList = new TList();
142
143 tOutputList->Add(fParticle1Id);
144 tOutputList->Add(fParticle1Origin);
145 tOutputList->Add(fParticle2Id);
146 tOutputList->Add(fParticle2Origin);
147
148 return tOutputList;
149}