Changeset 19887


Ignore:
Timestamp:
12/12/19 13:31:01 (5 years ago)
Author:
tbretz
Message:
In contrast to clang, gcc requires the initilizer list to be in order and complete.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/spectrum.cc

    r19886 r19887  
    4646        const double stp = (max-min)/cnt;
    4747
    48         for (int i=0; i<=cnt; i++)
     48        for (size_t i=0; i<=cnt; i++)
    4949            emplace(min+i*stp);
    5050    }
     
    363363
    364364    const auto vec = bins.vec();
    365     for (int i=1; i<vec.size()-2; i++)
     365    for (size_t i=1; i<vec.size()-2; i++)
    366366        query1 << "  ( " << i << ", " << vec[i-1] << ", " << vec[i] << " ),\n";
    367367    query1 << "  ( " << vec.size()-2 << ", " << vec[vec.size()-2] << ", " << vec[vec.size()-1] << " )\n";
     
    376376// ----------------------------- ROOT Histogram -----------------------------
    377377
     378/*
     379A bit of hackery, so just sharing for fun.
     380
     381   #define with(T, ...) ([&]{ T ${}; __VA_ARGS__; return $; }())
     382
     383And use it like:
     384
     385   MyFunction(with(Params,
     386      $.Name = "Foo Bar",
     387      $.Age  = 18
     388   ));
     389
     390which expands to:
     391
     392   MyFunction(([&] {
     393      Params ${};
     394    $.Name = "Foo Bar", $.Age = 18;
     395    return $;
     396   }()));
     397*/
    378398struct Histogram
    379399{
    380400    // A workaround to be able to set a default also in C++11
     401    /*
    381402    template<typename T, T def>
    382403    struct Value
     
    386407        Value(const T &_t) : t(_t) { }
    387408        operator T() const { return t; }
    388     };
     409    };*/
    389410
    390411    string  name;
     
    401422    string  axisy;
    402423    string  axisz;
    403     Value<bool,true> stats;
     424    bool    stats;
     425    //Value<bool,true> stats;
    404426};
    405427
     
    468490        const uint32_t x = row["X"];
    469491        const double   v = row["V"];
    470         if (x>h->GetNbinsX()+1)
     492        if (x>uint32_t(h->GetNbinsX()+1))
    471493            continue;
    472494
     
    474496        {
    475497            const uint32_t y = row["Y"];
    476             if (y>h->GetNbinsY()+1)
     498            if (y>uint32_t(h->GetNbinsY()+1))
    477499                continue;
    478500
     
    487509                h->SetBinError(x, double(row["E"]));
    488510            }
    489             catch (const mysqlpp::BadFieldName &e)
     511            catch (const mysqlpp::BadFieldName &)
    490512            {
    491513            }
     
    548570int main(int argc, const char* argv[])
    549571{
    550 
    551572    Time start;
    552573
     
    10511072
    10521073    WriteHistogram(connection, {
    1053              .dir      = "Zd",
    10541074             .name     = "OnTime",
    10551075             .title    = "Effective on time",
     1076             .dir      = "Zd",
    10561077             .binningx = binning_theta,
     1078             .binningy = {},
    10571079             .table    = "ThetaHist",
    10581080             .x        = ".theta",
     1081             .y        = "",
    10591082             .v        = "OnTime",
     1083             .err      = "",
    10601084             .axisx    = "Zenith Distance #theta [#circ]",
    1061              .axisy    = "Eff. on time [s]"
    1062          });
    1063 
    1064     WriteHistogram(connection, {
    1065              .dir      = "Zd",
     1085             .axisy    = "Eff. on time [s]",
     1086             .axisz    = "",
     1087             .stats    = true
     1088         });
     1089
     1090    WriteHistogram(connection, {
    10661091             .name     = "CountN",
    10671092             .title    = "Simulated Zenith Distance",
     1093             .dir      = "Zd",
    10681094             .binningx = binning_theta,
     1095             .binningy = {},
    10691096             .table    = "ThetaHist",
    10701097             .x        = ".theta",
     1098             .y        = "",
    10711099             .v        = "CountN",
    10721100             .err      = "ErrCountN",
    10731101             .axisx    = "Zenith Distance #theta [#circ]",
    1074              .axisy    = "Counts"
    1075          });
    1076 
    1077     WriteHistogram(connection, {
    1078              .dir      = "Zd",
     1102             .axisy    = "Counts",
     1103             .axisz    = "",
     1104             .stats    = true
     1105         });
     1106
     1107    WriteHistogram(connection, {
    10791108             .name     = "ZdWeight",
    10801109             .title    = "Zenith Distance Weight",
     1110             .dir      = "Zd",
    10811111             .binningx = binning_theta,
     1112             .binningy = {},
    10821113             .table    = "ThetaHist",
    10831114             .x        = ".theta",
     1115             .y        = "",
    10841116             .v        = "ZdWeight",
    10851117             .err      = "ErrZdWeight",
    10861118             .axisx    = "Zenith Distance #theta [#circ]",
    1087              .axisy    = "Weight [s]"
     1119             .axisy    = "Weight [s]",
     1120             .axisz    = "",
     1121             .stats    = true
    10881122         });
    10891123
     
    15231557             .dir      = "Eest/Measurement",
    15241558             .binningx = binning_eest,
     1559             .binningy = {},
    15251560             .table    = "Spectrum",
    15261561             .x        = ".energy",
     1562             .y        = "",
    15271563             .v        = "Signal",
    15281564             .err      = "ErrSignal",
    15291565             .axisx    = "Energy lg(E_{est}/GeV)",
    1530              .axisy    = "Counts"
     1566             .axisy    = "Counts",
     1567             .axisz    = "",
     1568             .stats    = true
    15311569         });
    15321570
     
    15361574             .dir      = "Eest/Measurement",
    15371575             .binningx = binning_eest,
     1576             .binningy = {},
    15381577             .table    = "Spectrum",
    15391578             .x        = ".energy",
     1579             .y        = "",
    15401580             .v        = "Background",
    15411581             .err      = "ErrBackground",
    15421582             .axisx    = "Energy lg(E_{est}/GeV)",
    1543              .axisy    = "Counts"
     1583             .axisy    = "Count",
     1584             .axisz    = "",
     1585             .stats    = true
    15441586         });
    15451587
     
    15491591             .dir      = "Eest/Measurement",
    15501592             .binningx = binning_eest,
     1593             .binningy = {},
    15511594             .table    = "Spectrum",
    15521595             .x        = ".energy",
     1596             .y        = "",
    15531597             .v        = "Excess",
    15541598             .err      = "ErrExcess",
    15551599             .axisx    = "Energy lg(E_{est}/GeV)",
    1556              .axisy    = "Signal - Background (Counts)"
     1600             .axisy    = "Signal - Background (Counts)",
     1601             .axisz    = "",
     1602             .stats    = true
    15571603         });
    15581604
     
    15621608             .dir      = "Eest/Simulation/Weighted",
    15631609             .binningx = binning_eest,
     1610             .binningy = {},
    15641611             .table    = "Spectrum",
    15651612             .x        = ".energy",
     1613             .y        = "",
    15661614             .v        = "SignalW",
    15671615             .err      = "ErrSignalW",
    15681616             .axisx    = "Energy lg(E_{est}/GeV)",
    1569              .axisy    = "Weighted"
     1617             .axisy    = "Weighted",
     1618             .axisz    = "",
     1619             .stats    = true
    15701620         });
    15711621
     
    15751625             .dir      = "Eest/Simulation/Weighted",
    15761626             .binningx = binning_eest,
     1627             .binningy = {},
    15771628             .table    = "Spectrum",
    15781629             .x        = ".energy",
     1630             .y        = "",
    15791631             .v        = "BackgroundW",
    15801632             .err      = "ErrBackgroundW",
    15811633             .axisx    = "Energy lg(E_{est}/GeV)",
    1582              .axisy    = "Weighted"
     1634             .axisy    = "Weighted",
     1635             .axisz    = "",
     1636             .stats    = true
    15831637         });
    15841638
     
    15881642             .dir      = "Eest/Simulation/Weighted",
    15891643             .binningx = binning_eest,
     1644             .binningy = {},
    15901645             .table    = "Spectrum",
    15911646             .x        = ".energy",
     1647             .y        = "",
    15921648             .v        = "ExcessW",
    15931649             .err      = "ErrExcessW",
    15941650             .axisx    = "Energy lg(E_{est}/GeV)",
    1595              .axisy    = "Signal - Background (Weighted)"
     1651             .axisy    = "Signal - Background (Weighted)",
     1652             .axisz    = "",
     1653             .stats    = true
    15961654         });
    15971655
     
    16011659             .dir      = "Eest/Measurement",
    16021660             .binningx = binning_eest,
     1661             .binningy = {},
    16031662             .table    = "Spectrum",
    16041663             .x        = ".energy",
     1664             .y        = "",
    16051665             .v        = "Significance",
     1666             .err      = "",
    16061667             .axisx    = "Energy lg(E_{est}/GeV)",
    1607              .axisy    = "Li/Ma Significance"
    1608          });
    1609 
    1610     WriteHistogram(connection, {
    1611              .dir      = "Eest",
     1668             .axisy    = "Li/Ma Significance",
     1669             .axisz    = "",
     1670             .stats    = true
     1671         });
     1672
     1673    WriteHistogram(connection, {
    16121674             .name     = "Bias",
    16131675             .title    = "Energy Bias",
     1676             .dir      = "Eest",
    16141677             .binningx = binning_eest,
     1678             .binningy = {},
    16151679             .table    = "Spectrum",
    16161680             .x        = ".energy",
     1681             .y        = "",
    16171682             .v        = "Bias",
    16181683             .err      = "Resolution",
    16191684             .axisx    = "Energy lg(E_{sim}/GeV)",
    16201685             .axisy    = "lg(E_{est}/E_{sim})",
     1686             .axisz    = "",
    16211687             .stats    = false
    16221688         });
    16231689
    16241690    WriteHistogram(connection, {
    1625              .dir      = "Eest",
    16261691             .name     = "Resolution",
    16271692             .title    = "Energy Resolution",
     1693             .dir      = "Eest",
    16281694             .binningx = binning_eest,
     1695             .binningy = {},
    16291696             .table    = "Spectrum",
    16301697             .x        = ".energy",
     1698             .y        = "",
    16311699             .v        = "Resolution",
     1700             .err      = "",
    16321701             .axisx    = "Energy lg(E_{sim}/GeV)",
    16331702             .axisy    = "#sigma(lg(E_{est}/E_{sim}))",
     1703             .axisz    = "",
    16341704             .stats    = false
    16351705         });
    16361706
    16371707    WriteHistogram(connection, {
    1638              .dir      = "Eest/Efficiency",
    16391708             .name     = "EfficiencyN",
    16401709             .title    = "Efficiency (Counts)",
     1710             .dir      = "Eest/Efficiency",
    16411711             .binningx = binning_eest,
     1712             .binningy = {},
    16421713             .table    = "Spectrum",
    16431714             .x        = ".energy",
     1715             .y        = "",
    16441716             .v        = "EfficiencyN",
    16451717             .err      = "ErrEfficiencyN",
    16461718             .axisx    = "Energy lg(E_{sim}/GeV)",
    1647              .axisy    = "Efficiency"
    1648          });
    1649 
    1650     WriteHistogram(connection, {
    1651              .dir      = "Eest/Efficiency",
     1719             .axisy    = "Efficiency",
     1720             .axisz    = "",
     1721             .stats    = true
     1722         });
     1723
     1724    WriteHistogram(connection, {
    16521725             .name     = "EfficiencyW",
    16531726             .title    = "Efficiency (Weighted)",
     1727             .dir      = "Eest/Efficiency",
    16541728             .binningx = binning_eest,
     1729             .binningy = {},
    16551730             .table    = "Spectrum",
    16561731             .x        = ".energy",
     1732             .y        = ".",
    16571733             .v        = "EfficiencyW",
    16581734             .err      = "ErrEfficiencyW",
    16591735             .axisx    = "Energy lg(E_{sim}/GeV)",
    1660              .axisy    = "Efficiency"
     1736             .axisy    = "Efficiency",
     1737             .axisz    = "",
     1738             .stats    = true
    16611739         });
    16621740
     
    16641742             .name     = "Spectrum",
    16651743             .title    = "Differential Energy Spectrum",
     1744             .dir      = "",
    16661745             .binningx = binning_eest,
     1746             .binningy = {},
    16671747             .table    = "Spectrum",
    16681748             .x        = ".energy",
     1749             .y        = "",
    16691750             .v        = "Flux",
    16701751             .err      = "ErrFlux",
    16711752             .axisx    = "Energy lg(E/GeV)",
    16721753             .axisy    = "dN/dE [cm^{-2} s^{-1} TeV^{-1}]",
     1754             .axisz    = "",
    16731755             .stats    = false
    16741756         });
     
    17971879             .dir      = "Esim/Simulation/Weighted",
    17981880             .binningx = binning_esim,
     1881             .binningy = {},
    17991882             .table    = "Threshold",
    18001883             .x        = ".energy",
     1884             .y        = "",
    18011885             .v        = "ThresholdW",
    18021886             .err      = "ErrThresholdW",
    18031887             .axisx    = "Energy lg(E_{sim}/GeV)",
    1804              .axisy    = "Weighted Counts"
     1888             .axisy    = "Weighted Counts",
     1889             .axisz    = "",
     1890             .stats    = true
    18051891         });
    18061892
     
    18101896             .dir      = "Esim/Simulation/Counts",
    18111897             .binningx = binning_esim,
     1898             .binningy = {},
    18121899             .table    = "Threshold",
    18131900             .x        = ".energy",
     1901             .y        = "",
    18141902             .v        = "ThresholdN",
    18151903             .err      = "ErrThresholdN",
    18161904             .axisx    = "Energy lg(E_{sim}/GeV)",
    1817              .axisy    = "Counts"
     1905             .axisy    = "Counts",
     1906             .axisz    = "",
     1907             .stats    = true
    18181908         });
    18191909
     
    18211911             .name     = "SimSpectrumW",
    18221912             .title    = "Weighted Simulated Excess Spectrum",
     1913             .dir      = "Esim/Simulation/Weighted",
    18231914             .binningx = binning_esim,
    1824              .dir      = "Esim/Simulation/Weighted",
     1915             .binningy = {},
    18251916             .table    = "Threshold",
    18261917             .x        = ".energy",
     1918             .y        = "",
    18271919             .v        = "Flux",
    18281920             .err      = "ErrFlux",
    18291921             .axisx    = "Energy lg(E_{sim}/GeV)",
    1830              .axisy    = "dN/dE [cm^{-2} s^{-1} TeV^{-1}]"
    1831          });
    1832 
    1833     WriteHistogram(connection, {
    1834              .dir      = "Esim",
     1922             .axisy    = "dN/dE [cm^{-2} s^{-1} TeV^{-1}]",
     1923             .axisz    = "",
     1924             .stats    = true
     1925         });
     1926
     1927    WriteHistogram(connection, {
    18351928             .name     = "Bias",
    18361929             .title    = "Energy Bias",
     1930             .dir      = "Esim",
    18371931             .binningx = binning_esim,
     1932             .binningy = {},
    18381933             .table    = "Threshold",
    18391934             .x        = ".energy",
     1935             .y        = "",
    18401936             .v        = "Bias",
    18411937             .err      = "Resolution",
    18421938             .axisx    = "Energy lg(E_{sim}/GeV)",
    18431939             .axisy    = "lg(E_{est}/E_{sim})",
     1940             .axisz    = "",
    18441941             .stats    = false
    18451942         });
    18461943
    18471944    WriteHistogram(connection, {
    1848              .dir      = "Esim",
    18491945             .name     = "Resolution",
    18501946             .title    = "Energy Resolution",
     1947             .dir      = "Esim",
    18511948             .binningx = binning_esim,
     1949             .binningy = {},
    18521950             .table    = "Threshold",
    18531951             .x        = ".energy",
     1952             .y        = "",
    18541953             .v        = "Resolution",
     1954             .err      = "",
    18551955             .axisx    = "Energy lg(E_{sim}/GeV)",
    18561956             .axisy    = "#sigma(lg(E_{est}/E_{sim}))",
     1957             .axisz    = "",
    18571958             .stats    = false
    18581959         });
     
    19122013             .name     = "MigrationN",
    19132014             .title    = "Energy Migration",
     2015             .dir      = "",
    19142016             .binningx = binning_esim,
    19152017             .binningy = binning_eest,
     
    19182020             .y        = ".energyest",
    19192021             .v        = "MigrationN",
     2022             .err      = "",
    19202023             .axisx    = "Energy lg(E_{sim}/GeV)",
    19212024             .axisy    = "Energy lg(E_{est}/GeV)",
     
    19272030             .name     = "MigrationW",
    19282031             .title    = "Energy Migration",
     2032             .dir      = "",
    19292033             .binningx = binning_esim,
    19302034             .binningy = binning_eest,
     
    19332037             .y        = ".energyest",
    19342038             .v        = "MigrationW",
     2039             .err      = "",
    19352040             .axisx    = "Energy lg(E_{sim}/GeV)",
    19362041             .axisy    = "Energy lg(E_{est}/GeV)",
Note: See TracChangeset for help on using the changeset viewer.