]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - CORRFW/AliCFManager.cxx
A better (?)
[u/mrichter/AliRoot.git] / CORRFW / AliCFManager.cxx
index 0a7ce4f6723c9c6bf39393ade5f14fe6048be4cf..3e697868497c5d611155e78598532341ed37088a 100644 (file)
@@ -137,7 +137,7 @@ Bool_t AliCFManager::CheckEventCuts(Int_t isel, TObject *obj, const TString  &se
 }
 
 //_____________________________________________________________________________
-void  AliCFManager::SetEventInfo(TObject *obj) const {
+void  AliCFManager::SetMCEventInfo(const TObject *obj) const {
 
   //Particle level cuts
 
@@ -150,7 +150,7 @@ void  AliCFManager::SetEventInfo(TObject *obj) const {
       TObjArrayIter iter(fPartCutList[isel]);
       AliCFCutBase *cut = 0;
       while ( (cut = (AliCFCutBase*)iter.Next()) ) {
-       cut->SetEvtInfo(obj);
+       cut->SetMCEventInfo(obj);
       }    
     }
   }
@@ -166,7 +166,42 @@ void  AliCFManager::SetEventInfo(TObject *obj) const {
       TObjArrayIter iter(fEvtCutList[isel]);
       AliCFCutBase *cut = 0;
       while ( (cut = (AliCFCutBase*)iter.Next()) ) {
-       cut->SetEvtInfo(obj);
+       cut->SetMCEventInfo(obj);
+      }   
+    }
+  }
+}
+//_____________________________________________________________________________
+void  AliCFManager::SetRecEventInfo(const TObject *obj) const {
+
+  //Particle level cuts
+
+  if (!fPartCutList) {
+    AliWarning("No particle cut list found");
+  }
+  else {
+    for(Int_t isel=0;isel<fNStepPart; isel++){
+      if(!fPartCutList[isel])continue;  
+      TObjArrayIter iter(fPartCutList[isel]);
+      AliCFCutBase *cut = 0;
+      while ( (cut = (AliCFCutBase*)iter.Next()) ) {
+       cut->SetRecEventInfo(obj);
+      }    
+    }
+  }
+  
+  //Event level cuts 
+  
+  if (!fEvtCutList) {
+    AliWarning("No event cut list found");
+  }
+  else {
+    for(Int_t isel=0;isel<fNStepEvt; isel++){
+      if(!fEvtCutList[isel])continue;  
+      TObjArrayIter iter(fEvtCutList[isel]);
+      AliCFCutBase *cut = 0;
+      while ( (cut = (AliCFCutBase*)iter.Next()) ) {
+       cut->SetRecEventInfo(obj);
       }   
     }
   }
@@ -199,7 +234,10 @@ void AliCFManager::SetEventCutsList(Int_t isel, TObjArray* array) {
 
   Int_t nstep = fNStepEvt;
 
-  if (!fEvtCutList) fEvtCutList = new TObjArray*[nstep] ;
+  if (!fEvtCutList) {
+    fEvtCutList = new TObjArray*[nstep] ;
+    for (Int_t i=0; i<nstep; ++i) fEvtCutList[i] = 0;
+  }
   if (isel >= nstep) {
     AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,nstep));
     return;
@@ -219,7 +257,11 @@ void AliCFManager::SetParticleCutsList(Int_t isel, TObjArray* array) {
   
   Int_t nstep = fNStepPart ;
   
-  if (!fPartCutList) fPartCutList = new TObjArray*[nstep] ;
+  if (!fPartCutList) {
+    fPartCutList = new TObjArray*[nstep] ;
+    for (Int_t istep = 0; istep < nstep; istep++)  fPartCutList[istep] = 0; 
+  }
+  
   if (isel >= nstep) {
     AliWarning(Form("Selection index out of Range! isel=%i, max. number of selections= %i", isel,nstep));
     return;