M dNdPt/AlidNdPtAnalysis.h
M dNdPt/AlidNdPtAnalysis.cxx
fRecEventHist->Sumw2();\r
\r
//\r
fRecEventHist->Sumw2();\r
\r
//\r
- Int_t binsTrackHist[3]={100,ptNbins,etaNbins};\r
- Double_t minTrackHist[3]={-25.,0.,-1.5}; \r
- Double_t maxTrackHist[3]={25.,50.,1.5}; \r
+ Int_t binsTrackHist[4]={100,ptNbins,etaNbins,150};\r
+ Double_t minTrackHist[4]={-25.,0.,-1.5,-0.5}; \r
+ Double_t maxTrackHist[4]={25.,50.,1.5,149.5}; \r
- fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta",3,binsTrackHist,minTrackHist,maxTrackHist);\r
+ fRecTrackHist = new THnSparseF("fRecTrackHist","Zv:pT:eta:multRec",4,binsTrackHist,minTrackHist,maxTrackHist);\r
fRecTrackHist->SetBinEdges(1,binsPt);\r
fRecTrackHist->SetBinEdges(2,binsEta);\r
fRecTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
fRecTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
fRecTrackHist->GetAxis(2)->SetTitle("#eta");\r
fRecTrackHist->SetBinEdges(1,binsPt);\r
fRecTrackHist->SetBinEdges(2,binsEta);\r
fRecTrackHist->GetAxis(0)->SetTitle("Zv (cm)");\r
fRecTrackHist->GetAxis(1)->SetTitle("p_{T} (GeV/c)");\r
fRecTrackHist->GetAxis(2)->SetTitle("#eta");\r
+ fRecTrackHist->GetAxis(3)->SetTitle("multiplicity MB");\r
fRecTrackHist->Sumw2();\r
\r
//\r
// rec. vs MC correlation matrices\r
//\r
fRecTrackHist->Sumw2();\r
\r
//\r
// rec. vs MC correlation matrices\r
//\r
- Int_t binsMultTrueEventMatrix[2]={150,150};\r
- Double_t minMultTrueEventMatrix[2]={-0.5,-0.5}; \r
- Double_t maxMultTrueEventMatrix[2]={149.5,149.5}; \r
- fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","mult:true_mult",2,binsMultTrueEventMatrix,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
+ Int_t binsMultTrueEventMatrix[3]={150,150,150};\r
+ Double_t minMultTrueEventMatrix[3]={-0.5,-0.5,-0.5}; \r
+ Double_t maxMultTrueEventMatrix[3]={149.5,149.5,149.5}; \r
+ fEventMultCorrelationMatrix = new THnSparseF("fEventMultCorrelationMatrix","mult:true_mult:multMB",3,binsMultTrueEventMatrix,minMultTrueEventMatrix,maxMultTrueEventMatrix);\r
fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("track multiplicity");\r
fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity");\r
fEventMultCorrelationMatrix->GetAxis(0)->SetTitle("track multiplicity");\r
fEventMultCorrelationMatrix->GetAxis(1)->SetTitle("true multiplicity");\r
+ fEventMultCorrelationMatrix->GetAxis(2)->SetTitle("MB multiplicity");\r
fEventMultCorrelationMatrix->Sumw2();\r
\r
Int_t binsTrackPtCorrelationMatrix[3]={ptNbins,ptNbins,etaNbins};\r
fEventMultCorrelationMatrix->Sumw2();\r
\r
Int_t binsTrackPtCorrelationMatrix[3]={ptNbins,ptNbins,etaNbins};\r
\r
Int_t entries = allChargedTracks->GetEntries();\r
//printf("entries %d \n",entries);\r
\r
Int_t entries = allChargedTracks->GetEntries();\r
//printf("entries %d \n",entries);\r
+ \r
+\r
+ // calculate mult of reconstructed tracks\r
+ Int_t multRecTemp=0;\r
+ for(Int_t i=0; i<entries;++i) \r
+ {\r
+ AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);\r
+ if(!track) continue;\r
+ if(track->Charge()==0) continue;\r
+\r
+\r
+ // only postive charged \r
+ if(GetParticleMode() == AlidNdPtHelper::kPlus && track->Charge() < 0) \r
+ continue;\r
+ \r
+ // only negative charged \r
+ if(GetParticleMode() == AlidNdPtHelper::kMinus && track->Charge() > 0) \r
+ continue;\r
+\r
+ if(esdTrackCuts->AcceptTrack(track)) \r
+ {\r
+ if(accCuts->AcceptTrack(track)) multRecTemp++;\r
+ } \r
+ }\r
+\r
+ \r
\r
labelsAll = new Int_t[entries];\r
labelsAcc = new Int_t[entries];\r
\r
labelsAll = new Int_t[entries];\r
labelsAcc = new Int_t[entries];\r
if(tpcTrack) delete tpcTrack; \r
} \r
\r
if(tpcTrack) delete tpcTrack; \r
} \r
\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kAllTracks, multRecTemp); \r
labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
multAll++;\r
\r
labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
multAll++;\r
\r
track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
\r
if(accCuts->AcceptTrack(track)) {\r
track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
\r
if(accCuts->AcceptTrack(track)) {\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
} \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
} \r
else {\r
if(accCuts->AcceptTrack(track)) \r
{\r
else {\r
if(accCuts->AcceptTrack(track)) \r
{\r
- FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks); \r
+ FillHistograms(track,stack,vtxESD->GetZv(),AlidNdPtHelper::kRecTracks,multRecTemp); \r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
}\r
}\r
}\r
labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
multRec++;\r
}\r
}\r
}\r
//printf("COSMIC EVENT: number %d , mult %d \n", esdEvent->GetEventNumberInFile(), multRec);\r
\r
//printf("COSMIC EVENT: number %d , mult %d \n", esdEvent->GetEventNumberInFile(), multRec);\r
\r
//printf("HIGH PT EVENT: number %d , mult %d \n", esdEvent->GetEventNumberInFile(), multRec);\r
\r
//printf("HIGH PT EVENT: number %d , mult %d \n", esdEvent->GetEventNumberInFile(), multRec);\r
\r
//printf("HIGH MULT EVENT: number %d , mult %d \n", esdEvent->GetEventNumberInFile(), multRec);\r
\r
// fill track multiplicity histograms\r
//printf("HIGH MULT EVENT: number %d , mult %d \n", esdEvent->GetEventNumberInFile(), multRec);\r
\r
// fill track multiplicity histograms\r
if(!isMCEventSelected) return; \r
}\r
\r
if(!isMCEventSelected) return; \r
}\r
\r
- Double_t vMultTrueEventMatrix[2] = { multRec, multMCTrueTracks };\r
+ Double_t vMultTrueEventMatrix[3] = { multRec, multMCTrueTracks, multMBTracks};\r
if(isEventOK && isEventTriggered) { \r
if(TMath::Abs(vtxMC[2]) < 10.0) // both Rec. and corresponding MC events must be accepted\r
fEventMultCorrelationMatrix->Fill(vMultTrueEventMatrix);\r
if(isEventOK && isEventTriggered) { \r
if(TMath::Abs(vtxMC[2]) < 10.0) // both Rec. and corresponding MC events must be accepted\r
fEventMultCorrelationMatrix->Fill(vMultTrueEventMatrix);\r
}\r
\r
//_____________________________________________________________________________\r
}\r
\r
//_____________________________________________________________________________\r
-void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj)\r
+void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB)\r
{\r
//\r
// Fill ESD track and MC histograms \r
{\r
//\r
// Fill ESD track and MC histograms \r
Double_t values1[3] = {pt,eta,phi}; \r
fRecTrackHist1[trackObj]->Fill(values1);\r
\r
Double_t values1[3] = {pt,eta,phi}; \r
fRecTrackHist1[trackObj]->Fill(values1);\r
\r
- Double_t values[3] = {zv, pt,eta}; \r
+ Double_t values[4] = {zv, pt,eta, multMB}; \r
if(trackObj == AlidNdPtHelper::kRecTracks) {\r
fRecTrackHist->Fill(values);\r
}\r
if(trackObj == AlidNdPtHelper::kRecTracks) {\r
fRecTrackHist->Fill(values);\r
}\r
- void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj);
+ void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack, const Double_t zv, AlidNdPtHelper::TrackObject trackObj, Int_t multMB);
void FillHistograms(AliStack *const stack, Int_t label, AlidNdPtHelper::TrackObject trackObj);
void FillHistograms(TObjArray *const allChargedTracks,Int_t *const labelsAll,Int_t multAll,Int_t *const labelsAcc,Int_t multAcc,Int_t *const labelsRec,Int_t multRec);
void FillHistograms(AliStack *const stack, Int_t label, AlidNdPtHelper::TrackObject trackObj);
void FillHistograms(TObjArray *const allChargedTracks,Int_t *const labelsAll,Int_t multAll,Int_t *const labelsAcc,Int_t multAcc,Int_t *const labelsRec,Int_t multRec);
//
// event rec. track vs true track multiplicity correlation matrix
//
// event rec. track vs true track multiplicity correlation matrix
- THnSparseF *fEventMultCorrelationMatrix; //-> mult:mult_true_tracks
+ THnSparseF *fEventMultCorrelationMatrix; //-> mult:mult_true_tracks:multMB
// rec. track pt vs true track pt correlation matrix for given eta
THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta
// rec. track pt vs true track pt correlation matrix for given eta
THnSparseF *fTrackPtCorrelationMatrix; //-> Pt:mcPt:mcEta
// Generic histograms to be corrected
//
THnSparseF *fRecEventHist; //-> Zv:multMB
// Generic histograms to be corrected
//
THnSparseF *fRecEventHist; //-> Zv:multMB
- THnSparseF *fRecTrackHist; //-> Zv:pT:eta
+ THnSparseF *fRecTrackHist; //-> Zv:pT:eta:multRec
//
// candle events track corrections
//
// candle events track corrections