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

/* $Id$ */
/* History of cvs commits:
 *
 * $Log$
 * Revision 1.43  2007/03/10 22:19:01  pavlinov
 * move one varibels from AliEMCALv2 to AliEMCAL
 *
 * Revision 1.42  2007/02/24 20:42:35  pavlinov
 * fixed error of Geant3 parameters initialisation
 *
 * Revision 1.41  2007/02/05 10:43:25  hristov
 * Changes for correct initialization of Geant4 (Mihaela)
 *
 * Revision 1.40  2006/12/05 17:19:26  gustavo
 * Updated AliEMCAL::Digits2Raw, reads first provisional RCU mapping files to make Raw data with new AliCaloAltroMapping and AliCaloRawStream
 *
 *
 */
//_________________________________________________________________________
//  Base Class for EMCAL     
//  holds all geant information of
//  materials, etc.
//                  
//*-- Author: Yves Schutz (SUBATECH) 

// --- ROOT system ---

class TString ;
class TFolder ;
class TRandom ; 
class TGraph;
class TF1;

// --- AliRoot header files ---
class AliRawReader;
#include "AliDetector.h"
#include "AliEMCALGeometry.h" 
#include "AliEMCALTrigger.h" 
class AliEMCALRawUtils;
#include "AliReconstructor.h"
class AliEMCALTriggerData;

class AliEMCAL : public AliDetector {

 public:
  
  AliEMCAL(); 
  AliEMCAL(const char* name, const char* title="", const Bool_t checkGeoAndRun = kTRUE);

  virtual ~AliEMCAL() ; 
  virtual void   AddHit(Int_t, Int_t*, Float_t *) {
    Fatal("AddHit(Int_t, Int_t*, Float_t *", "not to be used: use AddHit( Int_t shunt, Int_t primary, Int_t track,Int_t id, Float_t *hits )") ;  
  }
  virtual AliDigitizer* CreateDigitizer(AliDigitizationInput* digInput) const;
  virtual void  CreateMaterials() ;   
  virtual void  Init() ;   
  virtual void  Digits2Raw();
  
  virtual void  FinishRun() {}                  
  virtual AliEMCALGeometry * GetGeometry() const ;
   // {return AliEMCALGeometry::GetInstance(GetTitle(),"") ;  }   
  virtual void    Hits2SDigits();
  virtual Int_t   IsVersion(void) const = 0 ;   
  
  virtual AliTriggerDetector* CreateTriggerDetector() const 
    { return new AliEMCALTrigger(); }

   //  
  virtual AliLoader* MakeLoader(const char* topfoldername);
  virtual const TString Version() const {return TString(" ") ; }   

  virtual void  SetCheckRunNumberAndGeoVersion(Bool_t check) { fCheckRunNumberAndGeoVersion = check ; }

  Bool_t Raw2SDigits(AliRawReader* rawReader);
  
protected:
  void InitConstants();  //initializes some params

  Int_t    fBirkC0; // constants for Birk's Law implementation
  Double_t fBirkC1; // constants for Birk's Law implementation
  Double_t fBirkC2; // constants for Birk's Law implementation

  AliEMCALGeometry* fGeometry;              //!
  Bool_t   fCheckRunNumberAndGeoVersion;    // Check if run number corresponds to the requested geometry and V1 is used
  
  //For embedding
  static AliEMCALRawUtils    * fgRawUtils;        // raw utilities class, for embedding 
  AliEMCALTriggerData        * fTriggerData;      // Trigger parameters data container

private:
  AliEMCAL(const AliEMCAL& emcal);
  AliEMCAL & operator = (const AliEMCAL & /*rvalue*/);

  ClassDef(AliEMCAL,12) // Electromagnetic calorimeter (base class)
    
} ;

#endif // ALIEMCAL_H
 AliEMCAL.h:1
 AliEMCAL.h:2
 AliEMCAL.h:3
 AliEMCAL.h:4
 AliEMCAL.h:5
 AliEMCAL.h:6
 AliEMCAL.h:7
 AliEMCAL.h:8
 AliEMCAL.h:9
 AliEMCAL.h:10
 AliEMCAL.h:11
 AliEMCAL.h:12
 AliEMCAL.h:13
 AliEMCAL.h:14
 AliEMCAL.h:15
 AliEMCAL.h:16
 AliEMCAL.h:17
 AliEMCAL.h:18
 AliEMCAL.h:19
 AliEMCAL.h:20
 AliEMCAL.h:21
 AliEMCAL.h:22
 AliEMCAL.h:23
 AliEMCAL.h:24
 AliEMCAL.h:25
 AliEMCAL.h:26
 AliEMCAL.h:27
 AliEMCAL.h:28
 AliEMCAL.h:29
 AliEMCAL.h:30
 AliEMCAL.h:31
 AliEMCAL.h:32
 AliEMCAL.h:33
 AliEMCAL.h:34
 AliEMCAL.h:35
 AliEMCAL.h:36
 AliEMCAL.h:37
 AliEMCAL.h:38
 AliEMCAL.h:39
 AliEMCAL.h:40
 AliEMCAL.h:41
 AliEMCAL.h:42
 AliEMCAL.h:43
 AliEMCAL.h:44
 AliEMCAL.h:45
 AliEMCAL.h:46
 AliEMCAL.h:47
 AliEMCAL.h:48
 AliEMCAL.h:49
 AliEMCAL.h:50
 AliEMCAL.h:51
 AliEMCAL.h:52
 AliEMCAL.h:53
 AliEMCAL.h:54
 AliEMCAL.h:55
 AliEMCAL.h:56
 AliEMCAL.h:57
 AliEMCAL.h:58
 AliEMCAL.h:59
 AliEMCAL.h:60
 AliEMCAL.h:61
 AliEMCAL.h:62
 AliEMCAL.h:63
 AliEMCAL.h:64
 AliEMCAL.h:65
 AliEMCAL.h:66
 AliEMCAL.h:67
 AliEMCAL.h:68
 AliEMCAL.h:69
 AliEMCAL.h:70
 AliEMCAL.h:71
 AliEMCAL.h:72
 AliEMCAL.h:73
 AliEMCAL.h:74
 AliEMCAL.h:75
 AliEMCAL.h:76
 AliEMCAL.h:77
 AliEMCAL.h:78
 AliEMCAL.h:79
 AliEMCAL.h:80
 AliEMCAL.h:81
 AliEMCAL.h:82
 AliEMCAL.h:83
 AliEMCAL.h:84
 AliEMCAL.h:85
 AliEMCAL.h:86
 AliEMCAL.h:87
 AliEMCAL.h:88
 AliEMCAL.h:89
 AliEMCAL.h:90
 AliEMCAL.h:91
 AliEMCAL.h:92
 AliEMCAL.h:93
 AliEMCAL.h:94
 AliEMCAL.h:95
 AliEMCAL.h:96
 AliEMCAL.h:97
 AliEMCAL.h:98
 AliEMCAL.h:99
 AliEMCAL.h:100
 AliEMCAL.h:101
 AliEMCAL.h:102
 AliEMCAL.h:103