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

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

#include "AliZDC.h"

//____________________________________________________________________________ 
class AliZDCv3 : public AliZDC {

public:
  AliZDCv3();
  AliZDCv3(const char *name, const char *title);
  virtual  ~AliZDCv3() {}
  virtual void  CreateGeometry();
  virtual void  CreateBeamLine();
  virtual void  CreateZDC();
  virtual void  CreateMaterials();
  virtual Int_t IsVersion() const {return 1;}
  virtual void  AddAlignableVolumes() const;
  virtual void  Init();
  virtual void  InitTables();
  virtual void  StepManager();
  
  void SetVCollSideCAperture(Float_t aperture)
  	{if(aperture<3.5) fVCollSideCAperture = aperture; 
	 else printf("\n\n AliZDCv3: WARNING! SideC TCTVB aperture set to max. value: 3.5 cm\n\n");}
  void SetVCollSideCApertureNeg(Float_t aperture)
  	{if(aperture<3.5) fVCollSideCApertureNeg = aperture; 
	 else printf("\n\n AliZDCv3: WARNING! SideC TCTVB aperture set to max. value: -3.5 cm\n\n");}
  void SetVCollSideCCentre(Float_t centre) {fVCollSideCCentreY = centre;}
  
  void SetVCollSideAAperture(Float_t aperture)
  	{if(aperture<=3.5) fVCollSideAAperture = aperture; 
	 else printf("\n\n AliZDCv3: WARNING! SideA TCTVB aperture set to max. value: 3.5 cm\n\n");}
  void SetVCollSideAApertureNeg(Float_t aperture)
  	{if(aperture<=3.5) fVCollSideAApertureNeg = aperture; 
	 else printf("\n\n AliZDCv3: WARNING! SideA TCTVB aperture set to max. value: -3.5 cm\n\n");}
  void SetVCollSideACentre(Float_t centre) {fVCollSideACentreY = centre;}
  
  virtual void SetTCDDAperturePos(Float_t aperture) 
  	{if(aperture<=2.2) fTCDDAperturePos = aperture;
	 else printf("\n\n AliZDCv3: WARNING! TCDD pos. aperture set to max. value: 2.0 cm\n\n");}
  virtual void SetTCDDApertureNeg(Float_t aperture) 
    	{if(aperture<=2.4) fTCDDApertureNeg = aperture;
	 else printf("\n\n AliZDCv3: WARNING! TCDD neg. aperture set to max. value: -2.2 cm\n\n");}

  
  virtual void SetTDIAperturePos(Float_t aperture) 
  	{if(aperture<=6.) fTDIAperturePos = aperture;
	 else printf("\n\n AliZDCv3: WARNING! TDI pos. aperture set to max. value: 6.0 cm\n\n");}
  virtual void SetTDIApertureNeg(Float_t aperture) 
  	{if(aperture<=6.) fTDIApertureNeg = aperture;
	 else printf("\n\n AliZDCv3: WARNING! TDI neg. aperture set to max. value: -6.0 cm\n\n");}
  
  void SetLumiLength(Float_t length) {fLumiLength = length;}
  
  void SetYZNC(Float_t yZNC) {fPosZNC[1] = yZNC;}
  void SetYZNA(Float_t yZNA) {fPosZNA[1] = yZNA;}
  
  void SetYZPC(Float_t yZPC) {fPosZPC[1] = yZPC;}
  void SetYZPA(Float_t yZPA) {fPosZPA[1] = yZPA;}
  
 
protected:

  // Sensitive media
  Int_t   fMedSensF1;         // Sensitive medium F1
  Int_t   fMedSensF2;         // Sensitive medium F2
  Int_t   fMedSensZP;         // Sensitive medium for ZP
  Int_t   fMedSensZN;         // Sensitive medium for ZN
  Int_t   fMedSensZEM;        // Sensitive medium for EM ZDC
  Int_t   fMedSensGR;         // Other sensitive medium
  Int_t   fMedSensPI;         // Beam pipe and magnet coils
  Int_t   fMedSensTDI;        // Cu materials along beam pipe
  Int_t   fMedSensVColl;      // W jaws of vertical collimators
  Int_t   fMedSensLumi;       // luminometer medium
  
