AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult():
fEvMult(0),
- fNormEvMult(0)
+ fNormEvMult(0),
+ fSPDMult(0)
{
// Default constructor
fEvMult = new TH1D("EvMult", "Event Multiplicity", 5001, -0.5, 5000.5);
AliFemtoCutMonitorEventMult::AliFemtoCutMonitorEventMult(const char *aName):
AliFemtoCutMonitor(),
fEvMult(0),
- fNormEvMult(0)
+ fNormEvMult(0),
+ fSPDMult(0)
{
// Normal constructor
char name[200];
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;
if (fNormEvMult) delete fNormEvMult;
fNormEvMult = new TH1D(*aCut.fNormEvMult);
+
+ if (fSPDMult) delete fSPDMult;
+ fSPDMult = new TH1D(*aCut.fSPDMult);
}
AliFemtoCutMonitorEventMult::~AliFemtoCutMonitorEventMult()
// Destructor
delete fEvMult;
delete fNormEvMult;
+ delete fSPDMult;
}
AliFemtoCutMonitorEventMult& AliFemtoCutMonitorEventMult::operator=(const AliFemtoCutMonitorEventMult& aCut)
if (fNormEvMult) delete fNormEvMult;
fNormEvMult = new TH1D(*aCut.fNormEvMult);
+ if (fSPDMult) delete fSPDMult;
+ fSPDMult = new TH1D(*aCut.fSPDMult);
+
return *this;
}
// 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()
// Write out the relevant histograms
fEvMult->Write();
fNormEvMult->Write();
+ fSPDMult->Write();
}
TList *AliFemtoCutMonitorEventMult::GetOutputList()
TList *tOutputList = new TList();
tOutputList->Add(fEvMult);
tOutputList->Add(fNormEvMult);
-
+ tOutputList->Add(fSPDMult);
return tOutputList;
}
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){
return NumberOfTracks()/2;
}
+double AliFemtoEvent::SPDMultiplicity() const
+{
+ return fSPDMult;
+}
+
double AliFemtoEvent::UncorrectedNumberOfPrimaries() const
{
if (fNormalizedMult < 0) {
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);
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
#include "AliESDEvent.h"
#include "AliESDtrack.h"
#include "AliESDVertex.h"
+#include "AliMultiplicity.h"
#include "AliFmPhysicalHelixD.h"
#include "AliFmThreeVectorF.h"
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();