]>
Commit | Line | Data |
---|---|---|
1859bfae | 1 | #include "AliFemtoPairOriginMonitor.h" |
2 | #include <TH1D.h> | |
3 | #include <TH3D.h> | |
4 | #include <TList.h> | |
5 | #include "AliFemtoModelHiddenInfo.h" | |
6 | ||
7 | AliFemtoPairOriginMonitor::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 | } | |
21 | AliFemtoPairOriginMonitor::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 | ||
43 | AliFemtoPairOriginMonitor::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 | ||
64 | void 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 | ||
88 | AliFemtoPairOriginMonitor::~AliFemtoPairOriginMonitor() | |
89 | { | |
90 | // Destructor | |
91 | ||
92 | delete fParticle1Origin; | |
93 | delete fParticle1Id; | |
94 | delete fParticle2Origin; | |
95 | delete fParticle2Id; | |
96 | } | |
97 | ||
98 | AliFemtoPairOriginMonitor& 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 | ||
119 | AliFemtoString AliFemtoPairOriginMonitor::Report(){ | |
120 | // Prepare report from the execution | |
121 | string stemp = "*** AliFemtoPairOriginMonitor report"; | |
122 | AliFemtoString returnThis = stemp; | |
123 | return returnThis; | |
124 | } | |
125 | ||
126 | ||
127 | void 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 | ||
138 | TList *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 | } |