Ignore:
Timestamp:
10/30/03 17:09:40 (21 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/mimage/MImgCleanStd.cc

    r2239 r2445  
    329329    // set them to 'unused' state if necessary
    330330    //
     331
    331332    for (Int_t i=0; i<entries; i++ )
    332333    {
     
    373374        MCerPhotPix &pix = (*fEvt)[i];
    374375
    375         const Int_t id = pix.GetPixId();
     376        const Int_t idx = pix.GetPixId();
    376377
    377378        const Float_t  entry = pix.GetNumPhotons();
    378         const Double_t ratio = fCam->GetPixRatio(id);
     379        const Double_t ratio = fCam->GetPixRatio(idx);
    379380
    380381        // COBB: '<=' to skip entry=noise=0
     
    422423    // (MCerPhotEvt::IsPixelUsed) all the time.
    423424    //
     425    // We allocate the array ourself because the TArrays always do
     426    // range check which slows down the access to the array
     427    // by 25-50%
     428    //
    424429    Byte_t *ispixused = new Byte_t[fCam->GetNumPixels()];
     430    memset(ispixused, 0, sizeof(Byte_t)*fCam->GetNumPixels());
    425431
    426432    for (Int_t i=0; i<entries; i++)
     
    428434        const MCerPhotPix &pix = (*fEvt)[i];
    429435        ispixused[pix.GetPixId()] = pix.IsPixelUsed() ? 1 : 0 ;
    430     }
     436   }
    431437
    432438    for (Int_t i=0; i<entries; i++)
     
    436442
    437443        // get pixel id of this entry
    438         const Int_t id = pix.GetPixId();
     444        const Int_t idx = pix.GetPixId();
    439445
    440446        // check if pixel is in use, if not goto next pixel in list
    441         if (ispixused[id] == 0)
     447        if (ispixused[idx] == 0)
    442448            continue;
    443449 
    444450        // check for 'used' neighbors of this pixel
    445         const MGeomPix &gpix  = (*fCam)[id];
     451        const MGeomPix &gpix  = (*fCam)[idx];
    446452        const Int_t     nnmax = gpix.GetNumNeighbors();
    447453
     
    451457        for (Int_t j=0; j<nnmax; j++)
    452458        {
    453             const Int_t id2 = gpix.GetNeighbor(j);
     459            const Int_t idx2 = gpix.GetNeighbor(j);
    454460
    455461            // when you find an used neighbor, break the loop
    456             if (ispixused[id2] == 1)
     462            if (ispixused[idx2] == 1)
    457463            {
    458                 hasNeighbor = kTRUE;
    459                 break;
     464                hasNeighbor = kTRUE;
     465                break;
    460466            }
    461467        }
     
    478484    }
    479485}
     486
    480487
    481488// --------------------------------------------------------------------------
     
    518525    // get pixel id of this entry
    519526    //
    520     const Int_t id = pix.GetPixId();
     527    const Int_t idx = pix.GetPixId();
    521528
    522529    //
     
    524531    //
    525532    const Float_t  entry = pix.GetNumPhotons();
    526     const Double_t ratio = fCam->GetPixRatio(id);
     533    const Double_t ratio = fCam->GetPixRatio(idx);
    527534
    528535    return (entry * ratio <= fCleanLvl2 * fInnerNoise);
     
    531538void MImgCleanStd::CleanStep3b(MCerPhotPix &pix)
    532539{
    533     const Int_t id = pix.GetPixId();
     540    const Int_t idx = pix.GetPixId();
    534541
    535542    //
     
    537544    // if it is a core pixel set pixel state to: used.
    538545    //
    539     MGeomPix   &gpix  = (*fCam)[id];
     546    MGeomPix   &gpix  = (*fCam)[idx];
    540547    const Int_t nnmax = gpix.GetNumNeighbors();
    541548
    542549    for (Int_t j=0; j<nnmax; j++)
    543550    {
    544         const Int_t id2 = gpix.GetNeighbor(j);
    545 
    546         if (!fEvt->GetPixById(id2) || !fEvt->IsPixelCore(id2))
    547           continue;
     551        const Int_t idx2 = gpix.GetNeighbor(j);
     552
     553        if (!fEvt->GetPixById(idx2) || !fEvt->IsPixelCore(idx2))
     554            continue;
    548555
    549556        pix.SetPixelUsed();
    550            break;
     557        break;
    551558    }
    552559}
     
    568575    // and tell to which ring it belongs to.
    569576    //
    570     const Int_t id = pix.GetPixId();
    571     MGeomPix  &gpix  = (*fCam)[id];
     577    const Int_t idx = pix.GetPixId();
     578    MGeomPix  &gpix  = (*fCam)[idx];
    572579
    573580    const Int_t nnmax = gpix.GetNumNeighbors();
     
    575582    for (Int_t j=0; j<nnmax; j++)
    576583    {
    577         const Int_t id2 = gpix.GetNeighbor(j);
    578 
    579         MCerPhotPix &npix = *fEvt->GetPixById(id2);
    580 
    581         // FIXME!
    582         // Needed check to read CT1 data without having a Segmentation fault
    583         if (!fEvt->GetPixById(id2))
    584             continue;
    585 
    586         if (!npix.IsPixelUsed() || npix.GetRing()>r-1 )
     584        const Int_t idx2 = gpix.GetNeighbor(j);
     585
     586        MCerPhotPix *npix = fEvt->GetPixById(idx2);
     587
     588        if (!npix || !npix->IsPixelUsed() || npix->GetRing()>r-1 )
    587589            continue;
    588590
Note: See TracChangeset for help on using the changeset viewer.