Ignore:
Timestamp:
09/09/04 16:55:42 (20 years ago)
Author:
gaug
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/msignal/MExtractBlindPixel.cc

    r4771 r4896  
    260260  }
    261261
    262   const Int_t firstdesired   = (Int_t)fHiGainFirst;
    263   Int_t lastavailable  = (Int_t)fRunHeader->GetNumSamplesHiGain()-1;
    264  
    265   if (firstdesired > lastavailable)
    266   {
    267       const Int_t diff = firstdesired - lastavailable;
    268       *fLog << endl;
    269       *fLog << warn << "First Hi Gain slice " << (int)fHiGainFirst << " out of range [0,";
    270       *fLog << lastavailable << "]... start at slice " << diff << " of the Lo Gain " << endl;
    271      
    272       fHiLoFirst   = diff;
    273     }
    274 
    275   const Int_t lastdesired   = (Int_t)fHiGainLast;
    276  
     262  const Int_t higainsamples = fRunHeader->GetNumSamplesHiGain();
     263  const Int_t logainsamples = fRunHeader->GetNumSamplesLoGain();
     264  Int_t lastavailable       =  higainsamples-1;
     265
     266  if (logainsamples)
     267    {
     268      //
     269      // If the signal is searched entirely in the low-gain range, have
     270      // to skip the higain completely. This is steered by the variable fHiLoFirst
     271      //
     272      const Int_t firstdesired   = (Int_t)fHiGainFirst;
     273 
     274      if (firstdesired > lastavailable)
     275        {
     276          const Int_t diff = firstdesired - lastavailable;
     277          *fLog << endl;
     278          *fLog << warn << "First Hi Gain slice " << (int)fHiGainFirst << " out of range [0,";
     279          *fLog << lastavailable << "]... start at slice " << diff << " of the Lo Gain " << endl;
     280         
     281          fHiLoFirst   = diff;
     282        }
     283    }
     284 
     285  const Int_t lastdesired = (Int_t)fHiGainLast;
     286
    277287  if (lastdesired > lastavailable)
    278288    {
    279       Int_t diff = lastdesired - lastavailable;
    280       lastavailable += (Int_t)fRunHeader->GetNumSamplesLoGain()-1;
     289      Int_t diff     = lastdesired - lastavailable;
     290      lastavailable += logainsamples ? logainsamples-1 : 0;
    281291     
    282292      if (lastdesired > lastavailable)
     
    285295          *fLog << "Last Hi Gain slice " << (int)fHiGainLast << " out of range [0,";
    286296          *fLog << lastavailable << "]... reduce upper limit by " << diff << endl;
    287           diff = (Int_t)fRunHeader->GetNumSamplesLoGain();
    288         }
    289 
    290       fHiGainLast = (Int_t)fRunHeader->GetNumSamplesHiGain() - 1;
    291       fHiLoLast = diff;
     297          diff = logainsamples;
     298        }
     299
     300      fHiGainLast = higainsamples - 1;
     301      fHiLoLast   = logainsamples ? diff : 0;
    292302    }
    293303
     
    669679
    670680          sum = 0;
    671           FindSignalFilter(pixel.GetLoGainSamples(), sum, sat);         
     681          if (pixel.HasLoGain())
     682            FindSignalFilter(pixel.GetLoGainSamples(), sum, sat);         
    672683
    673684          /*
Note: See TracChangeset for help on using the changeset viewer.