]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALGeometry.h
Using a conservative 3% estimate for the K0s signal extraction systematics. Using...
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALGeometry.h
index 95de54d0b82811c60d7e08070932775710b357dc..826b678c39cfac45450c1a854f2f0978d1c3cee8 100644 (file)
@@ -28,21 +28,22 @@ class TParticle ;
 #include "AliEMCALEMCGeometry.h"
 #include "AliEMCALGeoParams.h"
 class AliEMCALShishKebabTrd1Module;
-#include "AliLog.h"
+class AliLog;
 
 class AliEMCALGeometry : public TNamed {
 
 public: 
 
   AliEMCALGeometry();
-  AliEMCALGeometry(const Text_t* name, const Text_t* title="");
+  AliEMCALGeometry(const Text_t* name, const Text_t* title="",
+                   const Text_t* mcname="", const Text_t* mctitle="");
   AliEMCALGeometry(const AliEMCALGeometry & geom);
   
   virtual ~AliEMCALGeometry(void); 
   AliEMCALGeometry & operator = (const AliEMCALGeometry  & rvalue);
   
-  static AliEMCALGeometry * GetInstance(const Text_t* name,
-                                       const Text_t* title="") ; 
+  static AliEMCALGeometry * GetInstance(const Text_t* name,      const Text_t* title="",
+                                        const Text_t* mcname="TGeant3", const Text_t* mctitle="") ; 
   static AliEMCALGeometry * GetInstance();
 
 
@@ -64,7 +65,7 @@ public:
   virtual void Browse(TBrowser* b);
   virtual Bool_t  IsFolder() const;
 
-  virtual Bool_t Impact(const TParticle *) const;
+  virtual Bool_t Impact(const TParticle *particle) const;
   void ImpactOnEmcal(TVector3 vtx, Double_t theta, Double_t phi, Int_t & absId, TVector3 & vimpact) const;
   Bool_t IsInEMCAL(Double_t x, Double_t y, Double_t z) const;
 
@@ -200,7 +201,8 @@ public:
   Int_t   GetSuperModuleNumber(Int_t absId)  const;
   Int_t   GetNumberOfModuleInPhiDirection(Int_t nSupMod)  const
   { 
-    if(fKey110DEG == 1 && nSupMod>=10) return fNPhi/2;
+    if(fKey110DEG == 1 && nSupMod>=10 && !fGeoName.Contains("12SMV1")) return fNPhi/2;
+    else if(fKey110DEG == 1 && nSupMod>=10 && fGeoName.Contains("12SMV1")) return fNPhi/3;
     else                               return fNPhi;
   } 
   // From cell indexes to abs cell id
@@ -255,6 +257,10 @@ public:
   Bool_t          GetCellIndexFromFastORIndex(const Int_t id, Int_t idx[4]) const;
   Bool_t              GetTRUIndexFromSTUIndex(const Int_t id, Int_t& idx) const;
   Int_t               GetTRUIndexFromSTUIndex(const Int_t id) const;
+  Bool_t           GetTRUIndexFromOnlineIndex(const Int_t id, Int_t& idx) const;
+  Int_t            GetTRUIndexFromOnlineIndex(const Int_t id) const;
+  Bool_t           GetOnlineIndexFromTRUIndex(const Int_t id, Int_t& idx) const;
+  Int_t            GetOnlineIndexFromTRUIndex(const Int_t id) const;
   Bool_t            GetFastORIndexFromL0Index(const Int_t iTRU, const Int_t id, Int_t idx[], const Int_t size) const;
        
   ///////////////////
@@ -269,13 +275,7 @@ public:
   }
 
   //Method to set shift-rotational matrixes from ESDHeader
-  void SetMisalMatrix(const TGeoHMatrix * m, Int_t smod) {
-    fUseExternalMatrices = kTRUE;
-         if (smod >= 0 && smod < fEMCGeometry->GetNumberOfSuperModules()){
-            if(!fkSModuleMatrix[smod]) fkSModuleMatrix[smod] = new TGeoHMatrix(*m) ; //Set only if not set yet
-    }
-         else AliFatal(Form("Wrong supermodule index -> %d",smod));
-  }
+  void SetMisalMatrix(const TGeoHMatrix * m, Int_t smod);
        
   //Alternate geometry that allows to calculate tower position for different particles and different alignments
   void RecalculateTowerPosition(Float_t drow, Float_t dcol, const Int_t sm, const Float_t depth,