From 985bdfd50c41cafef1627ccf46137aed63d40967 Mon Sep 17 00:00:00 2001 From: jotwinow Date: Fri, 11 Dec 2009 15:22:33 +0000 Subject: [PATCH] trigger class selection and more histograms added --- PWG0/dNdPt/AlidNdPt.cxx | 2 + PWG0/dNdPt/AlidNdPt.h | 3 + PWG0/dNdPt/AlidNdPtAnalysis.cxx | 119 ++++++++++++++++++++++++----- PWG0/dNdPt/AlidNdPtAnalysis.h | 7 ++ PWG0/dNdPt/AlidNdPtCorrection.cxx | 5 +- PWG0/dNdPt/AlidNdPtCutAnalysis.cxx | 76 +++++++++++++++--- PWG0/dNdPt/AlidNdPtCutAnalysis.h | 3 + 7 files changed, 186 insertions(+), 29 deletions(-) diff --git a/PWG0/dNdPt/AlidNdPt.cxx b/PWG0/dNdPt/AlidNdPt.cxx index 35c16741df0..466b75d2c48 100644 --- a/PWG0/dNdPt/AlidNdPt.cxx +++ b/PWG0/dNdPt/AlidNdPt.cxx @@ -30,6 +30,7 @@ AlidNdPt::AlidNdPt(): TNamed() , fUseMCInfo(kFALSE) , fAnalysisMode(AlidNdPtHelper::kTPC) , fTrigger(AliTriggerAnalysis::kMB1) +, fTriggerClass(0) { // default constructor } @@ -42,6 +43,7 @@ AlidNdPt::AlidNdPt(Char_t* name, Char_t* title): TNamed(name,title) , fUseMCInfo(kFALSE) , fAnalysisMode(AlidNdPtHelper::kTPC) , fTrigger(AliTriggerAnalysis::kMB1) +, fTriggerClass(0) { // constructor } diff --git a/PWG0/dNdPt/AlidNdPt.h b/PWG0/dNdPt/AlidNdPt.h index d9be7134fbf..e48680f00c1 100644 --- a/PWG0/dNdPt/AlidNdPt.h +++ b/PWG0/dNdPt/AlidNdPt.h @@ -50,6 +50,7 @@ public: void SetUseMCInfo(const Bool_t info) { fUseMCInfo = info; } void SetAnalysisMode(const AlidNdPtHelper::AnalysisMode mode) { fAnalysisMode = mode; } void SetTrigger(const AliTriggerAnalysis::Trigger trigger) { fTrigger = trigger; } + void SetTriggerClass(const Char_t *triggerClass) { fTriggerClass = triggerClass; } AlidNdPtEventCuts* GetEventCuts() const { return fdNdPtEventCuts; } AlidNdPtAcceptanceCuts* GetAcceptanceCuts() const { return fdNdPtAcceptanceCuts; } @@ -57,6 +58,7 @@ public: Bool_t IsUseMCInfo() const { return fUseMCInfo; } AlidNdPtHelper::AnalysisMode GetAnalysisMode() const { return fAnalysisMode; } AliTriggerAnalysis::Trigger GetTrigger() const { return fTrigger; } + const Char_t* GetTriggerClass() const { return fTriggerClass; } private: @@ -67,6 +69,7 @@ private: Bool_t fUseMCInfo; // use MC information AlidNdPtHelper::AnalysisMode fAnalysisMode; // analysis mode TPC only, TPC + ITS AliTriggerAnalysis::Trigger fTrigger; // trigger definition MB1, MB2 ... + const Char_t * fTriggerClass; // trigger class ClassDef(AlidNdPt,1); }; diff --git a/PWG0/dNdPt/AlidNdPtAnalysis.cxx b/PWG0/dNdPt/AlidNdPtAnalysis.cxx index 0f14e6f3dbf..42c88c75f2f 100644 --- a/PWG0/dNdPt/AlidNdPtAnalysis.cxx +++ b/PWG0/dNdPt/AlidNdPtAnalysis.cxx @@ -92,6 +92,7 @@ ClassImp(AlidNdPtAnalysis) fRecTrackNSDEventMatrix(0), // track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix) + fGenTrackMatrix(0), fGenPrimTrackMatrix(0), fRecPrimTrackMatrix(0), @@ -114,7 +115,10 @@ ClassImp(AlidNdPtAnalysis) fRecMCTrackHist1(0), //multple reconstructed tracks - fMCMultRecTrackHist1(0) + fMCMultRecTrackHist1(0), + + // rec. track control histograms + fRecTrackHist2(0) { // default constructor for(Int_t i=0; iSetBinEdges(0,binsZv); + fGenTrackMatrix->SetBinEdges(1,binsPt); + fGenTrackMatrix->SetBinEdges(2,binsEta); + fGenTrackMatrix->GetAxis(0)->SetTitle("mcZv (cm)"); + fGenTrackMatrix->GetAxis(1)->SetTitle("mcPt (GeV/c)"); + fGenTrackMatrix->GetAxis(2)->SetTitle("mcEta"); + fGenTrackMatrix->Sumw2(); + fGenPrimTrackMatrix = new THnSparseF("fGenPrimTrackMatrix","mcZv:mcPt:mcEta",3,binsTrackMatrix); fGenPrimTrackMatrix->SetBinEdges(0,binsZv); fGenPrimTrackMatrix->SetBinEdges(1,binsPt); @@ -756,9 +775,9 @@ void AlidNdPtAnalysis::Init(){ fRecTrackHist1[i] = new THnSparseF(name,title,3,binsRecTrackHist1,minRecTrackHist1,maxRecTrackHist1); fRecTrackHist1[i]->SetBinEdges(0,binsPt); fRecTrackHist1[i]->SetBinEdges(1,binsEta); - fRecTrackHist1[i]->GetAxis(0)->SetTitle("Pt (GeV/c)"); - fRecTrackHist1[i]->GetAxis(1)->SetTitle("Eta"); - fRecTrackHist1[i]->GetAxis(2)->SetTitle("Phi (rad)"); + fRecTrackHist1[i]->GetAxis(0)->SetTitle("p_{T} (GeV/c)"); + fRecTrackHist1[i]->GetAxis(1)->SetTitle("#eta"); + fRecTrackHist1[i]->GetAxis(2)->SetTitle("#phi (rad)"); fRecTrackHist1[i]->Sumw2(); // @@ -799,6 +818,21 @@ void AlidNdPtAnalysis::Init(){ fMCMultRecTrackHist1->GetAxis(1)->SetTitle("mcEta"); fMCMultRecTrackHist1->GetAxis(2)->SetTitle("pid"); + //nClust:chi2PerClust:pt:eta:phi + Int_t binsRecTrackHist2[5]={160,100,ptNbins,etaNbins,90}; + Double_t minRecTrackHist2[5]={0., 0., 0, -1.5, 0.}; + Double_t maxRecRecTrackHist2[5]={160.,10., 16, 1.5, 2.*TMath::Pi()}; + + fRecTrackHist2 = new THnSparseF("fRecTrackHist2","nClust:chi2PerClust:pt:eta:phi",5,binsRecTrackHist2,minRecTrackHist2,maxRecRecTrackHist2); + fRecTrackHist2->SetBinEdges(2,binsPt); + fRecTrackHist2->SetBinEdges(3,binsEta); + fRecTrackHist2->GetAxis(0)->SetTitle("nClust"); + fRecTrackHist2->GetAxis(1)->SetTitle("chi2PerClust"); + fRecTrackHist2->GetAxis(2)->SetTitle("p_{T} (GeV/c)"); + fRecTrackHist2->GetAxis(3)->SetTitle("#eta"); + fRecTrackHist2->GetAxis(4)->SetTitle("#phi (rad)"); + fRecTrackHist2->Sumw2(); + // init folder fAnalysisFolder = CreateFolder("folderdNdPt","Analysis dNdPt Folder"); } @@ -827,8 +861,9 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc // trigger selection Bool_t isEventTriggered = kTRUE; if(evtCuts->IsTriggerRequired()) { - static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis; - isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger()); + //static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis; + //isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger()); + isEventTriggered = esdEvent->IsTriggerClassFired(GetTriggerClass()); } // use MC information @@ -836,7 +871,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc AliGenEventHeader* genHeader = 0; AliStack* stack = 0; TArrayF vtxMC(3); - //AlidNdPtHelper::MCProcessType evtType = AlidNdPtHelper::kInvalidProcess; AliPWG0Helper::MCProcessType evtType = AliPWG0Helper::kInvalidProcess; Int_t multMCTrueTracks = 0; @@ -860,7 +894,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc return; } // get event type (ND=0x1, DD=0x2, SD=0x4) - //evtType = AlidNdPtHelper::GetEventProcessType(header); evtType = AliPWG0Helper::GetEventProcessType(header); AliDebug(AliLog::kDebug+1, Form("Found process type %d", evtType)); @@ -896,7 +929,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc isRecVertex = kTRUE; } Bool_t isEventOK = evtCuts->AcceptEvent(esdEvent,mcEvent,vtxESD) && isRecVertex; - //printf("isEventOK %d \n",isEventOK); + //printf("isEventOK %d, isEventTriggered %d \n",isEventOK, isEventTriggered); // MB bias tracks Int_t multMBTracks = 0; @@ -987,7 +1020,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc if(isEventOK && isEventTriggered) fRecEventMatrix->Fill(vEventMatrix); // single diffractive - //if(evtType == AlidNdPtHelper::kSD) { if(evtType == AliPWG0Helper::kSD) { fGenSDEventMatrix->Fill(vEventMatrix); if(isEventTriggered) fTriggerSDEventMatrix->Fill(vEventMatrix); @@ -995,7 +1027,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc } // double diffractive - //if(evtType == AlidNdPtHelper::kDD) { if(evtType == AliPWG0Helper::kDD) { fGenDDEventMatrix->Fill(vEventMatrix); if(isEventTriggered) fTriggerDDEventMatrix->Fill(vEventMatrix); @@ -1003,7 +1034,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc } // non diffractive - //if(evtType == AlidNdPtHelper::kND) { if(evtType == AliPWG0Helper::kND) { fGenNDEventMatrix->Fill(vEventMatrix); if(isEventTriggered) fTriggerNDEventMatrix->Fill(vEventMatrix); @@ -1011,7 +1041,6 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc } // non single diffractive - //if(evtType != AlidNdPtHelper::kSD) { if(evtType != AliPWG0Helper::kSD) { fGenNSDEventMatrix->Fill(vEventMatrix); if(isEventTriggered) fTriggerNSDEventMatrix->Fill(vEventMatrix); @@ -1126,6 +1155,13 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc if (!particle) continue; + Double_t vTrackMatrix[3] = {vtxMC[2],particle->Pt(),particle->Eta()}; + + // all genertated primaries including neutral + if( iMc < stack->GetNprimary() ) { + fGenTrackMatrix->Fill(vTrackMatrix); + } + // only charged particles Double_t charge = particle->GetPDG()->Charge()/3.; if (charge == 0.0) @@ -1145,8 +1181,7 @@ void AlidNdPtAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent *const mc // check accepted if(accCuts->AcceptTrack(particle)) { - Double_t vTrackMatrix[3] = {vtxMC[2],particle->Pt(),particle->Eta()}; - //if(prim) fGenPrimTrackMatrix->Fill(vTrackMatrix); + if( AlidNdPtHelper::IsPrimaryParticle(stack, iMc, GetAnalysisMode()) ) fGenPrimTrackMatrix->Fill(vTrackMatrix); // fill control histograms @@ -1261,10 +1296,21 @@ void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *con Float_t dca[2], bCov[3]; esdTrack->GetImpactParameters(dca,bCov); + Int_t nClust = esdTrack->GetTPCclusters(0); + Float_t chi2PerCluster = 0.; + if(nClust>0.) chi2PerCluster = esdTrack->GetTPCchi2()/Float_t(nClust); + // fill histograms Double_t values[3] = {pt,eta,phi}; fRecTrackHist1[trackObj]->Fill(values); + + Double_t values1[5] = {nClust,chi2PerCluster,pt,eta,phi}; + if(trackObj == AlidNdPtHelper::kRecTracks) + { + if(fHistogramsOn) + fRecTrackHist2->Fill(values1); + } // // Fill rec vs MC information @@ -1308,7 +1354,6 @@ void AlidNdPtAnalysis::FillHistograms(AliESDtrack *const esdTrack, AliStack *con Double_t vRecMCTrackHist1[4]={gpt,geta,dpt,deta}; fRecMCTrackHist1->Fill(vRecMCTrackHist1); - } } @@ -1423,6 +1468,7 @@ Long64_t AlidNdPtAnalysis::Merge(TCollection* list) fRecTrackNSDEventMatrix->Add(entry->fRecTrackNSDEventMatrix); // + fGenTrackMatrix->Add(entry->fGenTrackMatrix); fGenPrimTrackMatrix->Add(entry->fGenPrimTrackMatrix); fRecPrimTrackMatrix->Add(entry->fRecPrimTrackMatrix); // @@ -1452,6 +1498,7 @@ Long64_t AlidNdPtAnalysis::Merge(TCollection* list) } fRecMCTrackHist1->Add(entry->fRecMCTrackHist1); fMCMultRecTrackHist1->Add(entry->fMCMultRecTrackHist1); + fRecTrackHist2->Add(entry->fRecTrackHist2); count++; } @@ -1528,14 +1575,17 @@ void AlidNdPtAnalysis::Analyse() // reconstructed pt histograms // h = fRecTrackHist1[0]->Projection(0); + h->Scale(1.,"width"); h->SetName("pt_all_ch"); aFolderObj->Add(h); h = fRecTrackHist1[1]->Projection(0); + h->Scale(1.,"width"); h->SetName("pt_acc"); aFolderObj->Add(h); h = fRecTrackHist1[2]->Projection(0); + h->Scale(1.,"width"); h->SetName("pt_rec"); aFolderObj->Add(h); @@ -1614,6 +1664,41 @@ void AlidNdPtAnalysis::Analyse() h2D->SetName("eta_phi_rec"); aFolderObj->Add(h2D); + // + // reconstructed nClust, chi2 vs pt, eta, phi + // + if(fHistogramsOn) { + + h2D = fRecTrackHist2->Projection(0,1); + h2D->SetName("nClust_chi2_rec"); + aFolderObj->Add(h2D); + + h2D = fRecTrackHist2->Projection(0,2); + h2D->SetName("nClust_pt_rec"); + aFolderObj->Add(h2D); + + h2D = fRecTrackHist2->Projection(0,3); + h2D->SetName("nClust_eta_rec"); + aFolderObj->Add(h2D); + + h2D = fRecTrackHist2->Projection(0,4); + h2D->SetName("nClust_phi_rec"); + aFolderObj->Add(h2D); + + h2D = fRecTrackHist2->Projection(1,2); + h2D->SetName("chi2_pt_rec"); + aFolderObj->Add(h2D); + + h2D = fRecTrackHist2->Projection(1,3); + h2D->SetName("chi2_eta_rec"); + aFolderObj->Add(h2D); + + h2D = fRecTrackHist2->Projection(1,4); + h2D->SetName("chi2_phi_rec"); + aFolderObj->Add(h2D); + + } + // // calculate corrections for empty events // with multMB==0 diff --git a/PWG0/dNdPt/AlidNdPtAnalysis.h b/PWG0/dNdPt/AlidNdPtAnalysis.h index cf2974b93bf..54b14ff2d97 100644 --- a/PWG0/dNdPt/AlidNdPtAnalysis.h +++ b/PWG0/dNdPt/AlidNdPtAnalysis.h @@ -111,6 +111,7 @@ public : THnSparseF *GetRecTrackNSDEventMatrix() {return fRecTrackNSDEventMatrix;} // + THnSparseF *GetGenTrackMatrix() {return fGenTrackMatrix;} THnSparseF *GetGenPrimTrackMatrix() {return fGenPrimTrackMatrix;} THnSparseF *GetRecPrimTrackMatrix() {return fRecPrimTrackMatrix;} @@ -138,6 +139,8 @@ public : THnSparseF *GetRecMCTrackHist1() {return fRecMCTrackHist1;} THnSparseF *GetMCMultRecTrackHist1() {return fMCMultRecTrackHist1;} + THnSparseF *GetRecTrackHist2() {return fRecTrackHist2;} + private: // analysis folder @@ -210,6 +213,7 @@ private: // // track rec. efficiency correction (fRecPrimTrackMatrix / fGenPrimTrackMatrix) + THnSparseF *fGenTrackMatrix; //-> mcZv:mcPt:mcEta THnSparseF *fGenPrimTrackMatrix; //-> mcZv:mcPt:mcEta THnSparseF *fRecPrimTrackMatrix; //-> mcZv:mcPt:mcEta @@ -247,6 +251,9 @@ private: //multple reconstructed tracks THnSparseF *fMCMultRecTrackHist1; //-> mcPt:mcEta:pid + // track control histograms + THnSparseF *fRecTrackHist2; //-> nclust:chi2:Pt:Eta:Phi + AlidNdPtAnalysis(const AlidNdPtAnalysis&); // not implemented AlidNdPtAnalysis& operator=(const AlidNdPtAnalysis&); // not implemented diff --git a/PWG0/dNdPt/AlidNdPtCorrection.cxx b/PWG0/dNdPt/AlidNdPtCorrection.cxx index 0d09195bd19..8c25a467b73 100644 --- a/PWG0/dNdPt/AlidNdPtCorrection.cxx +++ b/PWG0/dNdPt/AlidNdPtCorrection.cxx @@ -525,8 +525,9 @@ void AlidNdPtCorrection::Process(AliESDEvent *esdEvent, AliMCEvent *mcEvent) // trigger selection Bool_t isEventTriggered = kTRUE; if(evtCuts->IsTriggerRequired()) { - static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis; - isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger()); + //static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis; + //isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger()); + isEventTriggered = esdEvent->IsTriggerClassFired(GetTriggerClass()); } // use MC information diff --git a/PWG0/dNdPt/AlidNdPtCutAnalysis.cxx b/PWG0/dNdPt/AlidNdPtCutAnalysis.cxx index c74923839a9..756c696e5f1 100644 --- a/PWG0/dNdPt/AlidNdPtCutAnalysis.cxx +++ b/PWG0/dNdPt/AlidNdPtCutAnalysis.cxx @@ -42,6 +42,7 @@ ClassImp(AlidNdPtCutAnalysis) //_____________________________________________________________________________ AlidNdPtCutAnalysis::AlidNdPtCutAnalysis(): AlidNdPt(), fAnalysisFolder(0), + fEventCount(0), fRecEventHist(0), fMCEventHist(0), fRecMCEventHist(0), @@ -54,6 +55,7 @@ ClassImp(AlidNdPtCutAnalysis) //_____________________________________________________________________________ AlidNdPtCutAnalysis::AlidNdPtCutAnalysis(Char_t* name, Char_t* title): AlidNdPt(name,title), fAnalysisFolder(0), + fEventCount(0), fRecEventHist(0), fMCEventHist(0), fRecMCEventHist(0), @@ -66,6 +68,7 @@ AlidNdPtCutAnalysis::AlidNdPtCutAnalysis(Char_t* name, Char_t* title): AlidNdPt( //_____________________________________________________________________________ AlidNdPtCutAnalysis::~AlidNdPtCutAnalysis() { // + if(fEventCount) delete fEventCount; fEventCount=0; if(fRecEventHist) delete fRecEventHist; fRecEventHist=0; if(fMCEventHist) delete fMCEventHist; fMCEventHist=0; if(fRecMCEventHist) delete fRecMCEventHist; fRecMCEventHist=0; @@ -85,6 +88,15 @@ void AlidNdPtCutAnalysis::Init(){ Double_t binsPt[ptNbins+1] = {0.,0.05,0.1,0.15,0.2,0.25,0.3,0.35,0.4,0.45,0.5,0.55,0.6,0.65,0.7,0.75,0.8,0.85,0.9,0.95,1.0,1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,2.0,2.2,2.4,2.6,2.8,3.0,3.2,3.4,3.6,3.8,4.0,4.5,5.0,5.5,6.0,6.5,7.0,7.5,8.0,9.0,10.0,11.0,12.0,13.0,14.0,15.0,16.0}; + // + Int_t binsEventCount[2]={2,2}; + Double_t minEventCount[2]={0,0}; + Double_t maxEventCount[2]={2,2}; + fEventCount = new THnSparseF("fEventCount","trig vs trig+vertex",2,binsEventCount,minEventCount,maxEventCount); + fEventCount->GetAxis(0)->SetTitle("trig"); + fEventCount->GetAxis(1)->SetTitle("trig+vert"); + fEventCount->Sumw2(); + //Xv:Yv:Zv:ResZv:Mult Int_t binsRecEventHist[5]={100,100,140,100,150}; Double_t minRecEventHist[5]={-3.,-3.,-35.,0.,0.}; @@ -171,8 +183,9 @@ void AlidNdPtCutAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent * cons // trigger selection Bool_t isEventTriggered = kTRUE; if(evtCuts->IsTriggerRequired()) { - static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis; - isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger()); + //static AliTriggerAnalysis* triggerAnalysis = new AliTriggerAnalysis; + //isEventTriggered = triggerAnalysis->IsTriggerFired(esdEvent, GetTrigger()); + isEventTriggered = esdEvent->IsTriggerClassFired(GetTriggerClass()); } // use MC information @@ -233,6 +246,15 @@ void AlidNdPtCutAnalysis::Process(AliESDEvent *const esdEvent, AliMCEvent * cons TObjArray *allChargedTracks=0; Int_t multAll=0; + + // + // event counter + // + //printf("isEventOK %d, isEventTriggered %d \n",isEventOK,isEventTriggered); + + Bool_t isTrigAndVertex = isEventTriggered && isEventOK; + Double_t vEventCount[2] = { isEventTriggered, isTrigAndVertex}; + fEventCount->Fill(vEventCount); // check event cuts if(isEventOK && isEventTriggered) @@ -332,6 +354,7 @@ Long64_t AlidNdPtCutAnalysis::Merge(TCollection* list) if (entry == 0) continue; // event histo + fEventCount->Add(entry->fEventCount); fRecEventHist->Add(entry->fRecEventHist); fRecMCEventHist->Add(entry->fRecMCEventHist); fMCEventHist->Add(entry->fMCEventHist); @@ -379,9 +402,38 @@ void AlidNdPtCutAnalysis::Analyse() Double_t maxDCAr = accCuts->GetMaxDCAr(); + // + // Event counters + // + h2D = (TH2D*)fEventCount->Projection(0,1); + h2D->SetName("trig_vs_trigANDvertex"); + aFolderObj->Add(h2D); + + fEventCount->GetAxis(0)->SetRange(1,1); // triggered + h1D = (TH2D*)fEventCount->Projection(1); + h1D->SetTitle("rec. vertex for triggered events"); + h1D->SetName("trigANDvertex"); + aFolderObj->Add(h1D); + // // Create rec. event histograms // + h1D = (TH1D *)fRecEventHist->Projection(0); + h1D->SetName("rec_xv"); + aFolderObj->Add(h1D); + + h1D = (TH1D *)fRecEventHist->Projection(1); + h1D->SetName("rec_yv"); + aFolderObj->Add(h1D); + + h1D = (TH1D *)fRecEventHist->Projection(2); + h1D->SetName("rec_zv"); + aFolderObj->Add(h1D); + + h2D = (TH2D *)fRecEventHist->Projection(3,4); + h2D->SetName("rec_resZv_vs_Mult"); + aFolderObj->Add(h2D); + h2D = (TH2D *)fRecEventHist->Projection(0,1); h2D->SetName("rec_xv_vs_yv"); aFolderObj->Add(h2D); @@ -394,7 +446,6 @@ void AlidNdPtCutAnalysis::Analyse() h2D->SetName("rec_resZv_vs_Mult"); aFolderObj->Add(h2D); - // // MC available // @@ -456,8 +507,12 @@ void AlidNdPtCutAnalysis::Analyse() h2D->SetName("ratio_nClust_nFindableClust_vs_eta"); aFolderObj->Add(h2D); + h2D = (TH2D *)fRecMCTrackHist->Projection(5,6); + h2D->SetName("eta_vs_phi"); + aFolderObj->Add(h2D); + // - fRecMCTrackHist->GetAxis(7)->SetRangeUser(minEta,maxEta); + fRecMCTrackHist->GetAxis(5)->SetRangeUser(minEta,maxEta); h2D = (TH2D *)fRecMCTrackHist->Projection(0,6); h2D->SetName("nClust_vs_phi"); @@ -471,10 +526,6 @@ void AlidNdPtCutAnalysis::Analyse() h2D->SetName("ratio_nClust_nFindableClust_vs_phi"); aFolderObj->Add(h2D); - h2D = (TH2D *)fRecMCTrackHist->Projection(5,6); - h2D->SetName("eta_vs_phi"); - aFolderObj->Add(h2D); - // fRecMCTrackHist->GetAxis(7)->SetRangeUser(0.0,maxPt); @@ -511,9 +562,14 @@ void AlidNdPtCutAnalysis::Analyse() h2D->SetName("nClust_vs_ratio_nClust_nFindableClust"); aFolderObj->Add(h2D); + // // DCAy cuts + // + fRecMCTrackHist->GetAxis(0)->SetRange(50,160); // nClust/track > 50 + fRecMCTrackHist->GetAxis(1)->SetRangeUser(0.,3.9999); // chi2/cluster < 4.0 fRecMCTrackHist->GetAxis(3)->SetRange(1,fRecMCTrackHist->GetAxis(3)->GetNbins()); - fRecMCTrackHist->GetAxis(4)->SetRangeUser(-1.0,1.0); + //fRecMCTrackHist->GetAxis(4)->SetRangeUser(-1.0,1.0); + fRecMCTrackHist->GetAxis(4)->SetRange(1,fRecMCTrackHist->GetAxis(4)->GetNbins()); // sec fRecMCTrackHist->GetAxis(9)->SetRange(1,1); @@ -528,7 +584,7 @@ void AlidNdPtCutAnalysis::Analyse() aFolderObj->Add(h1D); // DCAz cuts - fRecMCTrackHist->GetAxis(3)->SetRangeUser(-1.0,1.0); + //fRecMCTrackHist->GetAxis(3)->SetRangeUser(-1.0,1.0); fRecMCTrackHist->GetAxis(4)->SetRange(1,fRecMCTrackHist->GetAxis(4)->GetNbins()); // sec diff --git a/PWG0/dNdPt/AlidNdPtCutAnalysis.h b/PWG0/dNdPt/AlidNdPtCutAnalysis.h index 80344356b61..e055aa36803 100644 --- a/PWG0/dNdPt/AlidNdPtCutAnalysis.h +++ b/PWG0/dNdPt/AlidNdPtCutAnalysis.h @@ -60,6 +60,7 @@ public : void FillHistograms(AliESDtrack *const esdTrack, AliStack *const stack); // Getters + THnSparseF *GetEventCount() {return fEventCount;} THnSparseF *GetRecEventHist() {return fRecEventHist;} THnSparseF *GetMCEventHist() {return fMCEventHist;} THnSparseF *GetRecMCEventHist() {return fRecMCEventHist;} @@ -75,6 +76,8 @@ private: // // THnSparse event histograms // + THnSparseF *fEventCount; //-> trig, trig + vertex + THnSparseF *fRecEventHist; //-> Xv:Yv:Zv:ResZv:Mult THnSparseF *fMCEventHist; //-> mcXv:mcYv:mcZv THnSparseF *fRecMCEventHist; //-> Xv-mcXv:Yv-mcYv:Zv-mcZv:Mult -- 2.39.3