X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGJE%2FEMCALJetTasks%2FAliAnalysisTaskEmcalJetSample.cxx;h=503bd06f1ee09ec4f97b05ba7a70b436b43dca4e;hb=0773a14f50b2952cd0433fc989b6fc6daaa21388;hp=075bf5e8ff4f20344aa7c426e3cfae823287b856;hpb=4bb8c6df9cf9ffeadbf57a14133a42b132d2f736;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetSample.cxx b/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetSample.cxx index 075bf5e8ff4..503bd06f1ee 100644 --- a/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetSample.cxx +++ b/PWGJE/EMCALJetTasks/AliAnalysisTaskEmcalJetSample.cxx @@ -7,11 +7,13 @@ #include #include #include +#include #include #include #include "AliVCluster.h" #include "AliAODCaloCluster.h" +#include "AliESDCaloCluster.h" #include "AliVTrack.h" #include "AliEmcalJet.h" #include "AliRhoParameter.h" @@ -19,6 +21,7 @@ #include "AliJetContainer.h" #include "AliParticleContainer.h" #include "AliClusterContainer.h" +#include "AliPicoTrack.h" #include "AliAnalysisTaskEmcalJetSample.h" @@ -34,6 +37,10 @@ AliAnalysisTaskEmcalJetSample::AliAnalysisTaskEmcalJetSample() : fHistJetsPtArea(0), fHistJetsPtLeadHad(0), fHistJetsCorrPtArea(0), + fHistPtDEtaDPhiTrackClus(0), + fHistPtDEtaDPhiClusTrack(0), + fHistClustDx(0), + fHistClustDz(0), fJetsCont(0), fTracksCont(0), fCaloClustersCont(0) @@ -72,6 +79,10 @@ AliAnalysisTaskEmcalJetSample::AliAnalysisTaskEmcalJetSample(const char *name) : fHistJetsPtArea(0), fHistJetsPtLeadHad(0), fHistJetsCorrPtArea(0), + fHistPtDEtaDPhiTrackClus(0), + fHistPtDEtaDPhiClusTrack(0), + fHistClustDx(0), + fHistClustDz(0), fJetsCont(0), fTracksCont(0), fCaloClustersCont(0) @@ -120,8 +131,8 @@ void AliAnalysisTaskEmcalJetSample::UserCreateOutputObjects() fTracksCont = GetParticleContainer(0); fCaloClustersCont = GetClusterContainer(0); } - fTracksCont->SetClassName("AliVTrack"); - fCaloClustersCont->SetClassName("AliAODCaloCluster"); + if(fTracksCont) fTracksCont->SetClassName("AliVTrack"); + if(fCaloClustersCont) fCaloClustersCont->SetClassName("AliVCluster"); TString histname; @@ -184,6 +195,21 @@ void AliAnalysisTaskEmcalJetSample::UserCreateOutputObjects() } } } + + histname = "fHistPtDEtaDPhiTrackClus"; + fHistPtDEtaDPhiTrackClus = new TH3F(histname.Data(),Form("%s;#it{p}_{T}^{track};#Delta#eta;#Delta#varphi",histname.Data()),100,0.,100.,100,-0.1,0.1,100,-0.1,0.1); + fOutput->Add(fHistPtDEtaDPhiTrackClus); + + histname = "fHistPtDEtaDPhiClusTrack"; + fHistPtDEtaDPhiClusTrack = new TH3F(histname.Data(),Form("%s;#it{p}_{T}^{clus};#Delta#eta;#Delta#varphi",histname.Data()),100,0.,100.,100,-0.1,0.1,100,-0.1,0.1); + fOutput->Add(fHistPtDEtaDPhiClusTrack); + + fHistClustDx = new TH1F("fHistClustDx","fHistClustDx;Dx",1000,0.,1.); + fOutput->Add(fHistClustDx); + + fHistClustDz = new TH1F("fHistClustDz","fHistClustDz;Dz",1000,0.,1.); + fOutput->Add(fHistClustDz); + PostData(1, fOutput); // Post data for ALL output slots > 0 here. } @@ -196,27 +222,21 @@ Bool_t AliAnalysisTaskEmcalJetSample::FillHistograms() AliVTrack *track = static_cast(fTracksCont->GetNextAcceptParticle(0)); while(track) { fHistTracksPt[fCentBin]->Fill(track->Pt()); - Int_t emc1 = track->GetEMCALcluster(); - Printf("EMCAL cluster %d",emc1); track = static_cast(fTracksCont->GetNextAcceptParticle()); } } - + if (fCaloClustersCont) { - // AliVCluster *cluster = fCaloClustersCont->GetNextAcceptCluster(0); - AliAODCaloCluster *cluster = static_cast(fCaloClustersCont->GetNextAcceptCluster(0)); + AliVCluster *cluster = fCaloClustersCont->GetNextAcceptCluster(0); while(cluster) { - TLorentzVector nPart; cluster->GetMomentum(nPart, fVertex); fHistClustersPt[fCentBin]->Fill(nPart.Pt()); - - AliVTrack *mt = NULL; - Printf("N matched tracks: %d",cluster->GetNTracksMatched()); - if(cluster->GetNTracksMatched()>1) - mt = static_cast(cluster->GetTrackMatched(0)); - if(mt) Printf("matched track pt: %f eta: %f phi: %f",mt->Pt(),mt->Eta(),mt->Phi()); - cluster = static_cast(fCaloClustersCont->GetNextAcceptCluster()); + Double_t dx = cluster->GetTrackDx(); + Double_t dz = cluster->GetTrackDz(); + fHistClustDx->Fill(dx); + fHistClustDz->Fill(dz); + cluster = fCaloClustersCont->GetNextAcceptCluster(); } } @@ -230,9 +250,10 @@ Bool_t AliAnalysisTaskEmcalJetSample::FillHistograms() Float_t ptLeading = fJetsCont->GetLeadingHadronPt(jet); fHistJetsPtLeadHad[fCentBin]->Fill(jet->Pt(), ptLeading); - Float_t corrPt = jet->Pt() - fJetsCont->GetRhoVal() * jet->Area(); - fHistJetsCorrPtArea[fCentBin]->Fill(corrPt, jet->Area()); - + if (fHistJetsCorrPtArea[fCentBin]) { + Float_t corrPt = jet->Pt() - fJetsCont->GetRhoVal() * jet->Area(); + fHistJetsCorrPtArea[fCentBin]->Fill(corrPt, jet->Area()); + } jet = fJetsCont->GetNextAcceptJet(); } @@ -240,9 +261,75 @@ Bool_t AliAnalysisTaskEmcalJetSample::FillHistograms() if(jet) fHistLeadingJetPt[fCentBin]->Fill(jet->Pt()); } + CheckClusTrackMatching(); + return kTRUE; } +//________________________________________________________________________ +void AliAnalysisTaskEmcalJetSample::CheckClusTrackMatching() +{ + + if(!fTracksCont || !fCaloClustersCont) + return; + + Double_t deta = 999; + Double_t dphi = 999; + + //Get closest cluster to track + AliVTrack *track = static_cast(fTracksCont->GetNextAcceptParticle(0)); + while(track) { + //Get matched cluster + Int_t emc1 = track->GetEMCALcluster(); + if(fCaloClustersCont && emc1>=0) { + AliVCluster *clusMatch = fCaloClustersCont->GetCluster(emc1); + if(clusMatch) { + AliPicoTrack::GetEtaPhiDiff(track, clusMatch, dphi, deta); + fHistPtDEtaDPhiTrackClus->Fill(track->Pt(),deta,dphi); + } + } + track = static_cast(fTracksCont->GetNextAcceptParticle()); + } + + //Get closest track to cluster + AliVCluster *cluster = fCaloClustersCont->GetNextAcceptCluster(0); + while(cluster) { + TLorentzVector nPart; + cluster->GetMomentum(nPart, fVertex); + fHistClustersPt[fCentBin]->Fill(nPart.Pt()); + + //Get matched track + AliVTrack *mt = NULL; + AliAODCaloCluster *acl = dynamic_cast(cluster); + if(acl) { + if(acl->GetNTracksMatched()>1) + mt = static_cast(acl->GetTrackMatched(0)); + } + else { + AliESDCaloCluster *ecl = dynamic_cast(cluster); + Int_t im = ecl->GetTrackMatchedIndex(); + if(fTracksCont && im>=0) { + mt = static_cast(fTracksCont->GetParticle(im)); + } + } + if(mt) { + AliPicoTrack::GetEtaPhiDiff(mt, cluster, dphi, deta); + fHistPtDEtaDPhiClusTrack->Fill(nPart.Pt(),deta,dphi); + + /* //debugging + if(mt->IsEMCAL()) { + Int_t emc1 = mt->GetEMCALcluster(); + Printf("current id: %d emc1: %d",fCaloClustersCont->GetCurrentID(),emc1); + AliVCluster *clm = fCaloClustersCont->GetCluster(emc1); + AliPicoTrack::GetEtaPhiDiff(mt, clm, dphi, deta); + Printf("deta: %f dphi: %f",deta,dphi); + } + */ + } + cluster = fCaloClustersCont->GetNextAcceptCluster(); + } +} + //________________________________________________________________________ void AliAnalysisTaskEmcalJetSample::ExecOnce() {