]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - EMCAL/AliEMCALv0.h
Update mini-task with big output flag and add current status macros
[u/mrichter/AliRoot.git] / EMCAL / AliEMCALv0.h
index 6aadcf7c4b3daa44b05587b35952b88d509f9a36..0279a6fbbd3aa1739021759d690ae540dfcd90c9 100644 (file)
@@ -7,40 +7,40 @@
 
 //_________________________________________________________________________
 // Implementation version v0 of EMCAL Manager class 
-//*--                  
+// An object of this class does not produce hits nor digits
+// It is the one to use if you do not want to produce outputs in TREEH or TREED
+// This class places a Geometry of the EMCAL in the ALICE Detector as defined in AliEMCALGeometry.cxx                      
 //*-- Author: Yves Schutz (SUBATECH)
 //*-- and   : Sahal Yacoob (LBL / UCT) 
-//#include <assert.h>
+//          : Aleksei Pavlinov (WSU)     SHASHLYK
 
 // --- ROOT system ---
 
 class TFile;
+class TList;
+class AliEMCALShishKebabTrd1Module;
+class AliEMCALSpaceFrame;
 
 // --- AliRoot header files ---
 #include "AliEMCAL.h"
-
-//class AliEMCALGeometry ; 
+#include "TGeoManager.h"
+#include <TArrayF.h>
 
 class AliEMCALv0 : public AliEMCAL {
 
  public:
 
-  AliEMCALv0():AliEMCAL() {}
+  AliEMCALv0();
   AliEMCALv0(const char *name, const char *title="") ;
-  AliEMCALv0(const AliEMCALv0 & emcal) {
-    // cpy ctor: no implementation yet
-    // requested by the Coding Convention
-    Fatal("cpy ctor", "not implemented") ;  
-  } 
   virtual ~AliEMCALv0(){} 
 
-  virtual void  AddHit( Int_t shunt, Int_t primary, Int_t track, 
-                       Int_t id, Float_t *hits ) {
-    // no hits - useless
-  }
+  using AliEMCAL::AddHit;
 
-  virtual void BuildGeometry();// creates the geometry for the ROOT display
-  virtual void CreateGeometry() ;// creates the geometry for GEANT
+  virtual void   AddAlignableVolumes()        const;
+  virtual void   AddAlignableVolumesInALICE() const;
+  virtual void   AddAlignableVolumesInWSUC()  const;
+  
+  virtual void   CreateGeometry() ;// creates the geometry for GEANT
   virtual void   Init(void) ;                                       // does nothing
   virtual Int_t  IsVersion(void) const { 
     // Gives the version number 
@@ -50,16 +50,46 @@ class AliEMCALv0 : public AliEMCAL {
     // As above
     return TString("v0") ; 
   }
-  
-  AliEMCALv0 & operator = (const AliEMCALv0 & rvalue)  {
-    // assignement operator requested by coding convention but not needed
-    Fatal("operator =", "not implemented") ;  
-    return *this ; 
-  }
-  
- protected:
+    // ShishKebab 
+  void CreateShishKebabGeometry();
+  void CreateSmod(const char* mother="XEN1");
+  void CreateEmod(const char* mother="SMOD", const char* child="EMOD");
+  void CreateAlFrontPlate(const char* mother="EMOD", const char* child="ALFP");
+  // TRD1
+  void Trd1Tower3X3(const double *parSCM0);
+  void Trd1Tower4X4() const;
+  void PbInTrap(const double parTRAP[11], TString n);
+  // 1X1 case - Nov 22, 2006
+  void Trd1Tower1X1(double *parSCM0);
+  void PbInTrd1(const double *parTrd1, TString n);
+  // TRD2 - 1th design
+  void Scm0InTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parSCM0[5]);
+  void Division2X2InScm0(const AliEMCALGeometry * g, const Double_t parSCM0[5]);
+  void PbInTrapForTrd2(const double *parTRAP, TString name);
+  // TRD2 - 2th design
+  void PbmoInTrd2(const AliEMCALGeometry * g, const Double_t emodPar[5], Double_t parPBMO[5]);
+  void Division2X2InPbmo(const AliEMCALGeometry * g, const Double_t parPBMO[5]);
+
+  TList  *GetShishKebabModules() const {return fShishKebabModules;}
+  AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta=0);
 
-  ClassDef(AliEMCALv0,1)  // Implementation of EMCAL manager class for midrapidity barrel layout between 0 and 120 degrees 
+ protected:
+  TList   *fShishKebabModules; //! list of modules
+ private:
+  TArrayF  fEnvelop1;          //! parameters of EMCAL envelop for TRD1(2) case 
+  Int_t    fIdRotm;            //! number of rotation matrix (working variable)
+  Int_t   *fIdTmedArr;         //! fIdtmed->GetArray() - 1599;
+  Double_t fSampleWidth;       //! sample width = double(g->GetECPbRadThick()+g->GetECScintThick());
+  Double_t fSmodPar0;          //! x size of super module  
+  Double_t fSmodPar1;          //! y size of super module  
+  Double_t fSmodPar2;          //! z size of super module  
+  Double_t fParEMOD[5];        //! parameters of EMCAL module (TRD1,2)
+  AliEMCALSpaceFrame* fCalFrame; //EMCAL Space frame object
+  
+  AliEMCALv0(const AliEMCALv0 & emcal);
+  AliEMCALv0 & operator = (const AliEMCALv0  & /*rvalue*/);
+  ClassDef(AliEMCALv0,4) // Implementation of EMCAL manager class for midrapidity barrel layout between 80 and 180(190) degrees 
     
     };