fixed compilation issues
authorhqvigsta <hqvigsta@cern.ch>
Fri, 21 Feb 2014 15:08:10 +0000 (16:08 +0100)
committerhqvigsta <hqvigsta@cern.ch>
Tue, 4 Mar 2014 13:02:47 +0000 (14:02 +0100)
PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelectionLogbackTask.cxx
PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelectionLogbackTask.h
PWGGA/PHOSTasks/ClusterSelection/AliPHOSClusterSelectionTask.cxx
PWGGA/PHOSTasks/ClusterSelection/AliPHOSEventSelection.h
PWGGA/PHOSTasks/ClusterSelection/AliPHOSLogbackCluster.cxx
PWGGA/PHOSTasks/ClusterSelection/AliPHOSLogbackCluster.h

index 7105bd5..4ae9715 100644 (file)
 
 #include "TBits.h"
 #include "TObjArray.h"
+#include "TObject.h"
+#include "TMap.h"
 
 #include "AliVCluster.h"
+#include "AliPHOSGeometry.h"
+
+#include "AliPHOSClusterSelection.h"
+#include "AliPHOSEventSelection.h"
+#include "AliPHOSLogbackCluster.h"
 
 // Analysis task to fill histograms with PHOS ESD or AOD clusters and cells
 // Authors : Henrik Qvigstad
@@ -27,7 +34,7 @@
 ClassImp(AliPHOSClusterSelectionLogbackTask);
 
 