  // Parameters for light tables
  Int_t   fNalfan;	      // Number of Alfa (neutrons)
  Int_t   fNalfap;	      // Number of Alfa (protons)
  Int_t   fNben;	      // Number of beta (neutrons)
  Int_t   fNbep;	      // Number of beta (protons)
  Float_t fTablen[4][90][18]; // Neutrons light table
  Float_t fTablep[4][90][28]; // Protons light table

  // Parameters for hadronic calorimeters geometry
  // NB -> parameters used in CreateZDC() and in StepManager()
  // (other parameters are defined in CreateZDC())
  Float_t fDimZN[3];	// Dimensions of proton detector
  Float_t fDimZP[3];	// Dimensions of proton detector
  Float_t fPosZNC[3];   // Position of neutron detector side C
  Float_t fPosZNA[3];   // Position of neutron detector side A  
  Float_t fPosZPC[3]; 	// Position of proton detector side C
  Float_t fPosZPA[3]; 	// Position of proton detector side A
  Float_t fFibZN[3]; 	// Fibers for neutron detector
  Float_t fFibZP[3];  	// Fibers for proton detector

  // Parameters for EM calorimeter geometry
  // NB -> parameters used in CreateZDC() and in StepManager()
  // (other parameters are defined in CreateZDC())
  Float_t fPosZEM[3]; // Position of EM detector
  Float_t fZEMLength; // ZEM length
  
  // Parameters for proton accepancy studies
  Int_t fpLostITC, fpLostD1C, fpcVCollC, fpDetectedC, fnDetectedC; // Side C
  Int_t fpLostITA, fpLostD1A, fpLostTDI, fpcVCollA, fpDetectedA, fnDetectedA; // Side A
  
  // Apertures to describe beam line elements variable apertures
  
  // Vertical collimator
  Float_t fVCollSideCAperture;    // Semi-aperture of TCTVB jaws pos. y dir.
  Float_t fVCollSideCApertureNeg; // Semi-aperture of TCTVB jaws neg. y dir (abs. value)
  Float_t fVCollSideCCentreY;     // Centre of TCTVB jaw apertures
  Float_t fVCollSideAAperture;    // Semi-aperture of TCTVB jaws pos. y dir.
  Float_t fVCollSideAApertureNeg; // Semi-aperture of TCTVB jaws neg. y dir. (abs. value)
  Float_t fVCollSideACentreY;     // Centre of TCTVB jaw apertures
  
  // TCDD
  Float_t fTCDDAperturePos;       // TCDD semi-aperture pos. y dir.
  Float_t fTCDDApertureNeg;       // TCDD semi-aperture neg. y dir. (abs. value)
  
  // TDI
  Float_t fTDIAperturePos;	  // TDI semi-aperture pos. y dir.
  Float_t fTDIApertureNeg;	  // TDI semi-aperture  neg. y dir. (abs. value)
  
  Float_t fLumiLength;  // Luminometer length
  
  ClassDef(AliZDCv3,8)  // Zero Degree Calorimeter version 1
}; 
 
