X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGJE%2FAliAnalysisTaskJetResponseV2.cxx;h=b7a016eef42a14db42c7b3c4e53f69e315dabdf9;hb=8aaba3066e3c4e5676d0b6ee7bf3922dda2206c5;hp=276d4f72501414bad065491f8c8d09f88e2209bc;hpb=9993bed032cfabddb4ad256d4906fb4ed3477790;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGJE/AliAnalysisTaskJetResponseV2.cxx b/PWGJE/AliAnalysisTaskJetResponseV2.cxx index 276d4f72501..b7a016eef42 100644 --- a/PWGJE/AliAnalysisTaskJetResponseV2.cxx +++ b/PWGJE/AliAnalysisTaskJetResponseV2.cxx @@ -45,6 +45,7 @@ #include "AliAODEvent.h" #include "AliAODJet.h" +#include "AliAODHandler.h" #include "AliAnalysisTaskJetResponseV2.h" @@ -57,6 +58,9 @@ AliAnalysisTaskJetResponseV2::AliAnalysisTaskJetResponseV2() : AliAnalysisTaskSE(), fESD(0x0), fAOD(0x0), + fAODOut(0x0), + fAODExtension(0x0), + fNonStdFile(""), fBackgroundBranch(""), fIsPbPb(kTRUE), fOfflineTrgMask(AliVEvent::kAny), @@ -121,6 +125,9 @@ AliAnalysisTaskJetResponseV2::AliAnalysisTaskJetResponseV2(const char *name) : AliAnalysisTaskSE(name), fESD(0x0), fAOD(0x0), + fAODOut(0x0), + fAODExtension(0x0), + fNonStdFile(""), fBackgroundBranch(""), fIsPbPb(kTRUE), fOfflineTrgMask(AliVEvent::kAny), @@ -317,9 +324,9 @@ void AliAnalysisTaskJetResponseV2::UserCreateOutputObjects() fhnJetsArea = NewTHnSparseF("fhnJetsArea", entries, opt); } - // cent : nInpTrks : jetPt(3x) : deltaPt : delta : jetArea(3x) : fraction(2x) : pT hard bin + // cent : nInpTrks : jetPt(3x) : deltaPt : delta : jetArea(3x) : fraction(2x) : deltaR(1x) : pT hard bin if(fbJets3Branches){ - entries = 1<<0 | 1<<1 | 1<<6 | 1<<7 | 1<<27 | 1<<14 | 1<<28 | 1<<12 | 1<<13 | 1<<29 | 1<<19 | 1<<30 | 1<<26; + entries = 1<<0 | 1<<1 | 1<<6 | 1<<7 | 1<<27 | 1<<14 | 1<<28 | 1<<12 | 1<<13 | 1<<29 | 1<<19 | 1<<30 | 1<<17 | 1<<26; opt = 1<<6 | 1<<7 | 1<<27 | 1<<14 | 1<<28; fhnJets3Branches = NewTHnSparseF("fhnJets3Branches", entries, opt); } @@ -387,7 +394,10 @@ void AliAnalysisTaskJetResponseV2::UserExec(Option_t *) fESD=dynamic_cast(InputEvent()); if (!fESD) { AliError("ESD not available"); + fAOD = dynamic_cast(InputEvent()); + // assume that the AOD is in the general output... + fAODOut = AODEvent(); } else { fAOD = dynamic_cast(AODEvent()); } @@ -396,6 +406,15 @@ void AliAnalysisTaskJetResponseV2::UserExec(Option_t *) return; } + if(fNonStdFile.Length()!=0){ + // case that we have an AOD extension we need can fetch the jets from the extended output + AliAODHandler *aodH = dynamic_cast(AliAnalysisManager::GetAnalysisManager()->GetOutputEventHandler()); + fAODExtension = (aodH?aodH->GetExtension(fNonStdFile.Data()):0); + if(!fAODExtension){ + if(fDebug>1)Printf("AODExtension found for %s",fNonStdFile.Data()); + } + } + // -- event selection -- fHistEvtSelection->Fill(1); // number of events before event selection @@ -472,25 +491,37 @@ void AliAnalysisTaskJetResponseV2::UserExec(Option_t *) AliAODJetEventBackground* externalBackground = 0; if(!externalBackground&&fBackgroundBranch.Length()){ externalBackground = (AliAODJetEventBackground*)(fAOD->FindListObject(fBackgroundBranch.Data())); + if(!externalBackground && fAODOut) externalBackground = (AliAODJetEventBackground*)(fAODOut->FindListObject(fBackgroundBranch.Data())); + if(!externalBackground && fAODExtension) externalBackground = (AliAODJetEventBackground*)(fAODExtension->GetAOD()->FindListObject(fBackgroundBranch.Data())); //if(!externalBackground)Printf("%s:%d Background branch not found %s",(char*)__FILE__,__LINE__,fBackgroundBranch.Data());; } Float_t rho = 0; - if(externalBackground)rho = externalBackground->GetBackground(0); + if(externalBackground) rho = externalBackground->GetBackground(0); // fetch jets TClonesArray *aodJets[3]; aodJets[0] = dynamic_cast(fAOD->FindListObject(fJetBranchName[0].Data())); // in general: embedded jet + if(!aodJets[0] && fAODOut) aodJets[0] = dynamic_cast(fAODOut->FindListObject(fJetBranchName[0].Data())); // in general: embedded jet + if(!aodJets[0] && fAODExtension) aodJets[0] = dynamic_cast(fAODExtension->GetAOD()->FindListObject(fJetBranchName[0].Data())); aodJets[1] = dynamic_cast(fAOD->FindListObject(fJetBranchName[1].Data())); // in general: embedded jet + UE version1 + if(!aodJets[1] && fAODOut) aodJets[1] = dynamic_cast(fAODOut->FindListObject(fJetBranchName[1].Data())); // in general: embedded jet + if(!aodJets[1] && fAODExtension) aodJets[1] = dynamic_cast(fAODExtension->GetAOD()->FindListObject(fJetBranchName[1].Data())); if( strlen(fJetBranchName[2].Data()) ) { aodJets[2] = dynamic_cast(fAOD->FindListObject(fJetBranchName[2].Data())); // in general: embedded jet + UE version2 - fkNbranches=3; + if(!aodJets[2] && fAODOut) aodJets[2] = dynamic_cast(fAODOut->FindListObject(fJetBranchName[2].Data())); // in general: embedded jet + if(!aodJets[2] && fAODExtension) aodJets[2] = dynamic_cast(fAODExtension->GetAOD()->FindListObject(fJetBranchName[2].Data())); + if(aodJets[2]) fkNbranches=3; + if(fDebug>10) printf("3rd branch: %s\n",fJetBranchName[2].Data()); } + if(fDebug>10) printf("fkNbranches %d\n",fkNbranches); for (Int_t iJetType = 0; iJetType < fkNbranches; iJetType++) { fListJets[iJetType]->Clear(); - if (!aodJets[iJetType]) continue; - + if (!aodJets[iJetType]) { + if(fDebug) Printf("%s: no jet branch\n",fJetBranchName[iJetType].Data()); + continue; + } if(fDebug) Printf("%s: %d jets",fJetBranchName[iJetType].Data(),aodJets[iJetType]->GetEntriesFast()); for (Int_t iJet = 0; iJet < aodJets[iJetType]->GetEntriesFast(); iJet++) { @@ -771,12 +802,12 @@ void AliAnalysisTaskJetResponseV2::UserExec(Option_t *) } if(fbJets3Branches){ - Double_t jetEntries3Branches[13] = { + Double_t jetEntries3Branches[14] = { (Double_t)centValue, (Double_t)nInputTracks, (Double_t)jetPt[0], (Double_t)jetPt[1], (Double_t)jetArea[0], (Double_t)jetArea[1], (Double_t)deltaPt, (Double_t)fraction, (Double_t)pthardbin, - (Double_t)jetPt[2],(Double_t)delta,(Double_t)jetArea[2], (Double_t)fraction2 + (Double_t)jetPt[2],(Double_t)delta,(Double_t)jetArea[2], (Double_t)fraction2, (Double_t)deltaR }; fhnJets3Branches->Fill(jetEntries3Branches); } @@ -814,6 +845,8 @@ Int_t AliAnalysisTaskJetResponseV2::GetNInputTracks() if(fDebug) Printf("Multiplicity from jet branch %s", jbname.Data()); TClonesArray *tmpAODjets = dynamic_cast(fAOD->FindListObject(jbname.Data())); + if(!tmpAODjets && fAODOut) tmpAODjets = dynamic_cast(fAODOut->FindListObject(jbname.Data())); + if(!tmpAODjets && fAODExtension) tmpAODjets = dynamic_cast(fAODExtension->GetAOD()->FindListObject(jbname.Data())); if(!tmpAODjets){ Printf("Jet branch %s not found", jbname.Data()); Printf("AliAnalysisTaskJetResponseV2::GetNInputTracks FAILED");