mixing memory updates
authorjbook <jbook>
Wed, 12 Mar 2014 09:40:48 +0000 (10:40 +0100)
committerjbook <jbook@cern.ch>
Wed, 12 Mar 2014 09:40:48 +0000 (10:40 +0100)
PWGDQ/dielectron/AliAnalysisTaskMultiDielectron.cxx
PWGDQ/dielectron/AliDielectron.cxx
PWGDQ/dielectron/AliDielectronEvent.cxx
PWGDQ/dielectron/AliDielectronMixingHandler.cxx
PWGDQ/dielectron/AliDielectronMixingHandler.h

index b361129..9df3d04 100644 (file)
@@ -333,7 +333,8 @@ 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;
 
index c84199c..ba9e5e5 100644 (file)
@@ -228,7 +228,7 @@ void AliDielectron::Init()
 
   if(GetHasMC()) AliDielectronMC::Instance()->SetHasMC(GetHasMC());
    
-  InitPairCandidateArrays();
+  if(die->DoEventProcess()) InitPairCandidateArrays();
    
   if (fCfManagerPair) {
     fCfManagerPair->SetSignalsMC(fSignalsMC);
index 68cb85c..0a6b65a 100644 (file)
@@ -41,7 +41,7 @@ AliDielectronEvent::AliDielectronEvent() :
   TNamed(),
   fArrTrackP(),
   fArrTrackN(),
-  fArrVertex("AliAODVertex",1000),
+  fArrVertex("AliAODVertex",10),
   fArrPairs("AliKFParticle",0),
   fNTracksP(0),
   fNTracksN(0),
index 3efbd51..4aa1ac2 100644 (file)
@@ -312,18 +312,18 @@ void AliDielectronMixingHandler::DoMixing(TClonesArray &pool, AliDielectron *die
 }
 
 //______________________________________________
-void AliDielectronMixingHandler::MixRemaining(AliDielectron *diele, Int_t ipool)
+Bool_t AliDielectronMixingHandler::MixRemaining(AliDielectron *diele, Int_t ipool)
 {
   //
   // mix all pools even if they are incomplete
   //
 
   //Check if there was any processed data and it is requested to mix incomplete bins
-  if (!diele || !diele->PairArray(0) || !fMixIncomplete ) return;
+  if (!diele || !fMixIncomplete ) return 0;
 
   AliDielectronVarManager::SetEvent(0x0);
     TClonesArray *poolp=static_cast<TClonesArray*>(fArrPools.At(ipool));
-    if (!poolp || !poolp->GetEntriesFast() || !poolp->At(0)) return;
+    if (!poolp || !poolp->GetEntriesFast() || !poolp->At(0)) return 0;
     //clear the arrays before the final processing"
     AliDebug(10,Form("Incomplete: Bin %d (%d)\n",ipool,poolp->GetEntriesFast()));
     diele->ClearArrays();
@@ -346,10 +346,10 @@ void AliDielectronMixingHandler::MixRemaining(AliDielectron *diele, Int_t ipool)
       diele->fHistos->Fill("Mixing","InCompletePools",ipool);
       diele->fHistos->Fill("Mixing","Entries_InCompletePools",poolp->GetEntriesFast());
       
-      //set back global event values
-      AliDielectronVarManager::SetEventData(values);
+      //set back global event values (this would mean set back to zero)
+      //AliDielectronVarManager::SetEventData(values);
     }
-    
+    return 1;
 }
 
 
index 79d0979..86bd0e5 100644 (file)
@@ -58,7 +58,7 @@ public:
   Int_t FindBin(const Double_t values[], TString *dim=0x0);
   void Fill(const AliVEvent *ev, AliDielectron *diele);
 
-  void MixRemaining(AliDielectron *diele, Int_t ipool);
+  Bool_t MixRemaining(AliDielectron *diele, Int_t ipool);
 
   void Init(const AliDielectron *diele=0x0);
   static void MoveToSameVertex(AliVTrack * const vtrack, const Double_t vFirst[3], const Double_t vMix[3]);