Changeset 715 for trunk/MagicSoft


Ignore:
Timestamp:
04/02/01 11:53:16 (23 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
2 deleted
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r714 r715  
    11                                                                  -*-*- END -*-*-
    22
     3 2000/04/02: Thomas Bretz
     4 
     5   * mgui/MGeomPix.[h,c]:
     6     - added interface to pixel neighbors
     7 
     8   * mgui/MGeomCamCT1.[cc,h], mgui/MGeomCamMagic.[cc,h]:
     9     - creates the neighbor geomtry now, too
     10 
     11   * manalysis/MImgCleanStd.[cc,h]:
     12     - switched to new stylish neighbors from MGeomCam
     13     
     14     
    315 2000/03/30: Thomas Bretz
    416 
  • trunk/MagicSoft/Mars/manalysis/AnalysisIncl.h

    r695 r715  
    11#ifndef __CINT__
    22
    3 #include <TClonesArray.h>
    4 
    5 #include "MParContainer.h"
    6 #include "MCamNeighbor.h"
    7 
    83#endif // __CINT__
  • trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.cc

    r698 r715  
    88
    99#include "MLog.h"
    10 #include "MCamNeighbor.h"
    11 #include "MCamDisplay.h"
    1210#include "MHexagon.h"
     11#include "MCerPhotPix.h"
    1312
    1413ClassImp(MCerPhotEvt)
     
    2928  fPixels->Clear();
    3029}
    31 
    32 #include "MGeomCamMagic.h"
    33 #include "MGeomCamCT1.h"
    3430
    3531void MCerPhotEvt::Draw(Option_t* option)
     
    7975        (*this)[il].Print();
    8076}
    81 
    82 /*
    83 void MCerPhotEvt::CleanLevel1()
    84 {
    85     //
    86     //  This method looks for all pixels with an entry (photons)
    87     //  that is three times bigger than the noise of the pixel
    88     //
    89 
    90     const Int_t entries = fPixels->GetEntries();
    91 
    92     //
    93     // check the number of all pixels against the noise level and
    94     // set them to 'unused' state if necessary
    95     //
    96     for (Int_t il=0; il<entries; il++ )
    97     {
    98         MCerPhotPix &pix = (*this)[il];
    99 
    100         const Float_t entry = pix.GetNumPhotons();
    101         const Float_t noise = pix.GetErrorPhot();
    102 
    103         if (entry < 3 * noise )
    104             pix.SetPixelUnused();
    105     }
    106 }
    107 
    108 void MCerPhotEvt::CleanLevel2()
    109 {
    110     //
    111     //  check if the  survived pixel have a neighbor, that also
    112     //  survived
    113     //
    114 
    115     const Int_t entries = fPixels->GetEntries();
    116 
    117     for (Int_t il=0; il<entries; il++)
    118     {
    119         //
    120         // get entry il from list
    121         //
    122         MCerPhotPix &pix = (*this)[il];
    123 
    124         //
    125         // check if pixel is in use, if not goto next pixel in list
    126         //
    127         if (!pix.IsPixelUsed())
    128             continue;
    129 
    130         //
    131         // get pixel id of this entry
    132         //
    133         const Int_t id = pix.GetPixId() ;
    134 
    135         //
    136         // count number of next neighbors of this pixel which
    137         // state is 'used'
    138         //
    139         Int_t itest = 0 ;
    140         for (Int_t in=0 ; in < 6; in++ )
    141         {
    142             const Int_t id2 = fNN.GetNN(id, in) ;
    143 
    144             if (id2 < 0)
    145                 continue;
    146 
    147             if (IsPixelUsed(id2))
    148                 itest++ ;
    149         }
    150 
    151         //
    152         // check if no next neighbor has the state 'used'
    153         // set this pixel to 'unused', too.
    154         //
    155         if (itest==0)
    156             pix.SetPixelUnused();
    157     }
    158 
    159     //
    160     // now we declare all pixels that survive as CorePixels
    161     //
    162     for (Int_t il=0; il<entries; il++)
    163     {
    164         MCerPhotPix &pix = (*this)[il];
    165 
    166         if (pix.IsPixelUsed())
    167             pix.SetCorePixel();
    168     }
    169 
    170 }
    171 
    172 void MCerPhotEvt::CleanLevel3()
    173 {
    174     //
    175     //   Look for the boundary pixels around the core pixels
    176     //   if a pixel has more than 2.5 sigma, and a core neigbor
    177     //   it is declared as used.
    178     //
    179     const Int_t entries = fPixels->GetEntries();
    180 
    181     for (Int_t il=0; il<entries; il++)
    182     {
    183         //
    184         // get pixel as entry il from list
    185         //
    186         MCerPhotPix &pix = (*this)[il];
    187 
    188         //
    189         // if pixel is a core pixel go to the next pixel
    190         //
    191         if (pix.IsCorePixel())
    192             continue;
    193 
    194         //
    195         // check the num of photons against the noise level
    196         //
    197         const Float_t entry = pix.GetNumPhotons();
    198         const Float_t noise = pix.GetErrorPhot();
    199 
    200         if (entry <= 2.5 * noise )
    201             continue;
    202 
    203         //
    204         // get pixel id of this entry
    205         //
    206         const Int_t id = pix.GetPixId();
    207 
    208         //
    209         // check if the pixel's next neighbor is a core pixel.
    210         // if it is a core pixel set pixel state to: used.
    211         //
    212         for (Int_t in=0; in<6 ; in++)
    213         {
    214             const Int_t id2 = fNN.GetNN(id, in);
    215 
    216             if (id2 <0)
    217                 continue;
    218 
    219             if (!IsPixelCore(id2))
    220                 continue;
    221 
    222             pix.SetPixelUsed();
    223 
    224             break ;
    225         }
    226     }
    227 }
    228 */
    22977
    23078Bool_t MCerPhotEvt::IsPixelExisting(Int_t id)
  • trunk/MagicSoft/Mars/manalysis/MCerPhotEvt.h

    r698 r715  
    1111#include "MParContainer.h"
    1212#endif
    13 #ifndef MCAMNEIGHBOR_H
    14 #include "MCamNeighbor.h"
    15 #endif
    1613
    1714class MCerPhotPix;
     
    2017{
    2118private:
    22 
    23     UInt_t         fNumPixels;
     19    UInt_t        fNumPixels;
    2420    TClonesArray *fPixels;
    25 
    26     MCamNeighbor  fNN;   //! the class with the information about neighbors
    2721
    2822public:
  • trunk/MagicSoft/Mars/manalysis/MImgCleanStd.cc

    r698 r715  
    55
    66#include "MParList.h"
     7#include "MGeomCam.h"
    78#include "MCerPhotPix.h"
    89#include "MCerPhotEvt.h"
    9 #include "MCamNeighbor.h"
    1010
    1111ClassImp(MImgCleanStd)
     
    3434    // set them to 'unused' state if necessary
    3535    //
    36     for (Int_t il=0; il<entries; il++ )
    37     {
    38         MCerPhotPix &pix = (*fEvt)[il];
     36    for (Int_t i=0; i<entries; i++ )
     37    {
     38        MCerPhotPix &pix = (*fEvt)[i];
    3939
    4040        const Float_t entry = pix.GetNumPhotons();
     
    5555    const Int_t entries = fEvt->GetNumPixels();
    5656
    57     for (Int_t il=0; il<entries; il++)
     57    for (Int_t i=0; i<entries; i++)
    5858    {
    5959        //
    6060        // get entry il from list
    6161        //
    62         MCerPhotPix &pix = (*fEvt)[il];
     62        MCerPhotPix &pix = (*fEvt)[i];
    6363
    6464        //
     
    7171        // get pixel id of this entry
    7272        //
    73         const Int_t id = pix.GetPixId() ;
     73        const Int_t id = pix.GetPixId();
    7474
    7575        //
     
    7777        // state is 'used'
    7878        //
    79         Int_t itest = 0 ;
    80         for (Int_t in=0 ; in < 6; in++ )
     79        MGeomPix   &gpix  = (*fCam)[id];
     80        const Int_t nnmax = gpix.GetNumNeighbors();
     81
     82        Int_t cnt = 0;
     83        for (Int_t j=0; j<nnmax; j++)
    8184        {
    82             const Int_t id2 = fNN.GetNN(id, in) ;
     85            const Int_t id2 = gpix.GetNeighbor(j); //GetNN(id, in) ;
    8386
    8487            if (id2 < 0)
     
    8689
    8790            if (fEvt->IsPixelUsed(id2))
    88                 itest++ ;
     91                cnt++;
    8992        }
    9093
     
    9396        // set this pixel to 'unused', too.
    9497        //
    95         if (itest==0)
     98        if (cnt==0)
    9699            pix.SetPixelUnused();
    97100    }
     
    100103    // now we declare all pixels that survive as CorePixels
    101104    //
    102     for (Int_t il=0; il<entries; il++)
    103     {
    104         MCerPhotPix &pix = (*fEvt)[il];
     105    for (Int_t i=0; i<entries; i++)
     106    {
     107        MCerPhotPix &pix = (*fEvt)[i];
    105108
    106109        if (pix.IsPixelUsed())
     
    119122    const Int_t entries = fEvt->GetNumPixels();
    120123
    121     for (Int_t il=0; il<entries; il++)
     124    for (Int_t i=0; i<entries; i++)
    122125    {
    123126        //
    124127        // get pixel as entry il from list
    125128        //
    126         MCerPhotPix &pix = (*fEvt)[il];
     129        MCerPhotPix &pix = (*fEvt)[i];
    127130
    128131        //
     
    150153        // if it is a core pixel set pixel state to: used.
    151154        //
    152         for (Int_t in=0; in<6 ; in++)
     155        MGeomPix   &gpix  = (*fCam)[id];
     156        const Int_t nnmax = gpix.GetNumNeighbors();
     157
     158        for (Int_t j=0; j<nnmax; j++)
    153159        {
    154             const Int_t id2 = fNN.GetNN(id, in);
     160            const Int_t id2 = gpix.GetNeighbor(j);
    155161
    156162            if (id2 <0)
     
    173179    //  if not create one and add them to the list
    174180    //
     181    fCam = (MGeomCam*)pList->FindObject("MGeomCam");
     182    if (!fCam)
     183    {
     184        *fLog << dbginf << "MGeomCam not found (no geometry information available)... aborting." << endl;
     185        return kFALSE;
     186    }
     187
    175188    fEvt = (MCerPhotEvt*)pList->FindObject("MCerPhotEvt");
    176     if (fEvt)
    177         return kTRUE;
    178 
    179     *fLog << dbginf << "MCerPhotEvt not found... aborting." << endl;
    180     return kFALSE;
     189    if (!fEvt)
     190    {
     191        *fLog << dbginf << "MCerPhotEvt not found... aborting." << endl;
     192        return kFALSE;
     193    }
     194
     195    return kTRUE;
    181196}
    182197   
  • trunk/MagicSoft/Mars/manalysis/MImgCleanStd.h

    r698 r715  
    88#include "MTask.h"
    99#endif
    10 #ifndef MCAMNEIGHBOR_H
    11 #include "MCamNeighbor.h"
    12 #endif
    1310
     11class MGeomCam;
    1412class MCerPhotEvt;
    1513
     
    1715{
    1816private:
    19     MCamNeighbor  fNN;   //! the class with the information about neighbors
    20 
     17    MGeomCam    *fCam;
    2118    MCerPhotEvt *fEvt;
    2219
  • trunk/MagicSoft/Mars/mgui/GuiLinkDef.h

    r714 r715  
    66
    77#pragma link C++ class MHexagon;
    8 #pragma link C++ class MCamNeighbor;
    98
    109#pragma link C++ class MGeomPix;
  • trunk/MagicSoft/Mars/mgui/MCamDisplay.h

    r714 r715  
    2828{
    2929 private:
    30   Bool_t         fAutoScale;   //!  indicating the autoscale function
    31  
    32   UInt_t         fNumPixels;   //!
    33   TClonesArray  *fPixels ;    //!
     30     Bool_t         fAutoScale;   //  indicating the autoscale function
    3431
    35   Float_t        fMinPhe;      //!  The minimal number of Phe
    36   Float_t        fMaxPhe;      //!  The maximum number of Phe
     32     UInt_t         fNumPixels;
     33     TClonesArray  *fPixels ;
    3734
    38   TClonesArray  *fLegend;     //!
    39   TClonesArray  *fLegText;     //!
     35     Float_t        fMinPhe;      //  The minimal number of Phe
     36     Float_t        fMaxPhe;      //  The maximum number of Phe
    4037
    41   TBox *GetBox(Int_t i)   { return (TBox*) fLegend->At(i); }
    42   TText *GetText(Int_t i) { return (TText*)fLegText->At(i); }
     38     TClonesArray  *fLegend;
     39     TClonesArray  *fLegText;
    4340
    44   void SetPixColor(MCerPhotPix &pix)
    45   {
    46       (*this)[pix.GetPixId()].SetFillColor( GetColor(pix.GetNumPhotons()));
    47   }
     41     TBox *GetBox(Int_t i)   { return (TBox*) fLegend->At(i); }
     42     TText *GetText(Int_t i) { return (TText*)fLegText->At(i); }
    4843
    49  public:
    50  
    51   MCamDisplay (MGeomCam *geom);
     44     void SetPixColor(MCerPhotPix &pix)
     45     {
     46         (*this)[pix.GetPixId()].SetFillColor( GetColor(pix.GetNumPhotons()));
     47     }
    5248
    53   ~MCamDisplay ();
     49public:
    5450
    55   void Init();
     51    MCamDisplay (MGeomCam *geom);
    5652
    57   void Draw(Option_t *option = "" );
     53    ~MCamDisplay ();
    5854
    59   void DrawPhotNum( MCerPhotEvt *event);
    60   void DrawPhotErr( MCerPhotEvt *event);
     55    void Init();
    6156
    62   void Reset();
     57    void Draw(Option_t *option = "" );
    6358
    64   MHexagon &operator[](int i) { return *((MHexagon*)fPixels->At(i)); }
     59    void DrawPhotNum( MCerPhotEvt *event);
     60    void DrawPhotErr( MCerPhotEvt *event);
    6561
    66   Int_t GetColor( Float_t wert );
     62    void Reset();
    6763
    68   void UpdateLegend(); 
     64    MHexagon &operator[](int i) { return *((MHexagon*)fPixels->At(i)); }
    6965
    70   void SetAutoScale (Bool_t input = kTRUE )
    71     {
    72       fAutoScale = input;
    73     }
     66    Int_t GetColor( Float_t wert );
    7467
    75   ClassDef(MCamDisplay, 0) // Display the magic camera
     68    void UpdateLegend();
     69
     70    void SetAutoScale (Bool_t input = kTRUE )
     71    {
     72        fAutoScale = input;
     73    }
     74
     75    ClassDef(MCamDisplay, 0) // Display the magic camera
    7676};
    7777
  • trunk/MagicSoft/Mars/mgui/MGeomCamCT1.cc

    r700 r715  
    1212{
    1313    CreateCam();
     14    CreateNN();
    1415}
    1516
     
    2223    MGeomCam::Draw();
    2324}
     25
     26
     27void MGeomCamCT1::CreateNN()
     28{
     29    const Short_t nn[127][6] = {       // Neighbors of #
     30      {  1,   2,   3,   4,   5,   6},  // 0
     31      {  0,   2,   6,   7,   8,  18},
     32      {  0,   1,   3,   8,   9,  10},
     33      {  0,   2,   4,  10,  11,  12},
     34      {  0,   3,   5,  12,  13,  14},
     35      {  0,   4,   6,  14,  15,  16},
     36      {  0,   1,   5,  16,  17,  18},
     37      {  1,   8,  18,  19,  20,  36},
     38      {  1,   2,   7,   9,  20,  21},
     39      {  2,   8,  10,  21,  22,  23},  // 10
     40      {  2,   3,   9,  11,  23,  24},
     41      {  3,  10,  12,  24,  25,  26},
     42      {  3,   4,  11,  13,  26,  27},
     43      {  4,  12,  14,  27,  28,  29},
     44      {  4,   5,  13,  15,  29,  30},
     45      {  5,  14,  16,  30,  31,  32},
     46      {  5,   6,  15,  17,  32,  33},
     47      {  6,  16,  18,  33,  34,  35},
     48      {  1,   6,   7,  17,  35,  36},
     49      {  7,  20,  36,  37,  38,  60},  // 20
     50      {  7,   8,  19,  21,  38,  39},
     51      {  8,   9,  20,  22,  39,  40},
     52      {  9,  21,  23,  40,  41,  42},
     53      {  9,  10,  22,  24,  42,  43},
     54      { 10,  11,  23,  25,  43,  44},
     55      { 11,  24,  26,  44,  45,  46},
     56      { 11,  12,  25,  27,  46,  47},
     57      { 12,  13,  26,  28,  47,  48},
     58      { 13,  27,  29,  48,  49,  50},
     59      { 13,  14,  28,  30,  50,  51},  // 30
     60      { 14,  15,  29,  31,  51,  52},
     61      { 15,  30,  32,  52,  53,  54},
     62      { 15,  16,  31,  33,  54,  55},
     63      { 16,  17,  32,  34,  55,  56},
     64      { 17,  33,  35,  56,  57,  58},
     65      { 17,  18,  34,  36,  58,  59},
     66      {  7,  18,  19,  35,  59,  60},
     67      { 19,  38,  60,  61,  62,  90},
     68      { 19,  20,  37,  39,  62,  63},
     69      { 20,  21,  38,  40,  63,  64},  // 40
     70      { 21,  22,  39,  41,  64,  65},
     71      { 22,  40,  42,  65,  66,  67},
     72      { 22,  23,  41,  43,  67,  68},
     73      { 23,  24,  42,  44,  68,  69},
     74      { 24,  25,  43,  45,  69,  70},
     75      { 25,  44,  46,  70,  71,  72},
     76      { 25,  26,  45,  47,  72,  73},
     77      { 26,  27,  46,  48,  73,  74},
     78      { 27,  28,  47,  49,  74,  75},
     79      { 28,  48,  50,  75,  76,  77},  // 50
     80      { 28,  29,  49,  51,  77,  78},
     81      { 29,  30,  50,  52,  78,  79},
     82      { 30,  31,  51,  53,  79,  80},
     83      { 31,  52,  54,  80,  81,  82},
     84      { 31,  32,  53,  55,  82,  83},
     85      { 32,  33,  54,  56,  83,  84},
     86      { 33,  34,  55,  57,  84,  85},
     87      { 34,  56,  58,  85,  86,  87},
     88      { 34,  35,  57,  59,  87,  88},
     89      { 35,  36,  58,  60,  88,  89},  // 60
     90      { 19,  36,  37,  59,  89,  90},
     91      { 37,  62,  90,  91,  92, 126},
     92      { 37,  38,  61,  63,  92,  93},
     93      { 38,  39,  62,  64,  93,  94},
     94      { 39,  40,  63,  65,  94,  95},
     95      { 40,  41,  64,  66,  95,  96},
     96      { 41,  65,  67,  96,  97,  98},
     97      { 41,  42,  66,  68,  98,  99},
     98      { 42,  43,  67,  69,  99, 100},
     99      { 43,  44,  68,  70, 100, 101},  // 70
     100      { 44,  45,  69,  71, 101, 102},
     101      { 45,  70,  72, 102, 103, 104},
     102      { 45,  46,  71,  73, 104, 105},
     103      { 46,  47,  72,  74, 105, 106},
     104      { 47,  48,  73,  75, 106, 107},
     105      { 48,  49,  74,  76, 107, 108},
     106      { 49,  75,  77, 108, 109, 110},
     107      { 49,  50,  76,  78, 110, 111},
     108      { 50,  51,  77,  79, 111, 112},
     109      { 51,  52,  78,  80, 112, 113},  // 80
     110      { 52,  53,  79,  81, 113, 114},
     111      { 53,  80,  82, 114, 115, 116},
     112      { 53,  54,  81,  83, 116, 117},
     113      { 54,  55,  82,  84, 117, 118},
     114      { 55,  56,  83,  85, 118, 119},
     115      { 56,  57,  84,  86, 119, 120},
     116      { 57,  85,  87, 120, 121, 122},
     117      { 57,  58,  86,  88, 122, 123},
     118      { 58,  59,  87,  89, 123, 124},
     119      { 59,  60,  88,  90, 124, 125},  // 90
     120      { 37,  60,  61,  89, 125, 126},
     121      { 61,  92, 126, 127,  -1,  -1},
     122      { 61,  62,  91,  93,  -1,  -1},
     123      { 62,  63,  92,  94,  -1,  -1},
     124      { 63,  64,  93,  95,  -1,  -1},
     125      { 64,  65,  94,  96,  -1,  -1},
     126      { 65,  66,  95,  97,  -1,  -1},
     127      { 66,  96,  98,  -1,  -1,  -1},
     128      { 66,  67,  97,  99,  -1,  -1},
     129      { 67,  68,  98, 100,  -1,  -1},  // 100
     130      { 68,  69,  99, 101,  -1,  -1},
     131      { 69,  70, 100, 102,  -1,  -1},
     132      { 70,  71, 101, 103,  -1,  -1},
     133      { 71, 102, 104,  -1,  -1,  -1},
     134      { 71,  72, 103, 105,  -1,  -1},
     135      { 72,  73, 104, 106,  -1,  -1},
     136      { 73,  74, 105, 107,  -1,  -1},
     137      { 74,  75, 106, 108,  -1,  -1},
     138      { 75,  76, 107, 109,  -1,  -1},
     139      { 76, 108, 110,  -1,  -1,  -1},  // 110
     140      { 76,  77, 109, 111,  -1,  -1},
     141      { 77,  78, 110, 112,  -1,  -1},
     142      { 78,  79, 111, 113,  -1,  -1},
     143      { 79,  80, 112, 114,  -1,  -1},
     144      { 80,  81, 113, 115,  -1,  -1},
     145      { 81, 114, 116,  -1,  -1,  -1},
     146      { 81,  82, 115, 117,  -1,  -1},
     147      { 82,  83, 116, 118,  -1,  -1},
     148      { 83,  84, 117, 119,  -1,  -1},
     149      { 84,  85, 118, 120,  -1,  -1},  // 120
     150      { 85,  86, 119, 121,  -1,  -1},
     151      { 86, 120, 122,  -1,  -1,  -1},
     152      { 86,  87, 121, 123,  -1,  -1},
     153      { 87,  88, 122, 124,  -1,  -1},
     154      { 88,  89, 123, 125,  -1,  -1},
     155      { 89,  90, 124, 126,  -1,  -1}   // 126
     156  } ;
     157
     158  for (Int_t i=0; i<127; i++)
     159      (*this)[i].SetNeighbors(nn[i][0], nn[i][1], nn[i][2],
     160                              nn[i][3], nn[i][4], nn[i][5]);
     161}
    24162
    25163void MGeomCamCT1::CreateCam()
  • trunk/MagicSoft/Mars/mgui/MGeomCamCT1.h

    r695 r715  
    1414
    1515    void CreateCam();
     16    void CreateNN();
    1617
    1718public:
  • trunk/MagicSoft/Mars/mgui/MGeomCamMagic.cc

    r695 r715  
    184184
    185185    const Float_t rtemp[577] = {
    186         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    187         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    188         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    189         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    190         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    191         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    192         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    193         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    194         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    195         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    196         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    197         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    198         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    199         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    200         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    201         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    202         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    203         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    204         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    205         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    206         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    207         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    208         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    209         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    210         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    211         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    212         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    213         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    214         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    215         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    216         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    217         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    218         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    219         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    220         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    221         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    222         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    223         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    224         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    225         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    226         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    227         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    228         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    229         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    230         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    231         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    232         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    233         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    234         30.00,30.00,30.00,30.00,30.00,30.00,30.00,30.00,
    235         30.00,30.00,30.00,30.00,30.00,60.00,60.00,60.00,
    236         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    237         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    238         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    239         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    240         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    241         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    242         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    243         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    244         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    245         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    246         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    247         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    248         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    249         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    250         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    251         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    252         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    253         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    254         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    255         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    256         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    257         60.00,60.00,60.00,60.00,60.00,60.00,60.00,60.00,
    258         60.00  } ;
     186        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     187        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     188        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     189        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     190        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     191        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     192        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     193        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     194        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     195        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     196        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     197        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     198        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     199        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     200        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     201        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     202        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     203        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     204        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     205        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     206        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     207        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     208        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     209        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     210        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     211        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     212        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     213        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     214        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     215        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     216        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     217        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     218        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     219        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     220        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     221        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     222        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     223        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     224        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     225        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     226        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     227        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     228        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     229        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     230        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     231        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     232        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     233        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     234        30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00, 30.00,
     235        30.00, 30.00, 30.00, 30.00, 30.00, 60.00, 60.00, 60.00,
     236        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     237        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     238        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     239        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     240        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     241        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     242        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     243        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     244        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     245        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     246        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     247        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     248        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     249        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     250        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     251        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     252        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     253        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     254        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     255        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     256        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     257        60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00, 60.00,
     258        60.00  };
    259259
    260260    //
     
    262262    //
    263263
    264     for (UInt_t i = 0; i<GetNumPixels(); i++)
     264    for (UInt_t i=0; i<GetNumPixels(); i++)
    265265    {
    266266        (*this)[i].Set(xtemp[i], ytemp[i], rtemp[i]) ;
     
    269269}
    270270
     271void MGeomCamMagic::CreateNN()
     272{
     273    const Short_t nn[577][6] = {         // Neighbors of #
     274        {   1,   2,   3,   4,   5,   6}, // 0
     275        {   0,   2,   6,   7,   8,  18},
     276        {   0,   1,   3,   8,   9,  10},
     277        {   0,   2,   4,  10,  11,  12},
     278        {   0,   3,   5,  12,  13,  14},
     279        {   0,   4,   6,  14,  15,  16},
     280        {   0,   1,   5,  16,  17,  18},
     281        {   1,   8,  18,  19,  20,  36},
     282        {   1,   2,   7,   9,  20,  21},
     283        {   2,   8,  10,  21,  22,  23},
     284        {   2,   3,   9,  11,  23,  24},
     285        {   3,  10,  12,  24,  25,  26},
     286        {   3,   4,  11,  13,  26,  27},
     287        {   4,  12,  14,  27,  28,  29},
     288        {   4,   5,  13,  15,  29,  30},
     289        {   5,  14,  16,  30,  31,  32},
     290        {   5,   6,  15,  17,  32,  33},
     291        {   6,  16,  18,  33,  34,  35},
     292        {   1,   6,   7,  17,  35,  36},
     293        {   7,  20,  36,  37,  38,  60},
     294        {   7,   8,  19,  21,  38,  39}, // 20
     295        {   8,   9,  20,  22,  39,  40},
     296        {   9,  21,  23,  40,  41,  42},
     297        {   9,  10,  22,  24,  42,  43},
     298        {  10,  11,  23,  25,  43,  44},
     299        {  11,  24,  26,  44,  45,  46},
     300        {  11,  12,  25,  27,  46,  47},
     301        {  12,  13,  26,  28,  47,  48},
     302        {  13,  27,  29,  48,  49,  50},
     303        {  13,  14,  28,  30,  50,  51},
     304        {  14,  15,  29,  31,  51,  52},
     305        {  15,  30,  32,  52,  53,  54},
     306        {  15,  16,  31,  33,  54,  55},
     307        {  16,  17,  32,  34,  55,  56},
     308        {  17,  33,  35,  56,  57,  58},
     309        {  17,  18,  34,  36,  58,  59},
     310        {   7,  18,  19,  35,  59,  60},
     311        {  19,  38,  60,  61,  62,  90},
     312        {  19,  20,  37,  39,  62,  63},
     313        {  20,  21,  38,  40,  63,  64},
     314        {  21,  22,  39,  41,  64,  65}, // 40
     315        {  22,  40,  42,  65,  66,  67},
     316        {  22,  23,  41,  43,  67,  68},
     317        {  23,  24,  42,  44,  68,  69},
     318        {  24,  25,  43,  45,  69,  70},
     319        {  25,  44,  46,  70,  71,  72},
     320        {  25,  26,  45,  47,  72,  73},
     321        {  26,  27,  46,  48,  73,  74},
     322        {  27,  28,  47,  49,  74,  75},
     323        {  28,  48,  50,  75,  76,  77},
     324        {  28,  29,  49,  51,  77,  78},
     325        {  29,  30,  50,  52,  78,  79},
     326        {  30,  31,  51,  53,  79,  80},
     327        {  31,  52,  54,  80,  81,  82},
     328        {  31,  32,  53,  55,  82,  83},
     329        {  32,  33,  54,  56,  83,  84},
     330        {  33,  34,  55,  57,  84,  85},
     331        {  34,  56,  58,  85,  86,  87},
     332        {  34,  35,  57,  59,  87,  88},
     333        {  35,  36,  58,  60,  88,  89},
     334        {  19,  36,  37,  59,  89,  90}, // 60
     335        {  37,  62,  90,  91,  92, 126},
     336        {  37,  38,  61,  63,  92,  93},
     337        {  38,  39,  62,  64,  93,  94},
     338        {  39,  40,  63,  65,  94,  95},
     339        {  40,  41,  64,  66,  95,  96},
     340        {  41,  65,  67,  96,  97,  98},
     341        {  41,  42,  66,  68,  98,  99},
     342        {  42,  43,  67,  69,  99, 100},
     343        {  43,  44,  68,  70, 100, 101},
     344        {  44,  45,  69,  71, 101, 102},
     345        {  45,  70,  72, 102, 103, 104},
     346        {  45,  46,  71,  73, 104, 105},
     347        {  46,  47,  72,  74, 105, 106},
     348        {  47,  48,  73,  75, 106, 107},
     349        {  48,  49,  74,  76, 107, 108},
     350        {  49,  75,  77, 108, 109, 110},
     351        {  49,  50,  76,  78, 110, 111},
     352        {  50,  51,  77,  79, 111, 112},
     353        {  51,  52,  78,  80, 112, 113},
     354        {  52,  53,  79,  81, 113, 114}, // 80
     355        {  53,  80,  82, 114, 115, 116},
     356        {  53,  54,  81,  83, 116, 117},
     357        {  54,  55,  82,  84, 117, 118},
     358        {  55,  56,  83,  85, 118, 119},
     359        {  56,  57,  84,  86, 119, 120},
     360        {  57,  85,  87, 120, 121, 122},
     361        {  57,  58,  86,  88, 122, 123},
     362        {  58,  59,  87,  89, 123, 124},
     363        {  59,  60,  88,  90, 124, 125},
     364        {  37,  60,  61,  89, 125, 126},
     365        {  61,  92, 126, 127, 128, 168},
     366        {  61,  62,  91,  93, 128, 129},
     367        {  62,  63,  92,  94, 129, 130},
     368        {  63,  64,  93,  95, 130, 131},
     369        {  64,  65,  94,  96, 131, 132},
     370        {  65,  66,  95,  97, 132, 133},
     371        {  66,  96,  98, 133, 134, 135},
     372        {  66,  67,  97,  99, 135, 136},
     373        {  67,  68,  98, 100, 136, 137},
     374        {  68,  69,  99, 101, 137, 138}, // 100
     375        {  69,  70, 100, 102, 138, 139},
     376        {  70,  71, 101, 103, 139, 140},
     377        {  71, 102, 104, 140, 141, 142},
     378        {  71,  72, 103, 105, 142, 143},
     379        {  72,  73, 104, 106, 143, 144},
     380        {  73,  74, 105, 107, 144, 145},
     381        {  74,  75, 106, 108, 145, 146},
     382        {  75,  76, 107, 109, 146, 147},
     383        {  76, 108, 110, 147, 148, 149},
     384        {  76,  77, 109, 111, 149, 150},
     385        {  77,  78, 110, 112, 150, 151},
     386        {  78,  79, 111, 113, 151, 152},
     387        {  79,  80, 112, 114, 152, 153},
     388        {  80,  81, 113, 115, 153, 154},
     389        {  81, 114, 116, 154, 155, 156},
     390        {  81,  82, 115, 117, 156, 157},
     391        {  82,  83, 116, 118, 157, 158},
     392        {  83,  84, 117, 119, 158, 159},
     393        {  84,  85, 118, 120, 159, 160},
     394        {  85,  86, 119, 121, 160, 161}, // 120
     395        {  86, 120, 122, 161, 162, 163},
     396        {  86,  87, 121, 123, 163, 164},
     397        {  87,  88, 122, 124, 164, 165},
     398        {  88,  89, 123, 125, 165, 166},
     399        {  89,  90, 124, 126, 166, 167},
     400        {  61,  90,  91, 125, 167, 168},
     401        {  91, 128, 168, 169, 170, 216},
     402        {  91,  92, 127, 129, 170, 171},
     403        {  92,  93, 128, 130, 171, 172},
     404        {  93,  94, 129, 131, 172, 173},
     405        {  94,  95, 130, 132, 173, 174},
     406        {  95,  96, 131, 133, 174, 175},
     407        {  96,  97, 132, 134, 175, 176},
     408        {  97, 133, 135, 176, 177, 178},
     409        {  97,  98, 134, 136, 178, 179},
     410        {  98,  99, 135, 137, 179, 180},
     411        {  99, 100, 136, 138, 180, 181},
     412        { 100, 101, 137, 139, 181, 182},
     413        { 101, 102, 138, 140, 182, 183},
     414        { 102, 103, 139, 141, 183, 184}, // 140
     415        { 103, 140, 142, 184, 185, 186},
     416        { 103, 104, 141, 143, 186, 187},
     417        { 104, 105, 142, 144, 187, 188},
     418        { 105, 106, 143, 145, 188, 189},
     419        { 106, 107, 144, 146, 189, 190},
     420        { 107, 108, 145, 147, 190, 191},
     421        { 108, 109, 146, 148, 191, 192},
     422        { 109, 147, 149, 192, 193, 194},
     423        { 109, 110, 148, 150, 194, 195},
     424        { 110, 111, 149, 151, 195, 196},
     425        { 111, 112, 150, 152, 196, 197},
     426        { 112, 113, 151, 153, 197, 198},
     427        { 113, 114, 152, 154, 198, 199},
     428        { 114, 115, 153, 155, 199, 200},
     429        { 115, 154, 156, 200, 201, 202},
     430        { 115, 116, 155, 157, 202, 203},
     431        { 116, 117, 156, 158, 203, 204},
     432        { 117, 118, 157, 159, 204, 205},
     433        { 118, 119, 158, 160, 205, 206},
     434        { 119, 120, 159, 161, 206, 207}, // 160
     435        { 120, 121, 160, 162, 207, 208},
     436        { 121, 161, 163, 208, 209, 210},
     437        { 121, 122, 162, 164, 210, 211},
     438        { 122, 123, 163, 165, 211, 212},
     439        { 123, 124, 164, 166, 212, 213},
     440        { 124, 125, 165, 167, 213, 214},
     441        { 125, 126, 166, 168, 214, 215},
     442        {  91, 126, 127, 167, 215, 216},
     443        { 127, 170, 216, 217, 218, 270},
     444        { 127, 128, 169, 171, 218, 219},
     445        { 128, 129, 170, 172, 219, 220},
     446        { 129, 130, 171, 173, 220, 221},
     447        { 130, 131, 172, 174, 221, 222},
     448        { 131, 132, 173, 175, 222, 223},
     449        { 132, 133, 174, 176, 223, 224},
     450        { 133, 134, 175, 177, 224, 225},
     451        { 134, 176, 178, 225, 226, 227},
     452        { 134, 135, 177, 179, 227, 228},
     453        { 135, 136, 178, 180, 228, 229},
     454        { 136, 137, 179, 181, 229, 230}, // 180
     455        { 137, 138, 180, 182, 230, 231},
     456        { 138, 139, 181, 183, 231, 232},
     457        { 139, 140, 182, 184, 232, 233},
     458        { 140, 141, 183, 185, 233, 234},
     459        { 141, 184, 186, 234, 235, 236},
     460        { 141, 142, 185, 187, 236, 237},
     461        { 142, 143, 186, 188, 237, 238},
     462        { 143, 144, 187, 189, 238, 239},
     463        { 144, 145, 188, 190, 239, 240},
     464        { 145, 146, 189, 191, 240, 241},
     465        { 146, 147, 190, 192, 241, 242},
     466        { 147, 148, 191, 193, 242, 243},
     467        { 148, 192, 194, 243, 244, 245},
     468        { 148, 149, 193, 195, 245, 246},
     469        { 149, 150, 194, 196, 246, 247},
     470        { 150, 151, 195, 197, 247, 248},
     471        { 151, 152, 196, 198, 248, 249},
     472        { 152, 153, 197, 199, 249, 250},
     473        { 153, 154, 198, 200, 250, 251},
     474        { 154, 155, 199, 201, 251, 252}, // 200
     475        { 155, 200, 202, 252, 253, 254},
     476        { 155, 156, 201, 203, 254, 255},
     477        { 156, 157, 202, 204, 255, 256},
     478        { 157, 158, 203, 205, 256, 257},
     479        { 158, 159, 204, 206, 257, 258},
     480        { 159, 160, 205, 207, 258, 259},
     481        { 160, 161, 206, 208, 259, 260},
     482        { 161, 162, 207, 209, 260, 261},
     483        { 162, 208, 210, 261, 262, 263},
     484        { 162, 163, 209, 211, 263, 264},
     485        { 163, 164, 210, 212, 264, 265},
     486        { 164, 165, 211, 213, 265, 266},
     487        { 165, 166, 212, 214, 266, 267},
     488        { 166, 167, 213, 215, 267, 268},
     489        { 167, 168, 214, 216, 268, 269},
     490        { 127, 168, 169, 215, 269, 270},
     491        { 169, 218, 270, 271, 272, 330},
     492        { 169, 170, 217, 219, 272, 273},
     493        { 170, 171, 218, 220, 273, 274},
     494        { 171, 172, 219, 221, 274, 275}, // 220
     495        { 172, 173, 220, 222, 275, 276},
     496        { 173, 174, 221, 223, 276, 277},
     497        { 174, 175, 222, 224, 277, 278},
     498        { 175, 176, 223, 225, 278, 279},
     499        { 176, 177, 224, 226, 279, 280},
     500        { 177, 225, 227, 280, 281, 282},
     501        { 177, 178, 226, 228, 282, 283},
     502        { 178, 179, 227, 229, 283, 284},
     503        { 179, 180, 228, 230, 284, 285},
     504        { 180, 181, 229, 231, 285, 286},
     505        { 181, 182, 230, 232, 286, 287},
     506        { 182, 183, 231, 233, 287, 288},
     507        { 183, 184, 232, 234, 288, 289},
     508        { 184, 185, 233, 235, 289, 290},
     509        { 185, 234, 236, 290, 291, 292},
     510        { 185, 186, 235, 237, 292, 293},
     511        { 186, 187, 236, 238, 293, 294},
     512        { 187, 188, 237, 239, 294, 295},
     513        { 188, 189, 238, 240, 295, 296},
     514        { 189, 190, 239, 241, 296, 297}, // 240
     515        { 190, 191, 240, 242, 297, 298},
     516        { 191, 192, 241, 243, 298, 299},
     517        { 192, 193, 242, 244, 299, 300},
     518        { 193, 243, 245, 300, 301, 302},
     519        { 193, 194, 244, 246, 302, 303},
     520        { 194, 195, 245, 247, 303, 304},
     521        { 195, 196, 246, 248, 304, 305},
     522        { 196, 197, 247, 249, 305, 306},
     523        { 197, 198, 248, 250, 306, 307},
     524        { 198, 199, 249, 251, 307, 308},
     525        { 199, 200, 250, 252, 308, 309},
     526        { 200, 201, 251, 253, 309, 310},
     527        { 201, 252, 254, 310, 311, 312},
     528        { 201, 202, 253, 255, 312, 313},
     529        { 202, 203, 254, 256, 313, 314},
     530        { 203, 204, 255, 257, 314, 315},
     531        { 204, 205, 256, 258, 315, 316},
     532        { 205, 206, 257, 259, 316, 317},
     533        { 206, 207, 258, 260, 317, 318},
     534        { 207, 208, 259, 261, 318, 319}, // 260
     535        { 208, 209, 260, 262, 319, 320},
     536        { 209, 261, 263, 320, 321, 322},
     537        { 209, 210, 262, 264, 322, 323},
     538        { 210, 211, 263, 265, 323, 324},
     539        { 211, 212, 264, 266, 324, 325},
     540        { 212, 213, 265, 267, 325, 326},
     541        { 213, 214, 266, 268, 326, 327},
     542        { 214, 215, 267, 269, 327, 328},
     543        { 215, 216, 268, 270, 328, 329},
     544        { 169, 216, 217, 269, 329, 330},
     545        { 217, 272, 330, 331, 332, 396},
     546        { 217, 218, 271, 273, 332, 333},
     547        { 218, 219, 272, 274, 333, 334},
     548        { 219, 220, 273, 275, 334, 335},
     549        { 220, 221, 274, 276, 335, 336},
     550        { 221, 222, 275, 277, 336, 337},
     551        { 222, 223, 276, 278, 337, 338},
     552        { 223, 224, 277, 279, 338, 339},
     553        { 224, 225, 278, 280, 339, 340},
     554        { 225, 226, 279, 281, 340, 341}, // 280
     555        { 226, 280, 282, 341, 342, 343},
     556        { 226, 227, 281, 283, 343, 344},
     557        { 227, 228, 282, 284, 344, 345},
     558        { 228, 229, 283, 285, 345, 346},
     559        { 229, 230, 284, 286, 346, 347},
     560        { 230, 231, 285, 287, 347, 348},
     561        { 231, 232, 286, 288, 348, 349},
     562        { 232, 233, 287, 289, 349, 350},
     563        { 233, 234, 288, 290, 350, 351},
     564        { 234, 235, 289, 291, 351, 352},
     565        { 235, 290, 292, 352, 353, 354},
     566        { 235, 236, 291, 293, 354, 355},
     567        { 236, 237, 292, 294, 355, 356},
     568        { 237, 238, 293, 295, 356, 357},
     569        { 238, 239, 294, 296, 357, 358},
     570        { 239, 240, 295, 297, 358, 359},
     571        { 240, 241, 296, 298, 359, 360},
     572        { 241, 242, 297, 299, 360, 361},
     573        { 242, 243, 298, 300, 361, 362},
     574        { 243, 244, 299, 301, 362, 363}, // 300
     575        { 244, 300, 302, 363, 364, 365},
     576        { 244, 245, 301, 303, 365, 366},
     577        { 245, 246, 302, 304, 366, 367},
     578        { 246, 247, 303, 305, 367, 368},
     579        { 247, 248, 304, 306, 368, 369},
     580        { 248, 249, 305, 307, 369, 370},
     581        { 249, 250, 306, 308, 370, 371},
     582        { 250, 251, 307, 309, 371, 372},
     583        { 251, 252, 308, 310, 372, 373},
     584        { 252, 253, 309, 311, 373, 374},
     585        { 253, 310, 312, 374, 375, 376},
     586        { 253, 254, 311, 313, 376, 377},
     587        { 254, 255, 312, 314, 377, 378},
     588        { 255, 256, 313, 315, 378, 379},
     589        { 256, 257, 314, 316, 379, 380},
     590        { 257, 258, 315, 317, 380, 381},
     591        { 258, 259, 316, 318, 381, 382},
     592        { 259, 260, 317, 319, 382, 383},
     593        { 260, 261, 318, 320, 383, 384},
     594        { 261, 262, 319, 321, 384, 385}, // 320
     595        { 262, 320, 322, 385, 386, 387},
     596        { 262, 263, 321, 323, 387, 388},
     597        { 263, 264, 322, 324, 388, 389},
     598        { 264, 265, 323, 325, 389, 390},
     599        { 265, 266, 324, 326, 390, 391},
     600        { 266, 267, 325, 327, 391, 392},
     601        { 267, 268, 326, 328, 392, 393},
     602        { 268, 269, 327, 329, 393, 394},
     603        { 269, 270, 328, 330, 394, 395},
     604        { 217, 270, 271, 329, 395, 396},
     605        { 271, 332, 396, 397, 432,  -1},
     606        { 271, 272, 331, 333, 397,  -1},
     607        { 272, 273, 332, 334, 398,  -1},
     608        { 273, 274, 333, 335, 398,  -1},
     609        { 274, 275, 334, 336, 399,  -1},
     610        { 275, 276, 335, 337, 399,  -1},
     611        { 276, 277, 336, 338, 400,  -1},
     612        { 277, 278, 337, 339, 400,  -1},
     613        { 278, 279, 338, 340, 401,  -1},
     614        { 279, 280, 339, 341, 401,  -1}, // 340
     615        { 280, 281, 340, 342, 402,  -1},
     616        { 281, 341, 343, 402, 403,  -1},
     617        { 281, 282, 342, 344, 403,  -1},
     618        { 282, 283, 343, 345, 404,  -1},
     619        { 283, 284, 344, 346, 404,  -1},
     620        { 284, 285, 345, 347, 405,  -1},
     621        { 285, 286, 346, 348, 405,  -1},
     622        { 286, 287, 347, 349, 406,  -1},
     623        { 287, 288, 348, 350, 406,  -1},
     624        { 288, 289, 349, 351, 407,  -1},
     625        { 289, 290, 350, 352, 407,  -1},
     626        { 290, 291, 351, 353, 408,  -1},
     627        { 291, 352, 354, 408, 409,  -1},
     628        { 291, 292, 353, 355, 409,  -1},
     629        { 292, 293, 354, 356, 410,  -1},
     630        { 293, 294, 355, 357, 410,  -1},
     631        { 294, 295, 356, 358, 411,  -1},
     632        { 295, 296, 357, 359, 411,  -1},
     633        { 296, 297, 358, 360, 412,  -1},
     634        { 297, 298, 359, 361, 412,  -1}, // 360
     635        { 298, 299, 360, 362, 413,  -1},
     636        { 299, 300, 361, 363, 413,  -1},
     637        { 300, 301, 362, 364, 414,  -1},
     638        { 301, 363, 365, 414, 415,  -1},
     639        { 301, 302, 364, 366, 415,  -1},
     640        { 302, 303, 365, 367, 416,  -1},
     641        { 303, 304, 366, 368, 416,  -1},
     642        { 304, 305, 367, 369, 417,  -1},
     643        { 305, 306, 368, 370, 417,  -1},
     644        { 306, 307, 369, 371, 418,  -1},
     645        { 307, 308, 370, 372, 418,  -1},
     646        { 308, 309, 371, 373, 419,  -1},
     647        { 309, 310, 372, 374, 419,  -1},
     648        { 310, 311, 373, 375, 420,  -1},
     649        { 311, 374, 376, 420, 421,  -1},
     650        { 311, 312, 375, 377, 421,  -1},
     651        { 312, 313, 376, 378, 422,  -1},
     652        { 313, 314, 377, 379, 422,  -1},
     653        { 314, 315, 378, 380, 423,  -1},
     654        { 315, 316, 379, 381, 423,  -1}, // 380
     655        { 316, 317, 380, 382, 424,  -1},
     656        { 317, 318, 381, 383, 424,  -1},
     657        { 318, 319, 382, 384, 425,  -1},
     658        { 319, 320, 383, 385, 425,  -1},
     659        { 320, 321, 384, 386, 426,  -1},
     660        { 321, 385, 387, 426, 427,  -1},
     661        { 321, 322, 386, 388, 427,  -1},
     662        { 322, 323, 387, 389, 428,  -1},
     663        { 323, 324, 388, 390, 428,  -1},
     664        { 324, 325, 389, 391, 429,  -1},
     665        { 325, 326, 390, 392, 429,  -1},
     666        { 326, 327, 391, 393, 430,  -1},
     667        { 327, 328, 392, 394, 430,  -1},
     668        { 328, 329, 393, 395, 431,  -1},
     669        { 329, 330, 394, 396, 431,  -1},
     670        { 271, 330, 331, 395, 432,  -1},
     671        { 331, 332, 398, 432, 433, 434},
     672        { 333, 334, 397, 399, 434,  -1},
     673        { 335, 336, 400, 435, 436,  -1},
     674        { 337, 338, 399, 401, 437,  -1}, // 400
     675        { 339, 340, 400, 402, 438,  -1},
     676        { 341, 342, 401, 403, 438, 439},
     677        { 342, 343, 402, 404, 440, 441},
     678        { 344, 345, 403, 441, 442,  -1},
     679        { 346, 347, 404, 442, 443,  -1},
     680        { 348, 349, 405, 443, 444,  -1},
     681        { 350, 351, 406, 444, 445,  -1},
     682        { 352, 353, 407, 409, 445, 446},
     683        { 353, 354, 408, 410, 447, 448},
     684        { 355, 356, 409, 411, 448,  -1},
     685        { 357, 358, 410, 412, 449,  -1},
     686        { 359, 360, 411, 450, 451,  -1},
     687        { 361, 362, 412, 414, 452,  -1},
     688        { 363, 364, 413, 415, 452, 453},
     689        { 364, 365, 414, 416, 454, 455},
     690        { 366, 367, 415, 417, 455,  -1},
     691        { 368, 369, 418, 456, 457,  -1},
     692        { 370, 371, 417, 419, 458,  -1},
     693        { 372, 373, 418, 420, 459,  -1},
     694        { 374, 375, 419, 421, 459, 460}, // 420
     695        { 375, 376, 420, 422, 461, 462},
     696        { 377, 378, 421, 462, 463,  -1},
     697        { 379, 380, 422, 463, 464,  -1},
     698        { 381, 382, 423, 464, 465,  -1},
     699        { 383, 384, 424, 465, 466,  -1},
     700        { 385, 386, 425, 427, 466, 467},
     701        { 386, 387, 426, 428, 468, 469},
     702        { 388, 389, 427, 429, 469,  -1},
     703        { 390, 391, 428, 430, 470,  -1},
     704        { 392, 393, 429, 471, 472,  -1},
     705        { 394, 395, 430, 432, 473,  -1},
     706        { 331, 396, 397, 431, 473, 474},
     707        { 397, 434, 474, 475, 476,  -1},
     708        { 397, 398, 433, 435, 476, 477},
     709        { 398, 399, 434, 436, 477, 478},
     710        { 399, 400, 435, 437, 478, 479},
     711        { 400, 401, 436, 438, 479, 480},
     712        { 401, 402, 437, 439, 480, 481},
     713        { 402, 438, 440, 481, 482,  -1},
     714        { 403, 439, 441, 483, 484,  -1}, // 440
     715        { 403, 404, 440, 442, 484, 485},
     716        { 404, 405, 441, 443, 485, 486},
     717        { 405, 406, 442, 444, 486, 487},
     718        { 406, 407, 443, 445, 487, 488},
     719        { 407, 408, 444, 446, 488, 489},
     720        { 408, 445, 447, 489, 490,  -1},
     721        { 409, 446, 448, 491, 492,  -1},
     722        { 409, 410, 447, 449, 492, 493},
     723        { 410, 411, 448, 450, 493, 494},
     724        { 411, 412, 449, 451, 494, 495},
     725        { 412, 413, 450, 452, 495, 496},
     726        { 413, 414, 451, 453, 496, 497},
     727        { 414, 452, 454, 497, 498,  -1},
     728        { 415, 453, 455, 499, 500,  -1},
     729        { 415, 416, 454, 456, 500, 501},
     730        { 416, 417, 455, 457, 501, 502},
     731        { 417, 418, 456, 458, 502, 503},
     732        { 418, 419, 457, 459, 503, 504},
     733        { 419, 420, 458, 460, 504, 505},
     734        { 420, 459, 461, 505, 506,  -1}, // 460
     735        { 421, 460, 462, 507, 508,  -1},
     736        { 421, 422, 461, 463, 508, 509},
     737        { 422, 423, 462, 464, 509, 510},
     738        { 423, 424, 463, 465, 510, 511},
     739        { 424, 425, 464, 466, 511, 512},
     740        { 425, 426, 465, 467, 512, 513},
     741        { 426, 466, 468, 513, 514,  -1},
     742        { 427, 467, 469, 515, 516,  -1},
     743        { 427, 428, 468, 470, 516, 517},
     744        { 428, 429, 469, 471, 517, 518},
     745        { 429, 430, 470, 472, 518, 519},
     746        { 430, 431, 471, 473, 519, 520},
     747        { 431, 432, 472, 474, 520, 521},
     748        { 432, 433, 473, 521, 522,  -1},
     749        { 433, 476, 522, 523, 524,  -1},
     750        { 433, 434, 475, 477, 524, 525},
     751        { 434, 435, 476, 478, 525, 526},
     752        { 435, 436, 477, 479, 526, 527},
     753        { 436, 437, 478, 480, 527, 528},
     754        { 437, 438, 479, 481, 528, 529}, // 480
     755        { 438, 439, 480, 482, 529, 530},
     756        { 439, 481, 483, 530, 531,  -1},
     757        { 440, 482, 484, 532, 533,  -1},
     758        { 440, 441, 483, 485, 533, 534},
     759        { 441, 442, 484, 486, 534, 535},
     760        { 442, 443, 485, 487, 535, 536},
     761        { 443, 444, 486, 488, 536, 537},
     762        { 444, 445, 487, 489, 537, 538},
     763        { 445, 446, 488, 490, 538, 539},
     764        { 446, 489, 491, 539, 540,  -1},
     765        { 447, 490, 492, 541, 542,  -1},
     766        { 447, 448, 491, 493, 542, 543},
     767        { 448, 449, 492, 494, 543, 544},
     768        { 449, 450, 493, 495, 544, 545},
     769        { 450, 451, 494, 496, 545, 546},
     770        { 451, 452, 495, 497, 546, 547},
     771        { 452, 453, 496, 498, 547, 548},
     772        { 453, 497, 499, 548, 549,  -1},
     773        { 454, 498, 500, 550, 551,  -1},
     774        { 454, 455, 499, 501, 551, 552}, // 500
     775        { 455, 456, 500, 502, 552, 553},
     776        { 456, 457, 501, 503, 553, 554},
     777        { 457, 458, 502, 504, 554, 555},
     778        { 458, 459, 503, 505, 555, 556},
     779        { 459, 460, 504, 506, 556, 557},
     780        { 460, 505, 507, 557, 558,  -1},
     781        { 461, 506, 508, 559, 560,  -1},
     782        { 461, 462, 507, 509, 560, 561},
     783        { 462, 463, 508, 510, 561, 562},
     784        { 463, 464, 509, 511, 562, 563},
     785        { 464, 465, 510, 512, 563, 564},
     786        { 465, 466, 511, 513, 564, 565},
     787        { 466, 467, 512, 514, 565, 566},
     788        { 467, 513, 515, 566, 567,  -1},
     789        { 468, 514, 516, 568, 569,  -1},
     790        { 468, 469, 515, 517, 569, 570},
     791        { 469, 470, 516, 518, 570, 571},
     792        { 470, 471, 517, 519, 571, 572},
     793        { 471, 472, 518, 520, 572, 573},
     794        { 472, 473, 519, 521, 573, 574}, // 520
     795        { 473, 474, 520, 522, 574, 575},
     796        { 474, 475, 521, 575, 576,  -1},
     797        { 475, 524, 576,  -1,  -1,  -1},
     798        { 475, 476, 523, 525,  -1,  -1},
     799        { 476, 477, 524, 526,  -1,  -1},
     800        { 477, 478, 525, 527,  -1,  -1},
     801        { 478, 479, 526, 528,  -1,  -1},
     802        { 479, 480, 527, 529,  -1,  -1},
     803        { 480, 481, 528, 530,  -1,  -1},
     804        { 481, 482, 529, 531,  -1,  -1},
     805        { 482, 530, 532,  -1,  -1,  -1},
     806        { 483, 531, 533,  -1,  -1,  -1},
     807        { 483, 484, 532, 534,  -1,  -1},
     808        { 484, 485, 533, 535,  -1,  -1},
     809        { 485, 486, 534, 536,  -1,  -1},
     810        { 486, 487, 535, 537,  -1,  -1},
     811        { 487, 488, 536, 538,  -1,  -1},
     812        { 488, 489, 537, 539,  -1,  -1},
     813        { 489, 490, 538, 540,  -1,  -1},
     814        { 490, 539, 541,  -1,  -1,  -1}, // 540
     815        { 491, 540, 542,  -1,  -1,  -1},
     816        { 491, 492, 541, 543,  -1,  -1},
     817        { 492, 493, 542, 544,  -1,  -1},
     818        { 493, 494, 543, 545,  -1,  -1},
     819        { 494, 495, 544, 546,  -1,  -1},
     820        { 495, 496, 545, 547,  -1,  -1},
     821        { 496, 497, 546, 548,  -1,  -1},
     822        { 497, 498, 547, 549,  -1,  -1},
     823        { 498, 548, 550,  -1,  -1,  -1},
     824        { 499, 549, 551,  -1,  -1,  -1},
     825        { 499, 500, 550, 552,  -1,  -1},
     826        { 500, 501, 551, 553,  -1,  -1},
     827        { 501, 502, 552, 554,  -1,  -1},
     828        { 502, 503, 553, 555,  -1,  -1},
     829        { 503, 504, 554, 556,  -1,  -1},
     830        { 504, 505, 555, 557,  -1,  -1},
     831        { 505, 506, 556, 558,  -1,  -1},
     832        { 506, 557, 559,  -1,  -1,  -1},
     833        { 507, 558, 560,  -1,  -1,  -1},
     834        { 507, 508, 559, 561,  -1,  -1}, // 560
     835        { 508, 509, 560, 562,  -1,  -1},
     836        { 509, 510, 561, 563,  -1,  -1},
     837        { 510, 511, 562, 564,  -1,  -1},
     838        { 511, 512, 563, 565,  -1,  -1},
     839        { 512, 513, 564, 566,  -1,  -1},
     840        { 513, 514, 565, 567,  -1,  -1},
     841        { 514, 566, 568,  -1,  -1,  -1},
     842        { 515, 567, 569,  -1,  -1,  -1},
     843        { 515, 516, 568, 570,  -1,  -1},
     844        { 516, 517, 569, 571,  -1,  -1}, // 570
     845        { 517, 518, 570, 572,  -1,  -1},
     846        { 518, 519, 571, 573,  -1,  -1},
     847        { 519, 520, 572, 574,  -1,  -1},
     848        { 520, 521, 573, 575,  -1,  -1},
     849        { 521, 522, 574, 576,  -1,  -1},
     850        { 522, 523, 575,  -1,  -1,  -1}  // 576
     851    };
     852
     853  for (Int_t i=0; i<577; i++)
     854      (*this)[i].SetNeighbors(nn[i][0], nn[i][1], nn[i][2],
     855                              nn[i][3], nn[i][4], nn[i][5]);
     856}
  • trunk/MagicSoft/Mars/mgui/MGeomCamMagic.h

    r695 r715  
    1313private:
    1414    void CreateCam();
     15    void CreateNN();
    1516
    1617public:
  • trunk/MagicSoft/Mars/mgui/MGeomPix.cc

    r669 r715  
    55ClassImp(MGeomPix)
    66
    7 MGeomPix::MGeomPix(Float_t x, Float_t y, Float_t r ) : fX(x), fY(y), fR(r)
     7MGeomPix::MGeomPix(Float_t x, Float_t y, Float_t r) : fX(x), fY(y), fR(r)
    88{
    99    //  default constructor
     10}
     11
     12void MGeomPix::SetNeighbors(Short_t i0, Short_t i1, Short_t i2,
     13                            Short_t i3, Short_t i4, Short_t i5)
     14{
     15    fNeighbors[0] = i0;
     16    fNeighbors[1] = i1;
     17    fNeighbors[2] = i2;
     18    fNeighbors[3] = i3;
     19    fNeighbors[4] = i4;
     20    fNeighbors[5] = i5;
     21
     22    for (int i=0; i<6; i++)
     23        if (fNeighbors[i]<0)
     24            break;
     25
     26    fNumNeighbors = i;
    1027}
    1128
  • trunk/MagicSoft/Mars/mgui/MGeomPix.h

    r695 r715  
    88class MGeomPix : public TObject
    99{
    10  private:
    11   Float_t  fX ;  //   the x coordinate
    12   Float_t  fY ;  //  the y coordinate
    13   Float_t  fR ;  //  the r coordinate
     10private:
     11  Float_t fX;  // the x coordinate
     12  Float_t fY;  // the y coordinate
     13  Float_t fR;  // the r coordinate
    1414
    15  public:
    16  
     15  Byte_t  fNumNeighbors; // number of valid neighbors
     16  Short_t fNeighbors[6]; // the IDs of the pixel next to it
     17                         // we are assuming an hexagonal geometry
     18
     19public:
    1720  MGeomPix(Float_t x=0. , Float_t y=0., Float_t r=0.) ;
    1821 
     
    2023
    2124  void Set (Float_t x, Float_t y, Float_t r) { fX=x; fY=y; fR=r; }
     25
     26  void SetNeighbors(Short_t i0=-1, Short_t i1=-1, Short_t i2=-1,
     27                    Short_t i3=-1, Short_t i4=-1, Short_t i5=-1);
    2228 
    2329  void SetX (Float_t x) { fX = x; }
     
    2935  Float_t GetR() const  { return fR; }
    3036
     37  Byte_t GetNumNeighbors() const { return fNumNeighbors; }
     38  Short_t GetNeighbor(Byte_t i) const { return fNeighbors[i]; }
     39
    3140  ClassDef(MGeomPix, 1)         // Geometric class for one pixel
    3241} ;
  • trunk/MagicSoft/Mars/mgui/Makefile

    r714 r715  
    2929
    3030SRCFILES = MCamDisplay.cc \
    31            MCamNeighbor.cc \
    3231           MGeomCamCT1.cc \
    3332           MGeomCamMagic.cc \
Note: See TracChangeset for help on using the changeset viewer.