EMCAL and PHOS matrices added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Aug 2009 15:06:01 +0000 (15:06 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 5 Aug 2009 15:06:01 +0000 (15:06 +0000)
STEER/AliAODHeader.cxx
STEER/AliAODHeader.h

index e69585c..df3daef 100644 (file)
@@ -21,6 +21,7 @@
 //-------------------------------------------------------------------------
 
 #include "AliAODHeader.h"
+#include <TGeoMatrix.h>
 
 ClassImp(AliAODHeader)
 
@@ -54,6 +55,8 @@ AliAODHeader::AliAODHeader() :
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
   fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
   fDiamondCovXY[1]=0.;
+  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
 }
 
 //______________________________________________________________________________
@@ -91,6 +94,8 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
   fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
   fDiamondCovXY[1]=0.;
+  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
 }
 
 //______________________________________________________________________________
@@ -142,6 +147,8 @@ AliAODHeader::AliAODHeader(Int_t nRun,
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=0.;
   fDiamondCovXY[0]=fDiamondCovXY[2]=3.*3.;
   fDiamondCovXY[1]=0.;
+  for (Int_t m=0; m<kNPHOSMatrix; m++) fPHOSMatrix[m]=NULL;
+  for (Int_t sm=0; sm<kNEMCALMatrix; sm++) fEMCALMatrix[sm]=NULL;
 }
 
 //______________________________________________________________________________
@@ -183,6 +190,22 @@ AliAODHeader::AliAODHeader(const AliAODHeader& hdr) :
   SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
   for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
   for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
+
+
+  for(Int_t m=0; m<kNPHOSMatrix; m++){
+      if(hdr.fPHOSMatrix[m])
+         fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
+      else
+         fPHOSMatrix[m]=0;
+  }
+  
+  for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+      if(hdr.fEMCALMatrix[sm])
+         fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
+      else
+         fEMCALMatrix[sm]=0;
+  }
+
 }
 
 //______________________________________________________________________________
@@ -217,6 +240,21 @@ AliAODHeader& AliAODHeader::operator=(const AliAODHeader& hdr)
     SetZDCEMEnergy(hdr.fZDCEMEnergy[0], hdr.fZDCEMEnergy[1]);
     for(Int_t i=0; i<2; i++) fDiamondXY[i]=hdr.fDiamondXY[i];
     for(Int_t i=0; i<3; i++) fDiamondCovXY[i]=hdr.fDiamondCovXY[i];
+
+    for(Int_t m=0; m<kNPHOSMatrix; m++){
+       if(hdr.fPHOSMatrix[m])
+           fPHOSMatrix[m]=new TGeoHMatrix(*(hdr.fPHOSMatrix[m])) ;
+       else
+           fPHOSMatrix[m]=0;
+    }
+    
+    for(Int_t sm=0; sm<kNEMCALMatrix; sm++){
+       if(hdr.fEMCALMatrix[sm])
+           fEMCALMatrix[sm]=new TGeoHMatrix(*(hdr.fEMCALMatrix[sm])) ;
+       else
+           fEMCALMatrix[sm]=0;
+  }
+
   }
 
 
index 2c9e804..50b1a1b 100644 (file)
@@ -13,6 +13,8 @@
 #include "AliVHeader.h"
 #include "AliAODVertex.h"
 
+class TGeoHMatrix;
+
 class AliAODHeader : public AliVHeader {
 
  public :
@@ -103,7 +105,23 @@ class AliAODHeader : public AliVHeader {
   }
 
   void Print(Option_t* option = "") const;
+
+  void    SetPHOSMatrix(TGeoHMatrix*matrix, Int_t i) {
+      if ((i >= 0) && (i < kNPHOSMatrix)) fPHOSMatrix[i] = matrix;
+  }
+  const TGeoHMatrix* GetPHOSMatrix(Int_t i) const {
+      return ((i >= 0) && (i < kNPHOSMatrix)) ? fPHOSMatrix[i] : NULL;
+  }
   
+  void    SetEMCALMatrix(TGeoHMatrix*matrix, Int_t i) {
+      if ((i >= 0) && (i < kNEMCALMatrix)) fEMCALMatrix[i] = matrix;
+  }
+  const TGeoHMatrix* GetEMCALMatrix(Int_t i) const {
+      return ((i >= 0) && (i < kNEMCALMatrix)) ? fEMCALMatrix[i] : NULL;
+  }
+  
+  enum {kNPHOSMatrix = 5};
+  enum {kNEMCALMatrix = 12};
   
  private :
   
@@ -130,8 +148,10 @@ class AliAODHeader : public AliVHeader {
 
   Double32_t      fDiamondXY[2];    // Interaction diamond (x,y) in RUN
   Double32_t      fDiamondCovXY[3]; // Interaction diamond covariance (x,y) in RUN
-  
-  ClassDef(AliAODHeader,7);
+  TGeoHMatrix*    fPHOSMatrix[kNPHOSMatrix];   //PHOS module position and orientation matrices
+  TGeoHMatrix*    fEMCALMatrix[kNEMCALMatrix]; //EMCAL supermodule position and orientation matrices
+
+  ClassDef(AliAODHeader,8);
 };
 
 #endif