-AliPHOSClusterSelectionLogbackTask::AliPHOSClusterSelectionLogbackTask(const char* name = "AliPHOSClusterSelectionLogbackTask")
+AliPHOSClusterSelectionLogbackTask::AliPHOSClusterSelectionLogbackTask(const char* name)
   : AliPHOSClusterSelectionTask(name),
     fMapOfEventLists(0x0)
 {
@@ -37,7 +44,7 @@ AliPHOSClusterSelectionLogbackTask::AliPHOSClusterSelectionLogbackTask(const cha
 
 AliPHOSClusterSelectionLogbackTask::~AliPHOSClusterSelectionLogbackTask()
 {
-  delete fMapOfEventLists
+  delete fMapOfEventLists;
 }
   
 void AliPHOSClusterSelectionLogbackTask::UserCreateOutputObjects()
@@ -48,7 +55,6 @@ void AliPHOSClusterSelectionLogbackTask::UserCreateOutputObjects()
 void AliPHOSClusterSelectionLogbackTask::UserExec(Option_t *option)
 {
   AliPHOSClusterSelectionTask::UserExec(option);
-  AliVEvent* event = InputEvent();
 
   // initialize fMapOfEventLists
   if( !fMapOfEventLists ) {
@@ -85,7 +91,7 @@ TObjArray* AliPHOSClusterSelectionLogbackTask::GetPHOSClustersLogback(const AliP
   TObject* objSelectionMap = eventArray->At(kSelMap);
   TMap* selectionMap = dynamic_cast<TMap*> ( objSelectionMap );
   if( !selectionMap )
-    AliFatal(Form("eventArray should always contain and TMap in index 0", kSelMap));
+    AliFatal(Form("eventArray should always contain and TMap in index %i", kSelMap));
 
   
   // For the given eventSelection and eventBacklog, we should now have 
@@ -101,7 +107,7 @@ TObjArray* AliPHOSClusterSelectionLogbackTask::GetPHOSClustersLogback(const AliP
 }
 
 
-void AliPHOSClusterSelectionLogbackTask::LogEvent(const AliPHOSEventSelection* eventSelection, int nEventsToLog)
+void AliPHOSClusterSelectionLogbackTask::LogEvent(const AliPHOSEventSelection* eventSelection, UInt_t nEventsToLog)
 {
   if( nEventsToLog < 1) {
     AliError("nEventsToLog needs to be >0, or logging does not make sense");
@@ -111,8 +117,8 @@ void AliPHOSClusterSelectionLogbackTask::LogEvent(const AliPHOSEventSelection* e
   // Make a copy of the cluster array
   TObjArray* newCluArray = new TObjArray(fClusters->GetEntriesFast());
   newCluArray->SetOwner();
-  for(int iclu=0; iclu < fClusters.GetSize(); ++iclu) {
-    AliPHOSLogbackCluster* clu = new AliPHOSLogbackCluster(fClusters->At(iclu));
+  for(int iclu=0; iclu < fClusters->GetSize(); ++iclu) {
+    AliPHOSLogbackCluster* clu = new AliPHOSLogbackCluster((AliVCluster*)fClusters->At(iclu));
     newCluArray->Add(clu);
   }
   
@@ -121,7 +127,8 @@ void AliPHOSClusterSelectionLogbackTask::LogEvent(const AliPHOSEventSelection* e
   TMap* newMap = new TMap;
   newMap->SetOwnerValue();
   TMapIter* iter = (TMapIter*) fSelectionMap->MakeIterator();
-  while((TObject* key = iter->Next())){ // Loop over Cluster Selections 
+  TObject* key = 0x0;
+  while((key = iter->Next())){ // Loop over Cluster Selections 
     TRefArray* oldSelArray = dynamic_cast<TRefArray*> (fSelectionMap->GetValue(key));
     TObjArray* newSelArray = new TObjArray(oldSelArray->GetEntriesFast());
     newSelArray->SetOwner(false);
@@ -136,7 +143,7 @@ void AliPHOSClusterSelectionLogbackTask::LogEvent(const AliPHOSEventSelection* e
          // at the same old selection index
          if( newSelArray->At(cluInd) )
            AliError("should be empty!");
-         newSelArray->Add(newCluArray->At(cluInd), selInd);
+         newSelArray->AddAt(newCluArray->At(cluInd), selInd);
 
          matched = true;
          break;
@@ -166,11 +173,11 @@ void AliPHOSClusterSelectionLogbackTask::LogEvent(const AliPHOSEventSelection* e
     eventList = new TList;
     eventList->SetOwner();
   }
-  eventList->AddFist(eventArray);
+  eventList->AddFirst(eventArray);
   
   
   // remove old events
-  while( cluEventList->At(nEventsToLog) && nEventsToLog )
+  while( eventList->At(nEventsToLog) && nEventsToLog )
     eventList->RemoveLast();
 }
 
@@ -180,7 +187,7 @@ AliPHOSClusterSelectionLogbackTask* GetTask(const char* name)
 {
   AliPHOSClusterSelectionLogbackTask* task = dynamic_cast<AliPHOSClusterSelectionLogbackTask*>( AliPHOSClusterSelectionTask::GetTask(name) );
   if( !task )
-    AliError( Form("No AliPHOSClusterSelectionLogbackTask with name: %s"), name );
+    Printf( Form("No AliPHOSClusterSelectionLogbackTask with name: %s", name) );
 
   return task;
 }
index a3138f2..d937613 100644 (file)
@@ -1,6 +1,7 @@
 #ifndef ALIPHOSCLUSTERSELECTIONLOGBACKTASK_CXX
 #define ALIPHOSCLUSTERSELECTIONLOGBACKTASK_CXX
 
+class AliPHOSEventSelection;
  /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
  * See cxx source for full Copyright notice                               */
 
@@ -16,6 +17,7 @@
 
 class AliVCluster;
 class TObjArray;
+class AliPHOSEventSelection;
 
 #include "TArrayI.h"
 
index 11e407b..86e0d7e 100644 (file)
@@ -49,6 +49,8 @@ void AliPHOSClusterSelectionTask::UserCreateOutputObjects()
 
 void AliPHOSClusterSelectionTask::UserExec(Option_t *option)
 {
+  (void)(option); // To make the compiler not give a warning.
+  
   AliVEvent* event = InputEvent();
   if( ! event )
     AliError("No Event");
index a2849e2..d37c767 100644 (file)
@@ -5,10 +5,10 @@
  * See cxx source for full Copyright notice                               */
 
 // Class for selection of PHOS events, create a sub-class inheriting from
-// this class to customize your event selection logback using 
+// this class to customize your event selection logback using
 // AliPHOSClusterSelectionLogbackTask
 //
-// Uses IsEqual() to identify scope of Event selection!!! (Map from 
+// Uses IsEqual() to identify scope of Event selection!!! (Map from
 // EventSelection to Event cluster array)
 //
 // Authors : Henrik Qvigstad
@@ -22,15 +22,15 @@ class AliAODCaloEvent;
 
 #include "TObject.h"
 
-class AliPHOSEventSelection : TObject {
+class AliPHOSEventSelection : public TObject {
  public:
   AliPHOSEventSelection();
   virtual ~AliPHOSEventSelection();
-  
+
   virtual Bool_t  IsEqual(const TObject* obj) const; // recommended: reimplement
   virtual ULong_t Hash() const;
-    
-  
+
+
  protected:
   AliPHOSEventSelection(const AliPHOSEventSelection&); // not implemented
   AliPHOSEventSelection& operator=(const AliPHOSEventSelection&); // not implemented
index 68d6ff8..71942e7 100644 (file)
 
 #include "AliLog.h"
 #include "AliPHOSLogbackCluster.h"
-#include <AliPHOSGeometry.h>
+#include "AliPHOSGeometry.h"
+#include "AliVCluster.h"
+#include "AliOADBContainer.h"
+#include "AliVEvent.h"
+#include "AliAnalysisManager.h"
+#include "AliInputEventHandler.h"
+#include "AliMultiInputEventHandler.h"
 
 ClassImp(AliPHOSLogbackCluster)
 
 //______________________________________________________________________________
-AliPHOSLogbackCluster::AliPHOSLogbackCluster(AliVCluster* cluster) 
-: fE( cluster->E() )
+AliPHOSLogbackCluster::AliPHOSLogbackCluster(AliVCluster* cluster)
+: fE( cluster->E() ), fCoreE(0)
 {
   //TODO: fCoreE
 
@@ -37,32 +43,35 @@ AliPHOSLogbackCluster::~AliPHOSLogbackCluster()
 
 TLorentzVector AliPHOSLogbackCluster::GetMomentum(Double_t * vertex)
 {
-   // Returns TLorentzVector with momentum of the cluster. Only valid for clusters 
+   // Returns TLorentzVector with momentum of the cluster. Only valid for clusters
   // identified as photons or pi0 (overlapped gamma) produced on the vertex
-  // Vertex can be recovered with esd pointer doing:  
+  // Vertex can be recovered with esd pointer doing:
   //" Double_t vertex[3] ; esd->GetVertex()->GetXYZ(vertex) ; "
 
-  Double_t pos[3]={ fPosition[0] - vertex[0], 
-                   fPosition[1] - vertex[1], 
+  Double_t pos[3]={ fPosition[0] - vertex[0],
+                   fPosition[1] - vertex[1],
                    fPosition[2] - vertex[2]  };
-  
-  Double_t r = TMath::Sqrt(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]   ) ; 
-    
+
+  Double_t r = TMath::Sqrt(pos[0]*pos[0]+pos[1]*pos[1]+pos[2]*pos[2]   ) ;
+
   return TLorentzVector( fE*pos[0]/r,  fE*pos[1]/r,  fE*pos[2]/r,  fE) ;
 }
 
 
-AliPHOSGeometry* AliPHOSLogbackCluster::GetGeometry()
+AliPHOSGeometry* AliPHOSLogbackCluster::GetGeometry() const
 {
   // Gets Geometry, from OADB
-  
+
   static AliPHOSGeometry* sGeometry = 0x0;
-  
+
+  AliVEvent* vevent = AliPHOSLogbackCluster::GetCurrentEvent();
+  Int_t runNumber = vevent->GetRunNumber();
+
   //Init geometry
   if(!sGeometry){
     AliOADBContainer geomContainer("phosGeo_AliPHOSLogbackCluster");
     geomContainer.InitFromFile("$ALICE_ROOT/OADB/PHOS/PHOSGeometry.root","PHOSRotationMatrixes");
-    TObjArray *matrixes = (TObjArray*)geomContainer.GetObject(fRunNumber,"PHOSRotationMatrixes");
+    TObjArray *matrixes = (TObjArray*)geomContainer.GetObject(runNumber,"PHOSRotationMatrixes");
     sGeometry =  AliPHOSGeometry::GetInstance("IHEP") ;
     for(Int_t mod=0; mod<5; mod++) {
       if(!matrixes->At(mod)) {
@@ -74,11 +83,32 @@ AliPHOSGeometry* AliPHOSLogbackCluster::GetGeometry()
       }
       else {
        sGeometry->SetMisalMatrix(((TGeoHMatrix*)matrixes->At(mod)),mod) ;
-       if( fDebug >1 )
-         AliInfo(Form("Adding PHOS Matrix for mod:%d, geo=%p\n", mod, sGeometry));
+//     if( fDebug >1 )
+//       AliInfo(Form("Adding PHOS Matrix for mod:%d, geo=%p\n", mod, sGeometry));
       }
     }
   }
-  
+
   return sGeometry;
-}
\ No newline at end of file
+}
+
+
+AliVEvent* AliPHOSLogbackCluster::GetCurrentEvent() const
+{
+  // Hackish way of getting the current event.
+  // Its probably not appropriate to call this function outside of
+  // AliAnalysisTaskSE::UserExec
+
+  AliAnalysisManager* analysisManager = dynamic_cast<AliAnalysisManager*>(AliAnalysisManager::GetAnalysisManager());
+  AliInputEventHandler* inputHandler = dynamic_cast<AliInputEventHandler*>(analysisManager->GetInputEventHandler());
+  AliMultiInputEventHandler *multiInputHandler = dynamic_cast<AliMultiInputEventHandler *>(inputHandler);
+  if (multiInputHandler)
+    inputHandler = dynamic_cast<AliInputEventHandler *>(multiInputHandler->GetFirstInputEventHandler());
+
+  AliVEvent* inputEvent = dynamic_cast<AliVEvent*>(inputHandler->GetEvent());
+  if( ! inputEvent )
+    AliError("Was not able to retrieve event!");
+
+  return inputEvent;
+
+}
index 18116d8..83097da 100644 (file)
@@ -7,34 +7,39 @@
 
 //-------------------------------------------------------------------------
 //     AOD calorimeter cluster class (for PHOS and EMCAL)
-//     Author: Markus Oldenburg, CERN, 
+//     Author: Markus Oldenburg, CERN,
 //             Gustavo Conesa, INFN
 //-------------------------------------------------------------------------
 
+class AliVEvent;
+class AliVCluster;
+class AliPHOSGeometry;
+
 #include "TObject.h"
 #include "TLorentzVector.h"
 
 class AliPHOSLogbackCluster : public TObject {
  public:
   AliPHOSLogbackCluster(AliVCluster* cluster);
-  
+
   virtual ~AliPHOSLogbackCluster();
-  
+
   virtual Double_t E() const {return fE;}
   virtual Double_t CoreE() const {return fCoreE;}
-  
-  virtual TLorentzVector GetMomentum(TLorentzVector &momentum, Double_t * vertex);
+
+  virtual TLorentzVector GetMomentum(Double_t * vertex);
 
  protected:
-  AliPHOSLogbackCluster(const AliPHOSLogbackCluster& clus); 
+  AliPHOSLogbackCluster(const AliPHOSLogbackCluster& clus);
   AliPHOSLogbackCluster& operator=(const AliPHOSLogbackCluster& clus);
 
-  AliPHOSGeometry* GetGeometry();
-  
-  Double_t fE;
-  Double_t fCoreE;
-  Double_t fPosition[3];
-  
+  AliPHOSGeometry* GetGeometry() const;
+  AliVEvent* GetCurrentEvent() const;
+
+  Float_t fE;
+  Float_t fCoreE;
+  Float_t fPosition[3];
+
   ClassDef(AliPHOSLogbackCluster,1);
 };