]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWG4/PartCorrBase/AliCaloTrackAODReader.cxx
Moving aod cleanup to earlier point to prevent reuse of same particle
[u/mrichter/AliRoot.git] / PWG4 / PartCorrBase / AliCaloTrackAODReader.cxx
index 97783c715dd0549832bf3e366131f87accdc753e..fcf61923da3e59d6fd1282d7ccdccbaf800c8527 100755 (executable)
@@ -40,7 +40,7 @@ ClassImp(AliCaloTrackAODReader)
 
 //____________________________________________________________________________
 AliCaloTrackAODReader::AliCaloTrackAODReader() : 
-  AliCaloTrackReader()
+  AliCaloTrackReader(), fOrgInputEvent(0x0)
 {
   //Default Ctor
   
@@ -60,15 +60,26 @@ AliCaloTrackAODReader::AliCaloTrackAODReader() :
 //}
 
 //____________________________________________________________________________
-Double_t AliCaloTrackAODReader::GetBField() const {
-  //Return magnetic field
-
-  Double_t bfield = fInputEvent->GetMagneticField();
-
-  return bfield;
-
+AliCentrality* AliCaloTrackAODReader::GetCentrality() const {
+  // recover centrality object.
+  AliAODEvent* event    = dynamic_cast<AliAODEvent*> (fInputEvent);
+  AliAODEvent* orgevent = dynamic_cast<AliAODEvent*> (fOrgInputEvent);
+
+  if(event && !fSelectEmbeddedClusters) {
+    //Normal AOD event
+    return event->GetHeader()->GetCentralityP() ;
+  }
+  else if(fSelectEmbeddedClusters && orgevent) {
+    // centrality in AOD from input, not in embedded event
+    // temporary fix until this object is copied to the output event in embedding analysis
+    return orgevent->GetHeader()->GetCentralityP();
+  }
+  else {
+    return 0x0 ; 
+  }
 }
 
+
 //____________________________________________________________________________
 void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent* aod, AliMCEvent* mc) {
   // Connect the data pointers
@@ -102,6 +113,7 @@ void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent*
   if(tesd)   {
     SetInputEvent(aod);
     SetOutputEvent(aod);
+    fOrgInputEvent = input;
   }
   else if(taod){
     AliAODInputHandler* aodIH = dynamic_cast<AliAODInputHandler*>((AliAnalysisManager::GetAnalysisManager())->GetInputEventHandler());
@@ -109,6 +121,7 @@ void AliCaloTrackAODReader::SetInputOutputMCEvent(AliVEvent* input, AliAODEvent*
                  //Merged events, use output AOD.
                  SetInputEvent(aod);
                  SetOutputEvent(aod);
+      fOrgInputEvent = input;
          }
          else{
                  SetInputEvent(input);