56 std::ostringstream
oss;
159 outfilename(iConfig.getUntrackedParameter<std::string>(
"outputFilename",
"out.root"))
198 for (
int i=0;
i<768;
i++)
200 for (
int j=0;
j<5;
j++)
206 std::string histoName;
207 std::string histoTitle;
210 histoName =
"distanceVsStripNumber" +
subDetName[
i];
211 histoTitle =
"Distance between hot strips vs. strip number";
214 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 999, 0.5, 999.5);
217 histoName =
"pfxDistanceVsStripNumber" +
subDetName[
i];
218 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
224 histoName =
"projXDistanceVsStripNumber" +
subDetName[
i];
225 histoTitle =
"Number of hot strips vs. strip number";
233 histoName =
"projYDistanceVsStripNumber" +
subDetName[
i];
234 histoTitle =
"Distribution of distance between hot strips";
243 histoName =
"occupancyVsStripNumber" +
subDetName[
i];
244 histoTitle =
"Occupancy of strips vs. strip number";
247 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8.,0.);
250 histoName =
"pfxOccupancyVsStripNumber" +
subDetName[
i];
251 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
257 histoName =
"projYOccupancyVsStripNumber" +
subDetName[
i];
258 histoTitle =
"Distribution of strip occupancy";
267 histoName =
"occupancyHotStripsVsStripNumber" +
subDetName[
i];
268 histoTitle =
"Occupancy of hot strips vs. strip number";
271 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
274 histoName =
"pfxOccupancyHotStripsVsStripNumber" +
subDetName[
i];
275 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
281 histoName =
"projYOccupancyHotStripsVsStripNumber" +
subDetName[
i];
282 histoTitle =
"Distribution of hot strip occupancy";
291 histoName =
"occupancyGoodStripsVsStripNumber" +
subDetName[
i];
292 histoTitle =
"Occupancy of good strips vs. strip number";
295 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
298 histoName =
"pfxOccupancyGoodStripsVsStripNumber" +
subDetName[
i];
299 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
305 histoName =
"projYOccupancyGoodStripsVsStripNumber" +
subDetName[
i];
306 histoTitle =
"Distribution of good strip occupancy";
315 histoName =
"poissonProbVsStripNumber" +
subDetName[
i];
316 histoTitle =
"Poisson probability of strips vs. strip number";
319 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
322 histoName =
"pfxPoissonProbVsStripNumber" +
subDetName[
i];
323 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
329 histoName =
"projYPoissonProbVsStripNumber" +
subDetName[
i];
330 histoTitle =
"Distribution of strip Poisson probability";
339 histoName =
"poissonProbHotStripsVsStripNumber" +
subDetName[
i];
340 histoTitle =
"Poisson probability of hot strips vs. strip number";
343 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
346 histoName =
"pfxPoissonProbHotStripsVsStripNumber" +
subDetName[
i];
347 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
353 histoName =
"projYPoissonProbHotStripsVsStripNumber" +
subDetName[
i];
354 histoTitle =
"Distribution of hot strip Poisson probability";
363 histoName =
"poissonProbGoodStripsVsStripNumber" +
subDetName[
i];
364 histoTitle =
"Poisson probability of good strips vs. strip number";
367 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
370 histoName =
"pfxPoissonProbGoodStripsVsStripNumber" +
subDetName[
i];
371 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
377 histoName =
"projYPoissonProbGoodStripsVsStripNumber" +
subDetName[
i];
378 histoTitle =
"Distribution of good strip Poisson probability";
388 histoTitle =
"NHits in strips vs. strip number";
391 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
394 histoName =
"pfxNHitsVsStripNumber" +
subDetName[
i];
395 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
399 histoName =
"projXNHitsVsStripNumber" +
subDetName[
i];
400 histoTitle =
"Cumulative nHits in strips vs. strip number";
406 histoName =
"projYNHitsVsStripNumber" +
subDetName[
i];
407 histoTitle =
"Distribution of nHits for all strips";
416 histoName =
"nHitsHotStripsVsStripNumber" +
subDetName[
i];
417 histoTitle =
"NHits in hot strips vs. strip number";
420 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
423 histoName =
"pfxNHitsHotStripsVsStripNumber" +
subDetName[
i];
424 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
428 histoName =
"projXNHitsHotStripsVsStripNumber" +
subDetName[
i];
429 histoTitle =
"Cumulative nHits in hot strips vs. strip number";
435 histoName =
"projYNHitsHotStripsVsStripNumber" +
subDetName[
i];
436 histoTitle =
"Distribution of nHits for hot strips";
445 histoName =
"nHitsGoodStripsVsStripNumber" +
subDetName[
i];
446 histoTitle =
"NHits in good strips vs. strip number";
449 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
452 histoName =
"pfxNHitsGoodStripsVsStripNumber" +
subDetName[
i];
453 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
457 histoName =
"projXNHitsGoodStripsVsStripNumber" +
subDetName[
i];
458 histoTitle =
"Cumulative nHits in good strips vs. strip number";
464 histoName =
"projYNHitsGoodStripsVsStripNumber" +
subDetName[
i];
465 histoTitle =
"Distribution of nHits for good strips";
483 intree->SetBranchAddress(
"DetRawId", &
DetRawId);
484 intree->SetBranchAddress(
"SubDetId", &
SubDetId);
485 intree->SetBranchAddress(
"Layer_Ring", &
Layer_Ring);
486 intree->SetBranchAddress(
"Disc", &
Disc);
487 intree->SetBranchAddress(
"IsBack", &
IsBack);
489 intree->SetBranchAddress(
"IsZMinusSide", &
IsZMinusSide);
491 intree->SetBranchAddress(
"IsStereo", &
IsStereo);
494 intree->SetBranchAddress(
"StripNumber", &
StripNumber);
495 intree->SetBranchAddress(
"APVChannel", &
APVChannel);
499 intree->SetBranchAddress(
"IsHot", &
IsHot);
503 intree->SetBranchAddress(
"StripHits", &
StripHits);
504 intree->SetBranchAddress(
"PoissonProb", &
PoissonProb);
506 for (
int i=0;
i<intree->GetEntries(); )
522 std::cout <<
"ERROR! DetRawId changed but I expected to be on the same module!\n";
573 else if(iVec==vHotStripsInModule.size()-1)
575 distance = vHotStripsInModule[vHotStripsInModule.size()-1] - vHotStripsInModule[vHotStripsInModule.size() -2];
577 else if(vHotStripsInModule.size()>2)
579 distanceR = vHotStripsInModule[iVec + 1] - vHotStripsInModule[iVec];
580 distanceL = vHotStripsInModule[iVec] - vHotStripsInModule[iVec - 1];
585 std::cout <<
"ERROR! distance is never computed!!!\n";
598 std::string histoName;
599 std::string histoTitle;
std::vector< TH2F * > occupancyVsStripNumber
unsigned int nReadStrips[768][5]
virtual void analyze(const edm::Event &, const edm::EventSetup &)
std::vector< TProfile * > pfxNHitsVsStripNumber
std::vector< TH1F * > projXNHitsGoodStripsVsStripNumber
std::vector< TH2F * > poissonProbGoodStripsVsStripNumber
std::vector< TH2F * > poissonProbVsStripNumber
std::vector< TH2F * > nHitsHotStripsVsStripNumber
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
std::vector< TH1F * > projYPoissonProbHotStripsVsStripNumber
void cd(void)
go to top directory (ie. root)
#define DEFINE_FWK_MODULE(type)
std::vector< TH2F * > distanceVsStripNumber
std::vector< TProfile * > pfxNHitsGoodStripsVsStripNumber
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
std::vector< TProfile * > pfxPoissonProbVsStripNumber
std::vector< TH2F * > nHitsVsStripNumber
std::vector< TProfile * > pfxPoissonProbGoodStripsVsStripNumber
std::vector< TH1F * > projYNHitsVsStripNumber
std::vector< TH2F * > nHitsGoodStripsVsStripNumber
std::vector< TH1F * > projXNHitsHotStripsVsStripNumber
std::vector< TH2F * > poissonProbHotStripsVsStripNumber
std::vector< TH1F * > projYNHitsHotStripsVsStripNumber
std::vector< TH2F * > occupancyHotStripsVsStripNumber
std::vector< TH1F * > projXDistanceVsStripNumber
std::vector< TH1F * > projYPoissonProbGoodStripsVsStripNumber
std::vector< TH1F * > projYOccupancyVsStripNumber
std::vector< TH1F * > projYNHitsGoodStripsVsStripNumber
std::vector< TH1F * > projYPoissonProbVsStripNumber
std::vector< TH1F * > projXNHitsVsStripNumber
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
std::vector< TProfile * > pfxNHitsHotStripsVsStripNumber
std::vector< std::string > subDetName
std::vector< TProfile * > pfxOccupancyHotStripsVsStripNumber
std::vector< TProfile * > pfxPoissonProbHotStripsVsStripNumber
std::vector< TProfile * > pfxDistanceVsStripNumber
std::vector< TProfile * > pfxOccupancyVsStripNumber
StripValidationPlots(const edm::ParameterSet &)
std::vector< TProfile * > pfxOccupancyGoodStripsVsStripNumber
TH1F * getTH1F(void) const
Float_t StripGlobalPositionX
TProfile * getTProfile(void) const
Float_t StripGlobalPositionY
Float_t StripGlobalPositionZ
std::vector< unsigned int > vHotStripsInModule
std::vector< TH1F * > projYDistanceVsStripNumber
TH2F * getTH2F(void) const
MonitorElement * book2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
Book 2D histogram.
std::vector< TH1F * > projYOccupancyGoodStripsVsStripNumber
std::vector< TH2F * > occupancyGoodStripsVsStripNumber
std::vector< TH1F * > projYOccupancyHotStripsVsStripNumber
void setCurrentFolder(const std::string &fullpath)