Ignore:
Timestamp:
01/28/04 16:55:40 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars/manalysis
Files:
3 edited

Legend:

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

    r2386 r2946  
    3131//
    3232//  Input Containers:
    33 //   MRawEvtData, MPedestalCam
     33//   MRawEvtData, MPedPhotCam
    3434//
    3535//  Output Containers:
     
    4848#include "MRawEvtData.h"       // MRawEvtData::GetNumPixels
    4949#include "MCerPhotEvt.h"
    50 #include "MPedestalPix.h"
    51 #include "MPedestalCam.h"
     50#include "MPedPhotPix.h"
     51#include "MPedPhotCam.h"
    5252#include "MRawEvtPixelIter.h"
    5353
     
    7878//  - MRawRunHeader
    7979//  - MRawEvtData
    80 //  - MPedestalCam
     80//  - MPedPhotCam
    8181//
    8282// The following output containers are also searched and created if
     
    116116        }
    117117
    118     fPedestals = (MPedestalCam*)pList->FindCreateObj("MPedestalCam");
     118    fPedestals = (MPedPhotCam*)pList->FindCreateObj("MPedPhotCam");
    119119    if (runheader && !fPedestals)
    120120        return kFALSE;
  • trunk/MagicSoft/Mars/manalysis/MCerPhotAnal2.h

    r2265 r2946  
    1616
    1717class MRawEvtData;
    18 class MPedestalCam;
     18class MPedPhotCam;
    1919class MCerPhotEvt;
    2020class MRawRunHeader;
     
    2323{
    2424private:
    25     MPedestalCam  *fPedestals;  // Pedestals of all pixels in the camera
     25    MPedPhotCam   *fPedestals;  // Pedestals of all pixels in the camera
    2626    MRawEvtData   *fRawEvt;     // raw event data (time slices)
    2727    MCerPhotEvt   *fCerPhotEvt; // Cerenkov Photon Event used for calculation
  • trunk/MagicSoft/Mars/manalysis/MExtractSignal.cc

    r2944 r2946  
    102102    if (!fRawEvt)
    103103    {
    104       *fLog << err << AddSerialNumber("MRawEvtData") << " not found... aborting." << endl;
     104        *fLog << err << AddSerialNumber("MRawEvtData") << " not found... aborting." << endl;
    105105        return kFALSE;
    106106    }
     
    116116    fPedestals = (MPedestalCam*)pList->FindObject(AddSerialNumber("MPedestalCam"));
    117117    if (!fPedestals)
    118       {
     118    {
    119119        *fLog << err << AddSerialNumber("MPedestalCam") << " not found... aborting" << endl;
    120120        return kFALSE;
    121 
    122       }
     121    }
    123122
    124123    fArrivalTime = (MArrivalTime*)pList->FindCreateObj(AddSerialNumber("MArrivalTime"));
     124    if (!fArrivalTime)
     125        return kFALSE;
    125126   
    126127    return kTRUE;
     
    135136Bool_t MExtractSignal::ReInit(MParList *pList )
    136137{
    137 
    138138    MGeomCam *cam = (MGeomCam*)pList->FindObject(AddSerialNumber("MGeomCam"));
    139139    if (!cam)
     
    143143    }
    144144
    145   return kTRUE;
    146 }
    147 
     145    return kTRUE;
     146}
    148147
    149148// --------------------------------------------------------------------------
     
    154153Int_t MExtractSignal::Process()
    155154{
    156 
    157155    MRawEvtPixelIter pixel(fRawEvt);
    158156    fSignals->Clear();
     
    165163        UShort_t satLo = 0;
    166164
    167         Byte_t *ptr   = pixel.GetHiGainSamples();
    168         Byte_t *first = ptr + fHiGainFirst;
    169         Byte_t *last  = ptr + fHiGainFirst + fNumHiGainSamples;
    170 
    171         UInt_t  sumHi   = 0;
    172         UInt_t  sumLo   = 0;
     165        UInt_t sumHi   = 0;
     166        UInt_t sumLo   = 0;
     167
     168        Byte_t maxhi   = 0;
     169        Byte_t midhi   = 0;
     170
     171        Byte_t *ptr  = pixel.GetHiGainSamples() + fHiGainFirst;
     172        Byte_t *last = ptr + fNumHiGainSamples;
     173
     174        while (ptr<last)
     175        {
     176            sumHi += *ptr;
     177
     178            if (*ptr > maxhi)
     179            {
     180                maxhi = *ptr;
     181                midhi = ptr-pixel.GetHiGainSamples();
     182            }
     183
     184            if (*ptr >= fSaturationLimit)
     185                satHi++;
     186
     187            ptr++;
     188        }
     189
     190        ptr  = pixel.GetLoGainSamples() + fLoGainFirst;
     191        last = ptr + fNumLoGainSamples;
     192
     193        Byte_t maxlo  = 0;
     194        Byte_t midlo  = 0;
     195
     196        while (ptr<last)
     197        {
     198            sumLo += *ptr;
     199
     200            if (*ptr > maxlo)
     201            {
     202                maxlo = *ptr;
     203                midlo = ptr-pixel.GetLoGainSamples();
     204            }
     205
     206            if (*ptr >= fSaturationLimit)
     207                satLo++;
     208
     209            ptr++;
     210        }
     211
     212        if (satLo)
     213            satlo++;
    173214
    174215        const Int_t pixid = pixel.GetPixelId();
     216
    175217        const MPedestalPix  &ped = (*fPedestals)[pixid];
    176218        MExtractedSignalPix &pix = (*fSignals)[pixid];
    177219
    178         const Float_t pedes   = ped.GetPedestal();
    179         const Float_t pedrms  = ped.GetPedestalRms();
    180 
    181         Byte_t maxhi  = 0;
    182         Byte_t midhi  = 0;
    183 
    184         for (ptr=first;ptr<last;ptr++)
    185           {
    186            
    187             if (*ptr > maxhi)
    188               {
    189                 maxhi = *ptr;
    190                 midhi = ptr-first;
    191               }
    192 
    193             sumHi += *ptr;
    194            
    195             if (*ptr >= fSaturationLimit)
    196               satHi++;
    197 
    198           }
    199 
    200         ptr   = pixel.GetLoGainSamples();
    201         first = ptr + fLoGainFirst;
    202         last  = ptr + fLoGainFirst + fNumLoGainSamples;
    203         Byte_t maxlo  = 0;
    204         Byte_t midlo  = 0;
    205 
    206         for (ptr=first;ptr<last;ptr++)
    207           {
    208 
    209             if (*ptr > maxlo)
    210               {
    211                 maxlo = *ptr;
    212                 midlo = ptr-first;
    213               }
    214 
    215             sumLo += *ptr;
    216 
    217             if (*ptr >= fSaturationLimit)
    218                 satLo++;
    219           }
    220 
    221         if (satLo)
    222             satlo++;
    223 
    224         pix.SetExtractedSignal((Float_t)sumHi - pedes*(Float_t)fNumHiGainSamples,
    225                                pedrms*fSqrtHiGainSamples,
    226                                (Float_t)sumLo - pedes*(Float_t)fNumLoGainSamples,
    227                                pedrms*fSqrtLoGainSamples);
     220        const Float_t pedes  = ped.GetPedestal();
     221        const Float_t pedrms = ped.GetPedestalRms();
     222
     223        pix.SetExtractedSignal(sumHi - pedes*fNumHiGainSamples, pedrms*fSqrtHiGainSamples,
     224                               sumLo - pedes*fNumLoGainSamples, pedrms*fSqrtLoGainSamples);
    228225
    229226        pix.SetGainSaturation(satHi, satHi, satLo);
    230227
    231         if (satHi)
    232           fArrivalTime->SetTime(pixid,(Float_t)(midlo+fLoGainFirst));
    233         else
    234           fArrivalTime->SetTime(pixid,(Float_t)(midhi+fHiGainFirst));
    235 
    236 
     228        fArrivalTime->SetTime(pixid, satHi?midlo:midhi);
    237229
    238230      } /* while (pixel.Next()) */
Note: See TracChangeset for help on using the changeset viewer.