]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PHOS/AliPHOSv2.h
Correct GetWire check on even/odd fnWires
[u/mrichter/AliRoot.git] / PHOS / AliPHOSv2.h
CommitLineData
fe4da5cc 1#ifndef ALIPHOS_H
2#define ALIPHOS_H
3da30618 3/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * See cxx source for full Copyright notice */
5
6/* $Id$ */
7
fe4da5cc 8////////////////////////////////////////////////
9// Manager and hits classes for PHOS //
10// Version 2 //
11// Author M. Volkov, RRC KI //
12////////////////////////////////////////////////
13
14// --- ROOT system ---
15#include <TArray.h>
16#include <TRandom.h>
17
18// --- galice header files ---
19#include "AliDetector.h"
20#include "AliHit.h"
21
22class AliPHOSv2 : public AliDetector{
23
24protected:
25 Float_t fXtlSize[3]; // PWO crystal dimensions
26 Float_t fWrapThickness; // Thickness of Tyvek wrapper
27 Float_t fPINSize[3]; // PIN diode dimensions
28 Float_t fCPVThickness; // CPV thickness
29 Float_t fPHOSFoam[3]; // Outer foam cover dimensions
30 Float_t fPHOStxwall[3]; // Textolit box dimensions
31 Float_t fPHOSAir[3]; // Inner air filled volume dimensions
32 Float_t fRadius[2]; // Distances from IP to outer cover and to Xtal surface
33 Float_t fPHOSextra[10]; // Assorted geometrical parameters
34 Float_t fNphi; // Number of crystal units in X (phi) direction
35 Float_t fNz; // Number of crystal units in Z direction
36 Float_t fNModules; // Number of modules constituing PHOS
37 Float_t fPHOSAngle[4]; // Position angles of modules
38
39public:
40 AliPHOSv2(void);
41 AliPHOSv2(const char *name, const char *title="");
42 virtual ~AliPHOSv2(void);
43
44 virtual Int_t IsVersion(void) const {return 2;}
45
46 virtual void DefPars(void);
47
48 virtual void BuildGeometry(void);
49 virtual void CreateGeometry(void);
50 virtual void CreateMaterials(void);
51
52 virtual void Init(void);
53
54 virtual void StepManager(void);
55
56 virtual void AddHit(Int_t track, Int_t *vol, Float_t *hits);
57
58 virtual Float_t GetCrystalSize(Int_t n) const {return fXtlSize[n];}
59 virtual Float_t GetWrapThickness(void) const {return fWrapThickness;}
60 virtual Float_t GetPINSize(Int_t n) const {return fPINSize[n];}
61 virtual Float_t GetCPVThickness(void) const {return fCPVThickness;}
62 virtual Float_t GetPHOSFoam(Int_t n) const {return fPHOSFoam[n];}
63 virtual Float_t GetPHOStxwall(Int_t n) const {return fPHOStxwall[n];}
64 virtual Float_t GetPHOSAir(Int_t n) const {return fPHOSAir[n];}
65 virtual Float_t GetRadius(Int_t n) const {return fRadius[n];}
66 virtual Float_t GetPHOSextra(Int_t n) const {return fPHOSextra[n];}
67 virtual Float_t GetNphi(void) const {return fNphi;}
68 virtual Float_t GetNz(void) const {return fNz;}
69 virtual Float_t GetNModules(void) const {return fNModules;}
70 virtual Float_t &GetModuleAngle(Int_t n) {return fPHOSAngle[n];}
71
72ClassDef(AliPHOSv2,1) // Hits manager for PHOS, version 2
73
74};
75
76//////////////////////////////////////////////////////////////////////////////
77
78class AliPHOShitv2 : public AliHit{
79
80protected:
81 Int_t fVolume[4]; //array of volumes. This is not GEANT NUMBV(), it is (BOX,LAYER,ROW,COLUMN) array.
82 Float_t fELOS; //Energy deposited
83
84public:
85 AliPHOShitv2(void) {;}
86 AliPHOShitv2(Int_t shunt, Int_t track, Int_t *vol, Float_t *hits);
87 AliPHOShitv2(AliPHOShitv2 const &rValue){*this=rValue;}
88 virtual ~AliPHOShitv2(void) {;}
89
90 Int_t GetVolume(Int_t i) const {return fVolume[i];}
91 Float_t GetEnergy(void) const {return fELOS;}
92
93 Bool_t operator==(AliPHOShitv2 const &rValue) const;
94 AliPHOShitv2 const operator+(AliPHOShitv2 const &rValue) const;
95
96ClassDef(AliPHOShitv2,1) // Hits object for PHOS
97
98};
99
100//////////////////////////////////////////////////////////////////////////////
101
102#endif //#ifndef ALIPHOS_H