4 namespace fs = std::experimental::filesystem;
5 namespace pt = boost::property_tree;
9 for (
const auto &childTree :
json) {
22 if (structure ==
"TID" || structure ==
"TEC")
39 vector<TString> structures,
40 const map<TString, int>
nlayers,
48 map<pair<pair<TString, int>, TString>,
Geometry> mappoints;
58 int runN = IOVlist.at(
i);
63 for (TString &structure : structures) {
64 TString structname = structure;
65 structname.ReplaceAll(
"_y",
"");
66 size_t layersnumber =
nlayers.at(structname);
70 TH1F *
histo =
dynamic_cast<TH1F *
>(
f->Get(
name));
83 }
else if (structure !=
"TID" && structure !=
"TEC") {
84 TH1F *histoplus =
dynamic_cast<TH1F *
>(
f->Get((
name +
"_plus")));
85 TH1F *histominus =
dynamic_cast<TH1F *
>(
f->Get((
name +
"_minus")));
86 if (!histoplus || !histominus) {
104 TGraphErrors *
g =
nullptr;
105 for (TString &structure : structures) {
106 TString structname = structure;
107 structname.ReplaceAll(
"_y",
"");
108 size_t layersnumber =
nlayers.at(structname);
123 "mu",
"sigma",
"muplus",
"sigmaplus",
"muminus",
"sigmaminus",
"deltamu",
"sigmadeltamu"};
125 size_t n =
runs.size();
126 vector<float> emptyvec;
127 for (
size_t i = 0;
i <
runs.size();
i++)
128 emptyvec.push_back(0.);
129 for (
size_t iVar = 0; iVar <
variables.size(); iVar++) {
131 g =
new TGraphErrors(
n,
runs.data(), (
geom.*trend)().data(), emptyvec.data(), emptyvec.data());
139 vector<pair<TString, TString>> variablepairs{make_pair(
"mu",
"sigma"),
140 make_pair(
"muplus",
"sigmaplus"),
141 make_pair(
"muminus",
"sigmaminus"),
142 make_pair(
"deltamu",
"sigmadeltamu")};
143 for (
size_t iVar = 0; iVar < variablepairs.size(); iVar++) {
144 Trend meantrend = trendspair.at(iVar).first;
145 Trend sigmatrend = trendspair.at(iVar).second;
146 g =
new TGraphErrors(
147 n,
runs.data(), (
geom.*meantrend)().data(), emptyvec.data(), (
geom.*sigmatrend)().data());
149 TString graphname =
name +
"_" + variablepairs.at(iVar).first;
150 graphname += variablepairs.at(iVar).second;
std::vector< float > MuPlus() const
std::vector< float > DeltaMu() const
void compileDMRTrends(std::vector< int > IOVlist, TString Variable, std::vector< std::string > inputFiles, std::vector< TString > structures, const std::map< TString, int > nlayers, bool FORCE=false)
TString getName(TString structure, int layer, TString geometry)
std::vector< std::string > geometries
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e g
constexpr std::array< uint8_t, layerIndexSize > layer
std::vector< float > MuMinus() const
std::vector< float > Sigma() const
PrepareDMRTrends(const char *outputFileName, boost::property_tree::ptree &json)
std::vector< float > SigmaPlus() const
Class Geometry Contains vector for fit parameters (mean, sigma, etc.) obtained from multiple IOVs See...
int trends(int argc, char *argv[])
std::vector< float > SigmaDeltaMu() const
std::vector< float > Mu() const
Structure Point Contains parameters of Gaussian fits to DMRs.
const char * outputFileName_
std::vector< float > SigmaMinus() const
*vegas h *****************************************************used in the default bin number in original ***version of VEGAS is ***a higher bin number might help to derive a more precise ***grade subtle point