New helper method in order to calculate the required HVs in order to obtain certain...
authorcvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 1 Nov 2011 12:33:59 +0000 (12:33 +0000)
committercvetan <cvetan@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 1 Nov 2011 12:33:59 +0000 (12:33 +0000)
VZERO/AliVZEROCalibData.cxx
VZERO/AliVZEROCalibData.h

index b84c5c7..ec315e2 100644 (file)
@@ -331,6 +331,20 @@ Float_t AliVZEROCalibData::GetMIPperADC(Int_t channel) {
        
 }
 
+//_____________________________________________________________________________
+Float_t AliVZEROCalibData::GetHV(Int_t channel, Float_t adcPerMip) {
+       
+  // Computes the HV value for certain ADC per MIP value
+  // Arguments passed is the PM number (aliroot numbering) and
+  // required value of ADC per MIP
+  if (!fPMGainsA) InitPMGains();
+
+  if (adcPerMip <= 0) return 0;
+  Float_t nPhPerMIP = (channel < 32) ? 6950 : 33690;
+  Float_t gain = adcPerMip/(nPhPerMIP*GetLightYields(channel)*0.18*TMath::Qe())*kChargePerADC;
+  return TMath::Exp((TMath::Log(gain)-fPMGainsA[channel])/fPMGainsB[channel]);
+}
+
 //________________________________________________________________
 Float_t AliVZEROCalibData::GetGain(Int_t channel)
 {
index c267c7c..38472de 100644 (file)
@@ -105,6 +105,7 @@ class AliVZEROCalibData: public TNamed {
   void     SetDiscriThr(const Float_t* thresholds);
 
   Float_t  GetMIPperADC(Int_t channel);
+  Float_t  GetHV(Int_t channel, Float_t adcPerMip);
 
   static Int_t GetOfflineChannelNumber(Int_t board, Int_t channel);
   static Int_t GetBoardNumber(Int_t channel);