50 virtual void endJob()
override ;
52 std::ostringstream
oss;
155 outfilename(iConfig.getUntrackedParameter<std::
string>(
"outputFilename",
"out.root"))
194 for (
int i=0;
i<768;
i++)
196 for (
int j=0;
j<5;
j++)
206 histoName =
"distanceVsStripNumber" +
subDetName[
i];
207 histoTitle =
"Distance between hot strips vs. strip number";
210 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 999, 0.5, 999.5);
213 histoName =
"pfxDistanceVsStripNumber" +
subDetName[
i];
214 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
220 histoName =
"projXDistanceVsStripNumber" +
subDetName[
i];
221 histoTitle =
"Number of hot strips vs. strip number";
229 histoName =
"projYDistanceVsStripNumber" +
subDetName[
i];
230 histoTitle =
"Distribution of distance between hot strips";
239 histoName =
"occupancyVsStripNumber" +
subDetName[
i];
240 histoTitle =
"Occupancy of strips vs. strip number";
243 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8.,0.);
246 histoName =
"pfxOccupancyVsStripNumber" +
subDetName[
i];
247 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
253 histoName =
"projYOccupancyVsStripNumber" +
subDetName[
i];
254 histoTitle =
"Distribution of strip occupancy";
263 histoName =
"occupancyHotStripsVsStripNumber" +
subDetName[
i];
264 histoTitle =
"Occupancy of hot strips vs. strip number";
267 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
270 histoName =
"pfxOccupancyHotStripsVsStripNumber" +
subDetName[
i];
271 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
277 histoName =
"projYOccupancyHotStripsVsStripNumber" +
subDetName[
i];
278 histoTitle =
"Distribution of hot strip occupancy";
287 histoName =
"occupancyGoodStripsVsStripNumber" +
subDetName[
i];
288 histoTitle =
"Occupancy of good strips vs. strip number";
291 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -8., 0.);
294 histoName =
"pfxOccupancyGoodStripsVsStripNumber" +
subDetName[
i];
295 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
301 histoName =
"projYOccupancyGoodStripsVsStripNumber" +
subDetName[
i];
302 histoTitle =
"Distribution of good strip occupancy";
311 histoName =
"poissonProbVsStripNumber" +
subDetName[
i];
312 histoTitle =
"Poisson probability of strips vs. strip number";
315 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
318 histoName =
"pfxPoissonProbVsStripNumber" +
subDetName[
i];
319 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
325 histoName =
"projYPoissonProbVsStripNumber" +
subDetName[
i];
326 histoTitle =
"Distribution of strip Poisson probability";
335 histoName =
"poissonProbHotStripsVsStripNumber" +
subDetName[
i];
336 histoTitle =
"Poisson probability of hot strips vs. strip number";
339 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
342 histoName =
"pfxPoissonProbHotStripsVsStripNumber" +
subDetName[
i];
343 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
349 histoName =
"projYPoissonProbHotStripsVsStripNumber" +
subDetName[
i];
350 histoTitle =
"Distribution of hot strip Poisson probability";
359 histoName =
"poissonProbGoodStripsVsStripNumber" +
subDetName[
i];
360 histoTitle =
"Poisson probability of good strips vs. strip number";
363 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 1000, -18., 0.);
366 histoName =
"pfxPoissonProbGoodStripsVsStripNumber" +
subDetName[
i];
367 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
373 histoName =
"projYPoissonProbGoodStripsVsStripNumber" +
subDetName[
i];
374 histoTitle =
"Distribution of good strip Poisson probability";
384 histoTitle =
"NHits in strips vs. strip number";
387 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
390 histoName =
"pfxNHitsVsStripNumber" +
subDetName[
i];
391 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
395 histoName =
"projXNHitsVsStripNumber" +
subDetName[
i];
396 histoTitle =
"Cumulative nHits in strips vs. strip number";
402 histoName =
"projYNHitsVsStripNumber" +
subDetName[
i];
403 histoTitle =
"Distribution of nHits for all strips";
412 histoName =
"nHitsHotStripsVsStripNumber" +
subDetName[
i];
413 histoTitle =
"NHits in hot strips vs. strip number";
416 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
419 histoName =
"pfxNHitsHotStripsVsStripNumber" +
subDetName[
i];
420 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
424 histoName =
"projXNHitsHotStripsVsStripNumber" +
subDetName[
i];
425 histoTitle =
"Cumulative nHits in hot strips vs. strip number";
431 histoName =
"projYNHitsHotStripsVsStripNumber" +
subDetName[
i];
432 histoTitle =
"Distribution of nHits for hot strips";
441 histoName =
"nHitsGoodStripsVsStripNumber" +
subDetName[
i];
442 histoTitle =
"NHits in good strips vs. strip number";
445 tmp =
dqmStore_->
book2D(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5, 10000, -0.5, 9999.5);
448 histoName =
"pfxNHitsGoodStripsVsStripNumber" +
subDetName[
i];
449 tmp_prof =
new TProfile(histoName.c_str(), histoTitle.c_str(), 768, 0.5, 768.5);
453 histoName =
"projXNHitsGoodStripsVsStripNumber" +
subDetName[
i];
454 histoTitle =
"Cumulative nHits in good strips vs. strip number";
460 histoName =
"projYNHitsGoodStripsVsStripNumber" +
subDetName[
i];
461 histoTitle =
"Distribution of nHits for good strips";
479 intree->SetBranchAddress(
"DetRawId", &
DetRawId);
480 intree->SetBranchAddress(
"SubDetId", &
SubDetId);
481 intree->SetBranchAddress(
"Layer_Ring", &
Layer_Ring);
482 intree->SetBranchAddress(
"Disc", &
Disc);
483 intree->SetBranchAddress(
"IsBack", &
IsBack);
485 intree->SetBranchAddress(
"IsZMinusSide", &
IsZMinusSide);
487 intree->SetBranchAddress(
"IsStereo", &
IsStereo);
490 intree->SetBranchAddress(
"StripNumber", &
StripNumber);
491 intree->SetBranchAddress(
"APVChannel", &
APVChannel);
495 intree->SetBranchAddress(
"IsHot", &
IsHot);
499 intree->SetBranchAddress(
"StripHits", &
StripHits);
500 intree->SetBranchAddress(
"PoissonProb", &
PoissonProb);
502 for (
int i=0;
i<intree->GetEntries(); )
518 std::cout <<
"ERROR! DetRawId changed but I expected to be on the same module!\n";
569 else if(iVec==vHotStripsInModule.size()-1)
571 distance = vHotStripsInModule[vHotStripsInModule.size()-1] - vHotStripsInModule[vHotStripsInModule.size() -2];
573 else if(vHotStripsInModule.size()>2)
575 distanceR = vHotStripsInModule[iVec + 1] - vHotStripsInModule[iVec];
576 distanceL = vHotStripsInModule[iVec] - vHotStripsInModule[iVec - 1];
581 std::cout <<
"ERROR! distance is never computed!!!\n";
std::vector< TH2F * > occupancyVsStripNumber
unsigned int nReadStrips[768][5]
std::vector< TProfile * > pfxNHitsVsStripNumber
std::vector< TH1F * > projXNHitsGoodStripsVsStripNumber
std::vector< TH2F * > poissonProbGoodStripsVsStripNumber
std::vector< TH2F * > poissonProbVsStripNumber
std::vector< TH2F * > nHitsHotStripsVsStripNumber
virtual void endJob() override
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
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
virtual void beginJob() override
std::vector< TH2F * > occupancyHotStripsVsStripNumber
std::vector< TH1F * > projXDistanceVsStripNumber
std::vector< TH1F * > projYPoissonProbGoodStripsVsStripNumber
std::vector< TH1F * > projYOccupancyVsStripNumber
std::vector< TH1F * > projYNHitsGoodStripsVsStripNumber
void save(const std::string &filename, const std::string &path="", const std::string &pattern="", const std::string &rewrite="", const uint32_t run=0, SaveReferenceTag ref=SaveWithReference, int minStatus=dqm::qstatus::STATUS_OK, const std::string &fileupdate="RECREATE")
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
virtual void analyze(const edm::Event &, const edm::EventSetup &) override
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)