Ignore:
Timestamp:
10/11/04 17:36:35 (20 years ago)
Author:
gaug
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mpedestal/MPedCalcPedRun.cc

    r5204 r5219  
    190190    fRunHeader = NULL;
    191191    fPedestals = NULL;
     192
     193    // If the size is yet set, set the size
     194    if (fSumx.GetSize()>0)
     195    {
     196        // Reset contents of arrays.
     197        fSumx.Reset();
     198        fSumx2.Reset();
     199        fSumAB0.Reset();
     200        fSumAB1.Reset();
     201
     202        fAreaSumx. Reset();
     203        fAreaSumx2.Reset();
     204        fAreaSumAB0.Reset();
     205        fAreaSumAB1.Reset();
     206        fAreaValid.Reset();
     207       
     208        fSectorSumx. Reset();
     209        fSectorSumx2.Reset();
     210        fSectorSumAB0.Reset();
     211        fSectorSumAB1.Reset();
     212        fSectorValid.Reset();
     213    }
    192214}
    193215
     
    241263    {
    242264        *fLog << warn;
    243         *fLog << GetDescriptor() << ": HiGain window currently set to 0, will set it to 2 samples ";
     265        *fLog << GetDescriptor() << ": HiGain window currently set to 0, will set it to 2 samples " << endl;
    244266        fWindowSizeHiGain = 2;
    245267    }
     
    248270    {
    249271        *fLog << warn;
    250         *fLog << GetDescriptor() << ": LoGain window currently set to 0, will set it to 2 samples ";
     272        *fLog << GetDescriptor() << ": LoGain window currently set to 0, will set it to 2 samples " << endl;
    251273        fWindowSizeLoGain = 2;
    252274    }
     
    346368Bool_t MPedCalcPedRun::ReInit(MParList *pList)
    347369{
     370
    348371  Int_t lastdesired   = (Int_t)fLoGainLast;
    349372  Int_t lastavailable = (Int_t)fRunHeader->GetNumSamplesLoGain()-1;
     
    414437  if (fSumx.GetSize()==0)
    415438    {
    416       fSumx. Set(npixels);
    417       fSumx2.Set(npixels);
    418      
    419       fAreaSumx. Set(areas);
    420       fAreaSumx2.Set(areas);
    421       fAreaValid.Set(areas);
    422      
    423       fSectorSumx. Set(sectors);
    424       fSectorSumx2.Set(sectors);
    425       fSectorValid.Set(sectors);
    426      
    427       fSumx.Reset();
     439      fSumx.  Set(npixels);
     440      fSumx2. Set(npixels);
     441      fSumAB0.Set(npixels);
     442      fSumAB1.Set(npixels);
     443     
     444      fAreaSumx.  Set(areas);
     445      fAreaSumx2. Set(areas);
     446      fAreaSumAB0.Set(areas);
     447      fAreaSumAB1.Set(areas);
     448      fAreaValid. Set(areas);
     449     
     450      fSectorSumx.  Set(sectors);
     451      fSectorSumx2. Set(sectors);
     452      fSectorSumAB0.Set(sectors);
     453      fSectorSumAB1.Set(sectors);
     454      fSectorValid. Set(sectors);
     455     
     456      fSumx. Reset();
    428457      fSumx2.Reset();
    429458    }
     
    454483Int_t MPedCalcPedRun::Process()
    455484{
     485
    456486  MRawEvtPixelIter pixel(fRawEvt);
    457487 
     
    467497      UInt_t sum = 0;
    468498      UInt_t sqr = 0;
     499      UInt_t ab0 = 0;
     500      UInt_t ab1 = 0;
     501      Int_t  cnt = 0;
    469502
    470503      if (fWindowSizeHiGain != 0)
     
    474507              sum += *ptr;
    475508              sqr += *ptr * *ptr;
     509
     510              if (pixel.IsABFlagValid())
     511                {
     512                  const Int_t abFlag = (fHiGainFirst + pixel.HasABFlag() + cnt) & 0x1;
     513                  if (abFlag)
     514                    ab1 += *ptr;
     515                  else
     516                    ab0 += *ptr;
     517
     518                  cnt++;
     519                }
    476520            }
    477521          while (++ptr != end);
    478522        }
     523
     524      cnt = 0;
    479525     
    480526      if (fWindowSizeLoGain != 0)
     
    488534              sum += *ptr;
    489535              sqr += *ptr * *ptr;
     536
     537              if (pixel.IsABFlagValid())
     538                {
     539                  const Int_t abFlag = (fLoGainFirst + pixel.GetNumHiGainSamples() + pixel.HasABFlag() + cnt)
     540                                      & 0x1;
     541                  if (abFlag)
     542                    ab1 += *ptr;
     543                  else
     544                    ab0 += *ptr;
     545
     546                  cnt++;
     547                }
     548
    490549            }
    491550          while (++ptr != end);
     
    506565      fAreaSumx[aidx]     += msum;
    507566      fSectorSumx[sector] += msum;     
     567
    508568      //
    509569      // The old version:
     
    518578      fAreaSumx2[aidx]     += sqrsum;
    519579      fSectorSumx2[sector] += sqrsum;     
     580
     581      //
     582      // Now, the sums separated for AB0 and AB1
     583      //
     584      fSumAB0[idx]        += ab0;
     585      fSumAB1[idx]        += ab1;
     586
     587      fAreaSumAB0[aidx]   += ab0;
     588      fAreaSumAB1[aidx]   += ab1;     
     589     
     590      fSectorSumAB0[aidx] += ab0;
     591      fSectorSumAB1[aidx] += ab1;     
    520592    }
    521593 
     
    532604Int_t MPedCalcPedRun::PostProcess()
    533605{
     606
    534607  // Compute pedestals and rms from the whole run
    535608  const ULong_t n     = fNumSamplesTot;
     
    563636      higainVar /= (Float_t)(fWindowSizeHiGain+fWindowSizeLoGain);
    564637      // 3. Calculate the RMS from the Variance:
    565       (*fPedestals)[pixid].Set(higainped, higainVar < 0 ? 0. : TMath::Sqrt(higainVar));
     638      const Float_t rms = higainVar<0 ? 0. : TMath::Sqrt(higainVar);
     639      // 4. Calculate the amplitude of the 150MHz "AB" noise
     640      const Float_t abOffs = (fSumAB0.At(pixid) - fSumAB1.At(pixid)) / n;
     641     
     642      *fLog << "THIS is the aboffs: " << abOffs << endl;
     643
     644      (*fPedestals)[pixid].Set(higainped,rms,abOffs);
    566645
    567646    }
     
    594673      //    in order to be comparable to the mean of pedRMS of that area
    595674      higainrms *= TMath::Sqrt((Float_t)napix);
    596 
    597       fPedestals->GetAverageArea(aidx).Set(higainped, higainrms);
     675      // 5. Calculate the amplitude of the 150MHz "AB" noise
     676      const Float_t abOffs = (fAreaSumAB0.At(aidx) - fAreaSumAB1.At(aidx)) / an;
     677
     678      fPedestals->GetAverageArea(aidx).Set(higainped, higainrms,abOffs);
    598679    }
    599680 
     
    625706      //    in order to be comparable to the mean of pedRMS of that sector
    626707      higainrms *= TMath::Sqrt((Float_t)nspix);
    627 
    628       fPedestals->GetAverageSector(sector).Set(higainped, higainrms);
     708      // 5. Calculate the amplitude of the 150MHz "AB" noise
     709      const Float_t abOffs = (fSectorSumAB0.At(sector) - fSectorSumAB1.At(sector)) / sn;
     710
     711      fPedestals->GetAverageSector(sector).Set(higainped, higainrms, abOffs);
    629712    }
    630713 
Note: See TracChangeset for help on using the changeset viewer.