Ignore:
Timestamp:
07/20/08 15:21:42 (16 years ago)
Author:
tbretz
Message:
*** empty log message ***
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/MagicSoft/Mars/datacenter/macros/plotdb.C

    r8988 r9017  
    11/* ======================================================================== *\
    2 ! $Name: not supported by cvs2svn $:$Id: plotdb.C,v 1.48 2008-06-30 09:36:34 tbretz Exp $
     2! $Name: not supported by cvs2svn $:$Id: plotdb.C,v 1.49 2008-07-20 14:21:40 tbretz Exp $
    33! --------------------------------------------------------------------------
    44!
     
    6363
    6464#include <TH1.h>
    65 #include <TEnv.h>
    6665#include <TPad.h>
    6766#include <TLine.h>
     
    9089        kGroupByPrimary,
    9190        kGroupByHour,
     91        kGroupByDay,
    9292        kGroupByNight,
    9393        kGroupByWeek,
     
    159159        while ((row=res.Next()))
    160160        {
     161            Int_t pos=0;
    161162            // Get all fields of this row
    162             const char *date = (*row)[0];
    163             const char *zd   = (*row)[1];
    164             const char *val  = (*row)[2];
    165             const char *snum = res.GetFieldCount()>3 ? (*row)[3] : 0;
    166             const char *verr = res.GetFieldCount()>4 ? (*row)[5] : 0;
     163            const char *date  = (*row)[pos++];
     164            const char *zd    = (*row)[pos++];
     165            const char *val   = (*row)[pos++];
     166            const char *zderr = fGroupBy!=kNone ? (*row)[pos++] : 0;
     167            const char *verr  = fGroupBy!=kNone ? (*row)[pos++] : 0;
     168            const char *snum  = fDataSet        ? (*row)[pos++] : 0;
    167169
    168170            delete row;
     
    383385            fDataSet = NULL;
    384386        }
    385         if (!filename.IsNull())
    386             fDataSet = new MDataSet(filename);
     387
     388        fPrimaryNumber="";
     389
     390        if (filename.IsNull())
     391            return;
     392
     393        fDataSet = new MDataSet(filename);
     394        fPrimaryNumber="Sequences.fSequenceFirst";
    387395    }
    388396    void SetPlotRange(Float_t min, Float_t max/*, Int_t n=5*/) { fPlotMin = min; fPlotMax = max; }
     
    395403    void SetGroupBy(GroupBy_t b=kGroupByWeek) { fGroupBy=b; }
    396404    void SetPrimaryDate(const char *ts) { fPrimaryDate=ts; }
    397     void SetPrimaryNumber(const char *ts) { fPrimaryNumber=ts; }
     405    void SetPrimaryNumber(const char *ts) { }
    398406    void SetSecondary(const char *ts) { fSecondary=ts; }
    399407
    400408    MStatusDisplay *GetDisplay() { return fDisplay; }
     409    MSQLMagic &GetServer() { return fServer; }
    401410
    402411    Bool_t Plot(const char *value, Float_t min=0, Float_t max=-1, Float_t resolution=0)
     
    424433        case kGroupByNight:
    425434            query += Form("DATE_FORMAT(ADDDATE(%s,Interval 12 hour), '%%Y-%%m-%%d 00:00:00') AS %s ", fPrimaryDate.Data(), valued.Data()+1);
     435            break;
     436        case kGroupByDay:
     437            query += Form("DATE_FORMAT(%s, '%%Y-%%m-%%d 00:00:00') AS %s ", fPrimaryDate.Data(), valued.Data()+1);
    426438            break;
    427439        case kGroupByWeek:
     
    445457            query += ", ";
    446458            query += value;
     459        }
     460        else
     461        {
     462            TString v(value);
     463
     464            TString as = v(TPRegexp(" +[aA][sS] +[a-zA-Z0-9]+ *$"));
     465            Ssiz_t  p  = v.Index(as);
     466
     467            v.Prepend("(");
     468            v.Insert(p<=0?v.Length():p+1, ")");
     469
     470            query += ", AVG";
     471            query += v;
     472            query += ", AVG(";
     473            query += fSecondary;
     474            query += "), STD";
     475            query += v;
     476            query += ", STD(";
     477            query += fSecondary;
     478            query += ")";
     479        }
     480
     481        if (fDataSet)
     482        {
    447483            query += ", ";
    448484            query += fPrimaryNumber;
    449             query += " ";
    450         }
    451         else
    452         {
    453             query += ", AVG(";
    454             query += fSecondary;
    455             query += "), AVG(";
    456             query += value;
    457             query += "), ";
    458             query += fPrimaryNumber;
    459             query += ", STD(";
    460             query += fSecondary;
    461             query += "), STD(";
    462             query += value;
    463             query += ") ";
    464         }
    465 
    466         query += Form("FROM %s ", tabled.Data());
     485        }
     486
     487        query += Form(" FROM %s ", tabled.Data());
    467488
    468489        const Bool_t interval = !fRequestFrom.IsNull() && !fRequestTo.IsNull();
    469490
    470491        TString where(fCondition);
    471         /*
    472         if (!fDataSet && !interval && tablev=="Star")
    473         {
    474             if (!where.IsNull())
    475                 where += " AND ";
    476             where += "Star.fMuonNumber>300 ";
    477         }
    478         */
    479492        if (interval)
    480493        {
     
    521534        return kTRUE;
    522535    }
     536//    ClassDef(MPlot, 0)
    523537};
     538
     539//ClassImp(MPlot);
    524540
    525541void plotalldb(MPlot &plot)
    526542{
    527543    //plot.SetGroupBy(MPlot::kGroupByNight);
     544    //plot.SetDataSet("dataset.txt");
    528545
    529546    plot.SetPrimaryDate("Sequences.fRunStart");
    530     plot.SetPrimaryNumber("Sequences.fSequenceFirst");
    531547    plot.SetSecondary("(Sequences.fZenithDistanceMin+Sequences.fZenithDistanceMax)/2 as '<Zd>'");
    532548
     
    668684int plotdb(TString from, TString to, const char *dataset=0)
    669685{
    670     TEnv env("sql.rc");
    671 
    672     MSQLMagic serv(env);
     686    MSQLMagic serv("sql.rc");
    673687    if (!serv.IsConnected())
    674688    {
     
    700714int plotdb(const char *ds)
    701715{
    702     TEnv env("sql.rc");
    703 
    704     MSQLMagic serv(env);
     716    MSQLMagic serv("sql.rc");
    705717    if (!serv.IsConnected())
    706718    {
     
    732744int plotdb(Int_t period, const char *dataset="")
    733745{
    734     TEnv env("sql.rc");
    735 
    736     MSQLMagic serv(env);
     746    MSQLMagic serv("sql.rc");
    737747    if (!serv.IsConnected())
    738748    {
Note: See TracChangeset for help on using the changeset viewer.