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);
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) {
if(!obj) continue;
for(int j=0;j<obj->GetEntriesFast();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;it<aod->GetNumberOfTracks();it++){
if(aod->GetTrack(it)->GetID() == id1) pairObj->SetRefFirstDaughter(aod->GetTrack(it));
nanoEv->GetVertex(0)->SetNContributors((static_cast<AliAODEvent*>(InputEvent()))->GetPrimaryVertex()->GetNContributors());
nanoEv->GetVertex(1)->SetNContributors((static_cast<AliAODEvent*>(InputEvent()))->GetPrimaryVertexSPD()->GetNContributors());
// set event plane
- nanoEv->GetHeader()->SetEventplane((static_cast<AliAODEvent*>(InputEvent()))->GetHeader()->GetEventplaneP());
- nanoEv->GetHeader()->ResetEventplanePointer();
+ AliAODHeader * header = dynamic_cast<AliAODHeader*>(nanoEv->GetHeader());
+ if(!header) AliFatal("Not a standard AOD");
+
+
+ header->SetEventplane(((AliVAODHeader*)static_cast<AliAODEvent*>(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++){
nanoEv->GetCaloCluster(posCaloCls)->AddTrackMatched((AliAODTrack*)nanoEv->GetTrack(posit));
}
// set references for vtx
- nanoEv->GetTrack(posit)->SetProdVertex(nanoEv->GetVertex(posVtx));
+ AliAODTrack * trk = dynamic_cast<AliAODTrack*>(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++){
for(int u=0; u<clCls->GetNTracksMatched(); 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<AliAODTrack*>(nanoEv->GetTrack(negat));
+ if(!trk) AliFatal("Not a standard AOD");
+ trk->SetProdVertex(nanoEv->GetVertex(negVtx));
}
delete tmp; delete tmpSpd;
nanoEv->GetTracks()->Expand(nTracks);
if(fCreateNanoAOD && isAOD && (!hasCand) && fStoreHeader)
{
- // set event plane
- extDielectron->GetAOD()->GetHeader()->SetEventplane((static_cast<AliAODEvent*>(InputEvent()))->GetHeader()->GetEventplaneP());
- extDielectron->GetAOD()->GetHeader()->ResetEventplanePointer();
- extDielectron->GetTree()->Fill(); // fill header for all events without tracks
+ // set event plane
+ AliAODHeader * header = dynamic_cast<AliAODHeader*>(extDielectron->GetAOD()->GetHeader());
+ if(!header) AliFatal("Not a standard AOD");
+ header->SetEventplane(((AliAODHeader*)(static_cast<AliAODEvent*>(InputEvent()))->GetHeader())->GetEventplaneP());
+ header->ResetEventplanePointer();
+ extDielectron->GetTree()->Fill(); // fill header for all events without tracks
}
PostData(1, const_cast<THashList*>(fDielectron->GetHistogramList()));