From dae7dd676a481300cdad5485a31e55cc1ec24900 Mon Sep 17 00:00:00 2001 From: kleinb Date: Tue, 11 Oct 2011 14:25:30 +0000 Subject: [PATCH] TrackQA: included QA for golden chi2 + chi2 between global and global constrained track Spectra: Added NClustersIter1 to the correction framework container. Only 6 bins in Ncls (0 70 80 90 100 120) to minimize memory usage. Efficiency can now be easily calculated for different cut values (M. Verweij) --- PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx | 13 +- PWG4/JetTasks/AliPWG4HighPtSpectra.cxx | 17 +- PWG4/JetTasks/AliPWG4HighPtTrackQA.cxx | 154 +++++++++++++++--- PWG4/JetTasks/AliPWG4HighPtTrackQA.h | 11 +- PWG4/macros/AddTaskPWG4HighPtSpectra.C | 38 +++-- PWG4/macros/AddTaskPWG4HighPtTrackQA.C | 1 - PWG4/macros/AnalysisTrainPWG4Jets.C | 2 +- 7 files changed, 182 insertions(+), 54 deletions(-) diff --git a/PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx b/PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx index 1a162dc85fe..86b3b646829 100644 --- a/PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx +++ b/PWG4/JetTasks/AliAnalysisTaskJetSpectrum2.cxx @@ -1083,12 +1083,13 @@ void AliAnalysisTaskJetSpectrum2::FillTrackHistos(TList &particlesList,int iType if(phiRP<0)phiRP += TMath::Pi(); const float allPhi = -1./180.*TMath::Pi(); - fp2MultRPPhiTrackPt[iType]->Fill(refMult,phiRP,tmpPt); - fp2MultRPPhiTrackPt[iType]->Fill(refMult,allPhi,tmpPt); - - fp2CentRPPhiTrackPt[iType]->Fill(fCentrality,phiRP,tmpPt); - fp2CentRPPhiTrackPt[iType]->Fill(fCentrality,allPhi,tmpPt); - + if(tmpPt<100){ + fp2MultRPPhiTrackPt[iType]->Fill(refMult,phiRP,tmpPt); + fp2MultRPPhiTrackPt[iType]->Fill(refMult,allPhi,tmpPt); + + fp2CentRPPhiTrackPt[iType]->Fill(fCentrality,phiRP,tmpPt); + fp2CentRPPhiTrackPt[iType]->Fill(fCentrality,allPhi,tmpPt); + } Int_t phiBin = GetPhiBin(tmpPhi-fRPAngle); var3[0] = 1; var3[1] = tmpPt; diff --git a/PWG4/JetTasks/AliPWG4HighPtSpectra.cxx b/PWG4/JetTasks/AliPWG4HighPtSpectra.cxx index 0f3e5ce4b83..27f05cd3f05 100644 --- a/PWG4/JetTasks/AliPWG4HighPtSpectra.cxx +++ b/PWG4/JetTasks/AliPWG4HighPtSpectra.cxx @@ -76,7 +76,7 @@ AliPWG4HighPtSpectra::AliPWG4HighPtSpectra() : AliAnalysisTask("AliPWG4HighPtSpe fTrackType(0), fTrackCuts(0x0), fTrackCutsReject(0x0), - fSigmaConstrainedMax(5.), + fSigmaConstrainedMax(100.), fAvgTrials(1), fHistList(0), fNEventAll(0), @@ -107,7 +107,7 @@ AliPWG4HighPtSpectra::AliPWG4HighPtSpectra(const Char_t* name) : fTrackType(0), fTrackCuts(0x0), fTrackCutsReject(0x0), - fSigmaConstrainedMax(5.), + fSigmaConstrainedMax(100.), fAvgTrials(1), fHistList(0), fNEventAll(0), @@ -351,10 +351,11 @@ void AliPWG4HighPtSpectra::Exec(Option_t *) // Selected events for analysis fNEventSel->Fill(0.); + const Int_t nvar = 4; - Double_t containerInputRec[3] = {0.,0.,0.}; - Double_t containerInputMC[3] = {0.,0.,0.}; - Double_t containerInputRecMC[3] = {0.,0.,0.}; //reconstructed yield as function of MC variable + Double_t containerInputRec[nvar] = {0.,0.,0.,0.}; + Double_t containerInputMC[nvar] = {0.,0.,0.,0.}; + Double_t containerInputRecMC[nvar] = {0.,0.,0.,0.}; //reconstructed yield as function of MC variable //Now go to rec level for (Int_t iTrack = 0; iTrackPt(); containerInputRec[1] = track->Phi(); containerInputRec[2] = track->Eta(); + containerInputRec[3] = track->GetTPCNclsIter1(); if(track->GetSign()>0.) fCFManagerPos->GetParticleContainer()->Fill(containerInputRec,kStepReconstructed); if(track->GetSign()<0.) fCFManagerNeg->GetParticleContainer()->Fill(containerInputRec,kStepReconstructed); @@ -431,6 +433,7 @@ void AliPWG4HighPtSpectra::Exec(Option_t *) containerInputRecMC[0] = particle->Pt(); containerInputRecMC[1] = particle->Phi(); containerInputRecMC[2] = particle->Eta(); + containerInputRecMC[3] = track->GetTPCNclsIter1(); //Container with primaries if(fStack->IsPhysicalPrimary(label)) { @@ -469,7 +472,9 @@ void AliPWG4HighPtSpectra::Exec(Option_t *) containerInputMC[0] = mcPart->Pt(); containerInputMC[1] = mcPart->Phi(); containerInputMC[2] = mcPart->Eta(); - + // AliESDtrack *esdtrack = fESD->GetTrack(mcPart->GetLabel()); + containerInputMC[3] = 159.; + if(fStack->IsPhysicalPrimary(iPart)) { if(mcPart->Charge()>0. && fCFManagerPos->CheckParticleCuts(kStepMCAcceptance,mcPart)) fCFManagerPos->GetParticleContainer()->Fill(containerInputMC,kStepMCAcceptance); if(mcPart->Charge()<0. && fCFManagerNeg->CheckParticleCuts(kStepMCAcceptance,mcPart)) fCFManagerNeg->GetParticleContainer()->Fill(containerInputMC,kStepMCAcceptance); diff --git a/PWG4/JetTasks/AliPWG4HighPtTrackQA.cxx b/PWG4/JetTasks/AliPWG4HighPtTrackQA.cxx index 04ea72187f4..42f53b216e0 100644 --- a/PWG4/JetTasks/AliPWG4HighPtTrackQA.cxx +++ b/PWG4/JetTasks/AliPWG4HighPtTrackQA.cxx @@ -73,7 +73,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA() fPtMax(100.), fIsPbPb(0), fCentClass(10), - fNVariables(21), + fNVariables(23), fVariables(0x0), fAvgTrials(1), fNEventAll(0), @@ -106,13 +106,17 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA() fPtRelUncertainty1PtChi2(0x0), fPtRelUncertainty1PtChi2Iter1(0x0), fPtRelUncertainty1PtPhi(0x0), - fPtRelUncertainty1PtTrkLength(0x0), fPtUncertainty1Pt(0x0), fPtChi2PerClusterTPC(0x0), fPtChi2PerClusterTPCIter1(0x0), fPtNCrossedRows(0x0), fPtNCrossedRowsNClusF(0x0), fPtNCrRNCrRNClusF(0x0), + fPtChi2Gold(0x0), + fPtChi2GGC(0x0), + fPtChi2GoldPhi(0x0), + fPtChi2GGCPhi(0x0), + fChi2GoldChi2GGC(0x0), fPtSigmaY2(0x0), fPtSigmaZ2(0x0), fPtSigmaSnp2(0x0), @@ -128,7 +132,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA() fSystTrackCuts(0x0), fHistList(0) { - SetNVariables(21); + SetNVariables(23); fPtBinEdges[0][0] = 10.; fPtBinEdges[0][1] = 1.; @@ -154,7 +158,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name): fPtMax(100.), fIsPbPb(0), fCentClass(10), - fNVariables(21), + fNVariables(23), fVariables(0x0), fAvgTrials(1), fNEventAll(0), @@ -187,13 +191,17 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name): fPtRelUncertainty1PtChi2(0x0), fPtRelUncertainty1PtChi2Iter1(0x0), fPtRelUncertainty1PtPhi(0x0), - fPtRelUncertainty1PtTrkLength(0x0), fPtUncertainty1Pt(0x0), fPtChi2PerClusterTPC(0x0), fPtChi2PerClusterTPCIter1(0x0), fPtNCrossedRows(0x0), fPtNCrossedRowsNClusF(0x0), fPtNCrRNCrRNClusF(0x0), + fPtChi2Gold(0x0), + fPtChi2GGC(0x0), + fPtChi2GoldPhi(0x0), + fPtChi2GGCPhi(0x0), + fChi2GoldChi2GGC(0x0), fPtSigmaY2(0x0), fPtSigmaZ2(0x0), fPtSigmaSnp2(0x0), @@ -214,7 +222,7 @@ AliPWG4HighPtTrackQA::AliPWG4HighPtTrackQA(const char *name): // AliDebug(2,Form("AliPWG4HighPtTrackQA Calling Constructor")); - SetNVariables(21); + SetNVariables(23); fPtBinEdges[0][0] = 10.; fPtBinEdges[0][1] = 1.; @@ -298,7 +306,7 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() { Int_t fgkNDCA2DBins=80; Float_t fgkDCA2DMin = -0.2; Float_t fgkDCA2DMax = 0.2; - if(fTrackType==1 || fTrackType==2 || fTrackType==4) { + if(fTrackType==1 || fTrackType==2 || fTrackType==4 || fTrackType==7) { fgkDCA2DMin = -2.; fgkDCA2DMax = 2.; } @@ -321,17 +329,17 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() { Double_t *binsNPointITS=new Double_t[fgkNNPointITSBins+1]; for(Int_t i=0; i<=fgkNNPointITSBins; i++) binsNPointITS[i]=(Double_t)fgkNPointITSMin + (fgkNPointITSMax-fgkNPointITSMin)/fgkNNPointITSBins*(Double_t)i ; - Int_t fgkNNSigmaToVertexBins=20; + Int_t fgkNNSigmaToVertexBins=9; Float_t fgkNSigmaToVertexMin = 0.; - Float_t fgkNSigmaToVertexMax = 8.; + Float_t fgkNSigmaToVertexMax = 9.; Double_t *binsNSigmaToVertex=new Double_t[fgkNNSigmaToVertexBins+1]; for(Int_t i=0; i<=fgkNNSigmaToVertexBins; i++) binsNSigmaToVertex[i]=(Double_t)fgkNSigmaToVertexMin + (fgkNSigmaToVertexMax-fgkNSigmaToVertexMin)/fgkNNSigmaToVertexBins*(Double_t)i ; - Int_t fgkNChi2CBins=20; - Float_t fgkChi2CMin = 0.; - Float_t fgkChi2CMax = 100.; + Int_t fgkNChi2CBins=10; + // Float_t fgkChi2CMin = 0.; + // Float_t fgkChi2CMax = 100.; //10 sigma Double_t *binsChi2C=new Double_t[fgkNChi2CBins+1]; - for(Int_t i=0; i<=fgkNChi2CBins; i++) binsChi2C[i]=(Double_t)fgkChi2CMin + (fgkChi2CMax-fgkChi2CMin)/fgkNChi2CBins*(Double_t)i ; + for(Int_t i=0; i<=fgkNChi2CBins; i++) binsChi2C[i] = (Double_t)i * (Double_t)i; Int_t fgkNRel1PtUncertaintyBins=50; Float_t fgkRel1PtUncertaintyMin = 0.; @@ -534,9 +542,6 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() { fPtRelUncertainty1PtPhi = new TH3F("fPtRelUncertainty1PtPhi","fPtRelUncertainty1PtPhi",fgkNPtBins,binsPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNPhiBins,binsPhi); fHistList->Add(fPtRelUncertainty1PtPhi); - fPtRelUncertainty1PtTrkLength = new TH3F("fPtRelUncertainty1PtTrkLength","fPtRelUncertainty1PtTrkLength",fgkNPtBins,binsPt,fgkNRel1PtUncertaintyBins,binsRel1PtUncertainty,fgkNNClustersTPCBins,binsNClustersTPC); - fHistList->Add(fPtRelUncertainty1PtTrkLength); - fPtUncertainty1Pt = new TH2F("fPtUncertainty1Pt","fPtUncertainty1Pt",fgkNPtBins,binsPt,fgkNUncertainty1PtBins,binsUncertainty1Pt); fHistList->Add(fPtUncertainty1Pt); @@ -555,6 +560,22 @@ void AliPWG4HighPtTrackQA::UserCreateOutputObjects() { fPtNCrRNCrRNClusF = new TH3F("fPtNCrRNCrRNClusF","fPtNCrRNCrRNClusF",fgkNPtBins,binsPt,fgkNNClustersTPCBins,binsNClustersTPC,fgkNCrossedRowsNClusFBins,binsNCrossedRowsNClusF); fHistList->Add(fPtNCrRNCrRNClusF); + fPtChi2Gold = new TH2F("fPtChi2Gold","fPtChi2Gold",fgkNPtBins,binsPt,fgkNChi2CBins,binsChi2C); + fHistList->Add(fPtChi2Gold); + + fPtChi2GGC = new TH2F("fPtChi2GGC","fPtChi2GGC",fgkNPtBins,binsPt,fgkNChi2CBins,binsChi2C); + fHistList->Add(fPtChi2GGC); + + fPtChi2GoldPhi = new TH3F("fPtChi2GoldPhi","fPtChi2GoldPhi",fgkNPtBins,binsPt,fgkNChi2CBins,binsChi2C,fgkNPhiBins,binsPhi); + fHistList->Add(fPtChi2GoldPhi); + + fPtChi2GGCPhi = new TH3F("fPtChi2GGCPhi","fPtChi2GGCPhi",fgkNPtBins,binsPt,fgkNChi2CBins,binsChi2C,fgkNPhiBins,binsPhi); + fHistList->Add(fPtChi2GGCPhi); + + fChi2GoldChi2GGC = new TH2F("fChi2GoldChi2GGC","fChi2GoldChi2GGC;#chi^{2}_{gold};#chi^{2}_{ggc}",fgkNChi2CBins,binsChi2C,fgkNChi2CBins,binsChi2C); + fHistList->Add(fChi2GoldChi2GGC); + + fPtSigmaY2 = new TH2F("fPtSigmaY2","fPtSigmaY2",fgkN1PtBins,bins1Pt,fgkNSigmaY2Bins,binsSigmaY2); fHistList->Add(fPtSigmaY2); @@ -892,6 +913,8 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() { 18: NClustersTPCIter1 19: Chi2TPCIter1 20: nClustersTPCShared + 21: Golden Chi2 - global vs TPC constrained + 22: Chi2 between global and global constrained */ for (Int_t iTrack = 0; iTrack < nTracks; iTrack++) { @@ -964,15 +987,14 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() { } else if(fTrackType==7) { //use global constrained track - track = esdtrack; + track = new AliESDtrack(*esdtrack); // track->Set(esdtrack->GetConstrainedParam()->GetX(),esdtrack->GetConstrainedParam()->GetAlpha(),esdtrack->GetConstrainedParam()->GetParameter(),esdtrack->GetConstrainedParam()->GetCovariance()); } else track = esdtrack; - if(!track) { + if(!track) continue; - } if(fTrackType==2 || fTrackType==4 || fTrackType==5) { //Cut on chi2 of constrained fit @@ -990,7 +1012,7 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() { if (!(fTrackCuts->AcceptTrack(track)) && fTrackType!=4 && fTrackType!=5 && fTrackType!=6) { fh1NTracksReject->Fill("trackCuts",1); - if(fTrackType==1 || fTrackType==2) { + if(fTrackType==1 || fTrackType==2 || fTrackType==4 || fTrackType==5 || fTrackType==7) { if(track) delete track; } continue; @@ -998,16 +1020,23 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() { if(fTrackType==7) { if(fTrackCutsITSLoose ) { - if(fTrackCutsITSLoose->AcceptTrack(track) ) + if(fTrackCutsITSLoose->AcceptTrack(track) ) { + if(track) delete track; continue; + } } if(esdtrack->GetConstrainedParam()) track->Set(esdtrack->GetConstrainedParam()->GetX(),esdtrack->GetConstrainedParam()->GetAlpha(),esdtrack->GetConstrainedParam()->GetParameter(),esdtrack->GetConstrainedParam()->GetCovariance()); } - if(!track) continue; - + if(!track) { + if(fTrackType==1 || fTrackType==2 || fTrackType==4 || fTrackType==5 || fTrackType==7) { + if(track) delete track; + } + continue; + } + fh1NTracksSel->Fill(0.); fVariables->Reset(0.); @@ -1026,7 +1055,7 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() { track->GetImpactParameters(dca2D,dcaz); //Global fVariables->SetAt(dca2D,3); - fVariables->SetAt(dcaz,5); + fVariables->SetAt(dcaz,4); fVariables->SetAt((float)track->GetTPCNcls(),5); @@ -1061,12 +1090,18 @@ void AliPWG4HighPtTrackQA::DoAnalysisESD() { fVariables->SetAt(track->GetTPCchi2Iter1(),19); fVariables->SetAt(track->GetTPCnclsS(),20); + + Float_t chi2Gold = GetGoldenChi2(iTrack); + Float_t chi2GGC = GetGGCChi2(iTrack,track); + + fVariables->SetAt(chi2Gold,21); + fVariables->SetAt(chi2GGC,22); FillHistograms(); // int mult = fTrackCuts->CountAcceptedTracks(fESD); - if(fTrackType==1 || fTrackType==2 || fTrackType==4 || fTrackType==5) { + if(fTrackType==1 || fTrackType==2 || fTrackType==4 || fTrackType==5 || fTrackType==7) { if(track) delete track; } @@ -1131,6 +1166,9 @@ void AliPWG4HighPtTrackQA::DoAnalysisAOD() { TBits sharedClusterMap = aodtrack->GetTPCSharedMap(); fVariables->SetAt(sharedClusterMap.CountBits(),20); + fVariables->SetAt(0.,21); //not available in AOD + fVariables->SetAt(0.,22); //not available in AOD + fPtAll->Fill(fVariables->At(0)); FillHistograms(); @@ -1168,7 +1206,6 @@ void AliPWG4HighPtTrackQA::FillHistograms() { if(fVariables->At(18)>0.) fPtRelUncertainty1PtChi2Iter1->Fill(fVariables->At(0),fVariables->At(0)*TMath::Sqrt(fVariables->At(17)),fVariables->At(19)/fVariables->At(18)); fPtRelUncertainty1PtPhi->Fill(fVariables->At(0),fVariables->At(0)*TMath::Sqrt(fVariables->At(17)),fVariables->At(1)); - fPtRelUncertainty1PtTrkLength->Fill(fVariables->At(0),fVariables->At(0)*TMath::Sqrt(fVariables->At(17)),fVariables->At(9)); fPtUncertainty1Pt->Fill(fVariables->At(0),TMath::Sqrt(fVariables->At(17))); fPtSigmaY2->Fill(1./fVariables->At(0),TMath::Sqrt(fVariables->At(13))); @@ -1190,6 +1227,15 @@ void AliPWG4HighPtTrackQA::FillHistograms() { fPtNCrossedRowsNClusF->Fill(fVariables->At(0),fVariables->At(12)); fPtNCrRNCrRNClusF->Fill(fVariables->At(0),fVariables->At(11),fVariables->At(12)); + fPtChi2Gold->Fill(fVariables->At(0),fVariables->At(21)); + fPtChi2GGC->Fill(fVariables->At(0),fVariables->At(22)); + + fPtChi2GoldPhi->Fill(fVariables->At(0),fVariables->At(21),fVariables->At(1)); + fPtChi2GGCPhi->Fill(fVariables->At(0),fVariables->At(22),fVariables->At(1)); + + fChi2GoldChi2GGC->Fill(fVariables->At(21),fVariables->At(22)); + + } //________________________________________________________________________ @@ -1425,6 +1471,62 @@ Int_t AliPWG4HighPtTrackQA::GetTrackLengthTPC(AliAODTrack *track) { return trackLength; } +//_______________________________________________________________________ +Float_t AliPWG4HighPtTrackQA::GetGoldenChi2(Int_t iTrack) { + // + // Return chi2 between global and TPC constrained track + // + + Float_t chi2Gold = 0.; + + AliESDtrack *esdtrack = fESD->GetTrack(iTrack); + AliESDtrack *tpcTrack = 0x0; + tpcTrack = AliESDtrackCuts::GetTPCOnlyTrack(fESD,esdtrack->GetID()); + if(tpcTrack) { + AliExternalTrackParam exParam; + Bool_t relate = tpcTrack->RelateToVertexTPC(fVtx,fESD->GetMagneticField(),kVeryBig,&exParam); + if( relate ) { + tpcTrack->Set(exParam.GetX(),exParam.GetAlpha(),exParam.GetParameter(),exParam.GetCovariance()); + // Double_t pTPC[2],covTPC[3]; tpcTrack->PropagateToDCA(fVtx, fESD->GetMagneticField(), 10000, pTPC, covTPC); + } + + tpcTrack->Propagate(esdtrack->GetAlpha(), esdtrack->GetX(), fESD->GetMagneticField()); + chi2Gold = (Float_t)esdtrack->GetPredictedChi2(tpcTrack); + } + + if(tpcTrack) delete tpcTrack; + + return chi2Gold; + +} + +//_______________________________________________________________________ +Float_t AliPWG4HighPtTrackQA::GetGGCChi2(Int_t iTrack, AliESDtrack *track) { + // + // Return chi2 between global and global constrained track + // track should be the global track constrained to the primary vertex + // + + Float_t chi2GGC = 0.; + + AliESDtrack *esdtrack = fESD->GetTrack(iTrack); + chi2GGC = (Float_t)esdtrack->GetPredictedChi2(track); + + if(chi2GGC==0. && fTrackType!=7) { + AliESDtrack *esdtrackC = new AliESDtrack(*esdtrack); + if(esdtrackC) { + esdtrackC->Set(esdtrack->GetConstrainedParam()->GetX(),esdtrack->GetConstrainedParam()->GetAlpha(),esdtrack->GetConstrainedParam()->GetParameter(),esdtrack->GetConstrainedParam()->GetCovariance()); + chi2GGC = (Float_t)esdtrack->GetPredictedChi2(esdtrackC); + + delete esdtrackC; + } + + } + + return chi2GGC; + +} + //_______________________________________________________________________ void AliPWG4HighPtTrackQA::FillSystematicCutHist(AliESDtrack *track) { diff --git a/PWG4/JetTasks/AliPWG4HighPtTrackQA.h b/PWG4/JetTasks/AliPWG4HighPtTrackQA.h index ccd7a804a47..d3ace4503cc 100644 --- a/PWG4/JetTasks/AliPWG4HighPtTrackQA.h +++ b/PWG4/JetTasks/AliPWG4HighPtTrackQA.h @@ -88,6 +88,8 @@ class AliPWG4HighPtTrackQA: public AliAnalysisTaskSE { Float_t GetTPCClusterInfo(AliAODTrack *tr,Int_t nNeighbours=3, Int_t type=0, Int_t row0=0, Int_t row1=159) const; Int_t GetTrackLengthTPC(AliESDtrack *track); Int_t GetTrackLengthTPC(AliAODTrack *track); + Float_t GetGoldenChi2(Int_t iTrack); + Float_t GetGGCChi2(Int_t iTrack, AliESDtrack *track); static AliGenPythiaEventHeader* GetPythiaEventHeader(AliMCEvent *mcEvent); static Bool_t PythiaInfoFromFile(const char* currFile,Float_t &fXsec,Float_t &fTrials);// get the cross section and the trails either from pyxsec.root or from pysec_hists.root @@ -171,14 +173,19 @@ class AliPWG4HighPtTrackQA: public AliAnalysisTaskSE { TH3F *fPtRelUncertainty1PtChi2; //! Pt vs relUncertainty1Pt vs Chi2TPC/NClus TH3F *fPtRelUncertainty1PtChi2Iter1; //! Pt vs relUncertainty1Pt vs Chi2TPC/NClusIter1 TH3F *fPtRelUncertainty1PtPhi; //! Pt vs relUncertainty1PtPhi - TH3F *fPtRelUncertainty1PtTrkLength; //! Pt vs relUncertainty1Pt vs track length in TPC TH2F *fPtUncertainty1Pt; //! Pt vs Uncertainty1Pt TH2F *fPtChi2PerClusterTPC; //! Pt vs Chi2PerClusterTPC - TH2F *fPtChi2PerClusterTPCIter1; //! Pt vs Chi2PerClusterTPCIter1 + TH2F *fPtChi2PerClusterTPCIter1; //! Pt vs Chi2PerClusterTPCIter1 TH2F *fPtNCrossedRows; //! Pt vs NCrossedRows TH2F *fPtNCrossedRowsNClusF; //! Pt vs NCrossedRows/NClusF TH3F *fPtNCrRNCrRNClusF; //! Pt vs NCrossedRows vs NCrossedRows/NClusF + TH2F *fPtChi2Gold; //! Pt vs Chi2 between global and TPC constrained track + TH2F *fPtChi2GGC; //! Pt vs Chi2 between global and global constrained track + TH3F *fPtChi2GoldPhi; //! Pt vs Chi2 between global and TPC constrained track vs phi + TH3F *fPtChi2GGCPhi; //! Pt vs Chi2 between global and global constrained track vs phi + TH2F *fChi2GoldChi2GGC; //! Correlations between gold chi2 and GGC chi2 + //histos for covariance matrix elements TH2F *fPtSigmaY2; //! 1/Pt vs sigma(y) extCov[0] TH2F *fPtSigmaZ2; //! 1/Pt vs sigma(z) extCov[2] diff --git a/PWG4/macros/AddTaskPWG4HighPtSpectra.C b/PWG4/macros/AddTaskPWG4HighPtSpectra.C index 20d5c714948..5772ca29c69 100644 --- a/PWG4/macros/AddTaskPWG4HighPtSpectra.C +++ b/PWG4/macros/AddTaskPWG4HighPtSpectra.C @@ -6,8 +6,8 @@ const Float_t phimax = 2.*TMath::Pi(); const Float_t etamin = -0.9; const Float_t etamax = 0.9; -const Int_t mintrackrefsTPC = 1; -const Int_t mintrackrefsITS = 1; +const Int_t mintrackrefsTPC = 0; +const Int_t mintrackrefsITS = 0; void AddTaskPWG4HighPtSpectraAll(char *prodType = "LHC10h",Bool_t isPbPb=kTRUE, Int_t iAODanalysis = 0) { @@ -84,6 +84,7 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool UInt_t ipt = 0; UInt_t iphi = 1; UInt_t ieta = 2; + UInt_t incls = 3; //Setting up the container grid... UInt_t nstep = 4; //Steps/Modes for containers @@ -106,7 +107,7 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool ptBinEdges[3][0] = 100.; ptBinEdges[3][1] = 5.; - const Int_t nvar = 3; //number of variables on the grid: pt:phi:eta + const Int_t nvar = 4; //number of variables on the grid: pt:phi:eta:NClsIter1 const Int_t nbin11 = round((ptBinEdges[0][0]-ptmin)/ptBinEdges[0][1]); const Int_t nbin12 = round((ptBinEdges[1][0]-ptBinEdges[0][0])/ptBinEdges[1][1])+nbin11; @@ -116,17 +117,21 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool const Int_t nbin1 = nbin14; //bins in pt const Int_t nbin2 = 18; //bins in phi const Int_t nbin3 = 2; //bins in eta + const Int_t nbin4 = 6; //bins in NClsIter1: 0 70 80 90 100 120 + //arrays for the number of bins in each dimension Int_t iBin[nvar]; iBin[0]=nbin1; iBin[1]=nbin2; iBin[2]=nbin3; + iBin[3]=nbin4; //arrays for lower bounds : Double_t *binLim1=new Double_t[nbin1+1]; Double_t *binLim2=new Double_t[nbin2+1]; Double_t *binLim3=new Double_t[nbin3+1]; + Double_t *binLim4=new Double_t[nbin4+1]; //values for bin lower bounds for(Int_t i=0; i<=nbin1; i++) { @@ -137,19 +142,28 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool } for(Int_t i=0; i<=nbin2; i++) binLim2[i]=(Double_t)phimin + (phimax-phimin)/nbin2*(Double_t)i ; for(Int_t i=0; i<=nbin3; i++) binLim3[i]=(Double_t)etamin + (etamax-etamin)/nbin3*(Double_t)i ; - + binLim4[0] = 0.; + binLim4[1] = 70.; + binLim4[2] = 80.; + binLim4[3] = 90.; + binLim4[4] = 100.; + binLim4[5] = 120.; + binLim4[6] = 160.; + AliCFContainer* containerPos = new AliCFContainer("containerPos","container for positive tracks",nstep,nvar,iBin); //setting the bin limits containerPos -> SetBinLimits(ipt,binLim1); containerPos -> SetBinLimits(iphi,binLim2); containerPos -> SetBinLimits(ieta,binLim3); + containerPos -> SetBinLimits(incls,binLim4); AliCFContainer* containerNeg = new AliCFContainer("containerNeg","container for negative tracks",nstep,nvar,iBin); //setting the bin limits containerNeg -> SetBinLimits(ipt,binLim1); containerNeg -> SetBinLimits(iphi,binLim2); containerNeg -> SetBinLimits(ieta,binLim3); + containerNeg -> SetBinLimits(incls,binLim4); //CREATE THE CUTS ----------------------------------------------- //Use AliESDtrackCuts @@ -173,7 +187,7 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool // no requirements on SPD and ITSrefit failed trackCuts = CreateTrackCutsPWG4(10041005); //no ITSrefit requirement trackCutsReject = CreateTrackCutsPWG4(1005); //ITSrefit requirement - trackCutsReject->SetEtaRange(-0.9,0.9); + trackCutsReject->SetEtaRange(-etamin,etamax); trackCutsReject->SetPtRange(0.15, 1e10); } if(trackType==7 && cuts==1) { @@ -184,7 +198,7 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool // no requirements on SPD and ITSrefit failed trackCuts = CreateTrackCutsPWG4(10041005); //no ITSrefit requirement filter 256 trackCutsReject = CreateTrackCutsPWG4(10001005); //ITSrefit requirement filter 16 - trackCutsReject->SetEtaRange(-0.9,0.9); + trackCutsReject->SetEtaRange(etamin,etamax); trackCutsReject->SetPtRange(0.15, 1e10); } @@ -196,19 +210,19 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool // Set track cuts for TPConly constrained tracks trackCuts = CreateTrackCutsPWG4(2001); } - trackCuts->SetEtaRange(-0.9,0.9); + trackCuts->SetEtaRange(etamin,etamax); trackCuts->SetPtRange(0.15, 1e10); // Gen-Level kinematic cuts AliCFTrackKineCuts *mcKineCuts = new AliCFTrackKineCuts("mcKineCuts","MC-level kinematic cuts"); mcKineCuts->SetPtRange(0.15,1e10); - mcKineCuts->SetRapidityRange(-0.9,0.9);//-0.5,0.5); + mcKineCuts->SetEtaRange(etamin,etamax);//-0.5,0.5); mcKineCuts->SetRequireIsCharged(kTRUE); //Acceptance Cuts - AliCFAcceptanceCuts *mcAccCuts = new AliCFAcceptanceCuts("mcAccCuts","MC acceptance cuts"); + //AliCFAcceptanceCuts *mcAccCuts = new AliCFAcceptanceCuts("mcAccCuts","MC acceptance cuts"); // mcAccCuts->SetMinNHitITS(mintrackrefsITS); - mcAccCuts->SetMinNHitTPC(mintrackrefsTPC); + //mcAccCuts->SetMinNHitTPC(mintrackrefsTPC); TObjArray* recList = new TObjArray(0); TObjArray* secList = new TObjArray(0) ; @@ -217,7 +231,7 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool printf("CREATE MC KINE CUTS\n"); TObjArray* mcList = new TObjArray(0) ; mcList->AddLast(mcKineCuts); - mcList->AddLast(mcAccCuts); + //mcList->AddLast(mcAccCuts); //CREATE THE INTERFACE TO CORRECTION FRAMEWORK USED IN THE TASK printf("CREATE INTERFACE AND CUTS\n"); @@ -247,7 +261,7 @@ AliPWG4HighPtSpectra* AddTaskPWG4HighPtSpectra(char *prodType = "LHC10e14", Bool taskPWG4HighPtSpectra->SetIsPbPb(kTRUE); taskPWG4HighPtSpectra->SetCentralityClass(centClass); } - taskPWG4HighPtSpectra->SetSigmaConstrainedMax(5.); + // taskPWG4HighPtSpectra->SetSigmaConstrainedMax(5.); // E. Create ONLY the output containers for the data produced by the task. diff --git a/PWG4/macros/AddTaskPWG4HighPtTrackQA.C b/PWG4/macros/AddTaskPWG4HighPtTrackQA.C index 8e6dd2b8f89..a90331c4ef0 100644 --- a/PWG4/macros/AddTaskPWG4HighPtTrackQA.C +++ b/PWG4/macros/AddTaskPWG4HighPtTrackQA.C @@ -48,7 +48,6 @@ void AddTaskPWG4HighPtTrackQAAllReduced(char *prodType = "LHC10h",Bool_t isPbPb= for(cent=0; cent<4; cent++) { AliPWG4HighPtTrackQA *taskTrackQA00 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,0); AliPWG4HighPtTrackQA *taskTrackQA01 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,1); - AliPWG4HighPtTrackQA *taskTrackQA02 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,0,2); AliPWG4HighPtTrackQA *taskTrackQA70 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,0); AliPWG4HighPtTrackQA *taskTrackQA71 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,1); AliPWG4HighPtTrackQA *taskTrackQA72 = AddTaskPWG4HighPtTrackQA(prodType,isPbPb,iAODanalysis,cent,7,2); diff --git a/PWG4/macros/AnalysisTrainPWG4Jets.C b/PWG4/macros/AnalysisTrainPWG4Jets.C index 8ed8a08bf67..9ce948d6682 100644 --- a/PWG4/macros/AnalysisTrainPWG4Jets.C +++ b/PWG4/macros/AnalysisTrainPWG4Jets.C @@ -2148,7 +2148,7 @@ AliAnalysisAlien* CreateAlienHandler(const char *plugin_mode) if(kGridLocalRunList.Length()>0){ ifstream in1; in1.open(kGridLocalRunList.Data()); - int iRun; + int iRun = 0; int icount = 0; Int_t nRun = 0; // just use run numbers, negatives will be excluded -- 2.43.0