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

/* $Id$ */

////////////////////////////////////////////////////////////////////////////
//                                                                        //
//  Manager and hits classes for set: TRD                                 //
//                                                                        //
////////////////////////////////////////////////////////////////////////////


#include "AliDetector.h"
#include "AliTRDTrigger.h"

class AliRawReader;

class AliTRDgeometry;
class AliTriggerDetector;

class AliTRD : public AliDetector {

 public:

  AliTRD();
  AliTRD(const char *name, const char *title);
  virtual         ~AliTRD();

  virtual void     Init();
  virtual Int_t    IsVersion() const          = 0;
  virtual void     ResetDigits();     

  virtual void     CreateGeometry();
  virtual void     CreateMaterials();

  virtual void     Hits2Digits();
  virtual void     Hits2SDigits();
  virtual void     SDigits2Digits();
  virtual void     Digits2Raw();
  virtual Bool_t   Raw2SDigits(AliRawReader* rawReader);

  virtual void     AddHit(Int_t, Int_t*, Float_t*)       { }; 
  virtual void     AddHit(Int_t track, Int_t det, Float_t *hits
                        , Int_t q, Float_t time, Bool_t inDrift); 

  virtual void     SetTreeAddress();

  virtual void     StepManager()              = 0; 

  virtual void     SetStepSize(Double_t s)    = 0;
  virtual void     SetHits()                             { };
  virtual void     SetTR(Bool_t )             = 0;

  virtual Bool_t   GetTR() const              = 0;

          AliTRDgeometry     *GetGeometry() const           { return fGeometry; };
  virtual AliDigitizer       *CreateDigitizer(AliDigitizationInput* digInput) const; 
  virtual AliLoader          *MakeLoader(const char* topfoldername);
  virtual AliTriggerDetector *CreateTriggerDetector() const { return new AliTRDTrigger(); }
  void    SetPrimaryIonisation(Bool_t flag = kTRUE) {fPrimaryIonisation = flag;}  
 protected:

  AliTRDgeometry       *fGeometry;             //  The TRD geometry

  Float_t               fGasDensity;           //  The density of the drift gas
  Float_t               fFoilDensity;          //  The density of the entrance window foil
  Float_t               fGasNobleFraction;     //  The fraction of noble gas in the mixture
  Bool_t                fPrimaryIonisation;    //  switch between Fluka(true) and geant3(false)
 private:

  AliTRD(const AliTRD &trd);
  AliTRD  &operator=(const AliTRD &trd);

  ClassDef(AliTRD,12)                          //  Transition Radiation Detector base class

};

#endif
 AliTRD.h:1
 AliTRD.h:2
 AliTRD.h:3
 AliTRD.h:4
 AliTRD.h:5
 AliTRD.h:6
 AliTRD.h:7
 AliTRD.h:8
 AliTRD.h:9
 AliTRD.h:10
 AliTRD.h:11
 AliTRD.h:12
 AliTRD.h:13
 AliTRD.h:14
 AliTRD.h:15
 AliTRD.h:16
 AliTRD.h:17
 AliTRD.h:18
 AliTRD.h:19
 AliTRD.h:20
 AliTRD.h:21
 AliTRD.h:22
 AliTRD.h:23
 AliTRD.h:24
 AliTRD.h:25
 AliTRD.h:26
 AliTRD.h:27
 AliTRD.h:28
 AliTRD.h:29
 AliTRD.h:30
 AliTRD.h:31
 AliTRD.h:32
 AliTRD.h:33
 AliTRD.h:34
 AliTRD.h:35
 AliTRD.h:36
 AliTRD.h:37
 AliTRD.h:38
 AliTRD.h:39
 AliTRD.h:40
 AliTRD.h:41
 AliTRD.h:42
 AliTRD.h:43
 AliTRD.h:44
 AliTRD.h:45
 AliTRD.h:46
 AliTRD.h:47
 AliTRD.h:48
 AliTRD.h:49
 AliTRD.h:50
 AliTRD.h:51
 AliTRD.h:52
 AliTRD.h:53
 AliTRD.h:54
 AliTRD.h:55
 AliTRD.h:56
 AliTRD.h:57
 AliTRD.h:58
 AliTRD.h:59
 AliTRD.h:60
 AliTRD.h:61
 AliTRD.h:62
 AliTRD.h:63
 AliTRD.h:64
 AliTRD.h:65
 AliTRD.h:66
 AliTRD.h:67
 AliTRD.h:68
 AliTRD.h:69
 AliTRD.h:70
 AliTRD.h:71
 AliTRD.h:72
 AliTRD.h:73
 AliTRD.h:74
 AliTRD.h:75
 AliTRD.h:76
 AliTRD.h:77
 AliTRD.h:78
 AliTRD.h:79
 AliTRD.h:80