ROOT logo
#ifndef ALIZDCV4_H
#define ALIZDCV4_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 AliZDCv4 : public AliZDC {

public:
  AliZDCv4();
  AliZDCv4(const char *name, const char *title);
  virtual  ~AliZDCv4() {}
  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 AliZDCv4: 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 AliZDCv4: WARNING! SideC TCTVB aperture set to max. value: -3.5 cm\n\n");}
  void SetVCollSideCCentre(Float_t centre) {fVCollSideCCentreY = centre;}
  
  virtual void SetTCDDAperturePos(Float_t aperture) 
  	{if(aperture<=2.2) fTCDDAperturePos = aperture;
	 else printf("\n\n AliZDCv4: 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 AliZDCv4: 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 AliZDCv4: 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 AliZDCv4: 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
  
  // 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(AliZDCv4, 1)  // Zero Degree Calorimeter version 1
}; 
 
#endif
 AliZDCv4.h:1
 AliZDCv4.h:2
 AliZDCv4.h:3
 AliZDCv4.h:4
 AliZDCv4.h:5
 AliZDCv4.h:6
 AliZDCv4.h:7
 AliZDCv4.h:8
 AliZDCv4.h:9
 AliZDCv4.h:10
 AliZDCv4.h:11
 AliZDCv4.h:12
 AliZDCv4.h:13
 AliZDCv4.h:14
 AliZDCv4.h:15
 AliZDCv4.h:16
 AliZDCv4.h:17
 AliZDCv4.h:18
 AliZDCv4.h:19
 AliZDCv4.h:20
 AliZDCv4.h:21
 AliZDCv4.h:22
 AliZDCv4.h:23
 AliZDCv4.h:24
 AliZDCv4.h:25
 AliZDCv4.h:26
 AliZDCv4.h:27
 AliZDCv4.h:28
 AliZDCv4.h:29
 AliZDCv4.h:30
 AliZDCv4.h:31
 AliZDCv4.h:32
 AliZDCv4.h:33
 AliZDCv4.h:34
 AliZDCv4.h:35
 AliZDCv4.h:36
 AliZDCv4.h:37
 AliZDCv4.h:38
 AliZDCv4.h:39
 AliZDCv4.h:40
 AliZDCv4.h:41
 AliZDCv4.h:42
 AliZDCv4.h:43
 AliZDCv4.h:44
 AliZDCv4.h:45
 AliZDCv4.h:46
 AliZDCv4.h:47
 AliZDCv4.h:48
 AliZDCv4.h:49
 AliZDCv4.h:50
 AliZDCv4.h:51
 AliZDCv4.h:52
 AliZDCv4.h:53
 AliZDCv4.h:54
 AliZDCv4.h:55
 AliZDCv4.h:56
 AliZDCv4.h:57
 AliZDCv4.h:58
 AliZDCv4.h:59
 AliZDCv4.h:60
 AliZDCv4.h:61
 AliZDCv4.h:62
 AliZDCv4.h:63
 AliZDCv4.h:64
 AliZDCv4.h:65
 AliZDCv4.h:66
 AliZDCv4.h:67
 AliZDCv4.h:68
 AliZDCv4.h:69
 AliZDCv4.h:70
 AliZDCv4.h:71
 AliZDCv4.h:72
 AliZDCv4.h:73
 AliZDCv4.h:74
 AliZDCv4.h:75
 AliZDCv4.h:76
 AliZDCv4.h:77
 AliZDCv4.h:78
 AliZDCv4.h:79
 AliZDCv4.h:80
 AliZDCv4.h:81
 AliZDCv4.h:82
 AliZDCv4.h:83
 AliZDCv4.h:84
 AliZDCv4.h:85
 AliZDCv4.h:86
 AliZDCv4.h:87
 AliZDCv4.h:88
 AliZDCv4.h:89
 AliZDCv4.h:90
 AliZDCv4.h:91
 AliZDCv4.h:92
 AliZDCv4.h:93
 AliZDCv4.h:94
 AliZDCv4.h:95
 AliZDCv4.h:96
 AliZDCv4.h:97
 AliZDCv4.h:98
 AliZDCv4.h:99
 AliZDCv4.h:100
 AliZDCv4.h:101
 AliZDCv4.h:102
 AliZDCv4.h:103
 AliZDCv4.h:104
 AliZDCv4.h:105
 AliZDCv4.h:106
 AliZDCv4.h:107
 AliZDCv4.h:108
 AliZDCv4.h:109
 AliZDCv4.h:110
 AliZDCv4.h:111
 AliZDCv4.h:112
 AliZDCv4.h:113
 AliZDCv4.h:114
 AliZDCv4.h:115
 AliZDCv4.h:116
 AliZDCv4.h:117
 AliZDCv4.h:118
 AliZDCv4.h:119
 AliZDCv4.h:120
 AliZDCv4.h:121
 AliZDCv4.h:122
 AliZDCv4.h:123
 AliZDCv4.h:124
 AliZDCv4.h:125