#endif
 AliZDCv3.h:1
 AliZDCv3.h:2
 AliZDCv3.h:3
 AliZDCv3.h:4
 AliZDCv3.h:5
 AliZDCv3.h:6
 AliZDCv3.h:7
 AliZDCv3.h:8
 AliZDCv3.h:9
 AliZDCv3.h:10
 AliZDCv3.h:11
 AliZDCv3.h:12
 AliZDCv3.h:13
 AliZDCv3.h:14
 AliZDCv3.h:15
 AliZDCv3.h:16
 AliZDCv3.h:17
 AliZDCv3.h:18
 AliZDCv3.h:19
 AliZDCv3.h:20
 AliZDCv3.h:21
 AliZDCv3.h:22
 AliZDCv3.h:23
 AliZDCv3.h:24
 AliZDCv3.h:25
 AliZDCv3.h:26
 AliZDCv3.h:27
 AliZDCv3.h:28
 AliZDCv3.h:29
 AliZDCv3.h:30
 AliZDCv3.h:31
 AliZDCv3.h:32
 AliZDCv3.h:33
 AliZDCv3.h:34
 AliZDCv3.h:35
 AliZDCv3.h:36
 AliZDCv3.h:37
 AliZDCv3.h:38
 AliZDCv3.h:39
 AliZDCv3.h:40
 AliZDCv3.h:41
 AliZDCv3.h:42
 AliZDCv3.h:43
 AliZDCv3.h:44
 AliZDCv3.h:45
 AliZDCv3.h:46
 AliZDCv3.h:47
 AliZDCv3.h:48
 AliZDCv3.h:49
 AliZDCv3.h:50
 AliZDCv3.h:51
 AliZDCv3.h:52
 AliZDCv3.h:53
 AliZDCv3.h:54
 AliZDCv3.h:55
 AliZDCv3.h:56
 AliZDCv3.h:57
 AliZDCv3.h:58
 AliZDCv3.h:59
 AliZDCv3.h:60
 AliZDCv3.h:61
 AliZDCv3.h:62
 AliZDCv3.h:63
 AliZDCv3.h:64
 AliZDCv3.h:65
 AliZDCv3.h:66
 AliZDCv3.h:67
 AliZDCv3.h:68
 AliZDCv3.h:69
 AliZDCv3.h:70
 AliZDCv3.h:71
 AliZDCv3.h:72
 AliZDCv3.h:73
 AliZDCv3.h:74
 AliZDCv3.h:75
 AliZDCv3.h:76
 AliZDCv3.h:77
 AliZDCv3.h:78
 AliZDCv3.h:79
 AliZDCv3.h:80
 AliZDCv3.h:81
 AliZDCv3.h:82
 AliZDCv3.h:83
 AliZDCv3.h:84
 AliZDCv3.h:85
 AliZDCv3.h:86
 AliZDCv3.h:87
 AliZDCv3.h:88
 AliZDCv3.h:89
 AliZDCv3.h:90
 AliZDCv3.h:91
 AliZDCv3.h:92
 AliZDCv3.h:93
 AliZDCv3.h:94
 AliZDCv3.h:95
 AliZDCv3.h:96
 AliZDCv3.h:97
 AliZDCv3.h:98
 AliZDCv3.h:99
 AliZDCv3.h:100
 AliZDCv3.h:101
 AliZDCv3.h:102
 AliZDCv3.h:103
 AliZDCv3.h:104
 AliZDCv3.h:105
 AliZDCv3.h:106
 AliZDCv3.h:107
 AliZDCv3.h:108
 AliZDCv3.h:109
 AliZDCv3.h:110
 AliZDCv3.h:111
 AliZDCv3.h:112
 AliZDCv3.h:113
 AliZDCv3.h:114
 AliZDCv3.h:115
 AliZDCv3.h:116
 AliZDCv3.h:117
 AliZDCv3.h:118
 AliZDCv3.h:119
 AliZDCv3.h:120
 AliZDCv3.h:121
 AliZDCv3.h:122
 AliZDCv3.h:123
 AliZDCv3.h:124
 AliZDCv3.h:125
 AliZDCv3.h:126
 AliZDCv3.h:127
 AliZDCv3.h:128
 AliZDCv3.h:129
 AliZDCv3.h:130
 AliZDCv3.h:131
 AliZDCv3.h:132
 AliZDCv3.h:133
 AliZDCv3.h:134
 AliZDCv3.h:135
 AliZDCv3.h:136