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

//_________________________________________________________________________//
//                                                                         //
// Implementation version v6 of TOF Manager class                          //
// FULL COVERAGE VERSION + OPTION FOR PHOS HOLES                           //
//                                                                         //
// -- Authors: G. Cara Romeo, A. De Caro                                   //
//                                                                         //
//_________________________________________________________________________//

#include "AliTOF.h"
 
 
class AliTOFv6T0 : public AliTOF {

public:
  AliTOFv6T0();
  AliTOFv6T0(const char *name, const char *title);
  virtual ~AliTOFv6T0() {};
  virtual void   CreateGeometry();
  virtual void   CreateMaterials();
  virtual void   Init();
  virtual Int_t  IsVersion() const {return 8;}
  virtual void   AddAlignableVolumes() const;
  virtual void   TOFpc(Float_t xtof,  Float_t ytof, Float_t zlenA);
  virtual void   TOFpc(Float_t, Float_t, Float_t, Float_t) {};
  virtual void   TOFpc(Float_t, Float_t, Float_t, Float_t, Float_t, Float_t) {};
  virtual void   StepManager();
 
 protected:

  void MaterialMixer(Float_t * p, const Float_t * const a,
		     const Float_t * const m, Int_t n) const;

private:

  void CreateModules(Float_t xtof, Float_t ytof, Float_t zlenA,
		     Float_t xFLT, Float_t yFLT, Float_t zFLTA) const;
  void MakeStripsInModules(Float_t ytof, Float_t zlenA) const;
  void CreateModuleCovers(Float_t xtof, Float_t zlenA) const;
  void CreateBackZone(Float_t xtof, Float_t ytof, Float_t zlenA) const;
  void MakeFrontEndElectronics(Float_t xtof) const;
  void MakeFEACooling(Float_t xtof) const;
  void MakeNinoMask(Float_t xtof) const;
  void MakeSuperModuleCooling(Float_t xtof, Float_t ytof, Float_t zlenA) const;
  void MakeSuperModuleServices(Float_t xtof, Float_t ytof, Float_t zlenA) const;
  void MakeModulesInBTOFvolumes(Float_t ytof, Float_t zlenA) const;
  void MakeCoversInBTOFvolumes() const;
  void MakeBackInBTOFvolumes(Float_t ytof) const;
  void MakeReadoutCrates(Float_t ytof) const;

  Int_t fIdFTOA; // FTOA volume identifier (outer plate A)
  Int_t fIdFTOB; // FTOB volume identifier (outer plate B)
  Int_t fIdFTOC; // FTOC volume identifier (outer plate C)
  Int_t fIdFLTA; // FLTA volume identifier (inner plate A)
  Int_t fIdFLTB; // FLTB volume identifier (inner plate B)
  Int_t fIdFLTC; // FLTC volume identifier (inner plate C)

  //private:

  static const Bool_t fgkFEAwithMasks[18]; // Selecting TOF sectors containing FEA cooling masks

