\r
#include "AlidNdPtEventCuts.h"\r
#include "AlidNdPtAcceptanceCuts.h"\r
+#include "AliPhysicsSelection.h"\r
\r
+#include "AliPWG0Helper.h"\r
+#include "AlidNdPtHelper.h"\r
#include "AlidNdPtAnalysis.h"\r
\r
using namespace std;\r
fRecTrackNSDEventMatrix(0),\r
\r
// track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix)\r
+ fGenTrackMatrix(0),\r
fGenPrimTrackMatrix(0),\r
fRecPrimTrackMatrix(0),\r
\r
fRecMCTrackHist1(0),\r
\r
//multple reconstructed tracks\r
- fMCMultRecTrackHist1(0) \r
+ fMCMultRecTrackHist1(0), \r
+\r
+ // rec. track control histograms\r
+ fRecTrackHist2(0)\r
{\r
// default constructor\r
for(Int_t i=0; i<AlidNdPtHelper::kCutSteps; i++) { \r
fRecTrackNSDEventMatrix(0),\r
\r
// track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix)\r
+ fGenTrackMatrix(0),\r
fGenPrimTrackMatrix(0),\r
fRecPrimTrackMatrix(0),\r
\r
fRecMCTrackHist1(0),\r
\r
//multple reconstructed tracks\r
- fMCMultRecTrackHist1(0) \r
+ fMCMultRecTrackHist1(0), \r
+\r
+ // rec. track control histograms\r
+ fRecTrackHist2(0)\r
{\r
// constructor\r
for(Int_t i=0; i<AlidNdPtHelper::kCutSteps; i++) { \r
if(fRecTrackNSDEventMatrix) delete fRecTrackNSDEventMatrix; fRecTrackNSDEventMatrix=0;\r
\r
//\r
+ if(fGenTrackMatrix) delete fGenTrackMatrix; fGenTrackMatrix=0;\r
if(fGenPrimTrackMatrix) delete fGenPrimTrackMatrix; fGenPrimTrackMatrix=0;\r
if(fRecPrimTrackMatrix) delete fRecPrimTrackMatrix; fRecPrimTrackMatrix=0;\r
//\r
}\r
if(fRecMCTrackHist1) delete fRecMCTrackHist1; fRecMCTrackHist1=0;\r
if(fMCMultRecTrackHist1) delete fMCMultRecTrackHist1; fMCMultRecTrackHist1=0; \r
+ if(fRecTrackHist2) delete fRecTrackHist2; fRecTrackHist2=0; \r
//\r
if(fAnalysisFolder) delete fAnalysisFolder; fAnalysisFolder=0;\r
}\r
Double_t minEventMatrix[2]={-25.,-0.5}; \r
Double_t maxEventMatrix[2]={25.,149.5}; \r
\r
- fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fGenEventMatrix = new THnSparseF("fGenEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fGenEventMatrix->SetBinEdges(0,binsZv);\r
fGenEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fGenEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fGenEventMatrix->Sumw2();\r
\r
- fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fGenSDEventMatrix = new THnSparseF("fGenSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fGenSDEventMatrix->SetBinEdges(0,binsZv);\r
fGenSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fGenSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fGenSDEventMatrix->Sumw2();\r
\r
- fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fGenDDEventMatrix = new THnSparseF("fGenDDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fGenDDEventMatrix->SetBinEdges(0,binsZv);\r
fGenDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fGenDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fGenDDEventMatrix->Sumw2();\r
\r
- fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fGenNDEventMatrix = new THnSparseF("fGenNDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fGenNDEventMatrix->SetBinEdges(0,binsZv);\r
fGenNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fGenNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fGenNDEventMatrix->Sumw2();\r
\r
- fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fGenNSDEventMatrix = new THnSparseF("fGenNSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fGenNSDEventMatrix->SetBinEdges(0,binsZv);\r
fGenNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fGenNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fGenNSDEventMatrix->Sumw2();\r
\r
//\r
- fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fTriggerEventMatrix = new THnSparseF("fTriggerEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fTriggerEventMatrix->SetBinEdges(0,binsZv);\r
fTriggerEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fTriggerEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fTriggerEventMatrix->Sumw2();\r
\r
- fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fTriggerSDEventMatrix = new THnSparseF("fTriggerSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fTriggerSDEventMatrix->SetBinEdges(0,binsZv);\r
fTriggerSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fTriggerSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fTriggerSDEventMatrix->Sumw2();\r
\r
- fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fTriggerDDEventMatrix = new THnSparseF("fTriggerDDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fTriggerDDEventMatrix->SetBinEdges(0,binsZv);\r
fTriggerDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fTriggerDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fTriggerDDEventMatrix->Sumw2();\r
\r
- fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fTriggerNDEventMatrix = new THnSparseF("fTriggerNDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fTriggerNDEventMatrix->SetBinEdges(0,binsZv);\r
fTriggerNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fTriggerNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fTriggerNDEventMatrix->Sumw2();\r
\r
- fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fTriggerNSDEventMatrix = new THnSparseF("fTriggerNSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fTriggerNSDEventMatrix->SetBinEdges(0,binsZv);\r
fTriggerNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fTriggerNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fTriggerNSDEventMatrix->Sumw2();\r
\r
//\r
- fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fRecEventMatrix = new THnSparseF("fRecEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fRecEventMatrix->SetBinEdges(0,binsZv);\r
fRecEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fRecEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fRecEventMatrix->Sumw2();\r
\r
- fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fRecSDEventMatrix = new THnSparseF("fRecSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fRecSDEventMatrix->SetBinEdges(0,binsZv);\r
fRecSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fRecSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fRecSDEventMatrix->Sumw2();\r
\r
- fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fRecDDEventMatrix = new THnSparseF("fRecDDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fRecDDEventMatrix->SetBinEdges(0,binsZv);\r
fRecDDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fRecDDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fRecDDEventMatrix->Sumw2();\r
\r
- fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fRecNDEventMatrix = new THnSparseF("fRecNDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fRecNDEventMatrix->SetBinEdges(0,binsZv);\r
fRecNDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fRecNDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fRecNDEventMatrix->Sumw2();\r
\r
- fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:mult",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
+ fRecNSDEventMatrix = new THnSparseF("fRecNSDEventMatrix","mcZv:multMB",2,binsEventMatrix,minEventMatrix,maxEventMatrix);\r
fRecNSDEventMatrix->SetBinEdges(0,binsZv);\r
fRecNSDEventMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
- fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity");\r
+ fRecNSDEventMatrix->GetAxis(1)->SetTitle("multiplicity MB");\r
fRecNSDEventMatrix->Sumw2();\r
\r
// \r
//\r
// tracks correction matrices\r
//\r
+ fGenTrackMatrix = new THnSparseF("fGenTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix);\r
+ fGenTrackMatrix->SetBinEdges(0,binsZv);\r
+ fGenTrackMatrix->SetBinEdges(1,binsPt);\r
+ fGenTrackMatrix->SetBinEdges(2,binsEta);\r
+ fGenTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)");\r
+ fGenTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)");\r
+ fGenTrackMatrix->GetAxis(2)->SetTitle("mcEta");\r
+ fGenTrackMatrix->Sumw2();\r
+\r
fGenPrimTrackMatrix = new THnSparseF("fGenPrimTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix);\r
fGenPrimTrackMatrix->SetBinEdges(0,binsZv);\r
fGenPrimTrackMatrix->SetBinEdges(1,binsPt);\r
fRecEventHist1->Sumw2();\r
\r
//\r
- Int_t binsRecEventHist2[2]={zvNbins,150};\r
- Double_t minRecEventHist2[2]={-25.,-0.5}; \r
- Double_t maxRecEventHist2[2]={25.,149.5}; \r
+ Int_t binsRecEventHist2[3]={zvNbins,150,150};\r
+ Double_t minRecEventHist2[3]={-25.,-0.5,-0.5}; \r
+ Double_t maxRecEventHist2[3]={25.,149.5,149.5}; \r
\r
- fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB",2,binsRecEventHist2,minRecEventHist2,maxRecEventHist2);\r
+ fRecEventHist2 = new THnSparseF("fRecEventHist2","Zv:multMB:mult",3,binsRecEventHist2,minRecEventHist2,maxRecEventHist2);\r
fRecEventHist2->SetBinEdges(0,binsZv);\r
fRecEventHist2->GetAxis(0)->SetTitle("Zv (cm)");\r
- fRecEventHist2->GetAxis(1)->SetTitle("multMB");\r
+ fRecEventHist2->GetAxis(1)->SetTitle("multiplicity MB");\r
+ fRecEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
fRecEventHist2->Sumw2();\r
\r
//\r
Double_t kFact = 1.0;\r
- if(GetAnalysisMode() == AlidNdPtHelper::kTPCSPDvtx) kFact = 0.05; \r
+ if(GetAnalysisMode() == AlidNdPtHelper::kTPCSPDvtx || \r
+ GetAnalysisMode() == AlidNdPtHelper::kTPCSPDvtxUpdate) kFact = 0.03; \r
\r
Int_t binsRecMCEventHist1[3]={100,100,100};\r
Double_t minRecMCEventHist1[3]={-10.0*kFact,-10.0*kFact,-10.0*kFact}; \r
Double_t maxRecMCEventHist1[3]={10.0*kFact,10.0*kFact,10.0*kFact}; \r
\r
- fRecMCEventHist1 = new THnSparseF("fRecMCEventHist1","mcXv-Xv:mcYv-Yv:mcZv-Zv",3,binsRecMCEventHist1,minRecMCEventHist1,maxRecMCEventHist1);\r
- fRecMCEventHist1->GetAxis(0)->SetTitle("mcXv-Xv (cm)");\r
- fRecMCEventHist1->GetAxis(1)->SetTitle("mcYv-Yv (cm)");\r
- fRecMCEventHist1->GetAxis(2)->SetTitle("mcZv-Zv (cm)");\r
+ fRecMCEventHist1 = new THnSparseF("fRecMCEventHist1","Xv-mcXv:Yv-mcYv:Zv-mcZv",3,binsRecMCEventHist1,minRecMCEventHist1,maxRecMCEventHist1);\r
+ fRecMCEventHist1->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
+ fRecMCEventHist1->GetAxis(1)->SetTitle("Yv-mcYv (cm)");\r
+ fRecMCEventHist1->GetAxis(2)->SetTitle("Zv-mcZv (cm)");\r
fRecMCEventHist1->Sumw2();\r
\r
//\r
Double_t minRecMCEventHist2[3]={-10.0*kFact,-10.0*kFact,0.0}; \r
Double_t maxRecMCEventHist2[3]={10.0*kFact,10.0*kFact,149.50}; \r
\r
- fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","mcXv-Xv:mcZv-Zv:Mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
- fRecMCEventHist2->GetAxis(0)->SetTitle("mcXv-Xv (cm)");\r
- fRecMCEventHist2->GetAxis(1)->SetTitle("mcZv-Zv (cm)");\r
- fRecMCEventHist2->GetAxis(2)->SetTitle("Mult");\r
+ fRecMCEventHist2 = new THnSparseF("fRecMCEventHist2","Xv-mcXv:Zv-mcZv:mult",3,binsRecMCEventHist2,minRecMCEventHist2,maxRecMCEventHist2);\r
+ fRecMCEventHist2->GetAxis(0)->SetTitle("Xv-mcXv (cm)");\r
+ fRecMCEventHist2->GetAxis(1)->SetTitle("Zv-mcZv (cm)");\r
+ fRecMCEventHist2->GetAxis(2)->SetTitle("multiplicity");\r
fRecMCEventHist2->Sumw2();\r
\r
Int_t binsRecMCEventHist3[2]={150,5};\r
Double_t minRecMCEventHist3[2]={-0.5,0.0}; \r
Double_t maxRecMCEventHist3[2]={149.50,5.0}; \r
- fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","Mult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
- fRecMCEventHist3->GetAxis(0)->SetTitle("Mult");\r
+ fRecMCEventHist3 = new THnSparseF("fRecMCEventHist3","mult:EventType (ND, DD, SD)",2,binsRecMCEventHist3,minRecMCEventHist3,maxRecMCEventHist3);\r
+ fRecMCEventHist3->GetAxis(0)->SetTitle("multiplicity");\r
fRecMCEventHist3->GetAxis(1)->SetTitle("EventType");\r
fRecMCEventHist3->Sumw2();\r
\r
fRecTrackHist1[i] = new THnSparseF(name,title,3,binsRecTrackHist1,minRecTrackHist1,maxRecTrackHist1);\r
fRecTrackHist1[i]->SetBinEdges(0,binsPt);\r
fRecTrackHist1[i]->SetBinEdges(1,binsEta);\r
- fRecTrackHist1[i]->GetAxis(0)->SetTitle("Pt (GeV/c)");\r
- fRecTrackHist1[i]->GetAxis(1)->SetTitle("Eta");\r
- fRecTrackHist1[i]->GetAxis(2)->SetTitle("Phi (rad)");\r
+ fRecTrackHist1[i]->GetAxis(0)->SetTitle("p_{T} (GeV/c)");\r
+ fRecTrackHist1[i]->GetAxis(1)->SetTitle("#eta");\r
+ fRecTrackHist1[i]->GetAxis(2)->SetTitle("#phi (rad)");\r
fRecTrackHist1[i]->Sumw2();\r
\r
// \r
fMCMultRecTrackHist1->GetAxis(1)->SetTitle("mcEta");\r
fMCMultRecTrackHist1->GetAxis(2)->SetTitle("pid");\r
\r
+ //nClust:chi2PerClust:pt:eta:phi\r
+ Int_t binsRecTrackHist2[5]={160,100,ptNbins,etaNbins,90};\r
+ Double_t minRecTrackHist2[5]={0., 0., 0, -1.5, 0.};\r
+ Double_t maxRecRecTrackHist2[5]={160.,10., 16, 1.5, 2.*TMath::Pi()};\r
+\r
+ fRecTrackHist2 = new THnSparseF("fRecTrackHist2","nClust:chi2PerClust:pt:eta:phi",5,binsRecTrackHist2,minRecTrackHist2,maxRecRecTrackHist2);\r
+ fRecTrackHist2->SetBinEdges(2,binsPt);\r
+ fRecTrackHist2->SetBinEdges(3,binsEta);\r
+ fRecTrackHist2->GetAxis(0)->SetTitle("nClust");\r
+ fRecTrackHist2->GetAxis(1)->SetTitle("chi2PerClust");\r
+ fRecTrackHist2->GetAxis(2)->SetTitle("p_{T} (GeV/c)");\r
+ fRecTrackHist2->GetAxis(3)->SetTitle("#eta");\r
+ fRecTrackHist2->GetAxis(4)->SetTitle("#phi (rad)");\r
+ fRecTrackHist2->Sumw2();\r
+\r
// init folder\r
fAnalysisFolder = CreateFolder("folderdNdPt","Analysis dNdPt Folder");\r
}\r
AliDebug(AliLog::kError, "esdEvent not available");\r
return;\r
}\r
- // trigger definition\r
- Bool_t isEventTriggered = AlidNdPtHelper::IsEventTriggered(esdEvent->GetTriggerMask(), GetTrigger());\r
- //if(!isEventTriggered) printf("no MB1 trigger ... \n");\r
- //\r
\r
- // cuts\r
+ // get selection cuts\r
AlidNdPtEventCuts *evtCuts = GetEventCuts(); \r
AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); \r
AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); \r
AliDebug(AliLog::kError, "cuts not available");\r
return;\r
}\r
- //if(!evtCuts->IsTriggerRequired()) isEventTriggered = kTRUE;\r
+\r
+ // get physics trigger selection \r
+ AliPhysicsSelection *trigSel = GetPhysicsTriggerSelection();\r
+ if(!trigSel) {\r
+ AliDebug(AliLog::kError, "cannot get trigSel");\r
+ return;\r
+ }\r
+\r
+ // trigger selection\r
+ Bool_t isEventTriggered = kTRUE;\r
+ if(evtCuts->IsTriggerRequired()) {\r
+ if(IsUseMCInfo()) { \r
+ //static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis;\r
+ //isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger());\r
+ trigSel->SetAnalyzeMC();\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ }\r
+ else {\r
+ //isEventTriggered = esdEvent->IsTriggerClassFired(GetTriggerClass());\r
+ isEventTriggered = trigSel->IsCollisionCandidate(esdEvent);\r
+ }\r
+ }\r
\r
// use MC information\r
AliHeader* header = 0;\r
AliGenEventHeader* genHeader = 0;\r
AliStack* stack = 0;\r
TArrayF vtxMC(3);\r
- AlidNdPtHelper::MCProcessType evtType = AlidNdPtHelper::kInvalidProcess;\r
+ AliPWG0Helper::MCProcessType evtType = AliPWG0Helper::kInvalidProcess;\r
\r
Int_t multMCTrueTracks = 0;\r
if(IsUseMCInfo())\r
return;\r
}\r
// get event type (ND=0x1, DD=0x2, SD=0x4)\r
- evtType = AlidNdPtHelper::GetEventProcessType(header);\r
+ evtType = AliPWG0Helper::GetEventProcessType(header);\r
AliDebug(AliLog::kDebug+1, Form("Found process type %d", evtType));\r
\r
// get MC vertex\r
Bool_t isRecVertex = kFALSE;\r
if(evtCuts->IsRecVertexRequired()) \r
{\r
- vtxESD = AlidNdPtHelper::GetVertex(esdEvent, evtCuts, accCuts, esdTrackCuts, GetAnalysisMode(), kFALSE, kTRUE, kTRUE);\r
- isRecVertex = AlidNdPtHelper::TestVertex(vtxESD, GetAnalysisMode(), kFALSE); // should be moved to AcceptEvent\r
+ Bool_t bRedoTPCVertex = evtCuts->IsRedoTPCVertex();\r
+ Bool_t bUseConstraints = evtCuts->IsUseBeamSpotConstraint();\r
+ vtxESD = AlidNdPtHelper::GetVertex(esdEvent,evtCuts,accCuts,esdTrackCuts,GetAnalysisMode(),kFALSE,bRedoTPCVertex,bUseConstraints); \r
+ isRecVertex = AlidNdPtHelper::TestRecVertex(vtxESD, GetAnalysisMode(), kFALSE);\r
}\r
+\r
if( IsUseMCInfo() && !evtCuts->IsRecVertexRequired() ) {\r
vtxESD = new AliESDVertex(vtxMC[2],10.,genHeader->NProduced(),"smearMC");\r
isRecVertex = kTRUE;\r
}\r
+\r
Bool_t isEventOK = evtCuts->AcceptEvent(esdEvent,mcEvent,vtxESD) && isRecVertex; \r
- //printf("isEventOK %d \n",isEventOK);\r
+ //printf("isEventOK %d, isEventTriggered %d \n",isEventOK, isEventTriggered);\r
+ //printf("GetAnalysisMode() %d \n",GetAnalysisMode());\r
\r
- // MB bias tracks\r
+ // vertex contributors\r
Int_t multMBTracks = 0; \r
- if(GetAnalysisMode() == AlidNdPtHelper::kTPC || GetAnalysisMode() == AlidNdPtHelper::kMCPion || \r
- GetAnalysisMode() == AlidNdPtHelper::kMCKaon || GetAnalysisMode() == AlidNdPtHelper::kMCProton || \r
- GetAnalysisMode() ==AlidNdPtHelper::kPlus || GetAnalysisMode() ==AlidNdPtHelper::kMinus) { \r
-\r
+ if(GetAnalysisMode() == AlidNdPtHelper::kTPC) \r
+ { \r
multMBTracks = AlidNdPtHelper::GetTPCMBTrackMult(esdEvent,evtCuts,accCuts,esdTrackCuts);\r
} \r
- else if(GetAnalysisMode() == AlidNdPtHelper::kTPCSPDvtx || GetAnalysisMode() == AlidNdPtHelper::kMCPion || \r
- GetAnalysisMode() == AlidNdPtHelper::kMCKaon || GetAnalysisMode() == AlidNdPtHelper::kMCProton || \r
- GetAnalysisMode() ==AlidNdPtHelper::kPlus || GetAnalysisMode() == AlidNdPtHelper::kMinus) {\r
-\r
- multMBTracks = AlidNdPtHelper::GetSPDMBTrackMult(esdEvent,0.0);\r
+ else if(GetAnalysisMode() == AlidNdPtHelper::kTPCSPDvtx || GetAnalysisMode()==AlidNdPtHelper::kTPCSPDvtxUpdate) \r
+ {\r
+ //multMBTracks = AlidNdPtHelper::GetSPDMBTrackMult(esdEvent,0.0);\r
+ if(vtxESD->GetStatus())\r
+ multMBTracks = vtxESD->GetNContributors();\r
} \r
else {\r
AliDebug(AliLog::kError, Form("Found analysis type %s", GetAnalysisMode()));\r
if(isEventOK && isEventTriggered)\r
{\r
// get all charged tracks\r
- allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,vtxESD,GetAnalysisMode());\r
+ //allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,vtxESD,GetAnalysisMode());\r
+ allChargedTracks = AlidNdPtHelper::GetAllChargedTracks(esdEvent,GetAnalysisMode());\r
if(!allChargedTracks) return;\r
\r
Int_t entries = allChargedTracks->GetEntries();\r
+ //printf("entries %d \n",entries);\r
+\r
labelsAll = new Int_t[entries];\r
labelsAcc = new Int_t[entries];\r
labelsRec = new Int_t[entries];\r
AliESDtrack *track = (AliESDtrack*)allChargedTracks->At(i);\r
if(!track) continue;\r
if(track->Charge()==0) continue;\r
- \r
- FillHistograms(track,stack,AlidNdPtHelper::kAllTracks); \r
- labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
- multAll++;\r
-\r
- if(accCuts->AcceptTrack(track)) {\r
- FillHistograms(track,stack,AlidNdPtHelper::kAccTracks); \r
- labelsAcc[multAcc] = TMath::Abs(track->GetLabel());\r
- multAcc++;\r
-\r
- if(esdTrackCuts->AcceptTrack(track)) {\r
- FillHistograms(track,stack,AlidNdPtHelper::kRecTracks); \r
- labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
- multRec++;\r
+\r
+ /*\r
+ // cosmics analysis\r
+ if( GetParticleMode()==AlidNdPtHelper::kCosmics && \r
+ AlidNdPtHelper::IsCosmicTrack(allChargedTracks, track, i, accCuts, esdTrackCuts)==kFALSE ) \r
+ 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
+ FillHistograms(track,stack,AlidNdPtHelper::kAllTracks); \r
+ labelsAll[multAll] = TMath::Abs(track->GetLabel());\r
+ multAll++;\r
+\r
+ //if(accCuts->AcceptTrack(track)) {\r
+ //FillHistograms(track,stack,AlidNdPtHelper::kAccTracks); \r
+ //labelsAcc[multAcc] = TMath::Abs(track->GetLabel());\r
+ //multAcc++;\r
+\r
+ if(esdTrackCuts->AcceptTrack(track)) \r
+ {\r
+ if(GetAnalysisMode() == AlidNdPtHelper::kTPCSPDvtxUpdate) {\r
+ // update track parameters\r
+ AliExternalTrackParam cParam;\r
+ track->RelateToVertexTPC(esdEvent->GetPrimaryVertexSPD(),esdEvent->GetMagneticField(),kVeryBig,&cParam);\r
+ track->Set(cParam.GetX(),cParam.GetAlpha(),cParam.GetParameter(),cParam.GetCovariance());\r
+\r
+ if(accCuts->AcceptTrack(track)) {\r
+ FillHistograms(track,stack,AlidNdPtHelper::kRecTracks); \r
+ labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
+ multRec++;\r
+ } \r
+ }\r
+ else {\r
+ if(accCuts->AcceptTrack(track)) {\r
+ FillHistograms(track,stack,AlidNdPtHelper::kRecTracks); \r
+ labelsRec[multRec] = TMath::Abs(track->GetLabel());\r
+ multRec++;\r
+ }\r
+ }\r
}\r
- }\r
+ //}\r
} \r
// fill track multiplicity histograms\r
FillHistograms(allChargedTracks,labelsAll,multAll,labelsAcc,multAcc,labelsRec,multRec);\r
Double_t vRecEventHist1[3] = {vtxESD->GetXv(),vtxESD->GetYv(),vtxESD->GetZv()};\r
fRecEventHist1->Fill(vRecEventHist1);\r
\r
- Double_t vRecEventHist2[2] = {vtxESD->GetZv(),multMBTracks};\r
+ Double_t vRecEventHist2[3] = {vtxESD->GetZv(),multMBTracks,multRec};\r
fRecEventHist2->Fill(vRecEventHist2);\r
} \r
\r
if(isEventOK && isEventTriggered) fRecEventMatrix->Fill(vEventMatrix);\r
\r
// single diffractive\r
- if(evtType == AlidNdPtHelper::kSD) {\r
+ if(evtType == AliPWG0Helper::kSD) {\r
fGenSDEventMatrix->Fill(vEventMatrix); \r
if(isEventTriggered) fTriggerSDEventMatrix->Fill(vEventMatrix);\r
if(isEventOK && isEventTriggered) fRecSDEventMatrix->Fill(vEventMatrix);\r
}\r
\r
// double diffractive\r
- if(evtType == AlidNdPtHelper::kDD) {\r
+ if(evtType == AliPWG0Helper::kDD) {\r
fGenDDEventMatrix->Fill(vEventMatrix); \r
if(isEventTriggered) fTriggerDDEventMatrix->Fill(vEventMatrix);\r
if(isEventOK && isEventTriggered) fRecDDEventMatrix->Fill(vEventMatrix);\r
}\r
\r
// non diffractive\r
- if(evtType == AlidNdPtHelper::kND) {\r
+ if(evtType == AliPWG0Helper::kND) {\r
fGenNDEventMatrix->Fill(vEventMatrix); \r
if(isEventTriggered) fTriggerNDEventMatrix->Fill(vEventMatrix);\r
if(isEventOK && isEventTriggered) fRecNDEventMatrix->Fill(vEventMatrix);\r
}\r
\r
// non single diffractive\r
- if(evtType != AlidNdPtHelper::kSD) {\r
+ if(evtType != AliPWG0Helper::kSD) {\r
fGenNSDEventMatrix->Fill(vEventMatrix); \r
if(isEventTriggered) fTriggerNSDEventMatrix->Fill(vEventMatrix);\r
if(isEventOK && isEventTriggered) fRecNSDEventMatrix->Fill(vEventMatrix);\r
continue;\r
\r
// only postive charged \r
- if(GetAnalysisMode() == AlidNdPtHelper::kPlus && charge < 0.) \r
+ if(GetParticleMode() == AlidNdPtHelper::kPlus && charge < 0.) \r
continue;\r
\r
// only negative charged \r
- if(GetAnalysisMode() == AlidNdPtHelper::kMinus && charge > 0.) \r
+ if(GetParticleMode() == AlidNdPtHelper::kMinus && charge > 0.) \r
continue;\r
\r
// physical primary\r
Double_t vTrackEventMatrix[3] = {vtxMC[2], particle->Pt(), particle->Eta()}; \r
fGenTrackEventMatrix->Fill(vTrackEventMatrix);\r
\r
- if(evtType == AlidNdPtHelper::kSD) {\r
+ if(evtType == AliPWG0Helper::kSD) {\r
fGenTrackSDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType == AlidNdPtHelper::kDD) {\r
+ if(evtType == AliPWG0Helper::kDD) {\r
fGenTrackDDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType == AlidNdPtHelper::kND) {\r
+ if(evtType == AliPWG0Helper::kND) {\r
fGenTrackNDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType != AlidNdPtHelper::kSD) {\r
+ if(evtType != AliPWG0Helper::kSD) {\r
fGenTrackNSDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
\r
if(!isEventTriggered) continue; \r
\r
fTriggerTrackEventMatrix->Fill(vTrackEventMatrix);\r
- if(evtType == AlidNdPtHelper::kSD) {\r
+ if(evtType == AliPWG0Helper::kSD) {\r
fTriggerTrackSDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType == AlidNdPtHelper::kDD) {\r
+ if(evtType == AliPWG0Helper::kDD) {\r
fTriggerTrackDDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType == AlidNdPtHelper::kND) {\r
+ if(evtType == AliPWG0Helper::kND) {\r
fTriggerTrackNDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType != AlidNdPtHelper::kSD) {\r
+ if(evtType != AliPWG0Helper::kSD) {\r
fTriggerTrackNSDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
\r
if(!isEventOK) continue; \r
\r
fRecTrackEventMatrix->Fill(vTrackEventMatrix);\r
- if(evtType == AlidNdPtHelper::kSD) {\r
+ if(evtType == AliPWG0Helper::kSD) {\r
fRecTrackSDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType == AlidNdPtHelper::kDD) {\r
+ if(evtType == AliPWG0Helper::kDD) {\r
fRecTrackDDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType == AlidNdPtHelper::kND) {\r
+ if(evtType == AliPWG0Helper::kND) {\r
fRecTrackNDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
- if(evtType != AlidNdPtHelper::kSD) {\r
+ if(evtType != AliPWG0Helper::kSD) {\r
fRecTrackNSDEventMatrix->Fill(vTrackEventMatrix);\r
}\r
}\r
\r
// fill MC and rec event control histograms\r
if(fHistogramsOn) {\r
- Double_t vRecMCEventHist1[3] = {vtxMC[0]-vtxESD->GetXv(),vtxMC[1]-vtxESD->GetYv(),vtxMC[2]-vtxESD->GetZv()};\r
+ Double_t vRecMCEventHist1[3] = {vtxESD->GetXv()-vtxMC[0],vtxESD->GetYv()-vtxMC[1],vtxESD->GetZv()-vtxMC[2]};\r
fRecMCEventHist1->Fill(vRecMCEventHist1);\r
\r
- Double_t vRecMCEventHist2[3] = {vtxMC[0]-vtxESD->GetXv(),vtxMC[2]-vtxESD->GetZv(),multMBTracks};\r
+ Double_t vRecMCEventHist2[3] = {vtxESD->GetXv()-vtxMC[0],vtxESD->GetZv()-vtxMC[2],multMBTracks};\r
fRecMCEventHist2->Fill(vRecMCEventHist2);\r
\r
Double_t vRecMCEventHist3[2] = {multRec,evtType};\r
if (!particle)\r
continue;\r
\r
+ Double_t vTrackMatrix[3] = {vtxMC[2],particle->Pt(),particle->Eta()}; \r
+\r
+ // all genertated primaries including neutral\r
+ if( iMc < stack->GetNprimary() ) {\r
+ //fGenTrackMatrix->Fill(vTrackMatrix);\r
+ }\r
+\r
// only charged particles\r
Double_t charge = particle->GetPDG()->Charge()/3.;\r
if (charge == 0.0)\r
continue;\r
\r
// only postive charged \r
- if(GetAnalysisMode() == AlidNdPtHelper::kPlus && charge < 0.) \r
+ if(GetParticleMode() == AlidNdPtHelper::kPlus && charge < 0.) \r
continue;\r
\r
// only negative charged \r
- if(GetAnalysisMode() == AlidNdPtHelper::kMinus && charge > 0.) \r
+ if(GetParticleMode() == AlidNdPtHelper::kMinus && charge > 0.) \r
continue;\r
\r
// physical primary\r
// check accepted\r
if(accCuts->AcceptTrack(particle)) \r
{\r
- Double_t vTrackMatrix[3] = {vtxMC[2],particle->Pt(),particle->Eta()}; \r
- //if(prim) fGenPrimTrackMatrix->Fill(vTrackMatrix);\r
- if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetAnalysisMode()) ) fGenPrimTrackMatrix->Fill(vTrackMatrix);\r
+\r
+ if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) fGenPrimTrackMatrix->Fill(vTrackMatrix);\r
\r
// fill control histograms\r
if(fHistogramsOn) \r
if(iMc == labelsRec[iRec]) \r
{\r
fRecTrackMatrix->Fill(vTrackMatrix);\r
- if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetAnalysisMode()) ) fRecPrimTrackMatrix->Fill(vTrackMatrix);\r
+ if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetParticleMode()) ) fRecPrimTrackMatrix->Fill(vTrackMatrix);\r
if(!prim) fRecSecTrackMatrix->Fill(vTrackMatrix);\r
\r
// fill control histograms\r
Float_t dca[2], bCov[3];\r
esdTrack->GetImpactParameters(dca,bCov);\r
\r
+ Int_t nClust = esdTrack->GetTPCclusters(0);\r
+ Float_t chi2PerCluster = 0.;\r
+ if(nClust>0.) chi2PerCluster = esdTrack->GetTPCchi2()/Float_t(nClust);\r
+\r
\r
// fill histograms\r
Double_t values[3] = {pt,eta,phi}; \r
fRecTrackHist1[trackObj]->Fill(values);\r
+\r
+ Double_t values1[5] = {nClust,chi2PerCluster,pt,eta,phi}; \r
+ if(trackObj == AlidNdPtHelper::kRecTracks) \r
+ {\r
+ if(fHistogramsOn)\r
+ fRecTrackHist2->Fill(values1);\r
+ }\r
\r
//\r
// Fill rec vs MC information\r
//Float_t gphi = particle->Phi();\r
\r
Double_t dpt=0;\r
+ //printf("pt %f, gpt %f \n",pt,gpt);\r
if(gpt) dpt = (pt-gpt)/gpt;\r
Double_t deta = (eta-geta);\r
\r
\r
Double_t vRecMCTrackHist1[4]={gpt,geta,dpt,deta};\r
fRecMCTrackHist1->Fill(vRecMCTrackHist1);\r
-\r
}\r
}\r
\r
fRecTrackNSDEventMatrix->Add(entry->fRecTrackNSDEventMatrix);\r
\r
//\r
+ fGenTrackMatrix->Add(entry->fGenTrackMatrix);\r
fGenPrimTrackMatrix->Add(entry->fGenPrimTrackMatrix);\r
fRecPrimTrackMatrix->Add(entry->fRecPrimTrackMatrix);\r
//\r
}\r
fRecMCTrackHist1->Add(entry->fRecMCTrackHist1);\r
fMCMultRecTrackHist1->Add(entry->fMCMultRecTrackHist1);\r
+ fRecTrackHist2->Add(entry->fRecTrackHist2);\r
\r
count++;\r
}\r
//\r
TH1::AddDirectory(kFALSE);\r
TH1 *h=0, *h1=0, *h2=0, *h2c = 0; \r
- TH2D *hgen2D=0;\r
THnSparse *hs=0; \r
TH2 *h2D=0; \r
- TH1 *h1D=0; \r
\r
char name[256];\r
TObjArray *aFolderObj = new TObjArray;\r
+ \r
+ //\r
+ // Reconstructed event vertex\r
+ //\r
+ h = fRecEventHist1->Projection(0);\r
+ h->SetName("Xv");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecEventHist1->Projection(1);\r
+ h->SetName("Yv");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecEventHist1->Projection(2);\r
+ h->SetName("Zv");\r
+ aFolderObj->Add(h);\r
\r
//\r
- // get cuts\r
+ // multiplicity\r
//\r
- AlidNdPtEventCuts *evtCuts = GetEventCuts(); \r
- AlidNdPtAcceptanceCuts *accCuts = GetAcceptanceCuts(); \r
- AliESDtrackCuts *esdTrackCuts = GetTrackCuts(); \r
+ h = fRecEventHist2->Projection(1);\r
+ h->SetName("multMB");\r
+ aFolderObj->Add(h);\r
\r
- if(!evtCuts || !accCuts || !esdTrackCuts) {\r
- Error("AlidNdPtCutAnalysis::Analyse()", "cuts not available");\r
- return;\r
- }\r
+ h = fRecEventHist2->Projection(2);\r
+ h->SetName("multiplicity");\r
+ aFolderObj->Add(h);\r
+\r
+ h2D = fRecEventHist2->Projection(0,1); \r
+ h2D->SetName("Zv_vs_multiplicity_MB");\r
+ aFolderObj->Add(h2D);\r
+\r
+ //\r
+ // reconstructed pt histograms\r
+ //\r
+ h = fRecTrackHist1[0]->Projection(0);\r
+ h->Scale(1.,"width");\r
+ h->SetName("pt_all_ch");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecTrackHist1[1]->Projection(0);\r
+ h->Scale(1.,"width");\r
+ h->SetName("pt_acc");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecTrackHist1[2]->Projection(0);\r
+ h->Scale(1.,"width");\r
+ h->SetName("pt_rec");\r
+ aFolderObj->Add(h);\r
+\r
+ //\r
+ // reconstructed eta histograms\r
+ //\r
+ h = fRecTrackHist1[0]->Projection(1);\r
+ h->SetName("eta_all_ch");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecTrackHist1[1]->Projection(1);\r
+ h->SetName("eta_acc");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecTrackHist1[2]->Projection(1);\r
+ h->SetName("eta_rec");\r
+ aFolderObj->Add(h);\r
+\r
+ //\r
+ // reconstructed phi histograms\r
+ //\r
+ h = fRecTrackHist1[0]->Projection(2);\r
+ h->SetName("phi_all_ch");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecTrackHist1[1]->Projection(2);\r
+ h->SetName("phi_acc");\r
+ aFolderObj->Add(h);\r
+\r
+ h = fRecTrackHist1[2]->Projection(2);\r
+ h->SetName("phi_rec");\r
+ aFolderObj->Add(h);\r
\r
//\r
- // set min and max values\r
+ // reconstructed eta:pt histograms\r
//\r
- Double_t minZv = evtCuts->GetMinZv();\r
- Double_t maxZv = evtCuts->GetMaxZv()-0.00001;\r
- Double_t minPt = accCuts->GetMinPt();\r
- Double_t maxPt = accCuts->GetMaxPt();\r
- Double_t minEta = accCuts->GetMinEta();\r
- Double_t maxEta = accCuts->GetMaxEta()-0.00001;\r
+ h2D = fRecTrackHist1[0]->Projection(1,0);\r
+ h2D->SetName("pt_eta_all_ch");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist1[1]->Projection(1,0);\r
+ h2D->SetName("pt_eta_acc");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist1[2]->Projection(1,0);\r
+ h2D->SetName("pt_eta_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ //\r
+ // reconstructed phi:pt histograms\r
+ //\r
+ h2D = fRecTrackHist1[0]->Projection(2,0);\r
+ h2D->SetName("pt_phi_all_ch");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist1[1]->Projection(2,0);\r
+ h2D->SetName("pt_phi_acc");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist1[2]->Projection(2,0);\r
+ h2D->SetName("pt_phi_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ //\r
+ // reconstructed phi:eta histograms\r
+ //\r
+ h2D = fRecTrackHist1[0]->Projection(2,1);\r
+ h2D->SetName("eta_phi_all_ch");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist1[1]->Projection(2,1);\r
+ h2D->SetName("eta_phi_acc");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist1[2]->Projection(2,1);\r
+ h2D->SetName("eta_phi_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ //\r
+ // reconstructed nClust, chi2 vs pt, eta, phi\r
+ //\r
+ if(fHistogramsOn) {\r
+\r
+ h2D = fRecTrackHist2->Projection(0,1);\r
+ h2D->SetName("nClust_chi2_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist2->Projection(0,2);\r
+ h2D->SetName("nClust_pt_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist2->Projection(0,3);\r
+ h2D->SetName("nClust_eta_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist2->Projection(0,4);\r
+ h2D->SetName("nClust_phi_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist2->Projection(1,2);\r
+ h2D->SetName("chi2_pt_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist2->Projection(1,3);\r
+ h2D->SetName("chi2_eta_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecTrackHist2->Projection(1,4);\r
+ h2D->SetName("chi2_phi_rec");\r
+ aFolderObj->Add(h2D);\r
+\r
+ }\r
\r
//\r
// calculate corrections for empty events\r
if( h->Integral() ) h->Scale(1./h->Integral());\r
h->SetName("zv_distribution_norm");\r
aFolderObj->Add(h);\r
+ \r
+ //\r
+ // MC available\r
+ //\r
+ if(IsUseMCInfo()) {\r
+\r
+ //\r
+ // Event vertex resolution\r
+ //\r
+ h2D = fRecMCEventHist2->Projection(0,2);\r
+ h2D->SetName("DeltaXv_vs_mult");\r
+ aFolderObj->Add(h2D);\r
+\r
+ h2D = fRecMCEventHist2->Projection(1,2);\r
+ h2D->SetName("DeltaZv_vs_mult");\r
+ aFolderObj->Add(h2D);\r
\r
//\r
// normalised zv to get trigger/trigger+vertex event differences\r
//\r
fTriggerEventMatrix->GetAxis(1)->SetRangeUser(0.,0.);\r
h = fTriggerEventMatrix->Projection(0);\r
- hgen2D = fTriggerEventMatrix->Projection(0,1);\r
- if(hgen2D->Integral()) h->Scale(1./hgen2D->Integral());\r
+ h2D = fTriggerEventMatrix->Projection(0,1);\r
+ if(h2D->Integral()) h->Scale(1./h2D->Integral());\r
\r
h1 = fRecEventMatrix->Projection(0);\r
- hgen2D = fRecEventMatrix->Projection(0,1);\r
- if(hgen2D->Integral()) h1->Scale(1./hgen2D->Integral());\r
+ h2D = fRecEventMatrix->Projection(0,1);\r
+ if(h2D->Integral()) h1->Scale(1./h2D->Integral());\r
\r
h->Divide(h1);\r
h->SetName("zv_empty_events_norm");\r
//\r
// trigger efficiency for INEL\r
//\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fGenEventMatrix->Projection(0),"zv_trig_INEL_eff_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fGenEventMatrix->Projection(0),"zv_trig_INEL_eff_matrix");\r
+ aFolderObj->Add(h);\r
\r
//\r
// trigger efficiency for NSD\r
//\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerNSDEventMatrix->Projection(0),fGenNSDEventMatrix->Projection(0),"zv_trig_NSD_eff_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerNSDEventMatrix->Projection(0),fGenNSDEventMatrix->Projection(0),"zv_trig_NSD_eff_matrix");\r
+ aFolderObj->Add(h);\r
\r
//\r
// trigger bias correction (MB to ND)\r
hs = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix,fTriggerEventMatrix,"zv_mult_trig_MBtoND_corr_matrix");\r
aFolderObj->Add(hs);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoND_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoND_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fGenNDEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoND_corr_matrix");\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenNDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoND_corr_matrix");\r
\r
- aFolderObj->Add(h1D);\r
- fGenNDEventMatrix->GetAxis(0)->SetRange(1,fGenNDEventMatrix->GetAxis(0)->GetNbins());\r
- fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
+ aFolderObj->Add(h);\r
\r
//\r
// trigger bias correction (MB to NSD)\r
h2D = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(0,1),fTriggerEventMatrix->Projection(0,1),"zv_mult_trig_MBtoNSD_corr_matrix_2D");\r
aFolderObj->Add(h2D);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoNSD_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoNSD_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fGenNSDEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoNSD_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenNSDEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoNSD_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fGenNSDEventMatrix->GetAxis(0)->SetRange(1,fGenNSDEventMatrix->GetAxis(0)->GetNbins());\r
- fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
\r
//\r
// trigger bias correction (MB to INEL)\r
hs = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix,fTriggerEventMatrix,"zv_mult_trig_MBtoInel_corr_matrix");\r
aFolderObj->Add(hs);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoInel_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(0),fTriggerEventMatrix->Projection(0),"zv_trig_MBtoInel_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
h2D = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(0,1),fTriggerEventMatrix->Projection(0,1),"zv_mult_trig_MBtoInel_corr_matrix_2D");\r
aFolderObj->Add(h2D);\r
\r
- fGenEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoInel_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenEventMatrix->Projection(1),fTriggerEventMatrix->Projection(1),"mult_trig_MBtoInel_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fGenEventMatrix->GetAxis(0)->SetRange(1,fGenEventMatrix->GetAxis(0)->GetNbins());\r
- fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
\r
//\r
// event vertex reconstruction correction (MB)\r
h2D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0,1),fRecEventMatrix->Projection(0,1),"zv_mult_event_corr_matrix_2D");\r
aFolderObj->Add(h2D);\r
\r
- fTriggerEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fRecEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(1),fRecEventMatrix->Projection(1),"mult_event_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(1),fRecEventMatrix->Projection(1),"mult_event_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fTriggerEventMatrix->GetAxis(0)->SetRange(1,fTriggerEventMatrix->GetAxis(0)->GetNbins());\r
- fRecEventMatrix->GetAxis(0)->SetRange(1,fRecEventMatrix->GetAxis(0)->GetNbins());\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fRecEventMatrix->Projection(0),"zv_event_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerEventMatrix->Projection(0),fRecEventMatrix->Projection(0),"zv_event_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
//\r
// track-event trigger bias correction (MB to ND)\r
aFolderObj->Add(h2D);\r
\r
// efficiency\r
- fTriggerTrackEventMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fGenTrackEventMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fTriggerTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fGenTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
-\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fTriggerTrackEventMatrix->Projection(1),fGenTrackEventMatrix->Projection(1),"pt_track_trig_MBtoInel_eff_matrix");\r
- aFolderObj->Add(h1D);\r
\r
- fTriggerTrackEventMatrix->GetAxis(2)->SetRange(1,fTriggerTrackEventMatrix->GetAxis(2)->GetNbins());\r
- fGenTrackEventMatrix->GetAxis(2)->SetRange(1,fGenTrackEventMatrix->GetAxis(2)->GetNbins());\r
- fTriggerTrackEventMatrix->GetAxis(0)->SetRange(1,fTriggerTrackEventMatrix->GetAxis(0)->GetNbins());\r
- fGenTrackEventMatrix->GetAxis(0)->SetRange(1,fGenTrackEventMatrix->GetAxis(0)->GetNbins());\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fTriggerTrackEventMatrix->Projection(1),fGenTrackEventMatrix->Projection(1),"pt_track_trig_MBtoInel_eff_matrix");\r
+ aFolderObj->Add(h);\r
\r
\r
//\r
aFolderObj->Add(h2D);\r
\r
// efficiency\r
- fTriggerTrackEventMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fRecTrackEventMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fTriggerTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fRecTrackEventMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecTrackEventMatrix->Projection(1),fTriggerTrackEventMatrix->Projection(1),"pt_track_event_eff_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecTrackEventMatrix->Projection(1),fTriggerTrackEventMatrix->Projection(1),"pt_track_event_eff_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fTriggerTrackEventMatrix->GetAxis(2)->SetRange(1,fTriggerTrackEventMatrix->GetAxis(2)->GetNbins());\r
- fRecTrackEventMatrix->GetAxis(2)->SetRange(1,fRecTrackEventMatrix->GetAxis(2)->GetNbins());\r
- fTriggerTrackEventMatrix->GetAxis(0)->SetRange(1,fTriggerTrackEventMatrix->GetAxis(0)->GetNbins());\r
- fRecTrackEventMatrix->GetAxis(0)->SetRange(1,fRecTrackEventMatrix->GetAxis(0)->GetNbins());\r
\r
//\r
// track rec. efficiency correction\r
h2D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(2,0),fRecPrimTrackMatrix->Projection(2,0),"zv_eta_track_corr_matrix");\r
aFolderObj->Add(h2D);\r
\r
- fGenPrimTrackMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fRecPrimTrackMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fGenPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fRecPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(0),fRecPrimTrackMatrix->Projection(0),"zv_track_corr_matrix");\r
- aFolderObj->Add(h1D);\r
-\r
- fGenPrimTrackMatrix->GetAxis(1)->SetRange(1,fGenPrimTrackMatrix->GetAxis(1)->GetNbins());\r
- fRecPrimTrackMatrix->GetAxis(1)->SetRange(1,fRecPrimTrackMatrix->GetAxis(1)->GetNbins());\r
- fGenPrimTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fRecPrimTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(0),fRecPrimTrackMatrix->Projection(0),"zv_track_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(1),fRecPrimTrackMatrix->Projection(1),"pt_track_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(1),fRecPrimTrackMatrix->Projection(1),"pt_track_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
// efficiency\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecPrimTrackMatrix->Projection(1), fGenPrimTrackMatrix->Projection(1),"pt_track_eff_matrix");\r
- aFolderObj->Add(h1D);\r
\r
- fGenPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fRecPrimTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fGenPrimTrackMatrix->GetAxis(2)->SetRange(1,fGenPrimTrackMatrix->GetAxis(2)->GetNbins());\r
- fRecPrimTrackMatrix->GetAxis(2)->SetRange(1,fRecPrimTrackMatrix->GetAxis(2)->GetNbins());\r
-\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(2),fRecPrimTrackMatrix->Projection(2),"eta_track_corr_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecPrimTrackMatrix->Projection(1), fGenPrimTrackMatrix->Projection(1),"pt_track_eff_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fGenPrimTrackMatrix->GetAxis(1)->SetRange(1,fGenPrimTrackMatrix->GetAxis(1)->GetNbins());\r
- fRecPrimTrackMatrix->GetAxis(1)->SetRange(1,fRecPrimTrackMatrix->GetAxis(1)->GetNbins());\r
- fGenPrimTrackMatrix->GetAxis(0)->SetRange(1,fGenPrimTrackMatrix->GetAxis(0)->GetNbins());\r
- fRecPrimTrackMatrix->GetAxis(0)->SetRange(1,fRecPrimTrackMatrix->GetAxis(0)->GetNbins());\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fGenPrimTrackMatrix->Projection(2),fRecPrimTrackMatrix->Projection(2),"eta_track_corr_matrix");\r
+ aFolderObj->Add(h);\r
\r
//\r
// secondary track contamination correction\r
h2D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(2,0),fRecTrackMatrix->Projection(2,0),"zv_eta_track_cont_matrix");\r
aFolderObj->Add(h2D);\r
\r
- fRecSecTrackMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fRecTrackMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fRecSecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- \r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_track_cont_matrix");\r
- aFolderObj->Add(h1D);\r
-\r
- fRecSecTrackMatrix->GetAxis(1)->SetRange(1,fRecSecTrackMatrix->GetAxis(1)->GetNbins());\r
- fRecTrackMatrix->GetAxis(1)->SetRange(1,fRecTrackMatrix->GetAxis(1)->GetNbins());\r
- fRecSecTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fRecTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
-\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_track_cont_matrix");\r
- aFolderObj->Add(h1D);\r
-\r
- fRecSecTrackMatrix->GetAxis(2)->SetRange(1,fRecSecTrackMatrix->GetAxis(2)->GetNbins());\r
- fRecTrackMatrix->GetAxis(2)->SetRange(1,fRecTrackMatrix->GetAxis(2)->GetNbins());\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_track_cont_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fRecSecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_track_cont_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_track_cont_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fRecSecTrackMatrix->GetAxis(0)->SetRange(1,fRecSecTrackMatrix->GetAxis(0)->GetNbins());\r
- fRecTrackMatrix->GetAxis(0)->SetRange(1,fRecTrackMatrix->GetAxis(0)->GetNbins());\r
- fRecSecTrackMatrix->GetAxis(1)->SetRange(1,fRecSecTrackMatrix->GetAxis(1)->GetNbins());\r
- fRecTrackMatrix->GetAxis(1)->SetRange(1,fRecTrackMatrix->GetAxis(1)->GetNbins());\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecSecTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_track_cont_matrix");\r
+ aFolderObj->Add(h);\r
\r
//\r
// multiple track reconstruction correction\r
h2D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(2,0),fRecTrackMatrix->Projection(2,0),"zv_eta_mult_track_cont_matrix");\r
aFolderObj->Add(h2D);\r
\r
- fRecMultTrackMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fRecTrackMatrix->GetAxis(2)->SetRangeUser(minEta,maxEta);\r
- fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- \r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_mult_track_cont_matrix");\r
- aFolderObj->Add(h1D);\r
-\r
- fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
- fRecTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
- fRecMultTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
- fRecTrackMatrix->GetAxis(0)->SetRangeUser(minZv,maxZv);\r
-\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_mult_track_cont_matrix");\r
- aFolderObj->Add(h1D);\r
-\r
- fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
- fRecTrackMatrix->GetAxis(1)->SetRangeUser(minPt,maxPt);\r
-\r
- fRecMultTrackMatrix->GetAxis(2)->SetRange(1,fRecMultTrackMatrix->GetAxis(2)->GetNbins());\r
- fRecTrackMatrix->GetAxis(2)->SetRange(1,fRecTrackMatrix->GetAxis(2)->GetNbins());\r
-\r
- h1D = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_mult_track_cont_matrix");\r
- aFolderObj->Add(h1D);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(0),fRecTrackMatrix->Projection(0),"zv_mult_track_cont_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fRecMultTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
- fRecTrackMatrix->GetAxis(1)->SetRangeUser(0.,maxPt);\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(1),fRecTrackMatrix->Projection(1),"pt_mult_track_cont_matrix");\r
+ aFolderObj->Add(h);\r
\r
- fRecMultTrackMatrix->GetAxis(0)->SetRange(1,fRecMultTrackMatrix->GetAxis(0)->GetNbins());\r
- fRecTrackMatrix->GetAxis(0)->SetRange(1,fRecTrackMatrix->GetAxis(0)->GetNbins());\r
+ h = AlidNdPtHelper::GenerateCorrMatrix(fRecMultTrackMatrix->Projection(2),fRecTrackMatrix->Projection(2),"eta_mult_track_cont_matrix");\r
+ aFolderObj->Add(h);\r
\r
//\r
// Control histograms\r
h2c->SetName("eff_pt_all");\r
aFolderObj->Add(h2c);\r
\r
+ fMCPrimTrackHist1[1]->GetAxis(1)->SetRange(1,fMCPrimTrackHist1[1]->GetAxis(1)->GetNbins()); \r
+ fMCPrimTrackHist1[2]->GetAxis(1)->SetRange(1,fMCPrimTrackHist1[2]->GetAxis(1)->GetNbins());\r
+\r
// pt spetra\r
// - rec, primaries, secondaries\r
// - primaries (pid) \r
// - secondaries (mech)\r
// - secondaries (mother)\r
//\r
- TH1D *pt_acc = fRecTrackHist1[1]->Projection(0);\r
- pt_acc->SetName("pt_acc");\r
- aFolderObj->Add(pt_acc);\r
-\r
- TH1D *pt_rec = fRecTrackHist1[2]->Projection(0);\r
- pt_rec->SetName("pt_rec");\r
- aFolderObj->Add(pt_rec);\r
\r
TH1D *mc_pt_acc_all = fMCTrackHist1[1]->Projection(0);\r
mc_pt_acc_all->SetName("mc_pt_acc_all");\r
c->cd();\r
\r
//\r
- fRecMCTrackHist1->GetAxis(1)->SetRangeUser(-0.9,0.89); \r
+ fRecMCTrackHist1->GetAxis(1)->SetRangeUser(-0.8,0.79); \r
\r
h2F = (TH2F*)fRecMCTrackHist1->Projection(2,0);\r
h = AlidNdPtHelper::MakeResol(h2F,1,0,kTRUE,10);\r
\r
// \r
fRecMCTrackHist1->GetAxis(1)->SetRange(1,fRecMCTrackHist1->GetAxis(1)->GetNbins()); \r
- fRecMCTrackHist1->GetAxis(0)->SetRangeUser(minPt,maxPt); \r
\r
h2F = (TH2F*)fRecMCTrackHist1->Projection(2,1);\r
h = AlidNdPtHelper::MakeResol(h2F,1,0,kTRUE,10);\r
\r
fRecMCTrackHist1->GetAxis(0)->SetRange(1,fRecMCTrackHist1->GetAxis(0)->GetNbins()); \r
\r
+ } // end use MC info\r
+\r
// export objects to analysis folder\r
fAnalysisFolder = ExportToFolder(aFolderObj);\r
\r