Ignore:
Timestamp:
05/16/07 14:56:18 (18 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/mpedestal
Files:
3 edited

Legend:

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

    r8498 r8519  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MExtractPedestal.cc,v 1.30 2007-05-11 15:47:18 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: MExtractPedestal.cc,v 1.31 2007-05-16 13:56:17 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    648648
    649649    // Do some handling if maxpos is last slice?
    650     const Int_t maxposhi = fSignal->GetMax(idx, start, start+range-1);
     650    const Int_t maxposhi = fSignal->GetMaxPos(idx, start, start+range-1);
    651651
    652652    const Float_t *sig = fSignal->GetSamples(idx);
  • trunk/MagicSoft/Mars/mpedestal/MPedestalSubtractedEvt.cc

    r8361 r8519  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: MPedestalSubtractedEvt.cc,v 1.3 2007-03-04 12:01:37 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: MPedestalSubtractedEvt.cc,v 1.4 2007-05-16 13:56:17 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    130130// --------------------------------------------------------------------------
    131131//
    132 // Get the maximum of the slices [first,last] of pixel index.
     132// Get the maximum of the pedestal subtracted slices [first,last] of
     133// pixel with index idx.
    133134//
    134135// The position returned is the index of the position of the pedestal
    135136// subtracted maximum w.r.t. to first.
    136 // The value returned is the maximum of the raw-data.
     137// The value returned is the maximum corresponding to this index.
    137138//
    138139// Warning: No range checks and no sanity checks are done!
    139140//
    140 Int_t MPedestalSubtractedEvt::GetMax(const Int_t idx, const Int_t first, const Int_t last, UInt_t &val) const
     141Int_t MPedestalSubtractedEvt::GetMax(const Int_t idx, const Int_t first, const Int_t last, Float_t &val) const
    141142{
    142143    // Get pointer to first slice to be considered
    143     Byte_t  const *samb = GetSamplesRaw(idx);
    144     Float_t const *samf = GetSamples(idx);
    145 
    146     Byte_t  const *ptrb = samb+first;
    147     Float_t const *ptrf = samf+first;
     144    Float_t const *sam = GetSamples(idx);
     145
     146    Float_t const *beg = sam+first;
    148147
    149148    // The best information so far: the first slice is the maximum
    150     const Byte_t  *maxb = ptrb;
    151     const Float_t *maxf = ptrf;
    152 
    153     // Store the pointer to the first slice
    154 //    const Byte_t  *begb = ptrb;
    155     const Float_t *begf = ptrf;
    156 
    157     // Calculate the last slice to be considered
    158     const Byte_t  *endb = samb+last;
    159 
    160     while (ptrb<endb)
    161     {
    162         // Pre-increment: check the second slice first
    163         if (*++ptrb>*maxb)
    164             maxb = ptrb;
    165         if (*++ptrf>*maxf)
    166             maxf = ptrf;
    167     }
    168 
    169     val = *maxb;
    170     return maxf-begf;
     149    const Float_t *max = beg;
     150
     151    for (const Float_t *ptr=beg+1; ptr<=sam+last; ptr++)
     152        if (*++ptr>*max)
     153            max = ptr;
     154
     155    val = *max;
     156    return max-beg;
     157}
     158
     159// --------------------------------------------------------------------------
     160//
     161// Get the maximum of the raw slices [first,last] of pixel with index idx.
     162//
     163// The position returned is the index of the position of the raw-data
     164// w.r.t. to first.
     165// The value returned is the maximum corresponding to this index.
     166//
     167// Warning: No range checks and no sanity checks are done!
     168//
     169Int_t MPedestalSubtractedEvt::GetRawMax(const Int_t idx, const Int_t first, const Int_t last, UInt_t &val) const
     170{
     171    // Get pointer to first slice to be considered
     172    Byte_t const *sam = GetSamplesRaw(idx);
     173
     174    Byte_t const *beg = sam+first;
     175
     176    // The best information so far: the first slice is the maximum
     177    const Byte_t *max = beg;
     178
     179    for (const Byte_t *ptr=beg+1; ptr<=sam+last; ptr++)
     180        if (*++ptr>*max)
     181            max = ptr;
     182
     183    val = *max;
     184    return max-beg;
    171185}
    172186
  • trunk/MagicSoft/Mars/mpedestal/MPedestalSubtractedEvt.h

    r8446 r8519  
    4141    Int_t GetSaturation(const Int_t idx, Int_t limit, Int_t &first, Int_t &last) const;
    4242    //void  InterpolateSaturation(const Int_t idx, Int_t limit, Int_t first, Int_t last) const;
    43     Int_t GetMax(const Int_t pixidx, const Int_t first, const Int_t last, UInt_t &val) const;
    44     Int_t GetMax(const Int_t pixidx, const Int_t first, const Int_t last) const
     43
     44    Int_t GetMax(const Int_t pixidx, const Int_t first, const Int_t last, Float_t &val) const;
     45    Int_t GetMax(const Int_t pixidx, Float_t &val) const
    4546    {
    46         UInt_t val;
     47        return GetMax(pixidx, 0, fNumSamples-1, val);
     48    }
     49    Int_t GetMaxPos(const Int_t pixidx, const Int_t first, const Int_t last) const
     50    {
     51        Float_t val;
    4752        return GetMax(pixidx, first, last, val);
    4853    }
    49     Int_t GetMax(const Int_t pixidx, UInt_t &val) const
     54    Int_t GetMaxPos(const Int_t pixidx, Float_t &val) const
    5055    {
    5156        return GetMax(pixidx, 0, fNumSamples-1, val);
    5257    }
    5358
    54     Int_t GetMax(const Int_t pixidx) const
     59    Int_t GetMaxPos(const Int_t pixidx) const
     60    {
     61        Float_t val;
     62        return GetMax(pixidx, 0, fNumSamples-1, val);
     63    }
     64
     65    Int_t GetRawMax(const Int_t idx, const Int_t first, const Int_t last, UInt_t &val) const;
     66    Int_t GetRawMax(const Int_t pixidx, UInt_t &val) const
     67    {
     68        return GetRawMax(pixidx, 0, fNumSamples-1, val);
     69    }
     70    Int_t GetRawMaxPos(const Int_t pixidx, const Int_t first, const Int_t last) const
    5571    {
    5672        UInt_t val;
    57         return GetMax(pixidx, 0, fNumSamples-1, val);
     73        return GetRawMax(pixidx, first, last, val);
    5874    }
     75    Int_t GetRawMaxPos(const Int_t pixidx, UInt_t &val) const
     76    {
     77        return GetRawMax(pixidx, 0, fNumSamples-1, val);
     78    }
     79
     80    Int_t GetRawMaxPos(const Int_t pixidx) const
     81    {
     82        UInt_t val;
     83        return GetRawMax(pixidx, 0, fNumSamples-1, val);
     84    }
     85
     86    UInt_t GetRawMaxVal(const Int_t idx, const Int_t first, const Int_t last) const
     87    {
     88        UInt_t val;
     89        GetRawMax(idx, first, last, val);
     90        return val;
     91    }
     92
     93
    5994    Int_t GetSaturation(const Int_t pixidx, Int_t limit) const
    6095    {
Note: See TracChangeset for help on using the changeset viewer.