  static const Float_t fgkModuleWallThickness;  // wall thickness (cm)
  static const Float_t fgkInterCentrModBorder1; // 1st distance of
						// border between
						// central and
						// intermediate
						// modules respect to
						// the central module
						// centre (cm)
  static const Float_t fgkInterCentrModBorder2; // 2nd distance of
						// border between the
						// central and
						// intermediate
						// modules respect to
						// the central module
						// centre (cm)
  static const Float_t fgkExterInterModBorder1; // 1st distance of
						// border between the
						// intermediate and
						// external modules
						// respect to the
						// central module
						// centre (cm)
  static const Float_t fgkExterInterModBorder2; // 2nd distance of
						// border between the
						// intermediate and
						// external
						// modules respect to
						// the central module
						// centre (cm)
  /*
  static const Float_t fgkLengthInCeModBorder;  // height of border
						// between the central
						// and intermediate
						// modules (cm)
						*/
  static const Float_t fgkLengthInCeModBorderU; // height of upper border
						// between the central
						// and intermediate
						// modules (cm)
  static const Float_t fgkLengthInCeModBorderD; // height of lower border
						// between the central
						// and intermediate
						// modules (cm)
  static const Float_t fgkLengthExInModBorder;  // height of border
						// between the
						// intermediate and
						// external modules
						// (cm)
  static const Float_t fgkModuleCoverThickness; // thickness of cover
						// modules zone (cm)
  static const Float_t fgkFEAwidth1; // mother volume width of each of
				     // two external FEA in a
				     // supermodule (cm)
  static const Float_t fgkFEAwidth2; // mother volume width of two
				     // internal FEA in a supermodule
				     // (cm)
  static const Float_t fgkSawThickness; // services alluminium wall
					// thickness (cm)
  static const Float_t fgkCBLw;  // cables&tubes block width (cm)
  static const Float_t fgkCBLh1; // min. height of cables&tubes block
				 // (cm)
  static const Float_t fgkCBLh2; // max. height of cables&tubes block
				 // (cm)
  static const Float_t fgkBetweenLandMask; // distance between the L
					   // element and the Nino
					   // mask (cm)
  static const Float_t fgkAl1parameters[3]; // (cm)
  static const Float_t fgkAl2parameters[3]; // (cm)
  static const Float_t fgkAl3parameters[3]; // (cm)
  static const Float_t fgkRoof1parameters[3]; // (cm)
  static const Float_t fgkRoof2parameters[3]; // (cm)
  static const Float_t fgkFEAparameters[3]; // (cm)
  //static const Float_t fgkFCAparameters[3]; // (cm)
  static const Float_t fgkBar[3]; // (cm)
  static const Float_t fgkBar1[3]; // (cm)
  static const Float_t fgkBar2[3]; // (cm)
  static const Float_t fgkBarS[3]; // (cm)
  static const Float_t fgkBarS1[3]; // (cm)
  static const Float_t fgkBarS2[3]; // (cm)

  ClassDef(AliTOFv6T0,1)  //Time Of Flight version 6
};
 
