Changeset 19900


Ignore:
Timestamp:
Dec 15, 2019, 12:34:27 AM (5 weeks ago)
Author:
tbretz
Message:
Some simplification for a better structured root file.
Location:
trunk/FACT++
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/spectrum/display.C

    r19897 r19900  
    199199    c->cd(4);
    200200    gPad->SetLogy();
    201     file.GetObject("Data/Energy/Excess", h1);
     201    file.GetObject("Data/Energy/Differential/Excess", h1);
    202202    h1->SetTitle("Measured Signal (blue) / Simulated Excess (black)");
    203203    h1->SetLineColor(kBlue);
     
    214214    c = new TCanvas("Integral Spectrum", "Integral Spectrum");
    215215    c->SetLogy();
    216     file.GetObject("Data/Energy/IntegratedSpectrum", h1);
     216    file.GetObject("Data/Energy/Differential/IntegratedSpectrum", h1);
    217217    h1->SetLineColor(kGray);
    218218    h1->SetMarkerColor(kGray);
    219219    h1->DrawCopy("P");
    220     file.GetObject("Data/Energy/IntegralSpectrum", h1);
     220    file.GetObject("Data/Energy/Integral/Spectrum", h1);
    221221    h1->DrawCopy("P same");
    222222
     
    230230    cout << endl;
    231231
    232     file.GetObject("Data/Energy/RolkeIntegralUL", h1);
     232    file.GetObject("Data/Energy/Integral/RolkeUL", h1);
    233233    h1->SetMarkerStyle(23);
    234234    h1->DrawCopy("P same");
     
    242242    c = new TCanvas("Differential Spectrum", "Differential Spectrum");
    243243    c->SetLogy();
    244     file.GetObject("Data/Energy/Spectrum", h1);
     244    file.GetObject("Data/Energy/Differential/Spectrum", h1);
    245245    h1->DrawCopy("P");
    246246
     
    254254    cout << endl;
    255255
    256     file.GetObject("Data/Energy/RolkeUL", h1);
     256    file.GetObject("Data/Energy/Differential/RolkeUL", h1);
    257257    h1->SetMarkerStyle(23);
    258258    h1->DrawCopy("P same");
  • trunk/FACT++/spectrum/spectrum.sql

    r19897 r19900  
    1717   SELECT
    1818      *,
    19       SUM(`Signal`)     OVER Integral     AS  IntegralSignal,
    20       SUM(`Background`) OVER Integral /5  AS  IntegralBackground,
    21       SUM(SumEnergyEst) OVER Integral     AS  IntegralEnergyEst,
    22       SUM(SumW)         OVER Integral     AS  IntegralSumW
     19      SUM(`Signal`)     OVER Integral     AS  SignalI,
     20      SUM(`Background`) OVER Integral /5  AS  BackgroundI,
     21      SUM(SumEnergyEst) OVER Integral     AS  EnergyEstI,
     22      SUM(SumW)         OVER Integral     AS  SumWI
    2323   FROM
    2424      BinnedData
     
    3939      `Background`,
    4040
    41       IntegralSignal,
    42       IntegralBackground,
     41      SignalI,
     42      BackgroundI,
    4343
    44       `Signal` - `Background`                     AS  Excess,
    45       SQRT(`Signal`)                              AS  ErrSignal,
    46       SQRT(`Background`)                          AS  ErrBackground,
    47       ExcErr(`Signal`, `Background`)              AS  ErrExcess,
    48       LiMa(  `Signal`, `Background`)              AS  Significance,
     44      `Signal` - `Background`         AS  Excess,
     45      SQRT(`Signal`)                  AS  ErrSignal,
     46      SQRT(`Background`)              AS  ErrBackground,
     47      ExcErr(`Signal`, `Background`)  AS  ErrExcess,
     48      LiMa(  `Signal`, `Background`)  AS  Significance,
    4949
    50       IntegralSignal - IntegralBackground         AS  IntegralExcess,
    51       SQRT(IntegralSignal)                        AS  ErrIntegralSignal,
    52       SQRT(IntegralBackground)                    AS  ErrIntegralBackground,
    53       ExcErr(IntegralSignal, IntegralBackground)  AS  ErrIntegralExcess,
    54       LiMa(  IntegralSignal, IntegralBackground)  AS  IntegralSignificance,
     50      SignalI - BackgroundI           AS  ExcessI,
     51      SQRT(SignalI)                   AS  ErrSignalI,
     52      SQRT(BackgroundI)               AS  ErrBackgroundI,
     53      ExcErr(SignalI, BackgroundI)    AS  ErrExcessI,
     54      LiMa(  SignalI, BackgroundI)    AS  SignificanceI,
    5555
    56       SumEnergyEst/SumW  AS  AvgEnergyEst,
    57       IntegralEnergyEst/IntegralSumW  AS  IntegralAvgEnergyEst,
     56      SumEnergyEst/SumW               AS  AvgEnergyEst,
     57      EnergyEstI/SumWI                AS  AvgEnergyEstI,
    5858
    59       %102:id.ExcessFluxW  AS  SimExcess,
    60       %102:id.ErrExcessFluxW  AS  ErrSimExcess,
    61       %102:id.IntegralExcessFluxW  AS  IntegralSimExcess,
    62       %102:id.ErrIntegralExcessFluxW  AS  ErrIntegralSimExcess,
     59      %102:id.ExcessFluxW              AS  SimExcess,
     60      %102:id.ErrExcessFluxW           AS  ErrSimExcess,
     61      %102:id.IntegralExcessFluxW      AS  SimExcessI,
     62      %102:id.ErrIntegralExcessFluxW   AS  ErrSimExcessI,
    6363
    6464      -- For flux-vs-theta: Correction for already applied ZdWeights
    6565      Sim.SimFluxW/%103:weight  AS  SimFluxW,
    6666      Sim.ErrSimFluxW/%104:errweight  AS  ErrSimFluxW,
    67       Sim.IntegralSimFluxW/%103:weight  AS  IntegralSimFluxW,
    68       Sim.ErrIntegralSimFluxW/%104:errweight  AS  ErrIntegralSimFluxW
     67      Sim.IntegralSimFluxW/%103:weight  AS  SimFluxI,
     68      Sim.ErrIntegralSimFluxW/%104:errweight  AS  ErrSimFluxI
    6969   FROM
    7070      Data
     
    101101   -- Integral Spectrum
    102102
    103    IntegralSimExcess/IntegralSimFluxW  AS  IntegralEfficiency,
     103   SimExcessI/SimFluxI  AS  EfficiencyI,
    104104
    105    IntegralExcess/IntegralSimExcess/AreaTime  AS  IntegralExcessRatio,
    106    IntegralExcess/IntegralSimExcess/AreaTime
     105   ExcessI/SimExcessI/AreaTime  AS  ExcessRatioI,
     106   ExcessI/SimExcessI/AreaTime
    107107      * SQRT(
    108           + POW(ErrIntegralExcess    / IntegralExcess,    2)
    109           + POW(ErrIntegralSimExcess / IntegralSimExcess, 2)
    110         )  AS  ErrIntegralExcessRatio,
     108          + POW(ErrExcessI    / ExcessI,    2)
     109          + POW(ErrSimExcessI / SimExcessI, 2)
     110        )  AS  ErrExcessRatioI,
    111111
    112112
    113    IntegralExcess/IntegralSimExcess*IntegralSimFluxW/AreaTime  AS  IntegralFlux,
    114    IntegralExcess/IntegralSimExcess*IntegralSimFluxW/AreaTime
     113   ExcessI/SimExcessI*SimFluxI/AreaTime  AS  FluxI,
     114   ExcessI/SimExcessI*SimFluxI/AreaTime
    115115      * SQRT(
    116           + POW(ErrIntegralExcess    / IntegralExcess,    2)
    117           + POW(ErrIntegralSimExcess / IntegralSimExcess, 2)
    118           + POW(ErrIntegralSimFluxW  / IntegralSimFluxW,  2)
    119         )  AS  ErrIntegralFlux
     116          + POW(ErrExcessI    / ExcessI,    2)
     117          + POW(ErrSimExcessI / SimExcessI, 2)
     118          + POW(ErrSimFluxI   / SimFluxI,   2)
     119        )  AS  ErrFluxI
    120120
    121121FROM
  • trunk/FACT++/src/spectrum.cc

    r19899 r19900  
    18951895                const mysqlpp::Row &row = *ir;
    18961896
    1897                 const size_t bin      = row[*ib=="Theta" ? ".theta" : ".sparse_est"];
    1898                 const double flux     = row["Flux"];
    1899                 const double error    = row["ErrFlux"];
     1897                const size_t bin = row[*ib=="Theta" ? ".theta" : ".sparse_est"];
    19001898
    19011899#ifdef HAVE_ROOT
     
    19031901                const double dat_bg   = row["Background"];
    19041902
    1905                 const double dat_isig = row["IntegralSignal"];
    1906                 const double dat_ibg  = row["IntegralBackground"];
     1903                const double dat_isig = row["SignalI"];
     1904                const double dat_ibg  = row["BackgroundI"];
    19071905
    19081906                const double eff      = row["Efficiency"];
    1909                 const double ieff     = row["IntegralEfficiency"];
     1907                const double ieff     = row["EfficiencyI"];
    19101908
    19111909                const double areatime = row["AreaTime"];
     
    19261924                if (verbose>0)
    19271925                {
    1928                     cout << setw(5)  << row["center"] << ": ";
    1929                     cout << setw(10) << row["Excess"] << " ";
    1930                     cout << setw(10) << flux << " ";
    1931                     cout << setw(10) << error << " ";
     1926                    cout << setw(5)  << row["center"]  << ": ";
     1927                    cout << setw(10) << row["Excess"]  << " ";
     1928                    cout << setw(10) << row["Flux"]    << " ";
     1929                    cout << setw(10) << row["ErrFlux"] << " ";
    19321930                    cout << setw(10) << row["Significance"] << '\n';
    19331931                }
     
    19351933
    19361934            Histogram hist;
    1937             hist.dir      = "Data/"+*ib;
    19381935            hist.table    = table;
    19391936            hist.binningx = *ib=="Theta" ? binning_theta : binning_sparse;
     
    19421939            hist.stats    = false;
    19431940
    1944             const vector<string> types = *ib=="Theta" ? vector<string>{ "" } : vector<string>{ "", "Integral" };
     1941            const vector<string> types = *ib=="Theta" ? vector<string>{ "" } : vector<string>{ "", "I" };
    19451942            for (auto it=types.cbegin(); it!=types.cend(); it++)
    19461943            {
     1944                hist.dir = *ib=="Theta" ? "Data/Theta" : (it->empty() ? "Data/Energy/Differential" : "Data/Energy/Integral");
     1945
    19471946                hist.axisy = "Counts";
    19481947                if (*ib=="Energy")
     
    19501949
    19511950                hist.title = "";
    1952                 hist.v     = *it+"Signal";
    1953                 hist.err   = "Err"+*it+"Signal";
     1951                hist.v     = "Signal"+*it;
     1952                hist.err   = "ErrSignal"+*it;
    19541953                WriteHistogram(connection, hist);
    19551954
    19561955                hist.title = "";
    1957                 hist.v     = *it+"Background";
    1958                 hist.err   = "Err"+*it+"Background";
     1956                hist.v     = "Background"+*it;
     1957                hist.err   = "ErrBackground"+*it;
    19591958                WriteHistogram(connection, hist);
    19601959
    19611960                hist.title = "";
    1962                 hist.v     = *it+"Excess";
    1963                 hist.err   = "Err"+*it+"Excess";
     1961                hist.v     = "Excess"+*it;
     1962                hist.err   = "ErrExcess"+*it;
    19641963                WriteHistogram(connection, hist);
    19651964
    19661965                hist.title = "";
    1967                 hist.v     = *it+"Significance";
     1966                hist.v     = "Significance"+*it;
    19681967                hist.err   = "";
    19691968                hist.axisy = "#sigma";
     
    19731972
    19741973                hist.title = "";
    1975                 hist.v     = *it+"AvgEnergyEst";
     1974                hist.v     = "AvgEnergyEst"+*it;
    19761975                hist.err   = "";
    19771976                hist.axisy = "<E_{est}>/GeV";
     
    19811980
    19821981                hist.title = "";
    1983                 hist.v     = *it+"ExcessRatio";
    1984                 hist.err   = "Err"+*it+"ExcessRatio";
     1982                hist.v     = "ExcessRatio"+*it;
     1983                hist.err   = "ErrExcessRatio"+*it;
    19851984                hist.axisy = "Ratio";
    19861985                if (*ib=="Energy")
     
    19891988            }
    19901989
     1990            hist.dir = *ib=="Theta" ? "Data/Theta" : "Data/Energy/Differential";
    19911991            hist.axisy = "dN/dE ";
    19921992            if (*ib=="Energy")
     
    20032003                hist.axisy = "dN/dE (E>E_{lo}) [cm^{-2} s^{-1}]";
    20042004
    2005                 hist.name  = "IntegralSpectrum";
    2006                 hist.v     = "IntegralFlux";
    2007                 hist.err   = "ErrIntegralFlux";
     2005                hist.dir   = "Data/Energy/Integral";
     2006                hist.name  = "Spectrum";
     2007                hist.v     = "FluxI";
     2008                hist.err   = "ErrFluxI";
    20082009                WriteHistogram(connection, hist);
    20092010
     2011                hist.dir   = "Data/Energy/Differential";
    20102012                hist.name  = "IntegratedSpectrum";
    20112013                hist.v     = "IntegratedFlux";
     
    20152017
    20162018#ifdef HAVE_ROOT
     2019            hist.dir   = *ib=="Theta" ? "Data/Theta" : "Data/Energy/Differential";
    20172020            hist.axisy = *ib=="Theta" ? "UL [cm^{-2} s^{-1}]" : "UL [cm^{-2} s^{-1} TeV^{-1}]";
    20182021
     
    20312034            if (*ib=="Energy")
    20322035            {
    2033                 hist.name = "IntegralRolkeUL";
     2036                hist.dir  = "Data/Energy/Integral";
     2037                hist.name = "RolkeUL";
    20342038                WriteHistogram(connection, hist, rolke_int);
    20352039            }
Note: See TracChangeset for help on using the changeset viewer.