]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add SPD multiplicity selection and monitoring
authorakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Mar 2010 10:55:10 +0000 (10:55 +0000)
committerakisiel <akisiel@f7af4fe6-9843-0410-8265-dc069ae4e863>
Fri, 19 Mar 2010 10:55:10 +0000 (10:55 +0000)
PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorEventMult.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoCutMonitorEventMult.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEvent.cxx
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEvent.h
PWG2/FEMTOSCOPY/AliFemto/AliFemtoEventReaderESDChain.cxx

index d29423aec03d7e81fb28de19582819e58f6310a0..518a09bc5dec3ffca92585c51fbc7d0932fdf9d5 100644 (file)
@@ -13,7 +13,8 @@
 
 AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult():
   fEvMult(0),
-  fNormEvMult(0)
+  fNormEvMult(0),
+  fSPDMult(0)
 {
   // Default constructor
   fEvMult = new TH1D("EvMult", "Event Multiplicity", 5001, -0.5, 5000.5);
@@ -22,7 +23,8 @@ AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult():
 AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult(const char *aName):
   AliFemtoCutMonitor(),
   fEvMult(0),
-  fNormEvMult(0)
+  fNormEvMult(0),
+  fSPDMult(0)
 {
   // Normal constructor
   char name[200];
@@ -31,12 +33,16 @@ AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult(const char *aName):
 
   snprintf(name, 200, "NormEvMult%s", aName);
   fNormEvMult = new TH1D(name, "Normalized Event Multiplicity", 5001, -0.5, 5000.5);
+
+  snprintf(name, 200, "SPDEvMult%s", aName);
+  fSPDMult = new TH1D(name, "SPD Tracklet Multiplicity", 5001, -0.5, 5000.5);
 }
 
 AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult(const AliFemtoCutMonitorEventMult &aCut):
   AliFemtoCutMonitor(),
   fEvMult(0),
-  fNormEvMult(0)
+  fNormEvMult(0),
+  fSPDMult(0)
 {
   // copy constructor
   if (fEvMult) delete fEvMult;
@@ -44,6 +50,9 @@ AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult(const AliFemtoCutMonito
 
   if (fNormEvMult) delete fNormEvMult;
   fNormEvMult = new TH1D(*aCut.fNormEvMult);
+
+  if (fSPDMult) delete fSPDMult;
+  fSPDMult = new TH1D(*aCut.fSPDMult);
 }
 
 AliFemtoCutMonitorEventMult::~AliFemtoCutMonitorEventMult()
@@ -51,6 +60,7 @@ AliFemtoCutMonitorEventMult::~AliFemtoCutMonitorEventMult()
   // Destructor
   delete fEvMult;
   delete fNormEvMult;
+  delete fSPDMult;
 }
 
 AliFemtoCutMonitorEventMult& AliFemtoCutMonitorEventMult::operator=(const AliFemtoCutMonitorEventMult& aCut)
@@ -65,6 +75,9 @@ AliFemtoCutMonitorEventMult& AliFemtoCutMonitorEventMult::operator=(const AliFem
   if (fNormEvMult) delete fNormEvMult;
   fNormEvMult = new TH1D(*aCut.fNormEvMult);
   
+  if (fSPDMult) delete fSPDMult;
+  fSPDMult = new TH1D(*aCut.fSPDMult);
+  
   return *this;
 }
 
@@ -80,6 +93,7 @@ void AliFemtoCutMonitorEventMult::Fill(const AliFemtoEvent* aEvent)
   // Fill in the monitor histograms with the values from the current track
   fEvMult->Fill(aEvent->NumberOfTracks());
   fNormEvMult->Fill(aEvent->UncorrectedNumberOfPrimaries());
+  fSPDMult->Fill(aEvent->SPDMultiplicity());
 }
 
 void AliFemtoCutMonitorEventMult::Write()
@@ -87,6 +101,7 @@ void AliFemtoCutMonitorEventMult::Write()
   // Write out the relevant histograms
   fEvMult->Write();
   fNormEvMult->Write();
+  fSPDMult->Write();
 }
 
 TList *AliFemtoCutMonitorEventMult::GetOutputList()
