Remove first corrector dipole and introduce digitization
[u/mrichter/AliRoot.git] / ZDC / AliZDCv1.h
index cf6b63ee727046424363312b69e86ba021b3942b..ea3d9dc6158963d2d4aae084b8c0a865b6d63a48 100644 (file)
@@ -22,30 +22,64 @@ public:
   virtual void  CreateBeamLine();
   virtual void  CreateZDC();
   virtual void  CreateMaterials();
+  Int_t         Digitize(Int_t Det, Int_t Quad, Int_t Light);
+  virtual void  FinishEvent();
+  virtual void  MakeBranch(Option_t* opt);
   virtual Int_t IsVersion() const {return 1;}
   virtual void  DrawModule();
   virtual void  Init();
   virtual void  InitTables();
   virtual void  StepManager();
-  void  NoShower(){fNoShower=1;};
-  void  Shower()  {fNoShower=0;};
+  
+  // Switching off the shower development in ZDCs
+  void  NoShower(){fNoShower=1;}
+  void  Shower()  {fNoShower=0;}
+  
+  // Digitization parameters setters and getters
+
+  // ADC pedestal mean value
+  void SetPedMean(Int_t Det, Int_t PMDet, Int_t PedMean)
+       {fPedMean[Det][PMDet] = PedMean;}
+  Float_t GetPedMean(Int_t Det, Int_t PMDet)
+       {return fPedMean[Det][PMDet];} 
+  // ADC pedestal width
+  void SetPedSigma(Int_t Det, Int_t PMDet, Int_t PedSigma)
+       {fPedSigma[Det][PMDet] = PedSigma;}
+  Float_t GetPedSigma(Int_t Det, Int_t PMDet)
+       {return fPedSigma[Det][PMDet];}
+  // PM gain
+  void SetPMGain(Int_t Det, Int_t PMDet, Int_t PMGain)
+       {fPMGain[Det][PMDet] = PMGain;}
+  Float_t GetPMGain(Int_t Det, Int_t PMDet)
+       {return fPMGain[Det][PMDet];}
+  // Conversion factor from charge to ADC channels
+  //   F = 1.6E-19 / Resolution [Coulomb/ch]
+  void SetADCRes(Int_t ADCRes) {fADCRes =  ADCRes;}
+  Float_t GetADCRes() {return fADCRes;}
  
 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
-  //Parameter 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];  // Table neutrons
-  Float_t fTablep[4][90][28];  // Table protons
+  // 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
+  
+  // 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 conversion of light yield in ADC channels
+  Float_t fPedMean[3][5];     // ADC pedestal mean value
+  Float_t fPedSigma[3][5];    // ADC pedestal width
+  Float_t fPMGain[3][5];      // PM gain
+  Float_t fADCRes;            // ADC conversion factor
 
 public:
   //Flag for fast simulation (no shower)