X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;ds=sidebyside;f=PWGJE%2FAliAnalysisTaskJetSpectrum2.cxx;h=b1c1430a21867d4f90543f4640d38190ac7d86b1;hb=6bb29c8cfbb371296e644adf135b93ca72fb0e94;hp=6a396c49a0bc379f4645bc84e25b32cdaef4a4e4;hpb=346cfe4a208b23f4205fe026855e0e44440e1da7;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGJE/AliAnalysisTaskJetSpectrum2.cxx b/PWGJE/AliAnalysisTaskJetSpectrum2.cxx index 6a396c49a0b..b1c1430a218 100644 --- a/PWGJE/AliAnalysisTaskJetSpectrum2.cxx +++ b/PWGJE/AliAnalysisTaskJetSpectrum2.cxx @@ -93,6 +93,8 @@ AliAnalysisTaskSE(), fDoMatching(kFALSE), fNMatchJets(5), fNRPBins(3), + fTRP(0), + fDebug(0), fJetTriggerExcludeMask(AliAODJet::kHighTrackPtTriggered), fJetTriggerBestMask(AliAODJet::kHighTrackPtBest), fFilterMask(0), @@ -137,7 +139,9 @@ AliAnalysisTaskSE(), fh2MultGen(0x0), fh2RPCentrality(0x0), fh2PtFGen(0x0), + fh2deltaPt1Pt2(0x0), fh2RelPtFGen(0x0), + fh3RelPtFGenLeadTrkPt(0x0), fHistList(0x0) { @@ -200,6 +204,8 @@ AliAnalysisTaskJetSpectrum2::AliAnalysisTaskJetSpectrum2(const char* name): fDoMatching(kFALSE), fNMatchJets(5), fNRPBins(3), + fTRP(0), + fDebug(0), fJetTriggerExcludeMask(AliAODJet::kHighTrackPtTriggered), fJetTriggerBestMask(AliAODJet::kHighTrackPtBest), fFilterMask(0), @@ -244,7 +250,9 @@ AliAnalysisTaskJetSpectrum2::AliAnalysisTaskJetSpectrum2(const char* name): fh2MultGen(0x0), fh2RPCentrality(0x0), fh2PtFGen(0x0), + fh2deltaPt1Pt2(0x0), fh2RelPtFGen(0x0), + fh3RelPtFGenLeadTrkPt(0x0), fHistList(0x0) { @@ -360,13 +368,13 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects() // event npsparse cent, mult - const Int_t nBinsSparse0 = 3; - const Int_t nBins0[nBinsSparse0] = { 100, 500,fNTrigger}; - const Double_t xmin0[nBinsSparse0] = { 0, 0, -0.5}; - const Double_t xmax0[nBinsSparse0] = { 100,5000,fNTrigger-0.5}; + const Int_t nBinsSparse0 = 4; + const Int_t nBins0[nBinsSparse0] = { 100, 500,fNTrigger,125}; + const Double_t xmin0[nBinsSparse0] = { 0, 0, -0.5,-2}; + const Double_t xmax0[nBinsSparse0] = { 100,5000,fNTrigger-0.5,248}; - fhnEvent = new THnSparseF("fhnEvent",";cent;mult",nBinsSparse0, + fhnEvent = new THnSparseF("fhnEvent",";cent;mult:trigger;#rho",nBinsSparse0, nBins0,xmin0,xmax0); fHistList->Add(fhnEvent); @@ -451,9 +459,30 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects() fh2PtFGen = new TH2F("fh2PtFGen",Form("%s vs. %s;p_{T,gen};p_{T,rec}",fBranchRec.Data(),fBranchGen.Data()),nBinPt,binLimitsPt,nBinPt,binLimitsPt); fHistList->Add(fh2PtFGen); + // fh2deltaPt1Pt2(0x0), + fh2deltaPt1Pt2 = new TH3F("fh2deltaPt1Pt2",Form("%s vs. %s;delta;p_{T,gen};p_{T,rec}",fBranchRec.Data(),fBranchGen.Data()),nBinPt,binLimitsPt,nBinPt,binLimitsPt,nBinPt,binLimitsPt); + fHistList->Add(fh2deltaPt1Pt2); + fh2RelPtFGen = new TH2F("fh2RelPtFGen",";p_{T,gen};p_{T,rec}-p_{T,gen}/p_{T,Gen}",nBinPt,binLimitsPt,241,-2.41,2.41); fHistList->Add(fh2RelPtFGen); - + + const Int_t nBinsLeadingTrackPt = 10; + const Double_t binArrayLeadingTrackPt[nBinsLeadingTrackPt+1] = {0.,1.,2.,3.,4.,5.,6.,8.,10.,12.,200.}; //store pT of leading track in jet + + const Int_t nBinDeltaPt = 241; + Double_t binLimitsDeltaPt[nBinDeltaPt+1]; + for(Int_t iDeltaPt = 0;iDeltaPt <= nBinDeltaPt;iDeltaPt++){ + if(iDeltaPt == 0){ + binLimitsDeltaPt[iDeltaPt] = -2.41; + } + else { + binLimitsDeltaPt[iDeltaPt] = binLimitsDeltaPt[iDeltaPt-1] + 0.02; + } + } + + fh3RelPtFGenLeadTrkPt = new TH3F("fh3RelPtFGenLeadTrkPt",";p_{T,gen};p_{T,rec}-p_{T,gen}/p_{T,Gen};p_{T}^{leading track}",nBinPt,binLimitsPt,nBinDeltaPt,binLimitsDeltaPt,nBinsLeadingTrackPt,binArrayLeadingTrackPt); + fHistList->Add(fh3RelPtFGenLeadTrkPt); + for(int ij = 0;ij SetBinEdges(5,binArrayArea); @@ -545,22 +580,22 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects() // Bins: Jet number: pTJet, cent, eta, phi, Area, trigger, acceptance, signed pT leading const Int_t nBinsSparse2 = 9; - Int_t nBins2[nBinsSparse2] = { kMaxJets+1, 60, 8, 18, 72, 10,fNTrigger,fNAcceptance+0.5,10}; + Int_t nBins2[nBinsSparse2] = { kMaxJets+1, 60, 8, 6, 90, 100,fNTrigger,fNAcceptance+1,20}; if(cJetBranch.Contains("RandomCone")){ nBins2[5] = 1; } const Double_t xmin2[nBinsSparse2] = { -0.5, -50, 0,-0.9, 0, 0., -0.5, -0.5, -100}; const Double_t xmax2[nBinsSparse2] = {kMaxJets+0.5, 250, 80, 0.9, 2.*TMath::Pi(),1.0,fNTrigger-0.5,fNAcceptance+0.5, 100}; fhnJetPtQA[ij] = new THnSparseF(Form("fhnJetPtQA%s",cAdd.Data()),";jet number;p_{T,jet};cent;#eta;#phi;area;trigger;acceptance bin;signed pt leading",nBinsSparse2,nBins2,xmin2,xmax2); - fhnJetPt[ij]->SetBinEdges(5,binArrayArea); + // fhnJetPt[ij]->SetBinEdges(5,binArrayArea); fHistList->Add(fhnJetPtQA[ij]); - // Bins:track number pTtrack, cent, mult, RP. total bins = 224 k - const Int_t nBinsSparse3 = 6; + // Bins:track number pTtrack, cent, mult, RP. charge total bins = 224 k + const Int_t nBinsSparse3 = 7; const Int_t nRPBinsSparse3 = 3; - const Int_t nBins3[nBinsSparse3] = { 2, 100, 10, 1, nRPBinsSparse3,fNTrigger}; - const Double_t xmin3[nBinsSparse3] = { -0.5, 0, 0, 0, -0.5,-0.5}; - const Double_t xmax3[nBinsSparse3] = { 1.5, 200, 100, 4000,nRPBinsSparse3-0.5,fNTrigger-0.5}; + const Int_t nBins3[nBinsSparse3] = { 2, 100, 10, 1, nRPBinsSparse3,fNTrigger,2}; + const Double_t xmin3[nBinsSparse3] = { -0.5, 0, 0, 0, -0.5,-0.5,-1.5}; + const Double_t xmax3[nBinsSparse3] = { 1.5, 200, 100, 4000,nRPBinsSparse3-0.5,fNTrigger-0.5,1.5}; // change the binning of the pT axis: Double_t *xPt3 = new Double_t[nBins3[1]+1]; @@ -582,8 +617,8 @@ void AliAnalysisTaskJetSpectrum2::UserCreateOutputObjects() // Track QA bins track nr, pTrack, cent, eta, phi bins 5.4 M const Int_t nBinsSparse4 = 6; - const Int_t nBins4[nBinsSparse4] = { 2, 50, 10, 20, 180,2}; - const Double_t xmin4[nBinsSparse4] = { -0.5, 0, 0, -1.0, 0.,-1.5}; + const Int_t nBins4[nBinsSparse4] = { 2, 50, 10, 20, 180,2}; + const Double_t xmin4[nBinsSparse4] = { -0.5, 0, 0, -1.0, 0.,-1.5}; const Double_t xmax4[nBinsSparse4] = { 1.5,150, 100, 1.0,2.*TMath::Pi(),1.5}; // change the binning ot the pT axis: @@ -857,6 +892,7 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/){ TList genParticles; Int_t nT = GetListOfTracks(&recParticles,fTrackTypeRec); + if(fDebug>2)Printf("%s:%d Selected Rec tracks: %d %d",(char*)__FILE__,__LINE__,nT,recParticles.GetEntries()); nT = GetListOfTracks(&genParticles,fTrackTypeGen); if(fDebug>2)Printf("%s:%d Selected Gen tracks: %d %d",(char*)__FILE__,__LINE__,nT,genParticles.GetEntries()); @@ -895,12 +931,13 @@ void AliAnalysisTaskJetSpectrum2::UserExec(Option_t */*option*/){ fMultGen = genMult1; if(fMultGen<=0)fMultGen = genMult2; - Double_t var0[3] = {0,}; + Double_t var0[4] = {0,}; var0[0] = fCentrality; var0[1] = fMultRec; for(int it=0;itIsEventSelected()&fTriggerBit[it]){ var0[2] = it; + var0[3] = GetRho(recJetsList); fhnEvent->Fill(var0); } } @@ -1017,7 +1054,6 @@ void AliAnalysisTaskJetSpectrum2::FillJetHistos(TList &jetsList,TList &particles } } // fill jet histos for kmax jets - Float_t phiJet = jet->Phi(); Float_t etaJet = jet->Eta(); if(phiJet<0)phiJet+=TMath::Pi()*2.; @@ -1027,16 +1063,33 @@ void AliAnalysisTaskJetSpectrum2::FillJetHistos(TList &jetsList,TList &particles fh1PtIn[iType][kMaxJets]->Fill(ptJet); // fill leading jets... AliVParticle *leadTrack = LeadingTrackFromJetRefs(jet); - // AliVParticle *leadTrack = LeadingTrackInCone(jet,&particlesList); + //AliVParticle *leadTrack = LeadingTrackInCone(jet,&particlesList); Int_t phiBin = GetPhiBin(phiJet-fRPAngle); Double_t ptLead = jet->GetPtLeading(); //pT of leading jet - - var1[1] = ptJet; - var1[4] = phiBin; - var1[5] = jet->EffectiveAreaCharged(); - var1[7] = ptLead; - var1[8] = CheckAcceptance(phiJet,etaJet); - + AliVParticle *tt = (AliVParticle*)particlesList.At(0); + Float_t ttphi=tt->Phi(); + if(ttphi<0)ttphi+=TMath::Pi()*2.; + Float_t ttpt=tt->Pt(); + Int_t phiBintt = GetPhiBin(ttphi-fRPAngle); + Double_t dphitrigjet=RelativePhi(ttphi,phiJet); + if(fTRP==1){ + if(TMath::Abs(dphitrigjet)EffectiveAreaCharged(); + var1[7] = ttpt; + var1[8] = CheckAcceptance(phiJet,etaJet); + } + + if(fTRP==0){ + var1[1] = ptJet; + var1[4] = phiBin; + var1[5] = jet->EffectiveAreaCharged(); + var1[7] = ptLead; + var1[8] = CheckAcceptance(phiJet,etaJet); + } + + //jet number;p_{T,jet};cent;#eta;#phi;area;trigger;acceptance bin;signed pt leading var2[1] = ptJet; var2[3] = etaJet; var2[4] = phiJet; @@ -1062,6 +1115,7 @@ void AliAnalysisTaskJetSpectrum2::FillJetHistos(TList &jetsList,TList &particles for(int it = 0;it IsEventSelected()&fTriggerBit[it]){ var1[6] = it; + var2[6] = it; fhnJetPt[iType]->Fill(var1); fhnJetPtQA[iType]->Fill(var2); } @@ -1149,7 +1203,7 @@ void AliAnalysisTaskJetSpectrum2::FillTrackHistos(TList &particlesList,int iType } // - Double_t var3[6]; // track number;p_{T};cent;#tracks;RP + Double_t var3[7]; // track number;p_{T};cent;#tracks;RP;cahrge var3[2] = fCentrality; var3[3] = refMult; Double_t var4[6]; // track number;p_{T};cent;#eta;#phi;sign @@ -1205,6 +1259,7 @@ void AliAnalysisTaskJetSpectrum2::FillTrackHistos(TList &particlesList,int iType var3[0] = 1; var3[1] = tmpPt; var3[4] = phiBin; + var3[6] = tmpTrack->Charge(); var4[0] = 1; var4[1] = tmpPt; @@ -1228,14 +1283,17 @@ void AliAnalysisTaskJetSpectrum2::FillTrackHistos(TList &particlesList,int iType - fhnTrackPtQA[iType]->Fill(var4); - if(tmpTrack==leading){ var4[0] = 0; fhnTrackPtQA[iType]->Fill(var4); continue; } + + + + + } fh1SumPtTrack[iType]->Fill(sumPt); delete trackIter; @@ -1294,22 +1352,24 @@ void AliAnalysisTaskJetSpectrum2::FillMatchHistos(TList &recJetsList,TList &genJ fhnJetContainer->Fill(containerGen,kStep0); //all generated jets + if(JetSelected(genJet)) + fhnJetContainer->Fill(containerGen,kStep1); // all generated jets in eta window + Int_t ir = aRecIndex[ig]; if(ir>=0&&irFill(containerGen,kStep2); // all generated jets with reconstructed partner - - if(JetSelected(genJet)){ - fhnJetContainer->Fill(containerGen,kStep1); // all generated jets in eta window + AliAODJet* recJet = (AliAODJet*)recJetsList.At(ir); - AliAODJet* recJet = (AliAODJet*)recJetsList.At(ir); + fhnJetContainer->Fill(containerGen,kStep2); // all generated jets with reconstructed partner + if(JetSelected(genJet)){ fhnJetContainer->Fill(containerGen,kStep3); // all generated jets in eta window with reconstructed partner + if(JetSelected(recJet)) { fhnJetContainer->Fill(containerGen,kStep4); // all generated jets in eta window with reconstructed partner in eta window - - containerGen[3] = recJet->GetPtLeading(); - fhnJetContainer->Fill(containerGen,kStep5); // all generated jets in eta window with reconstructed partner in eta window with leading track on reconstructed level + } + containerGen[3] = recJet->GetPtLeading(); + fhnJetContainer->Fill(containerGen,kStep5); // all generated jets in eta window with reconstructed partner with leading track on reconstructed level } } }// loop over generated jets used for matching... @@ -1361,11 +1421,14 @@ void AliAnalysisTaskJetSpectrum2::FillMatchHistos(TList &recJetsList,TList &genJ fhnJetContainer->Fill(containerGen,kStep6); // all rec jets in eta window with generated partner fhnCorrelation->Fill(container); - if(ptGen>0){ - Float_t delta = (ptRec-ptGen)/ptGen; - fh2RelPtFGen->Fill(ptGen,delta); - fh2PtFGen->Fill(ptGen,ptRec); - } + + Float_t delta = (ptRec-ptGen)/ptGen; + fh2RelPtFGen->Fill(ptGen,delta); + fh3RelPtFGenLeadTrkPt->Fill(ptGen,delta,recJet->GetPtLeading()); + fh2PtFGen->Fill(ptGen,ptRec); + + fh2deltaPt1Pt2->Fill(ptRec-ptGen,ptRec,ptGen); + } }// loop over reconstructed jets } @@ -1650,6 +1713,24 @@ AliVParticle *AliAnalysisTaskJetSpectrum2::LeadingTrackInCone(AliAODJet* jet,TLi return leading; } + +Double_t AliAnalysisTaskJetSpectrum2::RelativePhi(Double_t mphi,Double_t vphi){ + + if (vphi < -1*TMath::Pi()) vphi += (2*TMath::Pi()); + else if (vphi > TMath::Pi()) vphi -= (2*TMath::Pi()); + if (mphi < -1*TMath::Pi()) mphi += (2*TMath::Pi()); + else if (mphi > TMath::Pi()) mphi -= (2*TMath::Pi()); + double dphi = mphi-vphi; + if (dphi < -1*TMath::Pi()) dphi += (2*TMath::Pi()); + else if (dphi > TMath::Pi()) dphi -= (2*TMath::Pi()); + return dphi;//dphi in [-Pi, Pi] +} + + + + + + Int_t AliAnalysisTaskJetSpectrum2::GetPhiBin(Double_t phi) { Int_t phibin=-1; @@ -1746,7 +1827,16 @@ Int_t AliAnalysisTaskJetSpectrum2::CheckAcceptance(Float_t phi,Float_t eta){ return fNAcceptance; } +Float_t AliAnalysisTaskJetSpectrum2::GetRho(TList &list){ + // invert the correction + AliAODJet *jet = (AliAODJet*)list.At(0); // highest pt jet + if(!jet)return -1; + if(jet->EffectiveAreaCharged()<=0)return -1; + Float_t rho = jet->ChargedBgEnergy()/jet->EffectiveAreaCharged(); + return rho; + +}