@@ -94,6 +109,6 @@ TList *AliFemtoCutMonitorEventMult::GetOutputList()
   TList *tOutputList = new TList();
   tOutputList->Add(fEvMult);
   tOutputList->Add(fNormEvMult);
-
+  tOutputList->Add(fSPDMult);
   return tOutputList;
 }
index 1289386026c6de2501a69a0461529e7cb8e2194e..205e95f45a25bdd7c2c57cfd05b1251cae95b78a 100644 (file)
@@ -46,6 +46,7 @@ class AliFemtoCutMonitorEventMult : public AliFemtoCutMonitor{
  private:
   TH1D *fEvMult;     // Multiplicity distribution
   TH1D *fNormEvMult; // Normalized event multiplicity distribution
+  TH1D *fSPDMult;    // SPD tracklet multiplicity
 };
 
 #endif
index cb9bc6f5f861cc4f46e0dc04f584cac1c3b1e74f..52abaea191e63a5b176151d257c7f4702dd44a04 100644 (file)
@@ -312,6 +312,7 @@ void AliFemtoEvent::SetZDCParticipants(const unsigned int& aZDCParticipants){fZD
 
 void AliFemtoEvent::SetNumberOfTracks(const unsigned short& tracks){fNumberOfTracks = tracks;}
 void AliFemtoEvent::SetNormalizedMult(const int& i){fNormalizedMult = i;}
+void AliFemtoEvent::SetSPDMult(const int& i){fSPDMult = i;}
 
 void AliFemtoEvent::SetPrimVertPos(const AliFemtoThreeVector& vp){fPrimVertPos = vp;}
 void AliFemtoEvent::SetPrimVertCov(const double* v){
@@ -365,6 +366,11 @@ double AliFemtoEvent::UncorrectedNumberOfNegativePrimaries() const
   return NumberOfTracks()/2;
 }
 
+double AliFemtoEvent::SPDMultiplicity() const
+{
+  return fSPDMult;
+}
+
 double AliFemtoEvent::UncorrectedNumberOfPrimaries() const
 {
   if (fNormalizedMult < 0) {
index 6af4953495eb7524adbdfd215d1c67cd1c9b78e6..c4153c5350fa2275086514a01fccb093073047c3 100644 (file)
@@ -74,6 +74,7 @@ public:
   void SetRunNumber(const int& i);
   void SetNumberOfTracks(const unsigned short& s);
   void SetNormalizedMult(const int& i);
+  void SetSPDMult(const int& i);
   void SetPrimVertPos(const AliFemtoThreeVector& v);
   void SetPrimVertCov(const double* v);
   void SetMagneticField(const double& x);
@@ -94,12 +95,14 @@ public:
   
   double UncorrectedNumberOfNegativePrimaries() const;
   double UncorrectedNumberOfPrimaries() const;
+  double SPDMultiplicity() const;
 
 private:
   unsigned short fEventNumber;           // Event number in file
   unsigned short fRunNumber;             // run number the event belong to
   unsigned short fNumberOfTracks;        // total number of TPC tracks
   int   fNormalizedMult;                 // normalized multiplicity
+  int   fSPDMult;                        // Multiplicity of SPD tracklets
   double fMagneticField;                 // magnetic field in Z direction
   bool fIsCollisionCandidate;            // is collision candidate
   
index 431453f40c9a1b4500eb2e54648a9022528d2920..fe4cedd8043d4ed05c69fedbc3c98f57e7fa9a34 100644 (file)
@@ -13,6 +13,7 @@
 #include "AliESDEvent.h"
 #include "AliESDtrack.h"
 #include "AliESDVertex.h"
+#include "AliMultiplicity.h"
 
 #include "AliFmPhysicalHelixD.h"
 #include "AliFmThreeVectorF.h"
@@ -281,6 +282,8 @@ AliFemtoEvent* AliFemtoEventReaderESDChain::ReturnHbtEvent()
   hbtEvent->SetPrimVertPos(vertex);
   hbtEvent->SetPrimVertCov(fVCov);
        
+  hbtEvent->SetSPDMult(fEvent->GetMultiplicity()->GetNumberOfTracklets());
+
   //starting to reading tracks
   int nofTracks=0;  //number of reconstructed tracks in event
   nofTracks=fEvent->GetNumberOfTracks();