Changeset 13484 for trunk


Ignore:
Timestamp:
05/01/12 10:19:09 (13 years ago)
Author:
tbretz
Message:
Moved all dim service description outside the class, so that they can be instantiated after the initialisation, to ensure that everything is properly initialized before the infoHandler is called.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/gui/FactGui.h

    r13478 r13484  
    4545// #########################################################################
    4646
    47 /*
    48 class Camera : public TObject
     47class DimSubscriptions
    4948{
    50     typedef pair<double,double> Position;
    51     typedef vector<Position> Positions;
    52 
    53     Positions fGeom;
    54 
    55     void CreatePalette()
    56     {
    57 
    58         double ss[5] = {0.00, 0.25, 0.50, 0.75, 1.00};
    59         double rr[5] = {0.15, 0.00, 0.00, 1.00, 0.85};
    60         double gg[5] = {0.15, 0.00, 1.00, 0.00, 0.85};
    61         double bb[5] = {0.15, 1.00, 0.00, 0.00, 0.85};
    62 
    63         const Int_t nn = 1440;
    64 
    65         Int_t idx = TColor::CreateGradientColorTable(5, ss, rr, gg, bb, nn);
    66         for (int i=0; i<nn; i++)
    67             fPalette.push_back(idx++);
    68     }
    69 
    70     void CreateGeometry()
    71     {
    72         const double gsSin60 = sqrt(3.)/2;
    73 
    74         const int rings = 23;
    75 
    76         //  add the first pixel to the list
    77 
    78         fGeom.push_back(make_pair(0, -0.5));
    79 
    80         for (int ring=1; ring<=rings; ring++)
    81         {
    82             for (int s=0; s<6; s++)
    83             {
    84                 for (int i=1; i<=ring; i++)
    85                 {
    86                     double xx, yy;
    87                     switch (s)
    88                     {
    89                     case 0: // Direction South East
    90                         xx = (ring+i)*0.5;
    91                         yy = (-ring+i)*gsSin60;
    92                         break;
    93 
    94                     case 1: // Direction North East
    95                         xx = ring-i*0.5;
    96                         yy = i*gsSin60;
    97                         break;
    98 
    99                     case 2: // Direction North
    100                         xx = ring*0.5-i;
    101                         yy = ring*gsSin60;
    102                         break;
    103 
    104                     case 3: // Direction North West
    105                         xx = -(ring+i)*0.5;
    106                         yy = (ring-i)*gsSin60;
    107                         break;
    108 
    109                     case 4: // Direction South West
    110                         xx = 0.5*i-ring;
    111                         yy = -i*gsSin60;
    112                         break;
    113 
    114                     case 5: // Direction South
    115                         xx = i-ring*0.5;
    116                         yy = -ring*gsSin60;
    117                         break;
    118                     }
    119 
    120                     if (xx*xx + yy*yy - xx > 395.75)
    121                         continue;
    122 
    123                     fGeom.push_back(make_pair(yy, xx-0.5));
    124                 }
    125             }
    126         }
    127     }
    128 
    129     valarray<double> fData;
    130     vector<bool>   fBold;
    131     vector<bool>   fEnable;
    132 
    133     int fWhite;
    134 
    135     int64_t fMin;
    136     int64_t fMax;
    137 
    13849public:
    139     Camera() : fData(1440), fBold(1440), fEnable(1440), fWhite(-1), fMin(-1), fMax(-1)
    140     {
    141         CreatePalette();
    142         CreateGeometry();
    143 
    144         for (int i=0; i<1440; i++)
    145         {
    146             fData[i] = i;
    147             fBold[i]=false;
    148             fEnable[i]=true;
    149         }
    150     }
    151 
    152     void Reset() { fBold.assign(1440, false); }
    153 
    154     void SetBold(int idx) { fBold[idx]=true; }
    155     void SetWhite(int idx) { fWhite=idx; }
    156     void SetEnable(int idx, bool b) { fEnable[idx]=b; }
    157     void Toggle(int idx) { fEnable[idx]=!fEnable[idx]; }
    158     double GetData(int idx) const { return fData[idx]; }
    159     void SetMin(int64_t min) { fMin=min; }
    160     void SetMax(int64_t max) { fMax=max; }
    161 
    162     const char *GetName() const { return "Camera"; }
    163 
    164     vector<Int_t> fPalette;
    165 
    166     void Paint(const Position &p)
    167     {
    168         static const Double_t fgCos60 = 0.5;        // TMath::Cos(60/TMath::RadToDeg());
    169         static const Double_t fgSin60 = sqrt(3.)/2; // TMath::Sin(60/TMath::RadToDeg());
    170 
    171         static const Double_t fgDy[6] = { fgCos60,   0.,         -fgCos60,   -fgCos60,    0.,           fgCos60   };
    172         static const Double_t fgDx[6] = { fgSin60/3, fgSin60*2/3, fgSin60/3, -fgSin60/3, -fgSin60*2/3, -fgSin60/3 };
    173 
    174         //
    175         //  calculate the positions of the pixel corners
    176         //
    177         static Double_t x[7], y[7];
    178         for (Int_t i=0; i<7; i++)
    179         {
    180             x[i] = p.first  + fgDx[i%6];
    181             y[i] = p.second + fgDy[i%6];
    182         }
    183 
    184         gPad->PaintFillArea(6, x, y);
    185         gPad->PaintPolyLine(7, x, y);
    186     }
    187 
    188     int GetCol(double dmin, double val, double dmax, bool enable)
    189     {
    190         if (!enable)
    191             return kWhite;
    192 
    193         if (val<dmin)
    194             return kBlue+4;//kBlack;
    195 
    196         if (val>dmax)
    197             return kRed+4;//kWhite;
    198 
    199         const double min   = dmin;
    200         const double scale = dmax==dmin ? 1 : dmax-dmin;
    201 
    202         const int col = (val-min)/scale*(fPalette.size()-1);
    203 
    204         return gStyle->GetColorPalette(col);
    205     }
    206 
    207     void Paint(Option_t *)
    208     {
    209         gStyle->SetPalette(fPalette.size(), fPalette.data());
    210 
    211         const double r   = double(gPad->GetWw())/gPad->GetWh();
    212         const double max = 20.5; // 20.5 rings in x and y
    213 
    214         if (r>1)
    215             gPad->Range(-r*max, -max, r*max, max);
    216         else
    217             gPad->Range(-max, -max/r, max, max/r);
    218 
    219         Double_t x1, x2, y1, y2;
    220         gPad->GetRange(x1, x2, y1, y2);
    221 
    222         double dmin = fData[0];
    223         double dmax = fData[0];
    224 
    225         for (unsigned int i=0; i<fData.size(); i++)
    226         {
    227             if (!fEnable[i])
    228                 continue;
    229 
    230             if (fData[i]>dmax)
    231                 dmax = fData[i];
    232             if (fData[i]<dmin)
    233                 dmin = fData[i];
    234         }
    235 
    236         if (fMin>=0)
    237             dmin = fMin;
    238         if (fMax>=0)
    239             dmax = fMax;
    240 
    241 //        const double min   = dmin;
    242 //        const double scale = dmax==dmin ? 1 : dmax-dmin;
    243 
    244         TAttFill fill(0, 1001);
    245         TAttLine line;
    246 
    247         int cnt=0;
    248         for (Positions::iterator p=fGeom.begin(); p!=fGeom.end(); p++, cnt++)
    249         {
    250             if (fBold[cnt])
    251                 continue;
    252 
    253             const int col = GetCol(dmin, fData[cnt], dmax, fEnable[cnt]);
    254 
    255             fill.SetFillColor(col);
    256             fill.Modify();
    257 
    258             Paint(*p);
    259         }
    260 
    261         line.SetLineWidth(2);
    262         line.Modify();
    263 
    264         cnt = 0;
    265         for (Positions::iterator p=fGeom.begin(); p!=fGeom.end(); p++, cnt++)
    266         {
    267             if (!fBold[cnt])
    268                 continue;
    269 
    270             const int col = GetCol(dmin, fData[cnt], dmax, fEnable[cnt]);
    271 
    272             fill.SetFillColor(col);
    273             fill.Modify();
    274 
    275             Paint(*p);
    276         }
    277 
    278         TMarker m(0,0,kStar);
    279         m.DrawMarker(0, 0);
    280 
    281         if (fWhite<0)
    282             return;
    283 
    284         const Position &p = fGeom[fWhite];
    285 
    286         line.SetLineColor(kWhite);
    287         line.Modify();
    288 
    289         const int col = GetCol(dmin, fData[fWhite], dmax, fEnable[fWhite]);
    290 
    291         fill.SetFillColor(col);
    292         fill.Modify();
    293 
    294         Paint(p);
    295     }
    296 
    297     int GetIdx(float px, float py) const
    298     {
    299         static const double sqrt3 = sqrt(3);
    300 
    301         int idx = 0;
    302         for (Positions::const_iterator p=fGeom.begin(); p!=fGeom.end(); p++, idx++)
    303         {
    304             const Double_t dy = py - p->second;
    305             if (fabs(dy)>0.5)
    306                 continue;
    307 
    308             const Double_t dx = px - p->first;
    309 
    310             if  (TMath::Abs(dy + dx*sqrt3) > 1)
    311                 continue;
    312 
    313             if  (TMath::Abs(dy - dx*sqrt3) > 1)
    314                 continue;
    315 
    316             return idx;
    317         }
    318         return -1;
    319     }
    320 
    321     char *GetObjectInfo(Int_t px, Int_t py) const
    322     {
    323         static stringstream stream;
    324         static string       str;
    325 
    326         const float x = gPad->AbsPixeltoX(px);
    327         const float y = gPad->AbsPixeltoY(py);
    328 
    329         const int idx = GetIdx(x, y);
    330 
    331         stream.seekp(0);
    332         if (idx>=0)
    333         {
    334             stream << "Pixel=" << idx << "   Data=" << fData[idx] << '\0';
    335         }
    336 
    337         str = stream.str();
    338         return const_cast<char*>(str.c_str());
    339     }
    340 
    341     Int_t DistancetoPrimitive(Int_t px, Int_t py)
    342     {
    343         const float x = gPad->AbsPixeltoX(px);
    344         const float y = gPad->AbsPixeltoY(py);
    345 
    346         return GetIdx(x, y)>=0 ? 0 : 99999;
    347     }
    348 
    349     void SetData(const valarray<double> &data)
    350     {
    351         fData = data;
    352     }
    353 
    354     void SetData(const float *data)
    355     {
    356         for (int i=0; i<1440; i++)
    357             fData[i] = data[i];
    358     }
     50    DimStampedInfo fDNS;
     51
     52    DimStampedInfo fLoggerStats;
     53    DimStampedInfo fLoggerFilenameNight;
     54    DimStampedInfo fLoggerFilenameRun;
     55    DimStampedInfo fLoggerNumSubs;
     56
     57    DimStampedInfo fFtmPassport;
     58    DimStampedInfo fFtmTriggerRates;
     59    DimStampedInfo fFtmError;
     60    DimStampedInfo fFtmFtuList;
     61    DimStampedInfo fFtmStaticData;
     62    DimStampedInfo fFtmDynamicData;
     63    DimStampedInfo fFtmCounter;
     64
     65    DimStampedInfo fFadWriteStats;
     66    DimStampedInfo fFadStartRun;
     67    DimStampedInfo fFadRuns;
     68    DimStampedInfo fFadEvents;
     69    DimStampedInfo fFadRawData;
     70    DimStampedInfo fFadEventData;
     71    DimStampedInfo fFadConnections;
     72    DimStampedInfo fFadFwVersion;
     73    DimStampedInfo fFadRunNumber;
     74    DimStampedInfo fFadDNA;
     75    DimStampedInfo fFadTemperature;
     76    DimStampedInfo fFadPrescaler;
     77    DimStampedInfo fFadRefClock;
     78    DimStampedInfo fFadRoi;
     79    DimStampedInfo fFadDac;
     80    DimStampedInfo fFadDrsCalibration;
     81    DimStampedInfo fFadStatus;
     82    DimStampedInfo fFadStatistics1;
     83    DimStampedInfo fFadStatistics2;
     84    DimStampedInfo fFadFileFormat;
     85
     86    DimStampedInfo fFscTemp;
     87    DimStampedInfo fFscVolt;
     88    DimStampedInfo fFscCurrent;
     89    DimStampedInfo fFscHumidity;
     90
     91    DimStampedInfo fFeedbackDeviation;
     92    DimStampedInfo fFeedbackReference;
     93    DimStampedInfo fFeedbackCalibration;
     94
     95    DimStampedInfo fBiasNominal;
     96    DimStampedInfo fBiasVolt;
     97    DimStampedInfo fBiasDac;
     98    DimStampedInfo fBiasCurrent;
     99
     100    DimStampedInfo fRateScan;
     101
     102    DimStampedInfo fMagicWeather;
     103
     104    DimSubscriptions(DimInfoHandler *ptr) :
     105        fDNS("DIS_DNS/VERSION_NUMBER", 1, int(0), ptr),
     106        //-
     107        fLoggerStats        ("DATA_LOGGER/STATS",              (void*)NULL, 0, ptr),
     108        fLoggerFilenameNight("DATA_LOGGER/FILENAME_NIGHTLY",   (void*)NULL, 0, ptr),
     109        fLoggerFilenameRun  ("DATA_LOGGER/FILENAME_RUN",       (void*)NULL, 0, ptr),
     110        fLoggerNumSubs      ("DATA_LOGGER/NUM_SUBS",           (void*)NULL, 0, ptr),
     111        //-
     112        fFtmPassport        ("FTM_CONTROL/PASSPORT",           (void*)NULL, 0, ptr),
     113        fFtmTriggerRates    ("FTM_CONTROL/TRIGGER_RATES",      (void*)NULL, 0, ptr),
     114        fFtmError           ("FTM_CONTROL/ERROR",              (void*)NULL, 0, ptr),
     115        fFtmFtuList         ("FTM_CONTROL/FTU_LIST",           (void*)NULL, 0, ptr),
     116        fFtmStaticData      ("FTM_CONTROL/STATIC_DATA",        (void*)NULL, 0, ptr),
     117        fFtmDynamicData     ("FTM_CONTROL/DYNAMIC_DATA",       (void*)NULL, 0, ptr),
     118        fFtmCounter         ("FTM_CONTROL/COUNTER",            (void*)NULL, 0, ptr),
     119        //-
     120        fFadWriteStats      ("FAD_CONTROL/STATS",              (void*)NULL, 0, ptr),
     121        fFadStartRun        ("FAD_CONTROL/START_RUN",          (void*)NULL, 0, ptr),
     122        fFadRuns            ("FAD_CONTROL/RUNS",               (void*)NULL, 0, ptr),
     123        fFadEvents          ("FAD_CONTROL/EVENTS",             (void*)NULL, 0, ptr),
     124        fFadRawData         ("FAD_CONTROL/RAW_DATA",           (void*)NULL, 0, ptr),
     125        fFadEventData       ("FAD_CONTROL/EVENT_DATA",         (void*)NULL, 0, ptr),
     126        fFadConnections     ("FAD_CONTROL/CONNECTIONS",        (void*)NULL, 0, ptr),
     127        fFadFwVersion       ("FAD_CONTROL/FIRMWARE_VERSION",   (void*)NULL, 0, ptr),
     128        fFadRunNumber       ("FAD_CONTROL/RUN_NUMBER",         (void*)NULL, 0, ptr),
     129        fFadDNA             ("FAD_CONTROL/DNA",                (void*)NULL, 0, ptr),
     130        fFadTemperature     ("FAD_CONTROL/TEMPERATURE",        (void*)NULL, 0, ptr),
     131        fFadPrescaler       ("FAD_CONTROL/PRESCALER",          (void*)NULL, 0, ptr),
     132        fFadRefClock        ("FAD_CONTROL/REFERENCE_CLOCK",    (void*)NULL, 0, ptr),
     133        fFadRoi             ("FAD_CONTROL/REGION_OF_INTEREST", (void*)NULL, 0, ptr),
     134        fFadDac             ("FAD_CONTROL/DAC",                (void*)NULL, 0, ptr),
     135        fFadDrsCalibration  ("FAD_CONTROL/DRS_CALIBRATION",    (void*)NULL, 0, ptr),
     136        fFadStatus          ("FAD_CONTROL/STATUS",             (void*)NULL, 0, ptr),
     137        fFadStatistics1     ("FAD_CONTROL/STATISTICS1",        (void*)NULL, 0, ptr),
     138        fFadStatistics2     ("FAD_CONTROL/STATISTICS2",        (void*)NULL, 0, ptr),
     139        fFadFileFormat      ("FAD_CONTROL/FILE_FORMAT",        (void*)NULL, 0, ptr),
     140        //-
     141        fFscTemp            ("FSC_CONTROL/TEMPERATURE",        (void*)NULL, 0, ptr),
     142        fFscVolt            ("FSC_CONTROL/VOLTAGE",            (void*)NULL, 0, ptr),
     143        fFscCurrent         ("FSC_CONTROL/CURRENT",            (void*)NULL, 0, ptr),
     144        fFscHumidity        ("FSC_CONTROL/HUMIDITY",           (void*)NULL, 0, ptr),
     145        //-
     146        fFeedbackDeviation  ("FEEDBACK/DEVIATION",             (void*)NULL, 0, ptr),
     147        fFeedbackReference  ("FEEDBACK/REFERENCE",             (void*)NULL, 0, ptr),
     148        fFeedbackCalibration("FEEDBACK/CALIBRATION",           (void*)NULL, 0, ptr),
     149        //-
     150        fBiasNominal        ("BIAS_CONTROL/NOMINAL",           (void*)NULL, 0, ptr),
     151        fBiasVolt           ("BIAS_CONTROL/VOLTAGE",           (void*)NULL, 0, ptr),
     152        fBiasDac            ("BIAS_CONTROL/DAC",               (void*)NULL, 0, ptr),
     153        fBiasCurrent        ("BIAS_CONTROL/CURRENT",           (void*)NULL, 0, ptr),
     154        //-
     155        fRateScan           ("RATE_SCAN/DATA",                 (void*)NULL, 0, ptr),
     156        //-
     157        fMagicWeather       ("MAGIC_WEATHER/DATA",             (void*)NULL, 0, ptr)
     158        {
     159        }
    359160};
    360 */
    361 // #########################################################################
    362161
    363162class FactGui : public MainWindow, public DimNetwork
     
    387186    bool fInChooseBiasCam;   // FIXME. Find a better solution
    388187
    389     DimStampedInfo fDimDNS;
    390 
    391     DimStampedInfo fDimLoggerStats;
    392     DimStampedInfo fDimLoggerFilenameNight;
    393     DimStampedInfo fDimLoggerFilenameRun;
    394     DimStampedInfo fDimLoggerNumSubs;
    395 
    396     DimStampedInfo fDimFtmPassport;
    397     DimStampedInfo fDimFtmTriggerRates;
    398     DimStampedInfo fDimFtmError;
    399     DimStampedInfo fDimFtmFtuList;
    400     DimStampedInfo fDimFtmStaticData;
    401     DimStampedInfo fDimFtmDynamicData;
    402     DimStampedInfo fDimFtmCounter;
    403 
    404     DimStampedInfo fDimFadWriteStats;
    405     DimStampedInfo fDimFadStartRun;
    406     DimStampedInfo fDimFadRuns;
    407     DimStampedInfo fDimFadEvents;
    408     DimStampedInfo fDimFadRawData;
    409     DimStampedInfo fDimFadEventData;
    410     DimStampedInfo fDimFadConnections;
    411     DimStampedInfo fDimFadFwVersion;
    412     DimStampedInfo fDimFadRunNumber;
    413     DimStampedInfo fDimFadDNA;
    414     DimStampedInfo fDimFadTemperature;
    415     DimStampedInfo fDimFadPrescaler;
    416     DimStampedInfo fDimFadRefClock;
    417     DimStampedInfo fDimFadRoi;
    418     DimStampedInfo fDimFadDac;
    419     DimStampedInfo fDimFadDrsCalibration;
    420     DimStampedInfo fDimFadStatus;
    421     DimStampedInfo fDimFadStatistics1;
    422     DimStampedInfo fDimFadStatistics2;
    423     DimStampedInfo fDimFadFileFormat;
    424 
    425     DimStampedInfo fDimFscTemp;
    426     DimStampedInfo fDimFscVolt;
    427     DimStampedInfo fDimFscCurrent;
    428     DimStampedInfo fDimFscHumidity;
    429 
    430     DimStampedInfo fDimFeedbackDeviation;
    431     DimStampedInfo fDimFeedbackReference;
    432     DimStampedInfo fDimFeedbackCalibration;
    433 
    434     DimStampedInfo fDimBiasNominal;
    435     DimStampedInfo fDimBiasVolt;
    436     DimStampedInfo fDimBiasDac;
    437     DimStampedInfo fDimBiasCurrent;
    438 
    439     DimStampedInfo fDimRateScan;
    440 
    441     DimStampedInfo fDimMagicWeather;
    442 
    443188    map<string, DimInfo*> fServices;
     189
     190    DimSubscriptions *fDim;
    444191
    445192    // ========================== LED Colors ================================
     
    33473094            getInfo()->getTimestamp();
    33483095
    3349         if (getInfo()==&fDimDNS)
     3096        if (getInfo()==&fDim->fDNS)
    33503097            return PostInfoHandler(&FactGui::handleDimDNS);
    33513098#ifdef DEBUG_DIM
    33523099        cout << "HandleDimInfo " << getInfo()->getName() << endl;
    33533100#endif
    3354         if (getInfo()==&fDimLoggerStats)
     3101        if (getInfo()==&fDim->fLoggerStats)
    33553102            return PostInfoHandler(&FactGui::handleLoggerStats);
    33563103
     
    33583105//            return PostInfoHandler(&FactGui::handleFadFiles);
    33593106
    3360         if (getInfo()==&fDimFadWriteStats)
     3107        if (getInfo()==&fDim->fFadWriteStats)
    33613108            return PostInfoHandler(&FactGui::handleFadWriteStats);
    33623109
    3363         if (getInfo()==&fDimFadConnections)
     3110        if (getInfo()==&fDim->fFadConnections)
    33643111            return PostInfoHandler(&FactGui::handleFadConnections);
    33653112
    3366         if (getInfo()==&fDimFadFwVersion)
     3113        if (getInfo()==&fDim->fFadFwVersion)
    33673114            return PostInfoHandler(&FactGui::handleFadFwVersion);
    33683115
    3369         if (getInfo()==&fDimFadRunNumber)
     3116        if (getInfo()==&fDim->fFadRunNumber)
    33703117            return PostInfoHandler(&FactGui::handleFadRunNumber);
    33713118
    3372         if (getInfo()==&fDimFadDNA)
     3119        if (getInfo()==&fDim->fFadDNA)
    33733120            return PostInfoHandler(&FactGui::handleFadDNA);
    33743121
    3375         if (getInfo()==&fDimFadTemperature)
     3122        if (getInfo()==&fDim->fFadTemperature)
    33763123            return PostInfoHandler(&FactGui::handleFadTemperature);
    33773124
    3378         if (getInfo()==&fDimFadRefClock)
     3125        if (getInfo()==&fDim->fFadRefClock)
    33793126            return PostInfoHandler(&FactGui::handleFadRefClock);
    33803127
    3381         if (getInfo()==&fDimFadRoi)
     3128        if (getInfo()==&fDim->fFadRoi)
    33823129            return PostInfoHandler(&FactGui::handleFadRoi);
    33833130
    3384         if (getInfo()==&fDimFadDac)
     3131        if (getInfo()==&fDim->fFadDac)
    33853132            return PostInfoHandler(&FactGui::handleFadDac);
    33863133
    3387         if (getInfo()==&fDimFadDrsCalibration)
     3134        if (getInfo()==&fDim->fFadDrsCalibration)
    33883135            return PostInfoHandler(&FactGui::handleFadDrsCalibration);
    33893136
    3390         if (getInfo()==&fDimFadPrescaler)
     3137        if (getInfo()==&fDim->fFadPrescaler)
    33913138            return PostInfoHandler(&FactGui::handleFadPrescaler);
    33923139
    3393         if (getInfo()==&fDimFadStatus)
     3140        if (getInfo()==&fDim->fFadStatus)
    33943141            return PostInfoHandler(&FactGui::handleFadStatus);
    33953142
    3396         if (getInfo()==&fDimFadStatistics1)
     3143        if (getInfo()==&fDim->fFadStatistics1)
    33973144            return PostInfoHandler(&FactGui::handleFadStatistics1);
    33983145
    3399         if (getInfo()==&fDimFadStatistics2)
     3146        if (getInfo()==&fDim->fFadStatistics2)
    34003147            return PostInfoHandler(&FactGui::handleFadStatistics2);
    34013148
    3402         if (getInfo()==&fDimFadFileFormat)
     3149        if (getInfo()==&fDim->fFadFileFormat)
    34033150            return PostInfoHandler(&FactGui::handleFadFileFormat);
    34043151
    3405         if (getInfo()==&fDimFadEvents)
     3152        if (getInfo()==&fDim->fFadEvents)
    34063153            return PostInfoHandler(&FactGui::handleFadEvents);
    34073154
    3408         if (getInfo()==&fDimFadRuns)
     3155        if (getInfo()==&fDim->fFadRuns)
    34093156            return PostInfoHandler(&FactGui::handleFadRuns);
    34103157
    3411         if (getInfo()==&fDimFadStartRun)
     3158        if (getInfo()==&fDim->fFadStartRun)
    34123159            return PostInfoHandler(&FactGui::handleFadStartRun);
    34133160
    3414         if (getInfo()==&fDimFadRawData)
     3161        if (getInfo()==&fDim->fFadRawData)
    34153162            return PostInfoHandler(&FactGui::handleFadRawData);
    34163163
    3417         if (getInfo()==&fDimFadEventData)
     3164        if (getInfo()==&fDim->fFadEventData)
    34183165            return PostInfoHandler(&FactGui::handleFadEventData);
    34193166
     
    34223169            return PostInfoHandler(&FactGui::handleFadSetup);
    34233170*/
    3424         if (getInfo()==&fDimLoggerFilenameNight)
     3171        if (getInfo()==&fDim->fLoggerFilenameNight)
    34253172            return PostInfoHandler(&FactGui::handleLoggerFilenameNight);
    34263173
    3427         if (getInfo()==&fDimLoggerNumSubs)
     3174        if (getInfo()==&fDim->fLoggerNumSubs)
    34283175            return PostInfoHandler(&FactGui::handleLoggerNumSubs);
    34293176
    3430         if (getInfo()==&fDimLoggerFilenameRun)
     3177        if (getInfo()==&fDim->fLoggerFilenameRun)
    34313178            return PostInfoHandler(&FactGui::handleLoggerFilenameRun);
    34323179
    3433         if (getInfo()==&fDimFtmTriggerRates)
     3180        if (getInfo()==&fDim->fFtmTriggerRates)
    34343181            return PostInfoHandler(&FactGui::handleFtmTriggerRates);
    34353182
    3436         if (getInfo()==&fDimFtmCounter)
     3183        if (getInfo()==&fDim->fFtmCounter)
    34373184            return PostInfoHandler(&FactGui::handleFtmCounter);
    34383185
    3439         if (getInfo()==&fDimFtmDynamicData)
     3186        if (getInfo()==&fDim->fFtmDynamicData)
    34403187            return PostInfoHandler(&FactGui::handleFtmDynamicData);
    34413188
    3442         if (getInfo()==&fDimFtmPassport)
     3189        if (getInfo()==&fDim->fFtmPassport)
    34433190            return PostInfoHandler(&FactGui::handleFtmPassport);
    34443191
    3445         if (getInfo()==&fDimFtmFtuList)
     3192        if (getInfo()==&fDim->fFtmFtuList)
    34463193            return PostInfoHandler(&FactGui::handleFtmFtuList);
    34473194
    3448         if (getInfo()==&fDimFtmStaticData)
     3195        if (getInfo()==&fDim->fFtmStaticData)
    34493196            return PostInfoHandler(&FactGui::handleFtmStaticData);
    34503197
    3451         if (getInfo()==&fDimFtmError)
     3198        if (getInfo()==&fDim->fFtmError)
    34523199            return PostInfoHandler(&FactGui::handleFtmError);
    34533200
    3454         if (getInfo()==&fDimFscTemp)
     3201        if (getInfo()==&fDim->fFscTemp)
    34553202            return PostInfoHandler(&FactGui::handleFscTemp);
    34563203
    3457         if (getInfo()==&fDimFscVolt)
     3204        if (getInfo()==&fDim->fFscVolt)
    34583205            return PostInfoHandler(&FactGui::handleFscVolt);
    34593206
    3460         if (getInfo()==&fDimFscCurrent)
     3207        if (getInfo()==&fDim->fFscCurrent)
    34613208            return PostInfoHandler(&FactGui::handleFscCurrent);
    34623209
    3463         if (getInfo()==&fDimFscHumidity)
     3210        if (getInfo()==&fDim->fFscHumidity)
    34643211            return PostInfoHandler(&FactGui::handleFscHumidity);
    34653212
    3466         if (getInfo()==&fDimBiasNominal)
     3213        if (getInfo()==&fDim->fBiasNominal)
    34673214            return PostInfoHandler(&FactGui::handleBiasNominal);
    34683215
    3469         if (getInfo()==&fDimBiasVolt)
     3216        if (getInfo()==&fDim->fBiasVolt)
    34703217            return PostInfoHandler(&FactGui::handleBiasVolt);
    34713218
    3472         if (getInfo()==&fDimBiasDac)
     3219        if (getInfo()==&fDim->fBiasDac)
    34733220            return PostInfoHandler(&FactGui::handleBiasDac);
    34743221
    3475         if (getInfo()==&fDimBiasCurrent)
     3222        if (getInfo()==&fDim->fBiasCurrent)
    34763223            return PostInfoHandler(&FactGui::handleBiasCurrent);
    34773224
    3478         if (getInfo()==&fDimFeedbackReference)
     3225        if (getInfo()==&fDim->fFeedbackReference)
    34793226            return PostInfoHandler(&FactGui::handleFeedbackReference);
    34803227
    3481         if (getInfo()==&fDimFeedbackDeviation)
     3228        if (getInfo()==&fDim->fFeedbackDeviation)
    34823229            return PostInfoHandler(&FactGui::handleFeedbackDeviation);
    34833230
    3484         if (getInfo()==&fDimFeedbackCalibration)
     3231        if (getInfo()==&fDim->fFeedbackCalibration)
    34853232            return PostInfoHandler(&FactGui::handleFeedbackCalibration);
    34863233
    3487         if (getInfo()==&fDimRateScan)
     3234        if (getInfo()==&fDim->fRateScan)
    34883235            return PostInfoHandler(&FactGui::handleRateScan);
    34893236
    3490         if (getInfo()==&fDimMagicWeather)
     3237        if (getInfo()==&fDim->fMagicWeather)
    34913238            return PostInfoHandler(&FactGui::handleMagicWeather);
    34923239
     
    40283775        fInChoosePatchTH(false),
    40293776        fInChooseBiasHv(false), fInChooseBiasCam(false),
    4030         fDimDNS("DIS_DNS/VERSION_NUMBER", 1, int(0), this),
    40313777        //-
    4032         fDimLoggerStats        ("DATA_LOGGER/STATS",            (void*)NULL, 0, this),
    4033         fDimLoggerFilenameNight("DATA_LOGGER/FILENAME_NIGHTLY", (void*)NULL, 0, this),
    4034         fDimLoggerFilenameRun  ("DATA_LOGGER/FILENAME_RUN",     (void*)NULL, 0, this),
    4035         fDimLoggerNumSubs      ("DATA_LOGGER/NUM_SUBS",         (void*)NULL, 0, this),
    4036         //-
    4037         fDimFtmPassport        ("FTM_CONTROL/PASSPORT",         (void*)NULL, 0, this),
    4038         fDimFtmTriggerRates    ("FTM_CONTROL/TRIGGER_RATES",    (void*)NULL, 0, this),
    4039         fDimFtmError           ("FTM_CONTROL/ERROR",            (void*)NULL, 0, this),
    4040         fDimFtmFtuList         ("FTM_CONTROL/FTU_LIST",         (void*)NULL, 0, this),
    4041         fDimFtmStaticData      ("FTM_CONTROL/STATIC_DATA",      (void*)NULL, 0, this),
    4042         fDimFtmDynamicData     ("FTM_CONTROL/DYNAMIC_DATA",     (void*)NULL, 0, this),
    4043         fDimFtmCounter         ("FTM_CONTROL/COUNTER",          (void*)NULL, 0, this),
    4044         //-
    4045         fDimFadWriteStats      ("FAD_CONTROL/STATS",              (void*)NULL, 0, this),
    4046         fDimFadStartRun        ("FAD_CONTROL/START_RUN",          (void*)NULL, 0, this),
    4047         fDimFadRuns            ("FAD_CONTROL/RUNS",               (void*)NULL, 0, this),
    4048         fDimFadEvents          ("FAD_CONTROL/EVENTS",             (void*)NULL, 0, this),
    4049         fDimFadRawData         ("FAD_CONTROL/RAW_DATA",           (void*)NULL, 0, this),
    4050         fDimFadEventData       ("FAD_CONTROL/EVENT_DATA",         (void*)NULL, 0, this),
    4051         fDimFadConnections     ("FAD_CONTROL/CONNECTIONS",        (void*)NULL, 0, this),
    4052         fDimFadFwVersion       ("FAD_CONTROL/FIRMWARE_VERSION",   (void*)NULL, 0, this),
    4053         fDimFadRunNumber       ("FAD_CONTROL/RUN_NUMBER",         (void*)NULL, 0, this),
    4054         fDimFadDNA             ("FAD_CONTROL/DNA",                (void*)NULL, 0, this),
    4055         fDimFadTemperature     ("FAD_CONTROL/TEMPERATURE",        (void*)NULL, 0, this),
    4056         fDimFadPrescaler       ("FAD_CONTROL/PRESCALER",          (void*)NULL, 0, this),
    4057         fDimFadRefClock        ("FAD_CONTROL/REFERENCE_CLOCK",    (void*)NULL, 0, this),
    4058         fDimFadRoi             ("FAD_CONTROL/REGION_OF_INTEREST", (void*)NULL, 0, this),
    4059         fDimFadDac             ("FAD_CONTROL/DAC",                (void*)NULL, 0, this),
    4060         fDimFadDrsCalibration  ("FAD_CONTROL/XDRS_CALIBRATION",    (void*)NULL, 0, this),
    4061         fDimFadStatus          ("FAD_CONTROL/STATUS",             (void*)NULL, 0, this),
    4062         fDimFadStatistics1     ("FAD_CONTROL/STATISTICS1",        (void*)NULL, 0, this),
    4063         fDimFadStatistics2     ("FAD_CONTROL/STATISTICS2",        (void*)NULL, 0, this),
    4064         fDimFadFileFormat      ("FAD_CONTROL/FILE_FORMAT",        (void*)NULL, 0, this),
    4065         //-
    4066         fDimFscTemp            ("FSC_CONTROL/TEMPERATURE",        (void*)NULL, 0, this),
    4067         fDimFscVolt            ("FSC_CONTROL/VOLTAGE",            (void*)NULL, 0, this),
    4068         fDimFscCurrent         ("FSC_CONTROL/CURRENT",            (void*)NULL, 0, this),
    4069         fDimFscHumidity        ("FSC_CONTROL/HUMIDITY",           (void*)NULL, 0, this),
    4070         //-
    4071         fDimFeedbackDeviation  ("FEEDBACK/DEVIATION",             (void*)NULL, 0, this),
    4072         fDimFeedbackReference  ("FEEDBACK/REFERENCE",             (void*)NULL, 0, this),
    4073         fDimFeedbackCalibration("FEEDBACK/CALIBRATION",           (void*)NULL, 0, this),
    4074         //-
    4075         fDimBiasNominal        ("BIAS_CONTROL/NOMINAL",           (void*)NULL, 0, this),
    4076         fDimBiasVolt           ("BIAS_CONTROL/VOLTAGE",           (void*)NULL, 0, this),
    4077         fDimBiasDac            ("BIAS_CONTROL/DAC",               (void*)NULL, 0, this),
    4078         fDimBiasCurrent        ("BIAS_CONTROL/CURRENT",           (void*)NULL, 0, this),
    4079         //-
    4080         fDimRateScan           ("RATE_SCAN/DATA",                 (void*)NULL, 0, this),
    4081         //-
    4082         fDimMagicWeather       ("MAGIC_WEATHER/DATA",             (void*)NULL, 0, this),
     3778        fDim(0),
    40833779        //-
    40843780        fDimVersion(0),
     
    41513847        }
    41523848
    4153         // --------------------------------------------------------------------------
    4154 
    4155         /*
    4156         ifstream fin1("Trigger-Patches.txt");
    4157 
    4158         string buf;
    4159 
    4160         int l = 0;
    4161         while (getline(fin1, buf, '\n'))
    4162         {
    4163             buf = Tools::Trim(buf);
    4164             if (buf[0]=='#')
    4165                 continue;
    4166 
    4167             stringstream str(buf);
    4168             for (int i=0; i<9; i++)
    4169             {
    4170                 unsigned int n;
    4171                 str >> n;
    4172 
    4173                 if (n>=fPatchHW.size())
    4174                     continue;
    4175 
    4176                 fPatchHW[n] = l;
    4177             }
    4178             l++;
    4179         }
    4180 
    4181         if (l!=160)
    4182             cerr << "WARNING - Problems reading Trigger-Patches.txt" << endl;
    4183         */
    4184         // --------------------------------------------------------------------------
    4185 
    4186         /*
    4187         ifstream fin2("MasterList-v3.txt");
    4188 
    4189         l = 0;
    4190 
    4191         while (getline(fin2, buf, '\n'))
    4192         {
    4193             buf = Tools::Trim(buf);
    4194             if (buf[0]=='#')
    4195                 continue;
    4196 
    4197             unsigned int softid, hardid, dummy;
    4198 
    4199             stringstream str(buf);
    4200 
    4201             str >> softid;
    4202             str >> dummy;
    4203             str >> hardid;
    4204 
    4205             if (softid>=fPixelMapHW.size())
    4206                 continue;
    4207 
    4208             fPixelMapHW[softid] = hardid;
    4209 
    4210             l++;
    4211         }
    4212 
    4213         if (l!=1440)
    4214             cerr << "WARNING - Problems reading MasterList-v3.txt" << endl;
    4215          */
    42163849        // --------------------------------------------------------------------------
    42173850
     
    46174250        connect(fAdcDataCanv, SIGNAL(     RootEventProcessed(TObject*, unsigned int, TCanvas*)),
    46184251                this,         SLOT  (slot_RootEventProcessed(TObject*, unsigned int, TCanvas*)));
     4252
     4253
     4254        fDim = new DimSubscriptions(this);
    46194255    }
    46204256
    46214257    ~FactGui()
    46224258    {
     4259
     4260        delete fDim;
     4261
    46234262        // Unsubscribe all services
    46244263        for (map<string,DimInfo*>::iterator i=fServices.begin();
Note: See TracChangeset for help on using the changeset viewer.