Line data Source code
1 : #ifndef ALIZDCV5_H
2 : #define ALIZDCV5_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : ////////////////////////////////////////////////
7 : // Manager and hits classes for set: ZDC //
8 : ////////////////////////////////////////////////
9 :
10 : #include "AliZDC.h"
11 :
12 : //____________________________________________________________________________
13 : class AliZDCv5 : public AliZDC {
14 :
15 : public:
16 : AliZDCv5();
17 : AliZDCv5(const char *name, const char *title);
18 0 : virtual ~AliZDCv5() {}
19 : virtual void CreateGeometry();
20 : virtual void CreateBeamLine();
21 : virtual void CreateZDC();
22 : virtual void CreateMaterials();
23 0 : virtual Int_t IsVersion() const {return 1;}
24 : virtual void AddAlignableVolumes() const;
25 : virtual void Init();
26 : virtual void InitTables();
27 : virtual void StepManager();
28 :
29 : void SetVCollSideCAperture(Float_t aperture)
30 0 : {if(aperture<3.5) fVCollSideCAperture = aperture;
31 0 : else printf("\n\n AliZDCv5: WARNING! SideC TCTVB aperture set to max. value: 3.5 cm\n\n");}
32 : void SetVCollSideCApertureNeg(Float_t aperture)
33 0 : {if(aperture<3.5) fVCollSideCApertureNeg = aperture;
34 0 : else printf("\n\n AliZDCv5: WARNING! SideC TCTVB aperture set to max. value: -3.5 cm\n\n");}
35 0 : void SetVCollSideCCentre(Float_t centre) {fVCollSideCCentreY = centre;}
36 :
37 : virtual void SetTCDDAperturePos(Float_t aperture)
38 0 : {if(aperture<=2.2) fTCDDAperturePos = aperture;
39 0 : else printf("\n\n AliZDCv5: WARNING! TCDD pos. aperture set to max. value: 2.0 cm\n\n");}
40 : virtual void SetTCDDApertureNeg(Float_t aperture)
41 0 : {if(aperture<=2.4) fTCDDApertureNeg = aperture;
42 0 : else printf("\n\n AliZDCv5: WARNING! TCDD neg. aperture set to max. value: -2.0 cm\n\n");}
43 :
44 :
45 : virtual void SetTDIAperturePos(Float_t aperture)
46 0 : {if(aperture<=6.) fTDIAperturePos = aperture;
47 0 : else printf("\n\n AliZDCv5: WARNING! TDI pos. aperture set to max. value: 5.5 cm\n\n");}
48 : virtual void SetTDIApertureNeg(Float_t aperture)
49 0 : {if(aperture<=6.) fTDIApertureNeg = aperture;
50 0 : else printf("\n\n AliZDCv5: WARNING! TDI neg. aperture set to max. value: -5.5 cm\n\n");}
51 : virtual void SetTDIConfiguration(Int_t configuration)
52 0 : {if(fTDIConfiguration>=0 && fTDIConfiguration<=2) fTDIConfiguration=configuration;
53 0 : else printf("\n\n AliZDCv5: WARNING! TDI invalid configuration -> setting to 2\n\n");}
54 :
55 0 : void SetLumiLength(Float_t length) {fLumiLength = length;}
56 :
57 0 : void SetYZNC(Float_t yZNC) {fPosZNC[1] = yZNC;}
58 0 : void SetYZNA(Float_t yZNA) {fPosZNA[1] = yZNA;}
59 :
60 0 : void SetYZPC(Float_t yZPC) {fPosZPC[1] = yZPC;}
61 0 : void SetYZPA(Float_t yZPA) {fPosZPA[1] = yZPA;}
62 :
63 0 : void SetSwitchOnTrackreferences() {fSwitchOnTrackRef = kTRUE;}
64 :
65 : protected:
66 :
67 : // Sensitive media
68 : Int_t fMedSensF1; // Sensitive medium F1
69 : Int_t fMedSensF2; // Sensitive medium F2
70 : Int_t fMedSensZP; // Sensitive medium for ZP
71 : Int_t fMedSensZN; // Sensitive medium for ZN
72 : Int_t fMedSensZEM; // Sensitive medium for EM ZDC
73 : Int_t fMedSensGR; // Other sensitive medium
74 : Int_t fMedSensPI; // Beam pipe and magnet coils
75 : Int_t fMedSensTDI; // Cu materials along beam pipe
76 : Int_t fMedSensVColl; // W jaws of vertical collimators
77 : Int_t fMedSensLumi; // luminometer medium
78 :
79 : // Parameters for light tables
80 : Int_t fNalfan; // Number of Alfa (neutrons)
81 : Int_t fNalfap; // Number of Alfa (protons)
82 : Int_t fNben; // Number of beta (neutrons)
83 : Int_t fNbep; // Number of beta (protons)
84 : Float_t fTablen[4][90][18]; // Neutrons light table
85 : Float_t fTablep[4][90][28]; // Protons light table
86 :
87 : // Parameters for hadronic calorimeters geometry
88 : // NB -> parameters used in CreateZDC() and in StepManager()
89 : // (other parameters are defined in CreateZDC())
90 : Float_t fDimZN[3]; // Dimensions of proton detector
91 : Float_t fDimZP[3]; // Dimensions of proton detector
92 : Float_t fPosZNC[3]; // Position of neutron detector side C
93 : Float_t fPosZNA[3]; // Position of neutron detector side A
94 : Float_t fPosZPC[3]; // Position of proton detector side C
95 : Float_t fPosZPA[3]; // Position of proton detector side A
96 : Float_t fFibZN[3]; // Fibers for neutron detector
97 : Float_t fFibZP[3]; // Fibers for proton detector
98 :
99 : // Parameters for EM calorimeter geometry
100 : // NB -> parameters used in CreateZDC() and in StepManager()
101 : // (other parameters are defined in CreateZDC())
102 : Float_t fPosZEM[3]; // Position of EM detector
103 : Float_t fZEMLength; // ZEM length
104 :
105 : // Parameters for proton accepancy studies
106 : Int_t fpLostITC, fpLostD1C, fpcVCollC, fpDetectedC, fnDetectedC; // Side C
107 : Int_t fpLostITA, fpLostD1A, fpLostTDI, fpcVCollA, fpDetectedA, fnDetectedA; // Side A
108 :
109 : // Apertures to describe beam line elements variable apertures
110 :
111 : // Vertical collimator
112 : Float_t fVCollSideCAperture; // Semi-aperture of TCTVB jaws pos. y dir.
113 : Float_t fVCollSideCApertureNeg; // Semi-aperture of TCTVB jaws neg. y dir (abs. value)
114 : Float_t fVCollSideCCentreY; // Centre of TCTVB jaw apertures
115 :
116 : // TCDD
117 : Float_t fTCDDAperturePos; // TCDD semi-aperture pos. y dir.
118 : Float_t fTCDDApertureNeg; // TCDD semi-aperture neg. y dir. (abs. value)
119 :
120 : // TDI
121 : Float_t fTDIAperturePos; // TDI jaw semi-aperture pos. y dir.
122 : Float_t fTDIApertureNeg; // TDI jaw semi-aperture neg. y dir. (abs. value)
123 : //
124 : Int_t fTDIConfiguration; // choose TDI design
125 :
126 : Float_t fLumiLength; // Luminometer length
127 : Bool_t fSwitchOnTrackRef; // to switch on/off storing of track references
128 :
129 12 : ClassDef(AliZDCv5, 2) // Zero Degree Calorimeter version 1
130 : };
131 :
132 : #endif
|