Ignore:
Timestamp:
12/11/03 17:42:25 (21 years ago)
Author:
gaug
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/manalysis
Files:
4 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/manalysis/MCalibrationCalc.cc

    r2642 r2658  
    252252{
    253253
    254     fEvents++;
    255 
    256254    Int_t cosmicpix = 0;
    257255
     
    273271    while (pixel.Next())
    274272      {
    275 
    276         const Int_t pixid = pixel.GetPixelId();
    277 
    278         Int_t sum = pixel.GetSumHiGainSamples();
    279 
    280         MPedestalPix    &ped = (*fPedestals)[pixid];
    281  
    282         Float_t pedes  = ped.GetPedestal();
     273       
     274        const UInt_t pixid = pixel.GetPixelId();
     275       
     276        MExtractedSignalPix &sig =  (*fSignals)[pixid];
     277        MPedestalPix        &ped =  (*fPedestals)[pixid];
    283278        Float_t pedrms = ped.GetPedestalRms();
     279        Float_t sumhi  = sig.GetExtractedSignalHiGain();
    284280       
    285         if ((float)sum < ((pedes*fNumHiGainSamples)+(2.*fNumHiGainSamples*pedrms)) )
    286            cosmicpix++;
     281        if (sumhi < 15.*pedrms )   // cut at 3.5 sigma
     282          cosmicpix++;
    287283     }
    288284
    289 
    290     if (cosmicpix > 50.)
     285    if (cosmicpix > 100.)
    291286      {
    292287        fCosmics++;
     
    295290
    296291    pixel.Reset();
     292    fEvents++;
    297293
    298294    //
     
    304300
    305301        const UInt_t pixid = pixel.GetPixelId();
    306 
     302       
    307303        MExtractedSignalPix &sig =  (*fSignals)[pixid];
    308 
     304       
    309305        Float_t sumhi  = sig.GetExtractedSignalHiGain();
    310306        Float_t sumlo  = sig.GetExtractedSignalLoGain();
    311307        Bool_t  logain = sig.IsLoGainUsed();
    312308
    313         Byte_t mid;
    314 
    315         if (logain)
    316             mid  = pixel.GetIdxMaxLoGainSample();
    317         else
    318             mid  = pixel.GetIdxMaxHiGainSample();
     309        Float_t mtime  = sig.GetMeanArrivalTime();
    319310
    320311        MCalibrationPix &pix = (*fCalibrations)[pixid];
     
    329320                "Overflow or Underflow occurred filling Blind Pixel sum = " << sumhi << endl;
    330321
    331             if (!blindpixel.FillTime((int)mid))
     322            if (!blindpixel.FillTime((int)mtime))
    332323              *fLog << warn <<
    333                 "Overflow or Underflow occurred filling Blind Pixel time = " << (int)mid << endl;
     324                "Overflow or Underflow occurred filling Blind Pixel time = " << mtime << endl;
    334325           
    335326            if (!blindpixel.FillRChargevsTime(sumhi,fEvents))
    336327              *fLog << warn <<
    337328                "Overflow or Underflow occurred filling Blind Pixel eventnr = " << fEvents << endl;
     329            break;
    338330           
    339331          case gkCalibrationPINDiodeId:
     
    341333              *fLog << warn <<
    342334                "Overflow or Underflow occurred filling HCharge: means = " << sumhi << endl;
    343             if (!pindiode.FillTime((int)mid))
     335            if (!pindiode.FillTime((int)mtime))
    344336              *fLog << warn <<
    345                 "Overflow or Underflow occurred filling HTime: time = " << (int)mid << endl;
     337                "Overflow or Underflow occurred filling HTime: time = " << mtime << endl;
    346338            if (!pindiode.FillRChargevsTime(sumhi,fEvents))
    347339              *fLog << warn <<
    348340                "Overflow or Underflow occurred filling HChargevsN: eventnr = " << fEvents << endl;
     341            break;
    349342
    350343          default:
     
    359352                        << " signal = " << sumlo << endl;
    360353
    361                 if (!pix.FillTimeLoGain((int)mid))
     354                if (!pix.FillTimeLoGain((int)mtime))
    362355                  *fLog << warn << "Could not fill Lo Gain Time of pixel: "
    363                         << pixid << " time = " << (int)mid << endl;
     356                        << pixid << " time = " << mtime << endl;
    364357               
    365                 //
    366                 // Fill the reduced charge into the control histo for better visibility
    367                 //
    368358                if (!pix.FillRChargevsTimeLoGain(sumlo,fEvents))
    369359                  *fLog << warn << "Could not fill Lo Gain Charge vs. EvtNr of pixel: "
     
    377367                        << " signal = " << sumhi << endl;
    378368               
    379                 if (!pix.FillTimeHiGain((int)mid))
     369                if (!pix.FillTimeHiGain((int)mtime))
    380370                  *fLog << warn << "Could not fill Hi Gain Time of pixel: "
    381                         << pixid << " time = " << (int)mid << endl;
     371                        << pixid << " time = " << mtime << endl;
    382372               
    383373                if (!pix.FillRChargevsTimeHiGain(sumhi,fEvents))
     
    385375                        << pixid << " signal = " << sumhi  << " event Nr: " << fEvents << endl;
    386376              }
     377            break;
    387378           
    388379          } /* switch(pixid) */
     
    449440      pix.SetPedestal(ped,prms);
    450441
     442      pix.FitCharge();
     443
    451444      if (TESTBIT(fFlags,kUseTimeFits))
    452445        pix.FitTime();
    453446     
    454       pix.FitCharge();
    455447    }
    456448
  • trunk/MagicSoft/Mars/manalysis/MCalibrationPix.cc

    r2642 r2658  
    110110  if (fHist->UseLoGain())
    111111    {
     112
    112113      SetHiGainSaturation();
    113114
  • trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc

    r2646 r2658  
    163163
    164164        Byte_t *ptr   = pixel.GetHiGainSamples();
    165         Byte_t *max   = ptr + pixel.GetIdxMaxHiGainSample();
    166         Byte_t *end   = ptr + fRawEvt->GetNumHiGainSamples();
    167         Byte_t *first;
    168         Byte_t *last;
     165        Byte_t *first = ptr + 3;
     166        Byte_t *last  = ptr + 9;
    169167
    170168        UInt_t  sumHi   = 0;
     
    178176        const Float_t pedrms  = ped.GetPedestalRms();
    179177
    180 
    181         if (max-3 < ptr)
    182           {
    183             first = ptr+3;
    184             last  = ptr+3+fAfter+fBefore;
    185           }
    186         else if (max+fAfter-1 > end)
    187           {
    188             first = end-fAfter-fBefore-1;
    189             last  = end-1;
    190           }
    191         else
    192           {
    193             first = max-fBefore;
    194             last  = max+fAfter;
    195           }
     178        Byte_t maxhi  = 0;
     179        Byte_t midhi  = 0;
    196180
    197181        for (ptr=first;ptr<last;ptr++)
    198182          {
     183           
     184            if (*ptr > maxhi)
     185              {
     186                maxhi = *ptr;
     187                midhi = ptr-first;
     188              }
     189
    199190            sumHi += *ptr;
     191           
    200192            if (*ptr >= fSaturationLimit)
    201193              satHi++;
     194
    202195          }
    203196
    204197        ptr   = pixel.GetLoGainSamples();
    205         max   = ptr+pixel.GetIdxMaxLoGainSample();
    206         end   = ptr+fRawEvt->GetNumLoGainSamples();
    207 
    208         if (max-4 < ptr)
    209           {
    210             first = ptr+4;
    211             last  = ptr+4+fAfter+fBefore;
    212           }
    213         else if (max+fAfter > end)
    214           {
    215             first = end-fAfter-fBefore;
    216             last  = end;
    217           }
    218         else
    219           {
    220             first = max-fBefore;
    221             last  = max+fAfter;
    222           }
    223 
     198        first = ptr + 3;
     199        last  = ptr + 9;
     200        Byte_t maxlo  = 0;
     201        Byte_t midlo  = 0;
     202       
    224203        for (ptr=first;ptr<last;ptr++)
    225204          {
     205
     206            if (*ptr > maxlo)
     207              {
     208                maxlo = *ptr;
     209                midlo = ptr-first;
     210              }
     211
    226212            sumLo += *ptr;
    227213            if (*ptr >= fSaturationLimit)
     
    233219              }
    234220          }
    235 
    236         //
    237         // FIXME: This is preliminary, we will change to pedestals per slice!!!
    238         // Assume pedestals per time slice ==> multiply with number of slices
    239         //
    240 
    241221        pix.SetExtractedSignal((float)sumHi - pedes*(float)fNumHiGainSamples,
    242222                               pedrms*fSqrtHiGainSamples,
     
    247227        pix.SetGainSaturation((satHi),satHi,satLo);
    248228
     229        if (satHi)
     230          pix.SetArrivalTimes((float)(midlo+3),0.);
     231        else
     232          pix.SetArrivalTimes((float)(midhi+3),0.);
     233
    249234      } /* while (pixel.Next()) */
    250235
  • trunk/MagicSoft/Mars/manalysis/MExtractedSignalPix.h

    r2641 r2658  
    3333    Float_t GetExtractedSignalLoGainError() const   { return fExtractedSignalLoGainError; }
    3434
    35     Float_t GetMeanArrivalTime()      const   { return fMeanArrivalTime; }
    36     Float_t GetWidthArrivalTime()     const   { return fWidthArrivalTime; }
     35    Float_t GetMeanArrivalTime()            const   { return fMeanArrivalTime; }
     36    Float_t GetWidthArrivalTime()           const   { return fWidthArrivalTime; }
    3737
    3838    void SetExtractedSignal(Float_t sig, Float_t sigerr)   
Note: See TracChangeset for help on using the changeset viewer.