Changeset 7169 for trunk/MagicSoft


Ignore:
Timestamp:
06/17/05 13:33:56 (19 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
15 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r7168 r7169  
    2121
    2222                                                 -*-*- END OF LINE -*-*-
     23
     24 2005/06/17 Thomas Bretz
     25
     26   * mbase/MArgs.[h,cc]:
     27     - handle possible char \015 in arguments
     28
     29   * mdata/MDataArray.h:
     30     - added Print function to //*MENU*
     31
     32   * mhflux/MAlphaFitter.[h,cc]:
     33     - added new Option for Scale: Fixed
     34     - fixed typo in IsEnvDefined for Signalfunction
     35
     36   * mhist/MHCamera.cc:
     37     - plot profile in deg instead of mm
     38
     39   * mjobs/MDataSet.[h,cc]
     40     - changed error handling when reading source catalog
     41
     42   * mjobs/MJCut.cc:
     43     - added MImagePar to output
     44     - take new error handling into account when reading source catalog
     45
     46   * mjobs/MJSpectrum.cc:
     47     - print energy estimator
     48     - removed the double minus displaying the fitted spectrum
     49
     50   * mjoptim/MJOptimizeDisp.cc, mjoptim/MJOptimizeEnergy.cc:
     51     - print rule when optimization has finished
     52
     53   * mmain/MBrowser.cc:
     54     - replaced old path with new path to datacenter
     55
     56   * mranforest/MRFEnergyEst.[h,cc]:
     57     - store binning in new data member fBinning to avoid many calles
     58       to atof
     59
     60
     61
    2362 2005/06/15 Daniela Dorner
    2463
  • trunk/MagicSoft/Mars/NEWS

    r7148 r7169  
    88   - general: Added a class to correct for the missfocussing in
    99     April (MSrcPosCorrect)
     10
     11   - general: Random Forest energy estimator should now work properly
     12
     13   - general: MHCamera now displays the profiles in deg instead of mm
    1014
    1115   - ganymed: the Conc1 plot was incorrectly scaled in MHVsSize
  • trunk/MagicSoft/Mars/mbase/MArgs.cc

    r4766 r7169  
    7272    {
    7373        MArgsEntry &o = *new MArgsEntry(argv[i]);
    74         dynamic_cast<TString&>(o) = o.Strip(TString::kBoth);
    7574        fArgv->Add(&o);
    7675    }
  • trunk/MagicSoft/Mars/mbase/MArgs.h

    r4766 r7169  
    1313{
    1414public:
    15     MArgsEntry(const char *c) : TString(c), TObject() {}
     15    MArgsEntry(const char *c) : TString(c), TObject()
     16    {
     17        ReplaceAll("\015", "");
     18        dynamic_cast<TString&>(*this) = Strip(TString::kBoth);
     19    }
    1620
    1721    void Print(const Option_t *o) const;
  • trunk/MagicSoft/Mars/mdata/MDataArray.h

    r7130 r7169  
    5151    TString GetDataMember() const;
    5252
    53     void Print(Option_t *opt = "") const;
     53    void Print(Option_t *opt = "") const; //*MENU*
    5454    Bool_t AsciiWrite(ostream &out) const;
    5555
  • trunk/MagicSoft/Mars/mhflux/MAlphaFitter.cc

    r7152 r7169  
    624624        rc = kTRUE;
    625625    }
    626 
     626    if (IsEnvDefined(env, prefix, "Scale", print))
     627    {
     628        fScaleUser = GetEnvValue(env, prefix, "Scale", fScaleUser);
     629        rc = kTRUE;
     630    }
    627631    if (IsEnvDefined(env, prefix, "ScaleMode", print))
    628632    {
     
    644648        if (txt==(TString)"userscale")
    645649            fScaleMode = kUserScale;
    646         rc = kTRUE;
    647     }
    648     if (IsEnvDefined(env, prefix, "Signalfunction", print))
     650        if (txt==(TString)"fixed")
     651        {
     652            fScaleMode = kUserScale;
     653            fScaleUser = fScaleFactor;
     654            cout << "---------> " << fScaleFactor << " <----------" << endl;
     655        }
     656        rc = kTRUE;
     657    }
     658    if (IsEnvDefined(env, prefix, "SignalFunction", print))
    649659    {
    650660        TString txt = GetEnvValue(env, prefix, "SignalFunction", "");
     
    657667        rc = kTRUE;
    658668    }
    659     if (IsEnvDefined(env, prefix, "Scale", print))
    660     {
    661         fScaleUser = GetEnvValue(env, prefix, "Scale", fScaleUser);
    662         rc = kTRUE;
    663     }
    664 
    665     return rc;
    666 }
     669
     670    return rc;
     671}
  • trunk/MagicSoft/Mars/mhflux/MAlphaFitter.h

    r7151 r7169  
    5151    Int_t   fPolynomOrder;      // order of polyom to be fitted to the background
    5252    Bool_t  fFitBackground;     // Backround fit: yes/no
    53     SignalFunc_t fSignalFunc;  // Type of signal function
     53    SignalFunc_t fSignalFunc;   // Type of signal function
    5454    // Result
    5555    Double_t fSignificance;     // significance of signal
     
    6161    Double_t fChiSqBg;          // Reduced (chi^2/NDF) chisq of bg fit
    6262    Double_t fIntegralMax;      // Calculated bin border to which it was integrated
    63     Double_t fScaleFactor;      // Scale factor for off-data
     63    Double_t fScaleFactor;      // Scale factor determined for off-data
    6464
    6565    TArrayD fCoefficients;      // Fit result
  • trunk/MagicSoft/Mars/mhist/MHCamera.cc

    r7001 r7169  
    717717    }
    718718
     719    const Double_t m2d = fGeomCam->GetConvMm2Deg();
     720
    719721    Double_t min = 0.;
    720     Double_t max = fGeomCam->GetMaxRadius();
     722    Double_t max = fGeomCam->GetMaxRadius()*m2d;
    721723
    722724    Int_t newbins=0;
     
    730732    for (Int_t idx=0; idx<fNcells-2; idx++)
    731733        if (IsUsed(idx) && MatchSector(idx, sector, aidx))
    732             h1->Fill(TMath::Hypot((*fGeomCam)[idx].GetX(),(*fGeomCam)[idx].GetY()),
     734            h1->Fill(TMath::Hypot((*fGeomCam)[idx].GetX(),(*fGeomCam)[idx].GetY())*m2d,
    733735                     GetBinContent(idx+1));
    734736    return h1;
     
    910912
    911913        Float_t x = pix.GetX()*conv/(fAbberation+1);
     914
    912915        Float_t y = pix.GetY()*conv/(fAbberation+1);
    913916        Float_t d = pix.GetD()*conv;
  • trunk/MagicSoft/Mars/mjobs/MJCut.cc

    r7142 r7169  
    331331    write->AddContainer("MPointingPos",   "Events");
    332332    write->AddContainer("MHillasSrcAnti", "Events", kFALSE);
     333    write->AddContainer("MImagePar",      "Events", kFALSE);
    333334    write->AddContainer("MNewImagePar",   "Events", kFALSE);
    334335    write->AddContainer("MNewImagePar2",  "Events", kFALSE);
     
    338339    write->AddContainer("MMcEvt",         "Events", kFALSE);
    339340    write->AddContainer("DataType",       "Events");
    340 
    341     // Should not be the default: Either as option, or as
    342     // setup from resource file
    343     // write.AddContainer("MHillasExt",    "Events");
    344     // write.AddContainer("MImagePar",     "Events");
    345     // write.AddContainer("MNewImagePar",  "Events");
    346341}
    347342
     
    439434    // Possible source position (eg. Wobble Mode)
    440435    MPointingPos source("MSourcePos");
    441     if (set.GetSourcePos(source))
    442     {
     436    if (set.HasSource())
     437    {
     438        if (!set.GetSourcePos(source))
     439            return kFALSE;
    443440        plist.AddToList(&source);
    444441        *fLog << inf << "Using Source Position: " << source.GetTitle() << endl;
  • trunk/MagicSoft/Mars/mjobs/MJSpectrum.cc

    r7148 r7169  
    637637    TString str;
    638638    str += Form("(%.2f#pm%.2f)10^{%d}", p1/exp, e1/exp, np);
    639     str += Form("(\\frac{E}{TeV})^{-%.2f#pm%.2f}", p0, e0);
     639    str += Form("(\\frac{E}{TeV})^{%.2f#pm%.2f}", p0, e0);
    640640    str += "\\frac{ph}{TeVm^{2}s}";
    641641
     
    814814            TLatex tex;
    815815            tex.SetBit(TLatex::kTextNDC);
    816             tex.DrawLatex(0.7, 0.93, Form("P(\\chi^{2})=%.0f", p*100));
     816            tex.DrawLatex(0.75, 0.93, Form("P(\\chi^{2})=%.0f%%", p*100));
    817817        }
    818818    }
     
    10631063    }
    10641064
     1065    gLog.Separator("Energy Estimator");
     1066    if (plist.FindObject("EstimateEnergy"))
     1067        plist.FindObject("EstimateEnergy")->Print();
     1068
     1069    gLog.Separator("Spectrum");
     1070
    10651071    // -------------------------- Spectrum ----------------------------
    10661072
  • trunk/MagicSoft/Mars/mjoptim/MJOptimizeDisp.cc

    r7163 r7169  
    184184
    185185    // Print the result
     186    *fLog << inf << "Rule: " << rule << endl;
    186187    hist.GetAlphaFitter().Print("result");
    187188
  • trunk/MagicSoft/Mars/mjoptim/MJOptimizeEnergy.cc

    r7152 r7169  
    143143
    144144    // Print the result
     145    *fLog << inf << "Rule: " << rule << endl;
    145146    hist.Print();
    146147
  • trunk/MagicSoft/Mars/mmain/MBrowser.cc

    r4513 r7169  
    141141        dir->GetListBox()->Resize(100, 150);
    142142        TGTreeLBEntry *entry = new TGTreeLBEntry(dir->GetListBox()->GetContainer(),
    143                                                  new TGString("/data/MAGIC"), pic0, 6000,
    144                                                  new TGString("/data/MAGIC"));
     143                                                 new TGString("/magic/data"), pic0, 6000,
     144                                                 new TGString("/magic/data"));
    145145        TGLayoutHints *laylb = new TGLayoutHints(kLHintsLeft|kLHintsTop, 14, 0, 0, 0);
    146146        dir->AddEntry(entry, laylb);
  • trunk/MagicSoft/Mars/mranforest/MRFEnergyEst.cc

    r7142 r7169  
    7070MRFEnergyEst::MRFEnergyEst(const char *name, const char *title)
    7171    : fNumTrees(-1), fNumTry(-1), fNdSize(-1), fDebug(kFALSE),
    72     fData(0), fEnergyEst(0), fTestMatrix(0)
     72    fData(0), fEnergyEst(0), fTestMatrix(0), fEstimationMode(kMean)
    7373{
    7474    fName  = name  ? name  : gsDefName.Data();
     
    9191    }
    9292
    93     const TMatrix &m = matrixtrain.GetM();
    94 
    95     const Int_t ncols = m.GetNcols();
    96     const Int_t nrows = m.GetNrows();
     93    const Int_t ncols = matrixtrain.GetM().GetNcols();
     94    const Int_t nrows = matrixtrain.GetM().GetNrows();
    9795    if (ncols<=0 || nrows <=0)
    9896    {
     
    132130        Int_t irow0=0;
    133131
     132        const TMatrix &m = matrixtrain.GetM();
    134133        for (Int_t j=0; j<nrows; j++)
    135134        {
     
    165164        MHMatrix matrix0(mat0, "MatrixGammas");
    166165
    167         matrix1.AddColumns(&usedrules);
    168         matrix0.AddColumns(&usedrules);
     166        //matrix1.AddColumns(&usedrules);
     167        //matrix0.AddColumns(&usedrules);
    169168
    170169        // training of RF
     
    186185        evtloop.SetParList(&plist);
    187186
     187        if (!evtloop.Eventloop())
     188            return kFALSE;
     189
    188190        if (fDebug)
    189191            gLog.SetNullOutput(kFALSE);
    190 
    191         if (!evtloop.Eventloop())
    192             return kFALSE;
    193192
    194193        const Double_t E = (log10(grid[ie])+log10(grid[ie+1]))/2;
     
    220219    fEForests.Delete();
    221220
     221    Int_t i=0;
     222
    222223    TIter Next(fileRF.GetListOfKeys());
    223224    TObject *o=0;
     
    231232        forest->SetTitle(o->GetTitle());
    232233        forest->SetBit(kCanDelete);
     234
     235        fBinning.Set(i+1);
     236        fBinning[i++] = atof(o->GetTitle());
    233237
    234238        fEForests.Add(forest);
     
    289293    Double_t eest = 0;
    290294    Double_t hsum = 0;
     295    Double_t maxh = 0;
     296    Double_t maxe = 0;
     297
     298    Int_t i=0;
    291299
    292300    TIter Next(&fEForests);
     
    295303    {
    296304        const Double_t h = rf->CalcHadroness(event);
    297         const Double_t e = atof(rf->GetTitle());
     305        const Double_t e = fBinning[i++];
    298306
    299307        hsum += h;
    300308        eest += e*h;
    301     }
    302 
    303     fEnergyEst->SetVal(pow(10, eest/hsum));
     309        if (h>maxh)
     310        {
     311            maxh = h;
     312            maxe = e;
     313        }
     314    }
     315
     316    switch (fEstimationMode)
     317    {
     318    case kMean:
     319        fEnergyEst->SetVal(pow(10, eest/hsum));
     320        break;
     321    case kMaximum:
     322        fEnergyEst->SetVal(pow(10, maxe));
     323        break;
     324    }
    304325    fEnergyEst->SetReadyToSave();
    305326
     
    323344        SetDebug(GetEnvValue(env, prefix, "Debug", fDebug));
    324345    }
     346    if (IsEnvDefined(env, prefix, "EstimationMode", print))
     347    {
     348        TString txt = GetEnvValue(env, prefix, "EstimationMode", "");
     349        txt = txt.Strip(TString::kBoth);
     350        txt.ToLower();
     351        if (txt==(TString)"mean")
     352            fEstimationMode = kMean;
     353        if (txt==(TString)"maximum")
     354            fEstimationMode = kMaximum;
     355        rc = kTRUE;
     356    }
    325357    return rc;
    326358}
  • trunk/MagicSoft/Mars/mranforest/MRFEnergyEst.h

    r7142 r7169  
    99#include <TObjArray.h>
    1010#endif
    11 
    12 class TArrayD;
     11#ifndef ROOT_TArrayD
     12#include <TArrayD.h>
     13#endif
    1314
    1415class MHMatrix;
     
    1819class MRFEnergyEst : public MTask
    1920{
     21public:
     22    enum EstimationMode_t
     23    {
     24        kMean,
     25        kMaximum
     26    };
    2027private:
    2128    Int_t        fNumTrees;  // Training parameters
     
    3239
    3340    MHMatrix *fTestMatrix;
     41
     42    TArrayD   fBinning;
     43
     44    EstimationMode_t fEstimationMode;
    3445
    3546    Int_t PreProcess(MParList *plist);
     
    5263    void  InitMapping(MHMatrix *m=0)   { fTestMatrix=m; }
    5364
    54     void SetDebug(Bool_t b=kTRUE)      { fDebug = b; }
     65    void  SetDebug(Bool_t b=kTRUE)     { fDebug = b; }
     66
     67    void  SetEstimationMode(EstimationMode_t op) { fEstimationMode = op; }
    5568
    5669    Int_t Train(const MHMatrix &n, const TArrayD &grid);
Note: See TracChangeset for help on using the changeset viewer.