Changeset 3125 for trunk


Ignore:
Timestamp:
02/12/04 19:56:16 (21 years ago)
Author:
gaug
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r3124 r3125  
    3333       variable: MCalibrationCalc::fBlindPixelSinglePheCut, to be set
    3434       with a setter
     35
     36   * mtools/MFFT.[h,cc]
     37     - PowerSpectrumDensity of TArrayI implemented
    3538
    3639
  • trunk/MagicSoft/Mars/mcalib/MHCalibrationBlindPixel.cc

    r3120 r3125  
    687687{
    688688 
     689  *fLog << err << "min: " << min << endl;
     690  *fLog << err << "max: " << max << endl; 
     691
    689692  //
    690693  // First guesses for the fit (should be as close to reality as possible,
     
    692695  //
    693696  const Stat_t   entries      = fHBlindPixelCharge->Integral("width");
    694   const Double_t lambda_guess = 0.5;
     697  const Double_t lambda_guess = 0.1;
    695698  const Double_t maximum_bin  = fHBlindPixelCharge->GetBinCenter(fHBlindPixelCharge->GetMaximumBin());
    696699  const Double_t norm         = entries/gkSq2Pi;
     
    740743  const Double_t electronicAmp_limit  = fgBlindPixelElectronicAmpError;
    741744
     745  *fLog << err << "pedestal: " << fMeanPedestal << endl;
     746  *fLog << err << "sigma: "    << fSigmaPedestal << endl; 
     747
    742748  //
    743749  // Initialize boundaries and start parameters
     
    754760      fSinglePheFit->SetParNames("#lambda","#mu_{0}","#mu_{1}","#sigma_{0}","#sigma_{1}","Area");
    755761
    756       fSinglePheFit->SetParLimits(0,0.,1.);
     762      fSinglePheFit->SetParLimits(0,0.,0.5);
    757763
    758764      if ((fMeanPedestal) && (fSigmaPedestal))
    759765        fSinglePheFit->SetParLimits(1,
    760                                     fMeanPedestal-1.*fMeanPedestalErr,
    761                                     fMeanPedestal+1.*fMeanPedestalErr);
     766                                    fMeanPedestal-5.*fMeanPedestalErr,
     767                                    fMeanPedestal+5.*fMeanPedestalErr);
    762768      else
    763769        fSinglePheFit->SetParLimits(1,-3.,0.);
    764770
    765       fSinglePheFit->SetParLimits(2,(max-min)/2.,max);
     771      fSinglePheFit->SetParLimits(2,min,max);
    766772
    767773      if ((fMeanPedestal) && (fSigmaPedestal))
    768774        fSinglePheFit->SetParLimits(3,
    769                                     fSigmaPedestal-3.*fSigmaPedestalErr,
    770                                     fSigmaPedestal+3.*fSigmaPedestalErr);
     775                                    fSigmaPedestal-5.*fSigmaPedestalErr,
     776                                    fSigmaPedestal+5.*fSigmaPedestalErr);
    771777      else
    772778        fSinglePheFit->SetParLimits(3,1.0,(max-min)/2.0);
    773779
    774       fSinglePheFit->SetParLimits(4,1.0,(max-min));
    775       fSinglePheFit->SetParLimits(5,norm-0.5,norm+0.5);
     780      fSinglePheFit->SetParLimits(4,0.,(max-min));
     781      fSinglePheFit->SetParLimits(5,norm-(0.5*norm),norm+(0.5*norm));
    776782      break;
    777783    case kEPoisson5:
     
    894900  rmin = (rmin != 0.) ? rmin : fBlindPixelChargefirst;
    895901  rmax = (rmax != 0.) ? rmax : fBlindPixelChargelast;
    896 
    897902  if (!InitFit(rmin,rmax))
    898903    return kFALSE;
     
    956961{
    957962
    958   Int_t nbins = 30;
     963  Int_t nbins = 25;
    959964
    960965  CutEdges(fHBlindPixelCharge,nbins);
     
    10021007
    10031008}
     1009
  • trunk/MagicSoft/Mars/mtools/MFFT.cc

    r3084 r3125  
    700700
    701701
     702//
     703// Power Spectrum Density calculation for TArrayI
     704//
     705TArrayF* MFFT::PowerSpectrumDensity(const TArrayI *array)
     706{
     707
     708  fDim = array->GetSize();
     709  CheckDim(fDim);
     710
     711  fDataF.Set(fDim);
     712  //
     713  // Copy the hist into an array
     714  //
     715  for (Int_t i=0;i<fDim;i++)
     716    fDataF[i] = (Float_t)array->At(i);
     717
     718  RealFTF(1);
     719
     720  const Int_t dim2  = fDim*fDim;
     721  const Int_t dim05 = fDim/2;
     722  Float_t c02;
     723  Float_t ck2;
     724  Float_t cn2;
     725 
     726  TArrayF *newarray = new TArrayF(dim05);
     727
     728  //
     729  // Fill the new histogram:
     730  //
     731  // 1) P(0) = 1/(N*N) |C(0)|*|C(0)|
     732  //
     733  c02 = (fDataF[0]*fDataF[0]);
     734  //  newarray->AddAt(c02/dim2,0);
     735  //
     736  // 2) P(k) = 1/(N*N) (|C(k)|*|C(k)|))
     737  //
     738  for (Int_t k=1;k<dim05-1;k++)
     739    {
     740      const Int_t k2 = k+k;
     741      ck2 = (fDataF[k2]*fDataF[k2] + fDataF[k2+1]*fDataF[k2+1]);
     742      newarray->AddAt(ck2/dim2,k);
     743    }
     744  //
     745  // 3) P(N) = 1/(N*N) (|C(n/2)|*|C(n/2)|)
     746  //
     747  cn2 = (fDataF[1]*fDataF[1]);
     748  //  newarray->AddAt(cn2,dim05-1);
     749 
     750  return newarray;
     751}
     752
     753
    702754TArrayD* MFFT::PowerSpectrumDensity(const TArrayD *array)
    703755{
  • trunk/MagicSoft/Mars/mtools/MFFT.h

    r3084 r3125  
    7474  TH1D* PowerSpectrumDensity(const TH1D *hist);
    7575
     76  TArrayF* PowerSpectrumDensity(const TArrayI *array); 
    7677  TArrayF* PowerSpectrumDensity(const TArrayF *array);
    7778  TArrayD* PowerSpectrumDensity(const TArrayD *array);
Note: See TracChangeset for help on using the changeset viewer.