]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG3/hfe/AliHFEefficiency.cxx
Add fast merging option (Diego)
[u/mrichter/AliRoot.git] / PWG3 / hfe / AliHFEefficiency.cxx
index 1d642ac0d7e9c7668f32c8dd4f7d8dce83a3f695..30bb40e96919c1de3828780f6bdc9bfab856cf96 100644 (file)
@@ -152,17 +152,26 @@ void AliHFEefficiency::UserExec(Option_t *){
   // Event Loop
   // Filter track, fill Efficiency container
   //
+  AliESDEvent *esdevent = dynamic_cast<AliESDEvent *>(fInputEvent);
+  if(!esdevent){
+    AliError("ESD Event required");
+    return;
+  }
   fEfficiency->NewEvent();
   fFilter->SetRecEvent(fInputEvent);
   if(fMCEvent){
     AliMCEventHandler *mcH = dynamic_cast<AliMCEventHandler *>(AliAnalysisManager::GetAnalysisManager()->GetMCtruthEventHandler());
-    if(!mcH->InitOk()) return;
-    if(!mcH->TreeK()) return;
-    if(!mcH->TreeTR()) return;
+   if ( ! mcH ) {
+     AliError("Cannot get MC truth event handler");
+     return;
+    }  
+    if(mcH &&(!mcH->InitOk())) return;
+    if(mcH &&(!mcH->TreeK())) return;
+    if(mcH &&(!mcH->TreeTR())) return;
     fFilter->SetMC(fMCEvent);
     FilterMC();
   }
-  fFilter->FilterTracks(dynamic_cast<AliESDEvent *>(fInputEvent));
+  fFilter->FilterTracks(esdevent);
   TObjArray *tracks = fFilter->GetFilteredTracks();
   TIterator *iter = tracks->MakeIterator();
   fOutput->Fill("hNtracks", tracks->GetEntriesFast());
@@ -217,6 +226,7 @@ void AliHFEefficiency::FilterMC(){
   AliMCParticle *track = NULL;
   for(Int_t itrack = 0; itrack < fMCEvent->GetNumberOfTracks(); itrack++){
     track = dynamic_cast<AliMCParticle *>(fMCEvent->GetTrack(itrack));
+    if(!track) continue;
     if(!fMCcut->IsSelected(track)) continue;
     cont[0] = track->Pt();
     cont[1] = track->Eta();