]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/PartCorrBase/AliAnaPartCorrBaseClass.cxx
AliCFGridSparse : propagate the bin labels during projections
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliAnaPartCorrBaseClass.cxx
index 6a77c63414418d0db5c2c3df4132f16a4b95ec0b..52eda529c3cc69b730d8152a47b105de02479b10 100755 (executable)
@@ -50,6 +50,7 @@ ClassImp(AliAnaPartCorrBaseClass)
     fAODObjArrayName(""), fAddToHistogramsName(""),
     fAODCaloCells(0x0),//fAODCaloClusters(0x0),  
     fCaloPID(0x0), fFidCut(0x0), fIC(0x0),fMCUtils(0x0), fNMS(0x0),
+       //fAnaOutContainer(0x0),
     fHistoPtBins(0),   fHistoPtMax(0.),   fHistoPtMin(0.),
     fHistoPhiBins(0),  fHistoPhiMax(0.),  fHistoPhiMin(0.),
     fHistoEtaBins(0),  fHistoEtaMax(0.),  fHistoEtaMin(0.),
@@ -57,13 +58,7 @@ ClassImp(AliAnaPartCorrBaseClass)
        fHistoAsymBins(0), fHistoAsymMax(0.), fHistoAsymMin(0.)
 {
   //Default Ctor
-  
-  fReader  = new AliCaloTrackReader();
-  fCaloPID = new AliCaloPID();
-  fFidCut  = new AliFiducialCut();
-  fIC      = new AliIsolationCut();
-  fMCUtils = new AliMCAnalysisUtils();
-  
+    
   //Initialize parameters
   InitParameters();
 }
@@ -81,7 +76,9 @@ AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass &
   fAddToHistogramsName(abc.fAddToHistogramsName),
   //fAODCaloClusters(new TClonesArray(*abc.fAODCaloClusters)),
   fAODCaloCells(new AliAODCaloCells(*abc.fAODCaloCells)),
-  fCaloPID(abc.fCaloPID), fFidCut(abc.fFidCut), fIC(abc.fIC),fMCUtils(abc.fMCUtils), fNMS(abc.fNMS),
+  fCaloPID(new AliCaloPID(*abc.fCaloPID)), fFidCut(new AliFiducialCut(*abc.fFidCut)), fIC(new AliIsolationCut(*abc.fIC)),
+  fMCUtils(new AliMCAnalysisUtils(*abc.fMCUtils)), fNMS(new AliNeutralMesonSelection(*abc.fNMS)),
+  //fAnaOutContainer(abc.fAnaOutContainer),
   fHistoPtBins(abc.fHistoPtBins),     fHistoPtMax(abc.fHistoPtMax),     fHistoPtMin(abc.fHistoPtMin),
   fHistoPhiBins(abc.fHistoPhiBins),   fHistoPhiMax(abc.fHistoPhiMax),   fHistoPhiMin(abc.fHistoPhiMin),
   fHistoEtaBins(abc.fHistoEtaBins),   fHistoEtaMax(abc.fHistoEtaMax),   fHistoEtaMin(abc.fHistoEtaMin),
