]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add monitoring of MC emission point
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 14 Jan 2010 15:53:48 +0000 (15:53 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Thu, 14 Jan 2010 15:53:48 +0000 (15:53 +0000)
PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorParticleVertPos.h

index ecaacdc6e0616ed21ebdd8bbab51fb2bab705936..832899728d932f671c873b56085177973a957b00 100644 (file)
 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<AliFemtoModelHiddenInfo *>(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;
 }
index 844c0ee49788d04566b7acc8abe0800a8eec9e65..806a4271304b6f3047d4ab48c7380be165da442c 100644 (file)
@@ -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