speed up with binary search
[u/mrichter/AliRoot.git] / PMD / AliPMDv2008.h
1 #ifndef ALIPMDV2008_H
2 #define ALIPMDV2008_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliPMDv1.h 15401 2006-10-18 18:49:59Z bnandi $ */
7 // Rectangular geometry - Bedanga Mohanty - Spetember 2003
8
9 ////////////////////////////////////////////////
10 //  Manager and hits classes for set:PMD      //
11 ////////////////////////////////////////////////
12  
13 #include "AliPMD.h"
14 #include "TGeoManager.h"
15 //___________________________________________
16  
17 class AliPMDv2008 : public AliPMD {
18   
19 public:
20   AliPMDv2008();
21   AliPMDv2008(const char *name, const char *title);
22   virtual      ~AliPMDv2008() {}
23   virtual void  CreateGeometry();
24   virtual void  CreatePMD();
25   virtual void  CreateSupermodule();
26   virtual void  GetParameters();
27   virtual void  CreateMaterials();
28   virtual void  Init();
29   virtual Int_t IsVersion() const {return 1;}
30   virtual void  StepManager();
31   virtual void  AddAlignableVolumes() const;
32   void          SetSectorAlignable() const;
33
34 private:
35
36   static const Int_t   fgkNcolUM1;  // Number of cols in UM, type 1
37   static const Int_t   fgkNcolUM2;  // Number of cols in UM, type 2
38   static const Int_t   fgkNrowUM1;  // Number of rows in UM, type 1
39   static const Int_t   fgkNrowUM2;  // Number of rows in UM, type 2
40   static const Float_t fgkCellRadius;    // Radius of a hexagonal cell
41   static const Float_t fgkCellWall;      // Thickness of cell Wall
42   static const Float_t fgkCellDepth;     // Gas thickness
43   static const Float_t fgkThBKP;      // Thickness of Back plane
44   static const Float_t fgkThBase;        // Thickness of Base plate
45   static const Float_t fgkThAir;         // Thickness of Air
46   static const Float_t fgkThPCB;         // Thickness of PCB
47   static const Float_t fgkThLead;        // Thickness of Pb
48   static const Float_t fgkThSteel;       // Thickness of Steel
49   static const Float_t fgkGap;           // Air Gap
50   static const Float_t fgkZdist;         // z-position of the detector
51   static const Float_t fgkSqroot3;       // Square Root of 3
52   static const Float_t fgkSqroot3by2;    // Square Root of 3 by 2
53   static const Float_t fgkSSBoundary;
54   static const Float_t fgkThSS ;
55   static const Float_t fgkThG10 ;
56
57
58   Float_t fSMthick;     // Thickness of the supermodule
59   Float_t fDthick;     // Thickness of the pre/veto module
60   Float_t fSMLengthax;  // Supermodule length along X, type A
61   Float_t fSMLengthay;  // Supermodule length along Y, type A
62   Float_t fSMLengthbx;  // Supermodule length along X, type B
63   Float_t fSMLengthby;  // Supermodule length along Y, type A
64   Int_t   fMedSens;     // Sensitive Medium Ar+CO2
65   Float_t fDboxmm1[3];  // Master MODULE EMPA of aluminum for PMD
66   Float_t fDboxmm12[3]; // Master MODULE EMCA of aluminum for CPV
67   Float_t fDboxmm2[3];  // Master MODULE EMPB of aluminum for PMD
68   Float_t fDboxmm22[3]; // Master MODULE EMCB of aluminum for CPV
69  
70   ClassDef(AliPMDv2008,0)     //Hits manager for set:PMD
71 };
72  
73 #endif