@@ -89,7 +86,7 @@ AliAnaPartCorrBaseClass::AliAnaPartCorrBaseClass(const AliAnaPartCorrBaseClass &
   fHistoAsymBins(abc.fHistoAsymBins), fHistoAsymMax(abc.fHistoAsymMax), fHistoAsymMin(abc.fHistoAsymMin)
 {
   // cpy ctor
-  
+
 }
 
 //_________________________________________________________________________
@@ -107,20 +104,23 @@ AliAnaPartCorrBaseClass & AliAnaPartCorrBaseClass::operator = (const AliAnaPartC
   fCheckFidCut        = abc.fCheckFidCut ; 
        
   fReader             = abc.fReader ;
-  //fAODCaloClusters   = new TClonesArray(*abc.fAODCaloClusters) ;
-  fAODCaloCells      = new AliAODCaloCells(*abc.fAODCaloCells) ;
+  //delete fAODCaloClusters; fAODCaloClusters   = new TClonesArray(*abc.fAODCaloClusters) ;
+  delete fAODCaloCells ; fAODCaloCells      = new AliAODCaloCells(*abc.fAODCaloCells) ;
   
   fMinPt   = abc.fMinPt;
   fMaxPt   = abc.fMaxPt;
-  fCaloPID = abc.fCaloPID;  
-  fFidCut  = abc.fFidCut;
-  fIC      = abc.fIC;
-  fMCUtils = abc.fMCUtils;
-  fNMS     = abc.fNMS;
-  
-  fInputAODBranch      = new TClonesArray(*abc.fInputAODBranch) ;
+       
+  delete fCaloPID; fCaloPID = new AliCaloPID        (*abc.fCaloPID);
+  delete fFidCut;  fFidCut  = new AliFiducialCut    (*abc.fFidCut);
+  delete fMCUtils; fMCUtils = new AliMCAnalysisUtils(*abc.fMCUtils);
+  delete fIC;      fIC      = new AliIsolationCut   (*abc.fIC);
+  delete fNMS;     fNMS     = new AliNeutralMesonSelection(*abc.fNMS);
+       
+  //fAnaOutContainer     = abc.fAnaOutContainer;
+       
+  delete fInputAODBranch;  fInputAODBranch      = new TClonesArray(*abc.fInputAODBranch) ;
   fInputAODName        = abc.fInputAODName;
-  fOutputAODBranch     = new TClonesArray(*abc.fOutputAODBranch) ;
+  delete fOutputAODBranch; fOutputAODBranch     = new TClonesArray(*abc.fOutputAODBranch) ;
   fNewAOD              = abc.fNewAOD ; 
   fOutputAODName       = abc.fOutputAODName; 
   fOutputAODClassName  = abc.fOutputAODClassName;
@@ -160,6 +160,11 @@ AliAnaPartCorrBaseClass::~AliAnaPartCorrBaseClass()
     delete fAODCaloCells ;
   }
   
+//  if(fAnaOutContainer){
+//     fAnaOutContainer->Clear() ; 
+//     delete fAnaOutContainer ;
+//  }
+               
   if(fReader)  delete fReader ;
   if(fCaloPID) delete fCaloPID ;
   if(fFidCut)  delete fFidCut ;
@@ -291,22 +296,27 @@ void AliAnaPartCorrBaseClass::ConnectInputOutputAODBranches() {
          if(!fInputAODBranch)  fInputAODBranch  =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);
          }
          else{//If no Delta AODs, kept in standard branch, to revise. 
-                 if(fNewAOD) {
+                 if(fNewAOD && fReader->GetOutputEvent()) {
                          fOutputAODBranch =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
                          fInputAODBranch  =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);        
                  }
-                 else fInputAODBranch  =  (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName);    
-
+                 else {
+                         fInputAODBranch  =  (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName); 
+                         if(!fInputAODBranch && fReader->GetOutputEvent() ) 
+                                 fInputAODBranch  =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);//Try the output event.
+                 }
          }
   }
   else{ //If no Delta AODs, kept in standard branch
-         if(fNewAOD) {
+         if(fNewAOD && fReader->GetOutputEvent()) {
                  fOutputAODBranch =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fOutputAODName);
                  fInputAODBranch  =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);        
          }
-         else 
+         else{ 
                  fInputAODBranch  =  (TClonesArray *) fReader->GetInputEvent()->FindListObject(fInputAODName);
-
+                 if(!fInputAODBranch && fReader->GetOutputEvent())  
+                         fInputAODBranch  =  (TClonesArray *) fReader->GetOutputEvent()->FindListObject(fInputAODName);//Try the output event.
+         }
   }
        
   if(GetDebug() > 1){
@@ -466,16 +476,21 @@ void AliAnaPartCorrBaseClass::InitParameters()
   fMinPt = 0.1  ; //Min pt in particle analysis
   fMaxPt = 300. ; //Max pt in particle analysis
 
-  fCaloPID = new AliCaloPID ;  
-  fFidCut = new AliFiducialCut;
-  fIC = new AliIsolationCut;
-  fNMS = new AliNeutralMesonSelection;
-  fNewAOD = kFALSE ;
-  fOutputAODName = "PartCorr";
-  fOutputAODClassName = "AliAODPWG4Particle";
-  fInputAODName = "PartCorr";
+  fReader  = new AliCaloTrackReader();
+  fCaloPID = new AliCaloPID();
+  fFidCut  = new AliFiducialCut();
+  fIC      = new AliIsolationCut();
+  fMCUtils = new AliMCAnalysisUtils(); 
+  fNMS     = new AliNeutralMesonSelection;
+  
+  //fAnaOutContainer = new TList();
+       
+  fNewAOD              = kFALSE ;
+  fOutputAODName       = "PartCorr";
+  fOutputAODClassName  = "AliAODPWG4Particle";
+  fInputAODName        = "PartCorr";
   fAddToHistogramsName = "";
-  fAODObjArrayName="Ref";
+  fAODObjArrayName     = "Ref";
          
   //Histogram settings
   fHistoPtBins    = 240 ;