]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleYPt.cxx
Adding Eta and Phi histograms
[u/mrichter/AliRoot.git] / PWG2 / FEMTOSCOPY / AliFemto / AliFemtoCutMonitorParticleYPt.cxx
CommitLineData
0b3bd1ac 1////////////////////////////////////////////////////////////////////////////////
2// //
3// AliFemtoCutMonitorParticleYPt - the cut monitor for particles to study //
4// the difference between reconstructed and true momentum //
5// //
6////////////////////////////////////////////////////////////////////////////////
7#include "AliFemtoCutMonitorParticleYPt.h"
8#include "AliFemtoModelHiddenInfo.h"
9#include <TH1D.h>
10#include <TH2D.h>
11#include <TList.h>
8684332a 12#include <TMath.h>
0b3bd1ac 13
14AliFemtoCutMonitorParticleYPt::AliFemtoCutMonitorParticleYPt():
15 fYPt(0),
8684332a 16 fYPhi(0),
17 fPtPhi(0),
18 fEtaPhi(0),
19 fEtaPt(0),
0b3bd1ac 20 fMass(0.13957)
21{
22 // Default constructor
8684332a 23 fYPt = new TH2D("YPt", "Rapidity vs Pt", 100, -1.0, 1.0, 100, 0.1, 2.0);
24 fYPhi = new TH2D("YPhi", "Rapidity vs Phi", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
25 fPtPhi = new TH2D("PtPhi", "Pt vs Phi", 100, 0.1, 2.0, 100, -TMath::Pi(), TMath::Pi());
26 fEtaPhi = new TH2D("EtaPhi", "Pseudorapidity vs Phi", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
27 fEtaPt = new TH2D("EtaPt", "Pseudorapidity vs Pt", 100, -1.0, 1.0, 100, 0.1, 2.0);
0b3bd1ac 28}
29
30AliFemtoCutMonitorParticleYPt::AliFemtoCutMonitorParticleYPt(const char *aName, float aMass):
b976850d 31 AliFemtoCutMonitor(),
0b3bd1ac 32 fYPt(0),
8684332a 33 fYPhi(0),
34 fPtPhi(0),
35 fEtaPhi(0),
36 fEtaPt(0),
0b3bd1ac 37 fMass(aMass)
38{
39 // Normal constructor
40 char name[200];
41 snprintf(name, 200, "YPt%s", aName);
42 fYPt = new TH2D(name, "Rapdity vs Pt", 100, -1.0, 1.0, 100, 0.1, 2.0);
8684332a 43 snprintf(name, 200, "YPhi%s", aName);
44 fYPhi = new TH2D(name, "Rapidity vs Phi", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
45 snprintf(name, 200, "PtPhi%s", aName);
46 fPtPhi = new TH2D(name, "Pt vs Phi", 100, 0.1, 2.0, 100, -TMath::Pi(), TMath::Pi());
47 snprintf(name, 200, "EtaPhi%s", aName);
48 fEtaPhi = new TH2D(name, "Pseudorapidity vs Phi", 100, -1.0, 1.0, 100, -TMath::Pi(), TMath::Pi());
49 snprintf(name, 200, "EtaPt%s", aName);
50 fEtaPt = new TH2D(name, "Pseudorapidity vs Pt", 100, -1.0, 1.0, 100, 0.1, 2.0);
0b3bd1ac 51}
52
53AliFemtoCutMonitorParticleYPt::AliFemtoCutMonitorParticleYPt(const AliFemtoCutMonitorParticleYPt &aCut):
b976850d 54 AliFemtoCutMonitor(),
0b3bd1ac 55 fYPt(0),
8684332a 56 fYPhi(0),
57 fPtPhi(0),
58 fEtaPhi(0),
59 fEtaPt(0),
0b3bd1ac 60 fMass(0.13957)
61{
62 // copy constructor
63 if (fYPt) delete fYPt;
64 fYPt = new TH2D(*aCut.fYPt);
8684332a 65 fYPhi = new TH2D(*aCut.fYPhi);
66 fPtPhi = new TH2D(*aCut.fPtPhi);
67 fEtaPhi = new TH2D(*aCut.fEtaPhi);
68 fEtaPt = new TH2D(*aCut.fEtaPt);
0b3bd1ac 69 fMass = aCut.fMass;
70}
71
72AliFemtoCutMonitorParticleYPt::~AliFemtoCutMonitorParticleYPt()
73{
74 // Destructor
75 delete fYPt;
8684332a 76 delete fYPhi;
77 delete fPtPhi;
78 delete fEtaPhi;
79 delete fEtaPt;
0b3bd1ac 80}
81
82AliFemtoCutMonitorParticleYPt& AliFemtoCutMonitorParticleYPt::operator=(const AliFemtoCutMonitorParticleYPt& aCut)
83{
84 // assignment operator
85 if (this == &aCut)
86 return *this;
87
88 if (fYPt) delete fYPt;
89 fYPt = new TH2D(*aCut.fYPt);
8684332a 90 if (fYPhi) delete fYPhi;
91 fYPhi = new TH2D(*aCut.fYPhi);
92 if (fPtPhi) delete fPtPhi;
93 fPtPhi = new TH2D(*aCut.fPtPhi);
94 if (fEtaPhi) delete fEtaPhi;
95 fEtaPhi = new TH2D(*aCut.fEtaPhi);
96 if (fEtaPt) delete fEtaPt;
97 fEtaPt = new TH2D(*aCut.fEtaPt);
0b3bd1ac 98
99 return *this;
100}
101
102AliFemtoString AliFemtoCutMonitorParticleYPt::Report(){
103 // Prepare report from the execution
104 string stemp = "*** AliFemtoCutMonitorParticleYPt report";
105 AliFemtoString returnThis = stemp;
106 return returnThis;
107}
108
109void AliFemtoCutMonitorParticleYPt::Fill(const AliFemtoTrack* aTrack)
110{
111 // Fill in the monitor histograms with the values from the current track
112 float tEnergy = ::sqrt(aTrack->P().mag2()+fMass*fMass);
113 float tRapidity = 0.5*::log((tEnergy+aTrack->P().z())/(tEnergy-aTrack->P().z()));
114 float tPt = ::sqrt((aTrack->P().x())*(aTrack->P().x())+(aTrack->P().y())*(aTrack->P().y()));
8684332a 115 float tEta = -TMath::Log(TMath::Tan(aTrack->P().theta()/2.0));
116 float tPhi = aTrack->P().phi();
117
0b3bd1ac 118 fYPt->Fill(tRapidity, tPt);
8684332a 119 fYPhi->Fill(tRapidity, tPhi);
120 fPtPhi->Fill(tPt, tPhi);
121 fEtaPhi->Fill(tEta, tPhi);
122 fEtaPt->Fill(tEta, tPt);
0b3bd1ac 123}
124
125void AliFemtoCutMonitorParticleYPt::Write()
126{
127 // Write out the relevant histograms
128 fYPt->Write();
8684332a 129 fYPhi->Write();
130 fPtPhi->Write();
131 fEtaPhi->Write();
132 fEtaPt->Write();
0b3bd1ac 133}
134
135TList *AliFemtoCutMonitorParticleYPt::GetOutputList()
136{
137 TList *tOutputList = new TList();
138 tOutputList->Add(fYPt);
8684332a 139 tOutputList->Add(fYPhi);
140 tOutputList->Add(fPtPhi);
141 tOutputList->Add(fEtaPhi);
142 tOutputList->Add(fEtaPt);
0b3bd1ac 143
144 return tOutputList;
145}