#endif /* ALITOFV6T0_H */
 AliTOFv6T0.h:1
 AliTOFv6T0.h:2
 AliTOFv6T0.h:3
 AliTOFv6T0.h:4
 AliTOFv6T0.h:5
 AliTOFv6T0.h:6
 AliTOFv6T0.h:7
 AliTOFv6T0.h:8
 AliTOFv6T0.h:9
 AliTOFv6T0.h:10
 AliTOFv6T0.h:11
 AliTOFv6T0.h:12
 AliTOFv6T0.h:13
 AliTOFv6T0.h:14
 AliTOFv6T0.h:15
 AliTOFv6T0.h:16
 AliTOFv6T0.h:17
 AliTOFv6T0.h:18
 AliTOFv6T0.h:19
 AliTOFv6T0.h:20
 AliTOFv6T0.h:21
 AliTOFv6T0.h:22
 AliTOFv6T0.h:23
 AliTOFv6T0.h:24
 AliTOFv6T0.h:25
 AliTOFv6T0.h:26
 AliTOFv6T0.h:27
 AliTOFv6T0.h:28
 AliTOFv6T0.h:29
 AliTOFv6T0.h:30
 AliTOFv6T0.h:31
 AliTOFv6T0.h:32
 AliTOFv6T0.h:33
 AliTOFv6T0.h:34
 AliTOFv6T0.h:35
 AliTOFv6T0.h:36
 AliTOFv6T0.h:37
 AliTOFv6T0.h:38
 AliTOFv6T0.h:39
 AliTOFv6T0.h:40
 AliTOFv6T0.h:41
 AliTOFv6T0.h:42
 AliTOFv6T0.h:43
 AliTOFv6T0.h:44
 AliTOFv6T0.h:45
 AliTOFv6T0.h:46
 AliTOFv6T0.h:47
 AliTOFv6T0.h:48
 AliTOFv6T0.h:49
 AliTOFv6T0.h:50
 AliTOFv6T0.h:51
 AliTOFv6T0.h:52
 AliTOFv6T0.h:53
 AliTOFv6T0.h:54
 AliTOFv6T0.h:55
 AliTOFv6T0.h:56
 AliTOFv6T0.h:57
 AliTOFv6T0.h:58
 AliTOFv6T0.h:59
 AliTOFv6T0.h:60
 AliTOFv6T0.h:61
 AliTOFv6T0.h:62
 AliTOFv6T0.h:63
 AliTOFv6T0.h:64
 AliTOFv6T0.h:65
 AliTOFv6T0.h:66
 AliTOFv6T0.h:67
 AliTOFv6T0.h:68
 AliTOFv6T0.h:69
 AliTOFv6T0.h:70
 AliTOFv6T0.h:71
 AliTOFv6T0.h:72
 AliTOFv6T0.h:73
 AliTOFv6T0.h:74
 AliTOFv6T0.h:75
 AliTOFv6T0.h:76
 AliTOFv6T0.h:77
 AliTOFv6T0.h:78
 AliTOFv6T0.h:79
 AliTOFv6T0.h:80
 AliTOFv6T0.h:81
 AliTOFv6T0.h:82
 AliTOFv6T0.h:83
 AliTOFv6T0.h:84
 AliTOFv6T0.h:85
 AliTOFv6T0.h:86
 AliTOFv6T0.h:87
 AliTOFv6T0.h:88
 AliTOFv6T0.h:89
 AliTOFv6T0.h:90
 AliTOFv6T0.h:91
 AliTOFv6T0.h:92
 AliTOFv6T0.h:93
 AliTOFv6T0.h:94
 AliTOFv6T0.h:95
 AliTOFv6T0.h:96
 AliTOFv6T0.h:97
 AliTOFv6T0.h:98
 AliTOFv6T0.h:99
 AliTOFv6T0.h:100
 AliTOFv6T0.h:101
 AliTOFv6T0.h:102
 AliTOFv6T0.h:103
 AliTOFv6T0.h:104
 AliTOFv6T0.h:105
 AliTOFv6T0.h:106
 AliTOFv6T0.h:107
 AliTOFv6T0.h:108
 AliTOFv6T0.h:109
 AliTOFv6T0.h:110
 AliTOFv6T0.h:111
 AliTOFv6T0.h:112
 AliTOFv6T0.h:113
 AliTOFv6T0.h:114
 AliTOFv6T0.h:115
 AliTOFv6T0.h:116
 AliTOFv6T0.h:117
 AliTOFv6T0.h:118
 AliTOFv6T0.h:119
 AliTOFv6T0.h:120
 AliTOFv6T0.h:121
 AliTOFv6T0.h:122
 AliTOFv6T0.h:123
 AliTOFv6T0.h:124
 AliTOFv6T0.h:125
 AliTOFv6T0.h:126
 AliTOFv6T0.h:127
 AliTOFv6T0.h:128
 AliTOFv6T0.h:129
 AliTOFv6T0.h:130
 AliTOFv6T0.h:131
 AliTOFv6T0.h:132
 AliTOFv6T0.h:133
 AliTOFv6T0.h:134
 AliTOFv6T0.h:135
 AliTOFv6T0.h:136
 AliTOFv6T0.h:137
 AliTOFv6T0.h:138
 AliTOFv6T0.h:139
 AliTOFv6T0.h:140
 AliTOFv6T0.h:141
 AliTOFv6T0.h:142
 AliTOFv6T0.h:143
 AliTOFv6T0.h:144
 AliTOFv6T0.h:145
 AliTOFv6T0.h:146
 AliTOFv6T0.h:147
 AliTOFv6T0.h:148
 AliTOFv6T0.h:149
 AliTOFv6T0.h:150