X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=PWGDQ%2Fdielectron%2FAliAnalysisTaskDielectronFilter.cxx;h=59cd123d7775032b74edb82fb7fd12c4e33616e9;hb=e72663d5ea704f30a9a1df4852c98d2cb07d29d7;hp=3177aa886067f24080d54ab7c2f40fed0674bff4;hpb=ce43f60126afd8f19c448b0f0ffc3989b03c3b2c;p=u%2Fmrichter%2FAliRoot.git diff --git a/PWGDQ/dielectron/AliAnalysisTaskDielectronFilter.cxx b/PWGDQ/dielectron/AliAnalysisTaskDielectronFilter.cxx index 3177aa88606..59cd123d777 100644 --- a/PWGDQ/dielectron/AliAnalysisTaskDielectronFilter.cxx +++ b/PWGDQ/dielectron/AliAnalysisTaskDielectronFilter.cxx @@ -216,8 +216,12 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) fEventStat->Fill(kV0andEvents); //Fill Event histograms before the event filter + AliDielectronHistos *h=fDielectron->GetHistoManager(); + Double_t values[AliDielectronVarManager::kNMaxValues]={0}; Double_t valuesMC[AliDielectronVarManager::kNMaxValues]={0}; + if(h) AliDielectronVarManager::SetFillMap(h->GetUsedVars()); + else AliDielectronVarManager::SetFillMap(0x0); AliDielectronVarManager::SetEvent(InputEvent()); AliDielectronVarManager::Fill(InputEvent(),values); AliDielectronVarManager::Fill(InputEvent(),valuesMC); @@ -228,13 +232,12 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) AliDielectronVarManager::Fill(AliDielectronMC::Instance()->GetMCEvent(),valuesMC); } - AliDielectronHistos *h=fDielectron->GetHistoManager(); - if (h){ - if (h->GetHistogramList()->FindObject("Event_noCuts")) - h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,values); - if (hasMC && h->GetHistogramList()->FindObject("MCEvent_noCuts")) - h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,valuesMC); - } + if (h){ + if (h->GetHistogramList()->FindObject("Event_noCuts")) + h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,values); + if (hasMC && h->GetHistogramList()->FindObject("MCEvent_noCuts")) + h->FillClass("Event_noCuts",AliDielectronVarManager::kNMaxValues,valuesMC); + } //event filter if (fEventFilter) { @@ -284,8 +287,8 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) if(!obj) continue; for(int j=0;jGetEntriesFast();j++){ AliDielectronPair *pairObj = (AliDielectronPair*)obj->UncheckedAt(j); - Int_t id1 = ((AliVTrack*)pairObj->GetFirstDaughter())->GetID(); - Int_t id2 = ((AliVTrack*)pairObj->GetSecondDaughter())->GetID(); + Int_t id1 = ((AliVTrack*)pairObj->GetFirstDaughterP())->GetID(); + Int_t id2 = ((AliVTrack*)pairObj->GetSecondDaughterP())->GetID(); for(Int_t it=0;itGetNumberOfTracks();it++){ if(aod->GetTrack(it)->GetID() == id1) pairObj->SetRefFirstDaughter(aod->GetTrack(it)); @@ -323,11 +326,15 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) nanoEv->GetVertex(0)->SetNContributors((static_cast(InputEvent()))->GetPrimaryVertex()->GetNContributors()); nanoEv->GetVertex(1)->SetNContributors((static_cast(InputEvent()))->GetPrimaryVertexSPD()->GetNContributors()); // set event plane - nanoEv->GetHeader()->SetEventplane((static_cast(InputEvent()))->GetHeader()->GetEventplaneP()); - nanoEv->GetHeader()->ResetEventplanePointer(); + AliAODHeader * header = dynamic_cast(nanoEv->GetHeader()); + if(!header) AliFatal("Not a standard AOD"); + + + header->SetEventplane(((AliVAODHeader*)static_cast(InputEvent())->GetHeader())->GetEventplaneP()); + header->ResetEventplanePointer(); // set multiplicity - nanoEv->GetHeader()->SetRefMultiplicity((Int_t)values[AliDielectronVarManager::kNTrk]); - nanoEv->GetHeader()->SetRefMultiplicityPos((Int_t)values[AliDielectronVarManager::kNacc]); + header->SetRefMultiplicity((Int_t)values[AliDielectronVarManager::kNTrk]); + header->SetRefMultiplicityPos((Int_t)values[AliDielectronVarManager::kNacc]); //nanoEv->GetHeader()->SetRefMultiplicityNeg(values[AliDielectronVarManager::kMatchEffITSTPC]); for(int kj=0; kj<(fDielectron->GetTrackArray(0))->GetEntries(); kj++){ @@ -348,7 +355,9 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) nanoEv->GetCaloCluster(posCaloCls)->AddTrackMatched((AliAODTrack*)nanoEv->GetTrack(posit)); } // set references for vtx - nanoEv->GetTrack(posit)->SetProdVertex(nanoEv->GetVertex(posVtx)); + AliAODTrack * trk = dynamic_cast(nanoEv->GetTrack(posit)); + if(!trk) AliFatal("Not a standard AOD"); + trk->SetProdVertex(nanoEv->GetVertex(posVtx)); } for(int kj=0; kj<(fDielectron->GetTrackArray(1))->GetEntries(); kj++){ @@ -368,7 +377,9 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) for(int u=0; uGetNTracksMatched(); u++) clCls->RemoveTrackMatched(clCls->GetTrackMatched(u)); nanoEv->GetCaloCluster(negCaloCls)->AddTrackMatched((AliAODTrack*)nanoEv->GetTrack(negat)); } - nanoEv->GetTrack(negat)->SetProdVertex(nanoEv->GetVertex(negVtx)); + AliAODTrack * trk = dynamic_cast(nanoEv->GetTrack(negat)); + if(!trk) AliFatal("Not a standard AOD"); + trk->SetProdVertex(nanoEv->GetVertex(negVtx)); } delete tmp; delete tmpSpd; nanoEv->GetTracks()->Expand(nTracks); @@ -381,10 +392,12 @@ void AliAnalysisTaskDielectronFilter::UserExec(Option_t *) if(fCreateNanoAOD && isAOD && (!hasCand) && fStoreHeader) { - // set event plane - extDielectron->GetAOD()->GetHeader()->SetEventplane((static_cast(InputEvent()))->GetHeader()->GetEventplaneP()); - extDielectron->GetAOD()->GetHeader()->ResetEventplanePointer(); - extDielectron->GetTree()->Fill(); // fill header for all events without tracks + // set event plane + AliAODHeader * header = dynamic_cast(extDielectron->GetAOD()->GetHeader()); + if(!header) AliFatal("Not a standard AOD"); + header->SetEventplane(((AliAODHeader*)(static_cast(InputEvent()))->GetHeader())->GetEventplaneP()); + header->ResetEventplanePointer(); + extDielectron->GetTree()->Fill(); // fill header for all events without tracks } PostData(1, const_cast(fDielectron->GetHistogramList()));