ROOT logo
#ifndef ALIEMCALV0_H
#define ALIEMCALV0_H
/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                      
         */
/* $Id$ */

//_________________________________________________________________________
// 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) 
//          : Aleksei Pavlinov (WSU)     SHASHLYK

// --- ROOT system ---

class TFile;
class TList;
class AliEMCALShishKebabTrd1Module;
class AliEMCALSpaceFrame;

// --- AliRoot header files ---
#include "AliEMCAL.h"
#include "TGeoManager.h"
#include <TArrayF.h>

class AliEMCALv0 : public AliEMCAL {

 public:

  AliEMCALv0();
  AliEMCALv0(const char *name, const char *title="",const Bool_t checkGeoAndRun = kTRUE) ;
  virtual ~AliEMCALv0(){} 

  using AliEMCAL::AddHit;

  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 
    return 0 ; 
  }
  virtual const TString Version(void) const{ 
    // As above
    return TString("v0") ; 
  }
    // 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_t *parSCM0);
  void PbInTrap(const Double_t parTRAP[11], TString n);
  // 1X1 case - Nov 22, 2006
  void Trd1Tower1X1(Double_t *parSCM0);
  void PbInTrd1(const Double_t *parTrd1, TString n);

  TList  *GetShishKebabModules() const {return fShishKebabModules;}
  AliEMCALShishKebabTrd1Module *GetShishKebabModule(Int_t neta=0);

 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 fInnerEdge;         //! Inner edge of DCAL 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 
    
    };
    
#endif // AliEMCALV0_H
 AliEMCALv0.h:1
 AliEMCALv0.h:2
 AliEMCALv0.h:3
 AliEMCALv0.h:4
 AliEMCALv0.h:5
 AliEMCALv0.h:6
 AliEMCALv0.h:7
 AliEMCALv0.h:8
 AliEMCALv0.h:9
 AliEMCALv0.h:10
 AliEMCALv0.h:11
 AliEMCALv0.h:12
 AliEMCALv0.h:13
 AliEMCALv0.h:14
 AliEMCALv0.h:15
 AliEMCALv0.h:16
 AliEMCALv0.h:17
 AliEMCALv0.h:18
 AliEMCALv0.h:19
 AliEMCALv0.h:20
 AliEMCALv0.h:21
 AliEMCALv0.h:22
 AliEMCALv0.h:23
 AliEMCALv0.h:24
 AliEMCALv0.h:25
 AliEMCALv0.h:26
 AliEMCALv0.h:27
 AliEMCALv0.h:28
 AliEMCALv0.h:29
 AliEMCALv0.h:30
 AliEMCALv0.h:31
 AliEMCALv0.h:32
 AliEMCALv0.h:33
 AliEMCALv0.h:34
 AliEMCALv0.h:35
 AliEMCALv0.h:36
 AliEMCALv0.h:37
 AliEMCALv0.h:38
 AliEMCALv0.h:39
 AliEMCALv0.h:40
 AliEMCALv0.h:41
 AliEMCALv0.h:42
 AliEMCALv0.h:43
 AliEMCALv0.h:44
 AliEMCALv0.h:45
 AliEMCALv0.h:46
 AliEMCALv0.h:47
 AliEMCALv0.h:48
 AliEMCALv0.h:49
 AliEMCALv0.h:50
 AliEMCALv0.h:51
 AliEMCALv0.h:52
 AliEMCALv0.h:53
 AliEMCALv0.h:54
 AliEMCALv0.h:55
 AliEMCALv0.h:56
 AliEMCALv0.h:57
 AliEMCALv0.h:58
 AliEMCALv0.h:59
 AliEMCALv0.h:60
 AliEMCALv0.h:61
 AliEMCALv0.h:62
 AliEMCALv0.h:63
 AliEMCALv0.h:64
 AliEMCALv0.h:65
 AliEMCALv0.h:66
 AliEMCALv0.h:67
 AliEMCALv0.h:68
 AliEMCALv0.h:69
 AliEMCALv0.h:70
 AliEMCALv0.h:71
 AliEMCALv0.h:72
 AliEMCALv0.h:73
 AliEMCALv0.h:74
 AliEMCALv0.h:75
 AliEMCALv0.h:76
 AliEMCALv0.h:77
 AliEMCALv0.h:78
 AliEMCALv0.h:79
 AliEMCALv0.h:80
 AliEMCALv0.h:81
 AliEMCALv0.h:82
 AliEMCALv0.h:83
 AliEMCALv0.h:84
 AliEMCALv0.h:85
 AliEMCALv0.h:86
 AliEMCALv0.h:87
 AliEMCALv0.h:88
 AliEMCALv0.h:89