]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGDQ/dielectron/AliAnalysisTaskMultiDielectron.cxx
including switch to set on/off iso-track core removal, cleaning and bug fix
[u/mrichter/AliRoot.git] / PWGDQ / dielectron / AliAnalysisTaskMultiDielectron.cxx
index 640b3f112e2797b088c3df570ba2bce703f3a129..62f3c60e758d0e4918e3c55dd3eadf185f039f4c 100644 (file)
@@ -315,6 +315,7 @@ void AliAnalysisTaskMultiDielectron::FinishTaskOutput()
   Int_t ic=0;
   AliDielectron *die=0;
   AliDielectron *die2=0;
+  fPairArray=0x0;
 
   // main loop
   while ( (die=static_cast<AliDielectron*>(nextDie())) ){
@@ -333,14 +334,16 @@ void AliAnalysisTaskMultiDielectron::FinishTaskOutput()
     // loop over all pools
     for (Int_t ipool=0; ipool<mix->GetNumberOfBins(); ++ipool){
       //      printf("mix remaining %04d/%04d \n",ipool,mix->GetNumberOfBins());
-      mix->MixRemaining(die, ipool);
+      if(! mix->MixRemaining(die, ipool) ) { fPairArray=0x0;  continue; }
+
       fPairArray = (*(die->GetPairArraysPointer()));
       if(!fPairArray) continue;
 
       // loop over internal train task candidates
       for(Int_t i=ic; i<fListDielectron.GetEntries(); i++) {
        die2 = static_cast<AliDielectron*>(fListDielectron.At(i));
-       if(die2->DoEventProcess()) continue;
+       // abort if tasks following are not internal wagons
+       if(die2->DoEventProcess()) break;
        // fill internal train output
        die2->SetPairArraysPointer(fPairArray);
        //      printf(" --> fill internal train output %s \n",die2->GetName());