18 #include "TMultiGraph.h" 29 <<
" Constructing object...";
48 <<
" Deleting object...";
55 Analyses::iterator ianal;
56 for (ianal =
data().begin(); ianal !=
data().end(); ianal++) {
64 HistosMap::const_iterator iter =
histos().begin();
67 for (; iter !=
histos().end(); iter++) {
68 if (iter->second.empty()) {
70 <<
" Zero collation histograms found!";
76 Histos::const_iterator ihis = iter->second.begin();
77 for (; ihis != iter->second.end(); ihis++) {
80 profs.push_back(prof);
85 bool isdeconv =
false;
96 for (
int iapv = 0; iapv < 2; iapv++) {
101 algo.fillTunedObservables(iapv);
106 algo.analysis(profs);
115 Analyses::iterator ianal =
data().begin();
116 Analyses::iterator janal =
data().end();
117 for (; ianal != janal; ++ianal) {
119 std::stringstream
ss;
120 ianal->second->print(
ss, 0);
121 ianal->second->print(
ss, 1);
122 if (ianal->second->isValid()) {
135 std::stringstream
ss;
138 if (
ss.str().find(
".root") == std::string::npos) {
146 if (std::getenv(scratch.c_str()) !=
nullptr) {
147 dir = std::getenv(scratch.c_str());
167 <<
" Saving histograms to root file" 168 <<
" (This may take some time!)";
172 <<
" Saved histograms to root file \"" <<
ss.str() <<
"\"!";
181 TMultiGraph* graph_isha =
new TMultiGraph(
"riseTime_vs_isha",
"");
182 TMultiGraph* graph_vfs =
new TMultiGraph(
"decayTime_vs_vfs",
"");
184 bool save_graph_isha =
false;
185 bool save_graph_vfs =
false;
188 Analyses::iterator ianal =
data().begin();
189 Analyses::iterator janal =
data().end();
190 for (; ianal != janal; ++ianal) {
208 for (
size_t igraph = 0; igraph <
anal->decayTimeVsVFS().size(); igraph++) {
209 graph_vfs->Add(
anal->decayTimeVsVFS()[igraph]);
210 anal->decayTimeVsVFS()[igraph]->Write();
211 save_graph_vfs =
true;
214 for (
size_t igraph = 0; igraph <
anal->riseTimeVsISHA().size(); igraph++) {
215 graph_isha->Add(
anal->riseTimeVsISHA()[igraph]);
216 anal->riseTimeVsISHA()[igraph]->Write();
217 save_graph_isha =
true;
220 for (
size_t igraph = 0; igraph <
anal->riseTimeVsISHAVsVFS().size(); igraph++)
221 anal->riseTimeVsISHAVsVFS()[igraph]->Write();
223 for (
size_t igraph = 0; igraph <
anal->decayTimeVsISHAVsVFS().size(); igraph++)
224 anal->decayTimeVsISHAVsVFS()[igraph]->Write();
231 outputFile->cd(
"DQMData/Collate/SiStrip/ControlView");
234 graph_isha->Write(
"riseTime_vs_isha");
236 graph_vfs->Write(
"decayTime_vs_vfs");
void save(std::string &filename, uint32_t run_number=0, std::string partitionName="")
~CalibrationHistograms() override
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
const HistosMap & histos() const
Analyses & data(bool getMaskedData=false)
const uint16_t & ccuAddr() const
Algorithm for calibration runs.
static const char dqmClientFileName_[]
const uint16_t & ccuChan() const
static const char mlDqmClient_[]
bool existsAs(std::string const ¶meterName, bool trackiness=true) const
checks if a parameter exists as a given type
Utility class that identifies a position within the strip tracker control structure, down to the level of an APV25.
Analysis for calibration runs.
CalibrationHistograms(const edm::ParameterSet &pset, DQMStore *, const sistrip::RunType &task=sistrip::CALIBRATION)
Analysis for calibration scans.
virtual std::vector< dqm::harvesting::MonitorElement * > getAllContents(std::string const &path) const
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< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
void printAnalyses() override
Algorithm for calibration runs.
int extract(std::vector< int > *output, const std::string &dati)
std::unique_ptr< Factory > factory_
const uint16_t & fecSlot() const
DQM_DEPRECATED void save(std::string const &filename, std::string const &path="")
void histoAnalysis(bool debug) override
const edm::ParameterSet & pset() const
DQMStore *const bei() const
const sistrip::RunType & task() const
Log< level::Warning, false > LogWarning
const uint16_t & fecRing() const
static const char collate_[]
const uint16_t & fecCrate() const