From 8101bddda689abacd53b2e361f3139217fd9cc43 Mon Sep 17 00:00:00 2001 From: akisiel Date: Thu, 14 Jan 2010 15:53:48 +0000 Subject: [PATCH] Add monitoring of MC emission point --- .../AliFemtoCutMonitorParticleVertPos.cxx | 67 ++++++++++++++++++- .../AliFemtoCutMonitorParticleVertPos.h | 5 ++ 2 files changed, 69 insertions(+), 3 deletions(-) diff --git a/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.cxx b/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.cxx index ecaacdc6e06..832899728d9 100644 --- a/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.cxx +++ b/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.cxx @@ -15,19 +15,32 @@ AliFemtoCutMonitorParticleVertPos::AliFemtoCutMonitorParticleVertPos(): fVertPos(0), fEtaZ(0), - fRadPos(0) + fRadPos(0), + fEmPointX(0), + fEmPointY(0), + fEmPointZ(0), + fEmPointT(0) { // Default constructor fVertPos = new TH2D("VertPos", "Vertex position", 200, -20.0, 20.0, 200, -20.0, 20.0); fEtaZ = new TH2D("EtaZPos", "Z vs. Eta", 200, -100.0, 100.0, 100, -1.5, 1.5); fRadPos = new TH1D("RadPos", "Radial position", 200, 0.0, 1.0); + fEmPointX = new TH1D("EmPointX","Emission point x", 400, -200.0, 200.0); + fEmPointY = new TH1D("EmPointY","Emission point y", 400, -200.0, 200.0); + fEmPointZ = new TH1D("EmPointZ","Emission point z", 400, -200.0, 200.0); + fEmPointT = new TH1D("EmPointT","Emission point t", 400, -200.0, 200.0); + } AliFemtoCutMonitorParticleVertPos::AliFemtoCutMonitorParticleVertPos(const char *aName): AliFemtoCutMonitor(), fVertPos(0), fEtaZ(0), - fRadPos(0) + fRadPos(0), + fEmPointX(0), + fEmPointY(0), + fEmPointZ(0), + fEmPointT(0) { // Normal constructor char name[200]; @@ -37,13 +50,25 @@ AliFemtoCutMonitorParticleVertPos::AliFemtoCutMonitorParticleVertPos(const char fEtaZ = new TH2D(name, "Z vs. Eta", 200, -100.0, 100.0, 100, -1.5, 1.5); snprintf(name, 200, "RadPos%s", aName); fRadPos = new TH1D(name, "Radial position", 200, 0.0, 1.0); + snprintf(name, 200, "EmPosX%s", aName); + fEmPointX = new TH1D(name,"Emission point x", 400, -200.0, 200.0); + snprintf(name, 200, "EmPosY%s", aName); + fEmPointY = new TH1D(name,"Emission point y", 400, -200.0, 200.0); + snprintf(name, 200, "EmPosZ%s", aName); + fEmPointZ = new TH1D(name,"Emission point z", 400, -200.0, 200.0); + snprintf(name, 200, "EmPosT%s", aName); + fEmPointT = new TH1D(name,"Emission point t", 400, -200.0, 200.0); } AliFemtoCutMonitorParticleVertPos::AliFemtoCutMonitorParticleVertPos(const AliFemtoCutMonitorParticleVertPos &aCut): AliFemtoCutMonitor(), fVertPos(0), fEtaZ(0), - fRadPos(0) + fRadPos(0), + fEmPointX(0), + fEmPointY(0), + fEmPointZ(0), + fEmPointT(0) { // copy constructor if (fVertPos) delete fVertPos; @@ -52,6 +77,14 @@ AliFemtoCutMonitorParticleVertPos::AliFemtoCutMonitorParticleVertPos(const AliFe fEtaZ = new TH2D(*aCut.fEtaZ); if (fRadPos) delete fRadPos; fRadPos = new TH1D(*aCut.fRadPos); + if (fEmPointX) delete fEmPointX; + fEmPointX = new TH1D(*aCut.fEmPointX); + if (fEmPointY) delete fEmPointY; + fEmPointY = new TH1D(*aCut.fEmPointY); + if (fEmPointZ) delete fEmPointZ; + fEmPointZ = new TH1D(*aCut.fEmPointZ); + if (fEmPointT) delete fEmPointT; + fEmPointT = new TH1D(*aCut.fEmPointT); } AliFemtoCutMonitorParticleVertPos::~AliFemtoCutMonitorParticleVertPos() @@ -60,6 +93,10 @@ AliFemtoCutMonitorParticleVertPos::~AliFemtoCutMonitorParticleVertPos() delete fVertPos; delete fEtaZ; delete fRadPos; + delete fEmPointX; + delete fEmPointY; + delete fEmPointZ; + delete fEmPointT; } AliFemtoCutMonitorParticleVertPos& AliFemtoCutMonitorParticleVertPos::operator=(const AliFemtoCutMonitorParticleVertPos& aCut) @@ -74,6 +111,14 @@ AliFemtoCutMonitorParticleVertPos& AliFemtoCutMonitorParticleVertPos::operator=( fEtaZ = new TH2D(*aCut.fEtaZ); if (fRadPos) delete fRadPos; fRadPos = new TH1D(*aCut.fRadPos); + if (fEmPointX) delete fEmPointX; + fEmPointX = new TH1D(*aCut.fEmPointX); + if (fEmPointY) delete fEmPointY; + fEmPointY = new TH1D(*aCut.fEmPointY); + if (fEmPointZ) delete fEmPointZ; + fEmPointZ = new TH1D(*aCut.fEmPointZ); + if (fEmPointT) delete fEmPointT; + fEmPointT = new TH1D(*aCut.fEmPointT); return *this; } @@ -96,6 +141,14 @@ void AliFemtoCutMonitorParticleVertPos::Fill(const AliFemtoTrack* aTrack) fEtaZ->Fill(hinfo->GetGlobalEmissionPoint()->z(), tEta); fRadPos->Fill(hinfo->GetGlobalEmissionPoint()->perp()); } + + AliFemtoModelHiddenInfo *hminfo = dynamic_cast(aTrack->GetHiddenInfo()); + if (hminfo) { + fEmPointX->Fill(hminfo->GetEmissionPoint()->x()); + fEmPointY->Fill(hminfo->GetEmissionPoint()->y()); + fEmPointZ->Fill(hminfo->GetEmissionPoint()->z()); + fEmPointT->Fill(hminfo->GetEmissionPoint()->t()); + } } void AliFemtoCutMonitorParticleVertPos::Write() @@ -104,6 +157,10 @@ void AliFemtoCutMonitorParticleVertPos::Write() fVertPos->Write(); fEtaZ->Write(); fRadPos->Write(); + fEmPointX->Write(); + fEmPointY->Write(); + fEmPointZ->Write(); + fEmPointT->Write(); } TList *AliFemtoCutMonitorParticleVertPos::GetOutputList() @@ -112,6 +169,10 @@ TList *AliFemtoCutMonitorParticleVertPos::GetOutputList() tOutputList->Add(fVertPos); tOutputList->Add(fEtaZ); tOutputList->Add(fRadPos); + tOutputList->Add(fEmPointX); + tOutputList->Add(fEmPointY); + tOutputList->Add(fEmPointZ); + tOutputList->Add(fEmPointT); return tOutputList; } diff --git a/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.h b/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.h index 844c0ee4978..806a4271304 100644 --- a/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.h +++ b/PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.h @@ -48,6 +48,11 @@ private: TH2D *fVertPos; // Vertex position x vs. y monitor TH2D *fEtaZ; // Vertex z position vs. eta monitor TH1D *fRadPos; // Radial position close to vertex + TH1D *fEmPointX; // Emission point - x + TH1D *fEmPointY; // Emission point - y + TH1D *fEmPointZ; // Emission point - z + TH1D *fEmPointT; // Emission point - t + }; #endif -- 2.43.0