Changeset 7210 for trunk/MagicSoft/Mars


Ignore:
Timestamp:
07/22/05 13:18:44 (19 years ago)
Author:
tbretz
Message:
*** empty log message ***
Location:
trunk/MagicSoft/Mars
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/Changelog

    r7209 r7210  
    4444     - fixed a problem reading files with gkActiveLoadControlVersNum
    4545     - added a fix for report files before 200407070
     46
     47   * mhvstime/MHSectorVsTime.[h,cc]:
     48     - added example to class reference
     49     - fixed possible crash in SetName and SetTitle
     50     - set default style to kFullDotMedium
     51     - removed seconds from default axis labels
     52     - changed default time labels size to 0.033
     53     - moved Draw code to Paint as in MHVsTime
     54     - fixed wrong return of kCONTINUE in Fill
     55
     56   * mhvstime/MHVsTime.cc:
     57     - removed seconds from default axis labels
     58   
     59   * mjobs/MJStar.cc:
     60     - added Starguider info to output
     61     - added MHSectorVsTime to display mean DC current
     62     - allow skipping MHPointing for very old files without
     63       starguider reports
     64
     65   * mpointing/MHPointing.cc:
     66     - allow skipping MHPointing for very old files without
     67       starguider reports
    4668
    4769
  • trunk/MagicSoft/Mars/mhvstime/MHSectorVsTime.cc

    r6977 r7210  
    3838//    YOU HAVE TWO SEMICOLON!)
    3939//
     40// Example:
     41// --------
     42//     // Initialize histogram
     43//     MHSectorVsTime hist1;
     44//     hist1.SetNameTime("MTimeCurrents");
     45//     hist1.SetTitle("Title for your Graph;;Q [phe]");
     46//
     47//     // Define sectors you want to display the mean from
     48//     TArrayI s0(3);
     49//     s0[0] = 6;
     50//     s0[1] = 1;
     51//     s0[2] = 2;
     52//
     53//     // Define area index [0=inner, 1=outer]
     54//     TArrayI inner(1);
     55//     inner[0] = 0;
     56//
     57//     // Don't call this if you want to have all sectors
     58//     hist1.SetSectors(s0);
     59//
     60//     // Don't call this if you want to have all area indices
     61//     hist1.SetAreaIndex(inner);
     62//
     63//     // Task to fill the histogram
     64//     MFillH fill1(&hist1, "MCameraDC");
     65//
     66//
    4067/////////////////////////////////////////////////////////////////////////////
    4168#include "MHSectorVsTime.h"
     
    93120void MHSectorVsTime::SetName(const char *name)
    94121{
    95     fGraph->SetName(name);
     122    if (fGraph)
     123        fGraph->SetName(name);
    96124    MParContainer::SetName(name);
    97125}
     
    103131void MHSectorVsTime::SetTitle(const char *title)
    104132{
    105     fGraph->SetTitle(title);
     133    if (fGraph)
     134        fGraph->SetTitle(title);
    106135    MParContainer::SetTitle(title);
    107136}
     
    160189    fGraph->SetName(fEvt ? dynamic_cast<TObject*>(fEvt)->GetName() : "MCamEvent");
    161190    fGraph->SetTitle(fTitle==gsDefTitle?"Camera":fTitle.Data());
     191    fGraph->SetMarkerStyle(kFullDotMedium);
    162192
    163193    fMin =  FLT_MAX;
     
    191221    const Double_t val0 = fHCamera.GetMeanSectors(fSectors, fAreaIndex);
    192222
    193     if (TMath::IsNaN(val0)/* || TMath::IsNaN(rms0)*/)
    194         return kCONTINUE;
     223    if (TMath::IsNaN(val0))
     224        return kTRUE;
    195225
    196226    fGraph->SetPoint(fGraph->GetN(), t, val0);
     
    200230        const Double_t rms0 = fHCamera.GetRmsSectors(fSectors, fAreaIndex);
    201231        if (TMath::IsNaN(rms0))
    202             return kCONTINUE;
     232            return kTRUE;
    203233        ((TGraphErrors*)fGraph)->SetPointError(fGraph->GetN()-1, 0, rms0);
    204234    }
     
    221251    fGraph->SetMaximum(fMax+add);
    222252
    223     *fLog << dbg << "Min=" << fMin << " " << fMin-add << endl;
    224     *fLog << dbg << "Max=" << fMax << " " << fMax+add << endl;
    225 
    226253    return kTRUE;
    227254}
     
    236263}
    237264
    238 void MHSectorVsTime::Draw(Option_t *opt)
     265void MHSectorVsTime::Paint(Option_t *opt)
    239266{
    240267    if (!fGraph)
     
    244271        return;
    245272
    246     TVirtualPad *pad = gPad ? gPad : MakeDefCanvas(this);
    247     pad->SetBorderMode(0);
    248 
    249     AppendPad("");
    250 
    251273    TString str(opt);
    252 
    253274    if (!str.Contains("A"))
    254275        str += "A";
    255     if (!str.Contains("L"))
    256         str += "L";
    257 
     276    if (!str.Contains("P"))
     277        str += "P";
    258278    if (str.Contains("same", TString::kIgnoreCase))
    259279    {
     
    269289    {
    270290        TAxis *axe = h->GetXaxis();
    271         axe->SetTimeFormat("%H:%M:%S %F1995-01-01 00:00:00 GMT");
     291        axe->SetTimeFormat("%H:%M %F1995-01-01 00:00:00 GMT");
    272292        axe->SetTimeDisplay(1);
    273         axe->SetLabelSize(0.025);
    274     }
    275 
    276     fGraph->Draw(str);
    277 }
     293        axe->SetLabelSize(0.033);
     294        h->GetYaxis()->SetTitleOffset(1.15);
     295    }
     296
     297    // This is a workaround if the TGraph has only one point.
     298    // Otherwise MStatusDisplay::Update hangs.
     299    gPad->GetListOfPrimitives()->Remove(fGraph);
     300    fGraph->Draw(fGraph->GetN()<2 ? "A" : str.Data());
     301}
     302
     303// --------------------------------------------------------------------------
     304//
     305// This displays the TGraph like you expect it to be (eg. time on the axis)
     306// It should also make sure, that the displayed time always is UTC and
     307// not local time...
     308//
     309void MHSectorVsTime::Draw(Option_t *opt)
     310{
     311    TVirtualPad *pad = gPad ? gPad : MakeDefCanvas(fGraph);
     312    pad->SetBorderMode(0);
     313    AppendPad(opt);
     314}
  • trunk/MagicSoft/Mars/mhvstime/MHSectorVsTime.h

    r6977 r7210  
    4747    TArrayI fAreaIndex;
    4848
     49    // MH
    4950    Bool_t SetupFill(const MParList *pList);
    5051    Bool_t Fill(const MParContainer *par, const Stat_t w=1);
     
    5556    ~MHSectorVsTime();
    5657
    57     void SetName(const char *name);
    58     void SetTitle(const char *title);
    59 
     58    // Setter
    6059    void SetNameEvt(const TString name)  { fNameEvt = name; }
    6160    void SetNameTime(const TString name) { fNameTime = name; }
     
    6463    void SetAreaIndex(const TArrayI &a)  { fAreaIndex=a; }
    6564
     65    // Getter
    6666    TH1 *GetHistByName(const TString name="") const;
    6767    //TGraph *GetGraph() { return fGraph; }
    6868
     69    // TObject
     70    void SetName(const char *name);
     71    void SetTitle(const char *title);
     72
    6973    void Draw(Option_t *o=NULL);
     74    void Paint(Option_t *o=NULL);
    7075
    7176    ClassDef(MHSectorVsTime, 1) // Histogram to sum camera events
  • trunk/MagicSoft/Mars/mhvstime/MHVsTime.cc

    r7033 r7210  
    291291        fGraph->GetHistogram()->SetXTitle("Time");
    292292        fGraph->GetHistogram()->GetXaxis()->SetLabelSize(0.033);
    293         fGraph->GetHistogram()->GetXaxis()->SetTimeFormat("%H:%M:%S %F1995-01-01 00:00:00 GMT");
     293        fGraph->GetHistogram()->GetXaxis()->SetTimeFormat("%H:%M %F1995-01-01 00:00:00 GMT");
    294294        fGraph->GetHistogram()->GetXaxis()->SetTimeDisplay(1);
    295295    }
  • trunk/MagicSoft/Mars/mjobs/MJStar.cc

    r7202 r7210  
    4747#include "MH3.h"
    4848#include "MHVsTime.h"
     49#include "MHSectorVsTime.h"
    4950#include "MHCamEvent.h"
    5051#include "MHCamEventRot.h"
     
    195196    readreal.AddTree("Drive",            MReadReports::kRequired);
    196197    readreal.AddTree("Starguider",       MReadReports::kRequired);
     198    readreal.AddTree("Currents",         MReadReports::kRequired);
    197199    readreal.AddTree("CC");
    198200    readreal.AddFiles(iter);
     
    219221    clean.SetNamePedPhotCam("MPedPhotFromExtractorRndm");
    220222
    221     //MSrcPosCalc            poscalc;
    222     //MSrcPosCorrect         poscorrect;
    223     MHillasCalc            hcalc;
     223    MSrcPosCalc poscalc;
     224    MHillasCalc hcalc;
    224225    hcalc.Disable(MHillasCalc::kCalcConc);
    225226
     
    233234    MFillH fillp2("MHPointing",       "MTimeStarguider", "FillStarguider");
    234235    fillp1.SetBit(MFillH::kDoNotDisplay);
    235     //fillp2.SetNameTab("Drive");
     236    fillp1.SetBit(MFillH::kCanSkip);
     237    fillp2.SetBit(MFillH::kCanSkip);
    236238
    237239    MFillH fill0a(&evt0a,             "MSignalCam",      "FillSignalCam");
     
    258260
    259261    // Data
    260     write.AddContainer("MHillas",       "Events");
    261     write.AddContainer("MHillasExt",    "Events");
    262     write.AddContainer("MHillasSrc",    "Events");
    263     write.AddContainer("MImagePar",     "Events");
    264     write.AddContainer("MNewImagePar",  "Events");
    265     write.AddContainer("MRawEvtHeader", "Events");
    266     write.AddContainer("MPointingPos",  "Events");
     262    write.AddContainer("MHillas",                   "Events");
     263    write.AddContainer("MHillasExt",                "Events");
     264    write.AddContainer("MHillasSrc",                "Events");
     265    write.AddContainer("MImagePar",                 "Events");
     266    write.AddContainer("MNewImagePar",              "Events");
     267    write.AddContainer("MRawEvtHeader",             "Events");
     268    write.AddContainer("MPointingPos",              "Events");
    267269
    268270    // Run Header
    269     write.AddContainer("MRawRunHeader", "RunHeaders");
    270     write.AddContainer("MBadPixelsCam", "RunHeaders");
    271     write.AddContainer("MGeomCam",      "RunHeaders");
    272     write.AddContainer("MObservatory",  "RunHeaders");
     271    write.AddContainer("MRawRunHeader",             "RunHeaders");
     272    write.AddContainer("MBadPixelsCam",             "RunHeaders");
     273    write.AddContainer("MGeomCam",                  "RunHeaders");
     274    write.AddContainer("MObservatory",              "RunHeaders");
    273275
    274276    // Muon Setup
    275     write.AddContainer("BinningRadius",            "RunHeaders");
    276     write.AddContainer("BinningArcWidth",          "RunHeaders");
    277     write.AddContainer("BinningRingBroadening",    "RunHeaders");
    278     write.AddContainer("BinningSizeVsArcRadius",   "RunHeaders");
    279     write.AddContainer("MMuonSetup",               "RunHeaders");
     277    write.AddContainer("BinningRadius",             "RunHeaders");
     278    write.AddContainer("BinningArcWidth",           "RunHeaders");
     279    write.AddContainer("BinningRingBroadening",     "RunHeaders");
     280    write.AddContainer("BinningSizeVsArcRadius",    "RunHeaders");
     281    write.AddContainer("MMuonSetup",                "RunHeaders");
    280282
    281283    if (ismc)
    282284    {
    283285        // Monte Carlo Data
    284         write.AddContainer("MMcEvt",               "Events");
    285         write.AddContainer("MMcTrig",              "Events");
     286        write.AddContainer("MMcEvt",                "Events");
     287        write.AddContainer("MMcTrig",               "Events");
    286288        // Monte Carlo Run Headers
    287         write.AddContainer("MMcRunHeader",         "RunHeaders");
    288         write.AddContainer("MMcTrigHeader",        "RunHeaders");
    289         write.AddContainer("MMcFadcHeader",        "RunHeaders");
    290         write.AddContainer("MMcConfigRunHeader",   "RunHeaders");
    291         write.AddContainer("MMcCorsikaRunHeader",  "RunHeaders");
     289        write.AddContainer("MMcRunHeader",          "RunHeaders");
     290        write.AddContainer("MMcTrigHeader",         "RunHeaders");
     291        write.AddContainer("MMcFadcHeader",         "RunHeaders");
     292        write.AddContainer("MMcConfigRunHeader",    "RunHeaders");
     293        write.AddContainer("MMcCorsikaRunHeader",   "RunHeaders");
    292294    }
    293295    else
     
    298300        write.AddContainer("MTimeDrive",            "Drive");
    299301        // Starguider
    300         write.AddContainer("MReportStarguider",     "Starguider");
    301         write.AddContainer("MTimeStarguider",       "Starguider");
     302        write.AddContainer("MReportStarguider",     "Starguider", kFALSE);
     303        write.AddContainer("MTimeStarguider",       "Starguider", kFALSE);
    302304        // Effective On Time
    303305        writet.AddContainer("MEffectiveOnTime",     "EffectiveOnTime");
     
    306308
    307309    // What to write in muon tree
    308     writem.AddContainer("MMuonSearchPar", "Muons");
    309     writem.AddContainer("MMuonCalibPar",  "Muons");
    310     writem.AddContainer("MHillas",        "Muons");
    311     writem.AddContainer("MHillasExt",     "Muons");
    312     writem.AddContainer("MHillasSrc",     "Muons");
    313     writem.AddContainer("MImagePar",      "Muons");
    314     writem.AddContainer("MNewImagePar",   "Muons");
    315     writem.AddContainer("MRawEvtHeader",  "Muons");
    316     writem.AddContainer("MPointingPos",   "Muons");
     310    writem.AddContainer("MMuonSearchPar",           "Muons");
     311    writem.AddContainer("MMuonCalibPar",            "Muons");
     312    writem.AddContainer("MHillas",                  "Muons");
     313    writem.AddContainer("MHillasExt",               "Muons");
     314    writem.AddContainer("MHillasSrc",               "Muons");
     315    writem.AddContainer("MImagePar",                "Muons");
     316    writem.AddContainer("MNewImagePar",             "Muons");
     317    writem.AddContainer("MRawEvtHeader",            "Muons");
     318    writem.AddContainer("MPointingPos",             "Muons");
    317319    if (ismc)
    318320    {
    319321        // Monte Carlo Data
    320         writem.AddContainer("MMcEvt",     "Muons");
    321         writem.AddContainer("MMcTrig",    "Muons");
     322        writem.AddContainer("MMcEvt",               "Muons");
     323        writem.AddContainer("MMcTrig",              "Muons");
    322324    }
    323325
     
    344346    tlist2.AddToList(&fill0a);
    345347    tlist2.AddToList(&fill0b);
    346     //tlist2.AddToList(&poscalc);
    347     //tlist2.AddToList(&poscorrect);
     348    tlist2.AddToList(&poscalc);
    348349    tlist2.AddToList(&hcalc);
    349350    tlist2.AddToList(&fill1);
     
    389390    // ------------------------------------------------------------
    390391
     392    // Initialize histogram
     393    MHSectorVsTime histdc;
     394    histdc.SetNameTime("MTimeCurrents");
     395    histdc.SetTitle("Mean of all DC Currents;;<I> [nA]");
     396    /*
     397     // Define area index [0=inner, 1=outer]
     398     // TArrayI inner(1); inner[0] = 0; histdc.SetAreaIndex(inner);
     399     */
     400
     401    // Task to fill the histogram
     402    MFillH filldc(&histdc, "MCameraDC", "FillDC");
     403    filldc.SetNameTab("Currents");
     404
    391405    MFillH fillw("MHWeather", "MTimeCC", "FillWeather");
    392     //tlist2.AddToList(&fill6);
    393     //tlist2.AddToList(&fill7);
    394     //tlist2.AddToList(&fill9);
    395406
    396407    MPointingPosCalc pcalc;
     408
     409    // ------------------------------------------------------------
    397410
    398411    tlist.AddToList(ismc ? (MTask*)&readmc : (MTask*)&readreal);
     
    404417        tlist.AddToList(&fillp1, "Drive");
    405418        tlist.AddToList(&fillp2, "Starguider");
     419        tlist.AddToList(&filldc, "Currents");
    406420    }
    407421    tlist.AddToList(&write);
  • trunk/MagicSoft/Mars/mpointing/MHPointing.cc

    r7202 r7210  
    130130    fReportSG = (MReportStarguider*)plist->FindObject("MReportStarguider");
    131131    if (!fReportSG)
    132     {
    133         *fLog << warn << "MReportStarguider not found... abort." << endl;
    134         return kFALSE;
    135     }
     132        *fLog << warn << "MReportStarguider not found..." << endl;
     133
    136134    fReportCosy = (MReportDrive*)plist->FindObject("MReportDrive");
    137135    if (!fReportCosy)
    138     {
    139         *fLog << warn << "MReportDrive not found... abort." << endl;
    140         return kFALSE;
    141     }
     136        *fLog << warn << "MReportDrive not found..." << endl;
    142137
    143138    // Reset Graphs
     
    166161    if (t->GetName()==(TString)"MTimeStarguider")
    167162    {
     163        if (!fReportSG)
     164        {
     165            *fLog << err << "ERROR: fReportSG==NULL... abort." << endl;
     166            return kFALSE;
     167        }
     168
    168169        AddPoint(fBrightness, tm, fReportSG->GetSkyBrightness());
    169170        AddPoint(fNumStars,   tm, fReportSG->GetNumIdentifiedStars());
     
    184185    }
    185186
    186     if (t->GetName()==(TString)"MTimeDrive")
    187     {
     187    if (fReportCosy && t->GetName()==(TString)"MTimeDrive")
     188    {
     189        if (!fReportCosy)
     190        {
     191            *fLog << err << "ERROR: fReportCosy==NULL... abort." << endl;
     192            return kFALSE;
     193        }
     194
    188195        AddPoint(fDevTimeCosy, tm, fReportCosy->GetAbsError()*60);
    189196        if (fPosZd.GetY()[fPosZd.GetN()-1] != fReportCosy->GetNominalZd())
Note: See TracChangeset for help on using the changeset viewer.