]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - VZERO/AliVZEROCalibData.cxx
correct matrix for the maximization method
[u/mrichter/AliRoot.git] / VZERO / AliVZEROCalibData.cxx
index b84c5c74daa8619feeb88be65b8730a657b317f1..078e10d98da3e2abc366610c016853d3823d793c 100644 (file)
@@ -243,6 +243,8 @@ void AliVZEROCalibData::SetParameter(TString name, Int_t val){
        else if(name.Contains("DelayHit")) SetTimeOffset(0.01*(Float_t)val,iBoard,(iChannel-1));
        else if(name.Contains("DiscriThr")) SetDiscriThr(((Float_t)val-2040.)/112.,iBoard,(iChannel-1));
        else AliError(Form("No Setter found for FEE parameter : %s",name.Data()));
+       //
+       delete nameSplit;
 }
 
 //________________________________________________________________
@@ -331,6 +333,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)
 {