9#ifndef DQM_ALGORITHMS_TOOLS_ALGORITHMHELPER_H
10#define DQM_ALGORITHMS_TOOLS_ALGORITHMHELPER_H
12#include <dqm_core/Result.h>
13#include <dqm_core/AlgorithmConfig.h>
14#include <dqm_core/exceptions.h>
65 std::map<std::string, double >
GetFitParams(
const TF1 * func);
69 dqm_core::Result *
MakeComparisons(
const std::map<std::string,double> & algparams,
70 const std::map<std::string,double> & gthreshold,
71 const std::map<std::string,double> & rthreshold );
73 dqm_core::Result *
CompareWithErrors(
const std::map<std::string,double> & algparams,
74 const std::map<std::string,double> & paramErrors,
75 const std::map<std::string,double> & gthreshold,
76 const std::map<std::string,double> & rthreshold,
double minSig);
78 dqm_core::Result *
GetFitResult (
const TF1 * func,
const dqm_core::AlgorithmConfig & config,
double minSig = 0) ;
80 double GetFirstFromMap(
const std::string ¶mName,
const std::map<std::string, double > ¶ms);
83 double GetFirstFromMap(
const std::string ¶mName,
const std::map<std::string, double > ¶ms,
double defaultValue);
87 const std::string&
GetFirstFromMap(
const std::string ¶mName,
const std::map<std::string, std::string > ¶ms);
90 const std::string&
GetFirstFromMap(
const std::string ¶mName,
const std::map<std::string, std::string > ¶ms,
const std::string& defaultValue);
93 std::vector<int>
GetBinRange(
const TH1*
histogram,
const std::map<std::string, double > & params);
95 void PublishBin(
const TH1 *
histogram,
int xbin,
int ybin,
double content, dqm_core::Result *result);
104 const dqm_core::AlgorithmConfig & config);
109 const T &
GetFromMap(
const std::string & pname,
const std::map<std::string,T> & params )
111 typename std::map<std::string,T>::const_iterator it = params.find( pname );
112 if ( it != params.end() ){
115 throw dqm_core::BadConfig( ERS_HERE,
"None", pname );
132 void handleReference(
const TObject& inputReference ,
const TObject*& firstReference , TObject*& secondReference);
145 void findOutliers( std::vector<binContainer>& input,
double&
mean,
double& scale,
int& nIn,
int nIterations,
146 double exponent,
double threshold,
double SBCF = 1.,
double nStop = 8. );
149 double mindiff = 0,
int minNin = 4);
152 binCluster
buildCluster( binContainer& seed,
const std::vector<std::vector<binContainer*> >& binMap,
153 const std::vector<double>& xValues,
const std::vector<double>& yValues,
154 double threhold,
int topology =
CylinderX);
157 std::vector<std::vector<binContainer*> >
158 makeBinMap(std::vector<dqm_algorithms::tools::binContainer>&
bins,
int ixmax,
int iymax,
int topology =
CylinderX);
160 dqm_core::Result::Status
161 WorstCaseAddStatus(dqm_core::Result::Status baseStatus, dqm_core::Result::Status addedStatus,
float weight = 1.0);
163 dqm_core::Result::Status
164 BestCaseAddStatus(dqm_core::Result::Status baseStatus, dqm_core::Result::Status addedStatus,
float weight = 1.0);
166 std::pair<double,double>
CalcBinsProbChisq(
const std::vector<double>& inputval,
const std::vector<double>& inputerr,
167 double x0,
double x0_err);
168 std::pair<double,double>
CalcBinsProbChisq(
const std::vector<double>& inputval,
const std::vector<double>& inputerr,
169 const std::vector<double>& x0,
const std::vector<double>& x0_err);
171 void MergePastMinStat(std::vector<std::vector<tools::binContainer> >& strips,
int minStat);
173 void MakeBinTag(
const binContainer&
bin, std::string & tag );
static const std::vector< std::string > bins
size_t size() const
Number of registered mappings.
void mean(std::vector< double > &bins, std::vector< double > &values, const std::vector< std::string > &files, const std::string &histname, const std::string &tplotname, const std::string &label="")