CMS 3D CMS Logo

List of all members | Classes | Public Types | Public Member Functions | Private Member Functions | Private Attributes
TrackerOfflineValidationSummary Class Reference

#include <Alignment/TrackerOfflineValidationSummary/src/TrackerOfflineValidationSummary.cc>

Inheritance diagram for TrackerOfflineValidationSummary:
edm::one::EDAnalyzer<> edm::one::EDAnalyzerBase edm::EDConsumerBase

Classes

struct  HarvestingHierarchy
 
struct  HarvestingHistos
 Put here the histograms created during harvesting. More...
 
struct  ModuleHistos
 

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
- Public Types inherited from edm::one::EDAnalyzerBase
typedef EDAnalyzerBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 TrackerOfflineValidationSummary (const edm::ParameterSet &)
 
 ~TrackerOfflineValidationSummary () override
 
- Public Member Functions inherited from edm::one::EDAnalyzer<>
 EDAnalyzer ()=default
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void analyze (const edm::Event &evt, const edm::EventSetup &) override
 
void applyHarvestingHierarchy (TTree &treeMem)
 
const std::string associateModuleHistsWithTree (const TkOffTreeVariables &treeMem, TrackerOfflineValidationSummary::ModuleHistos &moduleHists, std::map< std::string, std::string > &substructureName)
 
void bookHarvestingHists ()
 
void collateHarvestingHists (TTree &tree)
 
void endJob () override
 
void fillHarvestingHists (TTree &tree)
 
void fillTree (TTree &tree, std::map< int, TrackerOfflineValidationSummary::ModuleHistos > &moduleHist, TkOffTreeVariables &treeMem, const TrackerGeometry &tkgeom, std::map< std::string, std::string > &substructureName, const TrackerTopology *tTopo)
 
std::pair< float, float > fitResiduals (TH1 *hist) const
 
void getBinning (const std::string &binningPSetName, int &nBinsX, double &lowerBoundX, double &upperBoundX) const
 
float getMedian (const TH1 *hist) const
 

Private Attributes

DQMStoredbe_
 
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordgeomToken_
 
const edm::EventSetuplastSetup_
 
const std::string moduleDirectory_
 
bool moduleMapsInitialized
 
std::map< int, TrackerOfflineValidationSummary::ModuleHistosmPxbResiduals_
 
std::map< int, TrackerOfflineValidationSummary::ModuleHistosmPxeResiduals_
 
std::map< int, TrackerOfflineValidationSummary::ModuleHistosmTecResiduals_
 
std::map< int, TrackerOfflineValidationSummary::ModuleHistosmTibResiduals_
 
std::map< int, TrackerOfflineValidationSummary::ModuleHistosmTidResiduals_
 
std::map< int, TrackerOfflineValidationSummary::ModuleHistosmTobResiduals_
 
const edm::ParameterSet parSet_
 
edm::ESHandle< TrackerGeometrytkGeom_
 
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtopoToken_
 
const bool useFit_
 
std::vector< HarvestingHierarchyvHarvestingHierarchy_
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::one::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 58 of file TrackerOfflineValidationSummary.cc.

Member Typedef Documentation

◆ DQMStore

Definition at line 60 of file TrackerOfflineValidationSummary.cc.

Constructor & Destructor Documentation

◆ TrackerOfflineValidationSummary()

TrackerOfflineValidationSummary::TrackerOfflineValidationSummary ( const edm::ParameterSet iConfig)
explicit

Definition at line 158 of file TrackerOfflineValidationSummary.cc.

159  : //geomToken_(esConsumes<edm::Transition::endJob>()), # this does not work
161  parSet_(iConfig),
162  moduleDirectory_(parSet_.getParameter<std::string>("moduleDirectoryInOutput")),
163  useFit_(parSet_.getParameter<bool>("useFit")),
164  dbe_(nullptr),
165  moduleMapsInitialized(false),
166  lastSetup_(nullptr) {
167  //now do what ever initialization is needed
168  dbe_ = edm::Service<DQMStore>().operator->();
169 }

References dbe_.

◆ ~TrackerOfflineValidationSummary()

TrackerOfflineValidationSummary::~TrackerOfflineValidationSummary ( )
override

Definition at line 171 of file TrackerOfflineValidationSummary.cc.

171  {
172  // do anything here that needs to be done at desctruction time
173  // (e.g. close files, deallocate resources etc.)
174 }

Member Function Documentation

◆ analyze()

void TrackerOfflineValidationSummary::analyze ( const edm::Event evt,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Implements edm::one::EDAnalyzerBase.

Definition at line 181 of file TrackerOfflineValidationSummary.cc.

181  {
182  lastSetup_ = &iSetup;
183 
184  // Access of EventSetup is needed to get the list of silicon-modules and their IDs
185  // Since they do not change, it is accessed only once
187  return;
188  tkGeom_ = iSetup.getHandle(geomToken_);
189  const TrackerGeometry* bareTkGeomPtr = &(*tkGeom_);
190 
191  const TrackingGeometry::DetIdContainer& detIdContainer = bareTkGeomPtr->detIds();
192  std::vector<DetId>::const_iterator iDet;
193  for (iDet = detIdContainer.begin(); iDet != detIdContainer.end(); ++iDet) {
194  const DetId& detId = *iDet;
195  const uint32_t rawId = detId.rawId();
196  const unsigned int subdetId = detId.subdetId();
197  if (subdetId == PixelSubdetector::PixelBarrel)
198  mPxbResiduals_[rawId];
199  else if (subdetId == PixelSubdetector::PixelEndcap)
200  mPxeResiduals_[rawId];
201  else if (subdetId == StripSubdetector::TIB)
202  mTibResiduals_[rawId];
203  else if (subdetId == StripSubdetector::TID)
204  mTidResiduals_[rawId];
205  else if (subdetId == StripSubdetector::TOB)
206  mTobResiduals_[rawId];
207  else if (subdetId == StripSubdetector::TEC)
208  mTecResiduals_[rawId];
209  else {
210  throw cms::Exception("Geometry Error")
211  << "[TrackerOfflineValidationSummary] Error, tried to get reference for non-tracker subdet " << subdetId
212  << " from detector " << detId.det();
213  }
214  }
215  moduleMapsInitialized = true;
216 }

References DetId::det(), TrackerGeometry::detIds(), Exception, geomToken_, edm::EventSetup::getHandle(), lastSetup_, moduleMapsInitialized, mPxbResiduals_, mPxeResiduals_, mTecResiduals_, mTibResiduals_, mTidResiduals_, mTobResiduals_, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, tkGeom_, and StripSubdetector::TOB.

◆ applyHarvestingHierarchy()

void TrackerOfflineValidationSummary::applyHarvestingHierarchy ( TTree &  treeMem)
private

Definition at line 739 of file TrackerOfflineValidationSummary.cc.

739  {
740  TkOffTreeVariables* treeMemPtr = nullptr;
741  std::map<std::string, std::string>* substructureName = nullptr;
742  tree.SetBranchAddress("TkOffTreeVariables", &treeMemPtr);
743  tree.SetBranchAddress("SubstructureName", &substructureName);
744 
745  // Loop over modules to select accumulation criteria for harvesting plots
746  for (unsigned int iSubdet = 1; iSubdet < 7; ++iSubdet) {
747  std::string hierarchyName("");
748  std::string componentName("");
749  std::vector<unsigned int> treeEntries;
750  for (unsigned int iSide = 1; iSide < 3; ++iSide) {
751  // Set up only one collection for Barrels, not separated for side
752  if (iSide == 1 && (iSubdet == PixelSubdetector::PixelBarrel || iSubdet == StripSubdetector::TIB ||
753  iSubdet == StripSubdetector::TOB))
754  continue;
755  for (int iTree = 0; iTree < tree.GetEntries(); ++iTree) {
756  tree.GetEntry(iTree);
757  // Do not use glued Dets
758  if (treeMemPtr->isDoubleSide)
759  continue;
760  if (treeMemPtr->subDetId == iSubdet) {
761  if (iSide != treeMemPtr->side && (iSubdet == PixelSubdetector::PixelEndcap ||
762  iSubdet == StripSubdetector::TID || iSubdet == StripSubdetector::TEC))
763  continue;
764  treeEntries.push_back(iTree);
765  if (hierarchyName.length() == 0) {
766  hierarchyName = (*substructureName)["subdet"];
767  componentName = (*substructureName)["component"];
768  }
769  }
770  }
771  HarvestingHierarchy harvestingHierarchy(hierarchyName, componentName, treeEntries);
772  vHarvestingHierarchy_.push_back(harvestingHierarchy);
773  hierarchyName = "";
774  componentName = "";
775  treeEntries.clear();
776  }
777  }
778  // Here could be a further separation of the HarvestingHierarchy.
779  // E.g. separate the existing ones by layer and add them to the vector without deleting any element from the vector.
780  // The existing hists will stay and the new ones are added
781 
782  // Now, book the corresponding histos
783  this->bookHarvestingHists();
784 }

References bookHarvestingHists(), TkOffTreeVariables::isDoubleSide, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TkOffTreeVariables::side, AlCaHLTBitMon_QueryRunRegistry::string, TkOffTreeVariables::subDetId, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and vHarvestingHierarchy_.

Referenced by collateHarvestingHists().

◆ associateModuleHistsWithTree()

const std::string TrackerOfflineValidationSummary::associateModuleHistsWithTree ( const TkOffTreeVariables treeMem,
TrackerOfflineValidationSummary::ModuleHistos moduleHists,
std::map< std::string, std::string > &  substructureName 
)
private

Definition at line 493 of file TrackerOfflineValidationSummary.cc.

496  {
497  std::stringstream histDir, sSubdetName;
498  std::string componentName;
499  if (moduleDirectory_.length() != 0)
500  histDir << moduleDirectory_ << "/";
501  std::string wheelOrLayer("_layer_");
502  if (treeMem.subDetId == PixelSubdetector::PixelBarrel) {
503  unsigned int half(treeMem.half), layer(treeMem.layer), ladder(0);
504  if (layer == 1) {
505  if (half == 2)
506  ladder = treeMem.rod - 5;
507  else if (treeMem.rod > 15)
508  ladder = treeMem.rod - 10;
509  else
510  ladder = treeMem.rod;
511  } else if (layer == 2) {
512  if (half == 2)
513  ladder = treeMem.rod - 8;
514  else if (treeMem.rod > 24)
515  ladder = treeMem.rod - 16;
516  else
517  ladder = treeMem.rod;
518  } else if (layer == 3) {
519  if (half == 2)
520  ladder = treeMem.rod - 11;
521  else if (treeMem.rod > 33)
522  ladder = treeMem.rod - 22;
523  else
524  ladder = treeMem.rod;
525  }
526  componentName = "Pixel";
527  sSubdetName << "TPBBarrel_1";
528  histDir << componentName << "/" << sSubdetName.str() << "/TPBHalfBarrel_" << treeMem.half << "/TPBLayer_"
529  << treeMem.layer << "/TPBLadder_" << ladder;
530  } else if (treeMem.subDetId == PixelSubdetector::PixelEndcap) {
531  unsigned int side(treeMem.side), half(treeMem.half), blade(0);
532  if (side == 1)
533  side = 3;
534  if (half == 2)
535  blade = treeMem.blade - 6;
536  else if (treeMem.blade > 18)
537  blade = treeMem.blade - 12;
538  else
539  blade = treeMem.blade;
540  componentName = "Pixel";
541  sSubdetName << "TPEEndcap_" << side;
542  histDir << componentName << "/" << sSubdetName.str() << "/TPEHalfCylinder_" << treeMem.half << "/TPEHalfDisk_"
543  << treeMem.layer << "/TPEBlade_" << blade << "/TPEPanel_" << treeMem.panel;
544  wheelOrLayer = "_wheel_";
545  } else if (treeMem.subDetId == StripSubdetector::TIB) {
546  unsigned int half(treeMem.half), layer(treeMem.layer), surface(treeMem.outerInner), string(0);
547  if (half == 2) {
548  if (layer == 1) {
549  if (surface == 1)
550  string = treeMem.rod - 13;
551  else if (surface == 2)
552  string = treeMem.rod - 15;
553  }
554  if (layer == 2) {
555  if (surface == 1)
556  string = treeMem.rod - 17;
557  else if (surface == 2)
558  string = treeMem.rod - 19;
559  }
560  if (layer == 3) {
561  if (surface == 1)
562  string = treeMem.rod - 22;
563  else if (surface == 2)
564  string = treeMem.rod - 23;
565  }
566  if (layer == 4) {
567  if (surface == 1)
568  string = treeMem.rod - 26;
569  else if (surface == 2)
570  string = treeMem.rod - 28;
571  }
572  } else
573  string = treeMem.rod;
574  std::stringstream detString;
575  if (treeMem.layer < 3 && !treeMem.isDoubleSide)
576  detString << "/Det_" << treeMem.module;
577  else
578  detString << "";
579  componentName = "Strip";
580  sSubdetName << "TIBBarrel_1";
581  histDir << componentName << "/" << sSubdetName.str() << "/TIBHalfBarrel_" << treeMem.side << "/TIBLayer_"
582  << treeMem.layer << "/TIBHalfShell_" << treeMem.half << "/TIBSurface_" << treeMem.outerInner
583  << "/TIBString_" << string << detString.str();
584  } else if (treeMem.subDetId == StripSubdetector::TID) {
585  unsigned int side(treeMem.side), outerInner(0);
586  if (side == 1)
587  side = 3;
588  if (treeMem.outerInner == 1)
589  outerInner = 2;
590  else if (treeMem.outerInner == 2)
591  outerInner = 1;
592  std::stringstream detString;
593  if (treeMem.ring < 3 && !treeMem.isDoubleSide)
594  detString << "/Det_" << treeMem.module;
595  else
596  detString << "";
597  componentName = "Strip";
598  sSubdetName << "TIDEndcap_" << side;
599  histDir << componentName << "/" << sSubdetName.str() << "/TIDDisk_" << treeMem.layer << "/TIDRing_" << treeMem.ring
600  << "/TIDSide_" << outerInner << detString.str();
601  wheelOrLayer = "_wheel_";
602  } else if (treeMem.subDetId == StripSubdetector::TOB) {
603  std::stringstream detString;
604  if (treeMem.layer < 3 && !treeMem.isDoubleSide)
605  detString << "/Det_" << treeMem.module;
606  else
607  detString << "";
608  componentName = "Strip";
609  sSubdetName << "TOBBarrel_4";
610  histDir << componentName << "/" << sSubdetName.str() << "/TOBHalfBarrel_" << treeMem.side << "/TOBLayer_"
611  << treeMem.layer << "/TOBRod_" << treeMem.rod << detString.str();
612  } else if (treeMem.subDetId == StripSubdetector::TEC) {
613  unsigned int side(0), outerInner(0), ring(0);
614  if (treeMem.side == 1)
615  side = 6;
616  else if (treeMem.side == 2)
617  side = 5;
618  if (treeMem.outerInner == 1)
619  outerInner = 2;
620  else if (treeMem.outerInner == 2)
621  outerInner = 1;
622  if (treeMem.layer > 3 && treeMem.layer < 7)
623  ring = treeMem.ring - 1;
624  else if (treeMem.layer == 7 || treeMem.layer == 8)
625  ring = treeMem.ring - 2;
626  else if (treeMem.layer == 9)
627  ring = treeMem.ring - 3;
628  else
629  ring = treeMem.ring;
630  std::stringstream detString;
631  if ((treeMem.ring < 3 || treeMem.ring == 5) && !treeMem.isDoubleSide)
632  detString << "/Det_" << treeMem.module;
633  else
634  detString << "";
635  componentName = "Strip";
636  sSubdetName << "TECEndcap_" << side;
637  histDir << componentName << "/" << sSubdetName.str() << "/TECDisk_" << treeMem.layer << "/TECSide_" << outerInner
638  << "/TECPetal_" << treeMem.petal << "/TECRing_" << ring << detString.str();
639  wheelOrLayer = "_wheel_";
640  }
641 
642  substructureName["component"] = componentName;
643  substructureName["subdet"] = sSubdetName.str();
644 
645  std::stringstream histName;
646  histName << "residuals_subdet_" << treeMem.subDetId << wheelOrLayer << treeMem.layer << "_module_"
647  << treeMem.moduleId;
648 
650  fullPath = histDir.str() + "/h_xprime_" + histName.str();
651  if (dbe_->get(fullPath))
652  moduleHists.ResXprimeHisto = dbe_->get(fullPath)->getTH1();
653  else {
654  edm::LogError("TrackerOfflineValidationSummary")
655  << "Problem with names in input file produced in TrackerOfflineValidation ...\n"
656  << "This histogram should exist in every configuration, "
657  << "but no histogram with name " << fullPath << " is found!";
658  return "";
659  }
660  fullPath = histDir.str() + "/h_normxprime" + histName.str();
661  if (dbe_->get(fullPath))
662  moduleHists.NormResXprimeHisto = dbe_->get(fullPath)->getTH1();
663  fullPath = histDir.str() + "/h_yprime_" + histName.str();
664  if (dbe_->get(fullPath))
665  moduleHists.ResYprimeHisto = dbe_->get(fullPath)->getTH1();
666  fullPath = histDir.str() + "/h_normyprime" + histName.str();
667  if (dbe_->get(fullPath))
668  moduleHists.NormResYprimeHisto = dbe_->get(fullPath)->getTH1();
669  fullPath = histDir.str() + "/h_" + histName.str();
670  if (dbe_->get(fullPath))
671  moduleHists.ResHisto = dbe_->get(fullPath)->getTH1();
672  fullPath = histDir.str() + "/h_norm" + histName.str();
673  if (dbe_->get(fullPath))
674  moduleHists.NormResHisto = dbe_->get(fullPath)->getTH1();
675 
676  return histDir.str();
677 }

References TkOffTreeVariables::blade, dbe_, contentValuesFiles::fullPath, dqm::implementation::IGetter::get(), dqm::legacy::MonitorElement::getTH1(), TkOffTreeVariables::half, L1TStage2EMTFEventInfoClient_cfi::histDir, TkOffTreeVariables::isDoubleSide, PVValHelper::ladder, TkOffTreeVariables::layer, TkOffTreeVariables::module, moduleDirectory_, TkOffTreeVariables::moduleId, TrackerOfflineValidationSummary::ModuleHistos::NormResHisto, TrackerOfflineValidationSummary::ModuleHistos::NormResXprimeHisto, TrackerOfflineValidationSummary::ModuleHistos::NormResYprimeHisto, TkOffTreeVariables::outerInner, TkOffTreeVariables::panel, TkOffTreeVariables::petal, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TrackerOfflineValidationSummary::ModuleHistos::ResHisto, TrackerOfflineValidationSummary::ModuleHistos::ResXprimeHisto, TrackerOfflineValidationSummary::ModuleHistos::ResYprimeHisto, TkOffTreeVariables::ring, relativeConstraints::ring, TkOffTreeVariables::rod, TkOffTreeVariables::side, AlCaHLTBitMon_QueryRunRegistry::string, TkOffTreeVariables::subDetId, StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, and StripSubdetector::TOB.

Referenced by fillTree().

◆ bookHarvestingHists()

void TrackerOfflineValidationSummary::bookHarvestingHists ( )
private

Definition at line 786 of file TrackerOfflineValidationSummary.cc.

786  {
787  edm::LogInfo("TrackerOfflineValidationSummary") << "Harvesting histograms will be booked for "
788  << vHarvestingHierarchy_.size() << " different hierarchy selections";
789  for (std::vector<HarvestingHierarchy>::iterator iHier = vHarvestingHierarchy_.begin();
790  iHier != vHarvestingHierarchy_.end();
791  ++iHier) {
792  std::stringstream dmrXprimeHistoName, dmrYprimeHistoName, dmrXprimeHistoTitle, dmrYprimeHistoTitle;
793  dmrXprimeHistoName << "h_DmrXprime_" << iHier->hierarchyName;
794  dmrYprimeHistoName << "h_DmrYprime_" << iHier->hierarchyName;
795  dmrXprimeHistoTitle << "DMR for " << iHier->hierarchyName << ";<#DeltaX> [cm];# modules";
796  dmrYprimeHistoTitle << "DMR for " << iHier->hierarchyName << ";<#DeltaY> [cm];# modules";
797 
798  std::string directoryString(moduleDirectory_);
799  if (directoryString.length() != 0)
800  directoryString += "/";
801  directoryString += iHier->componentName;
802  dbe_->setCurrentFolder(directoryString);
803 
804  int nBinsX(0);
805  double xMin(0.), xMax(0.);
806  if (iHier->componentName == "Pixel") {
807  this->getBinning("TH1DmrXprimePixelModules", nBinsX, xMin, xMax);
808  iHier->harvestingHistos.DmrXprime =
809  dbe_->book1D(dmrXprimeHistoName.str(), dmrXprimeHistoTitle.str(), nBinsX, xMin, xMax)->getTH1();
810  this->getBinning("TH1DmrYprimePixelModules", nBinsX, xMin, xMax);
811  iHier->harvestingHistos.DmrYprime =
812  dbe_->book1D(dmrYprimeHistoName.str(), dmrYprimeHistoTitle.str(), nBinsX, xMin, xMax)->getTH1();
813  } else if (iHier->componentName == "Strip") {
814  this->getBinning("TH1DmrXprimeStripModules", nBinsX, xMin, xMax);
815  iHier->harvestingHistos.DmrXprime =
816  dbe_->book1D(dmrXprimeHistoName.str(), dmrXprimeHistoTitle.str(), nBinsX, xMin, xMax)->getTH1();
817  if (!parSet_.getParameter<bool>("stripYDmrs"))
818  continue;
819  this->getBinning("TH1DmrYprimeStripModules", nBinsX, xMin, xMax);
820  iHier->harvestingHistos.DmrYprime =
821  dbe_->book1D(dmrYprimeHistoName.str(), dmrYprimeHistoTitle.str(), nBinsX, xMin, xMax)->getTH1();
822  }
823  }
824 }

References dqm::implementation::IBooker::book1D(), dbe_, getBinning(), edm::ParameterSet::getParameter(), moduleDirectory_, parSet_, dqm::implementation::DQMStore::setCurrentFolder(), AlCaHLTBitMon_QueryRunRegistry::string, vHarvestingHierarchy_, multiplicitycorr_cfi::xMax, and photonAnalyzer_cfi::xMin.

Referenced by applyHarvestingHierarchy().

◆ collateHarvestingHists()

void TrackerOfflineValidationSummary::collateHarvestingHists ( TTree &  tree)
private

Definition at line 734 of file TrackerOfflineValidationSummary.cc.

734  {
736  this->fillHarvestingHists(tree);
737 }

References applyHarvestingHierarchy(), and fillHarvestingHists().

Referenced by endJob().

◆ endJob()

void TrackerOfflineValidationSummary::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::one::EDAnalyzerBase.

Definition at line 219 of file TrackerOfflineValidationSummary.cc.

219  {
220  //Retrieve tracker topology from geometry
221  edm::ESHandle<TrackerTopology> tTopoHandle;
222  lastSetup_->get<TrackerTopologyRcd>().get(tTopoHandle);
223  const TrackerTopology* const tTopo = tTopoHandle.product();
224 
225  // do not know how to set the transition
226  //edm::ESHandle<TrackerTopology> tTopoHandle = lastSetup_->getHandle(topoToken_);
227  //const TrackerTopology *const tTopo = tTopoHandle.product();
228 
229  AlignableTracker aliTracker(&(*tkGeom_), tTopo);
230 
231  TTree* tree = new TTree("TkOffVal", "TkOffVal");
232 
233  TkOffTreeVariables* treeMemPtr = new TkOffTreeVariables;
234  // We create branches for all members of 'TkOffTreeVariables' (even if not needed).
235  // This works because we have a dictionary for 'TkOffTreeVariables'
236  // (see src/classes_def.xml and src/classes.h):
237  tree->Branch("TkOffTreeVariables", &treeMemPtr); // address of pointer!
238  // second branch needed for assigning names and titles to harvesting histograms consistent to others
239  std::map<std::string, std::string>* substructureName = new std::map<std::string, std::string>;
240  tree->Branch("SubstructureName", &substructureName, 32000, 00); // SplitLevel must be set to zero
241 
242  this->fillTree(*tree, mPxbResiduals_, *treeMemPtr, *tkGeom_, *substructureName, tTopo);
243  this->fillTree(*tree, mPxeResiduals_, *treeMemPtr, *tkGeom_, *substructureName, tTopo);
244  this->fillTree(*tree, mTibResiduals_, *treeMemPtr, *tkGeom_, *substructureName, tTopo);
245  this->fillTree(*tree, mTidResiduals_, *treeMemPtr, *tkGeom_, *substructureName, tTopo);
246  this->fillTree(*tree, mTobResiduals_, *treeMemPtr, *tkGeom_, *substructureName, tTopo);
247  this->fillTree(*tree, mTecResiduals_, *treeMemPtr, *tkGeom_, *substructureName, tTopo);
248 
249  //dbe_->save("dqmOut.root");
250 
251  // Method for filling histograms which show summarized values (mean, rms, median ...)
252  // of the module-based histograms from TrackerOfflineValidation
253  this->collateHarvestingHists(*tree);
254 
255  delete tree;
256  tree = nullptr;
257  delete treeMemPtr;
258  treeMemPtr = nullptr;
259  delete substructureName;
260  substructureName = nullptr;
261 }

References collateHarvestingHists(), fillTree(), edm::EventSetup::get(), get, lastSetup_, mPxbResiduals_, mPxeResiduals_, mTecResiduals_, mTibResiduals_, mTidResiduals_, mTobResiduals_, edm::ESHandle< T >::product(), tkGeom_, and MainPageGenerator::tree.

Referenced by o2olib.O2ORunMgr::executeJob().

◆ fillHarvestingHists()

void TrackerOfflineValidationSummary::fillHarvestingHists ( TTree &  tree)
private

Definition at line 836 of file TrackerOfflineValidationSummary.cc.

836  {
837  TkOffTreeVariables* treeMemPtr = nullptr;
838  std::map<std::string, std::string>* substructureName = nullptr;
839  tree.SetBranchAddress("TkOffTreeVariables", &treeMemPtr);
840  tree.SetBranchAddress("SubstructureName", &substructureName);
841 
842  const unsigned int minEntriesPerModule(parSet_.getParameter<unsigned int>("minEntriesPerModuleForDmr"));
843  edm::LogInfo("TrackerOfflineValidationSummary")
844  << "Median of a module is added to DMR plots if it contains at least " << minEntriesPerModule << " hits";
845 
846  for (std::vector<HarvestingHierarchy>::iterator iHier = vHarvestingHierarchy_.begin();
847  iHier != vHarvestingHierarchy_.end();
848  ++iHier) {
849  for (std::vector<unsigned int>::const_iterator iTreeEntries = iHier->treeEntries.begin();
850  iTreeEntries != iHier->treeEntries.end();
851  ++iTreeEntries) {
852  tree.GetEntry(*iTreeEntries);
853  if (treeMemPtr->entries < minEntriesPerModule)
854  continue;
855  iHier->harvestingHistos.DmrXprime->Fill(treeMemPtr->medianX);
856  if (iHier->harvestingHistos.DmrYprime)
857  iHier->harvestingHistos.DmrYprime->Fill(treeMemPtr->medianY);
858  }
859  }
860 }

References TkOffTreeVariables::entries, edm::ParameterSet::getParameter(), TkOffTreeVariables::medianX, TkOffTreeVariables::medianY, parSet_, and vHarvestingHierarchy_.

Referenced by collateHarvestingHists().

◆ fillTree()

void TrackerOfflineValidationSummary::fillTree ( TTree &  tree,
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > &  moduleHist,
TkOffTreeVariables treeMem,
const TrackerGeometry tkgeom,
std::map< std::string, std::string > &  substructureName,
const TrackerTopology tTopo 
)
private

Definition at line 263 of file TrackerOfflineValidationSummary.cc.

268  {
269  for (std::map<int, TrackerOfflineValidationSummary::ModuleHistos>::iterator it = moduleHist.begin(),
270  itEnd = moduleHist.end();
271  it != itEnd;
272  ++it) {
273  treeMem.clear(); // make empty/default
274 
275  //variables concerning the tracker components/hierarchy levels
276  const DetId detId = it->first;
277  treeMem.moduleId = detId;
278  treeMem.subDetId = detId.subdetId();
279 
280  if (treeMem.subDetId == PixelSubdetector::PixelBarrel) {
281  unsigned int whichHalfBarrel(1), rawId(detId.rawId()); //DetId does not know about halfBarrels is PXB ...
282  if ((rawId >= 302056964 && rawId < 302059300) || (rawId >= 302123268 && rawId < 302127140) ||
283  (rawId >= 302189572 && rawId < 302194980))
284  whichHalfBarrel = 2;
285  treeMem.layer = tTopo->pxbLayer(detId);
286  treeMem.half = whichHalfBarrel;
287  treeMem.rod = tTopo->pxbLadder(
288  detId); // ... so, ladder is not per halfBarrel-Layer, but per barrel-layer! Needs complicated calculation in associateModuleHistsWithTree()
289  treeMem.module = tTopo->pxbModule(detId);
290  } else if (treeMem.subDetId == PixelSubdetector::PixelEndcap) {
291  unsigned int whichHalfCylinder(1), rawId(detId.rawId()); //DetId does not kmow about halfCylinders in PXF
292  if ((rawId >= 352394500 && rawId < 352406032) || (rawId >= 352460036 && rawId < 352471568) ||
293  (rawId >= 344005892 && rawId < 344017424) || (rawId >= 344071428 && rawId < 344082960))
294  whichHalfCylinder = 2;
295  treeMem.layer = tTopo->pxfDisk(detId);
296  treeMem.side = tTopo->pxfSide(detId);
297  treeMem.half = whichHalfCylinder;
298  treeMem.blade = tTopo->pxfBlade(detId);
299  treeMem.panel = tTopo->pxfPanel(detId);
300  treeMem.module = tTopo->pxfModule(detId);
301  } else if (treeMem.subDetId == StripSubdetector::TIB) {
302  unsigned int whichHalfShell(1), rawId(detId.rawId()); //DetId does not kmow about halfShells in TIB
303  if ((rawId >= 369120484 && rawId < 369120688) || (rawId >= 369121540 && rawId < 369121776) ||
304  (rawId >= 369136932 && rawId < 369137200) || (rawId >= 369137988 && rawId < 369138288) ||
305  (rawId >= 369153396 && rawId < 369153744) || (rawId >= 369154436 && rawId < 369154800) ||
306  (rawId >= 369169844 && rawId < 369170256) || (rawId >= 369170900 && rawId < 369171344) ||
307  (rawId >= 369124580 && rawId < 369124784) || (rawId >= 369125636 && rawId < 369125872) ||
308  (rawId >= 369141028 && rawId < 369141296) || (rawId >= 369142084 && rawId < 369142384) ||
309  (rawId >= 369157492 && rawId < 369157840) || (rawId >= 369158532 && rawId < 369158896) ||
310  (rawId >= 369173940 && rawId < 369174352) || (rawId >= 369174996 && rawId < 369175440))
311  whichHalfShell = 2;
312  treeMem.layer = tTopo->tibLayer(detId);
313  treeMem.side = tTopo->tibStringInfo(detId)[0];
314  treeMem.half = whichHalfShell;
315  treeMem.rod = tTopo->tibStringInfo(detId)[2];
316  treeMem.outerInner = tTopo->tibStringInfo(detId)[1];
317  treeMem.module = tTopo->tibModule(detId);
318  treeMem.isStereo = tTopo->tibStereo(detId);
319  treeMem.isDoubleSide = tTopo->tibIsDoubleSide(detId);
320  } else if (treeMem.subDetId == StripSubdetector::TID) {
321  treeMem.layer = tTopo->tidWheel(detId);
322  treeMem.side = tTopo->tidSide(detId);
323  treeMem.ring = tTopo->tidRing(detId);
324  treeMem.outerInner = tTopo->tidModuleInfo(detId)[0];
325  treeMem.module = tTopo->tidModuleInfo(detId)[1];
326  treeMem.isStereo = tTopo->tidStereo(detId);
327  treeMem.isDoubleSide = tTopo->tidIsDoubleSide(detId);
328  } else if (treeMem.subDetId == StripSubdetector::TOB) {
329  treeMem.layer = tTopo->tobLayer(detId);
330  treeMem.side = tTopo->tobRodInfo(detId)[0];
331  treeMem.rod = tTopo->tobRodInfo(detId)[1];
332  treeMem.module = tTopo->tobModule(detId);
333  treeMem.isStereo = tTopo->tobStereo(detId);
334  treeMem.isDoubleSide = tTopo->tobIsDoubleSide(detId);
335  } else if (treeMem.subDetId == StripSubdetector::TEC) {
336  treeMem.layer = tTopo->tecWheel(detId);
337  treeMem.side = tTopo->tecSide(detId);
338  treeMem.ring = tTopo->tecRing(detId);
339  treeMem.petal = tTopo->tecPetalInfo(detId)[1];
340  treeMem.outerInner = tTopo->tecPetalInfo(detId)[0];
341  treeMem.module = tTopo->tecModule(detId);
342  treeMem.isStereo = tTopo->tecStereo(detId);
343  treeMem.isDoubleSide = tTopo->tecIsDoubleSide(detId);
344  }
345 
346  //variables concerning the tracker geometry
347 
348  const Surface::PositionType& gPModule = tkgeom.idToDet(detId)->position();
349  treeMem.posPhi = gPModule.phi();
350  treeMem.posEta = gPModule.eta();
351  treeMem.posR = gPModule.perp();
352  treeMem.posX = gPModule.x();
353  treeMem.posY = gPModule.y();
354  treeMem.posZ = gPModule.z();
355 
356  const Surface& surface = tkgeom.idToDet(detId)->surface();
357 
358  //global Orientation of local coordinate system of dets/detUnits
359  LocalPoint lUDirection(1., 0., 0.), lVDirection(0., 1., 0.), lWDirection(0., 0., 1.);
360  GlobalPoint gUDirection = surface.toGlobal(lUDirection), gVDirection = surface.toGlobal(lVDirection),
361  gWDirection = surface.toGlobal(lWDirection);
362  double dR(999.), dPhi(999.), dZ(999.);
364  treeMem.subDetId == StripSubdetector::TOB) {
365  dR = gWDirection.perp() - gPModule.perp();
366  dPhi = deltaPhi(gUDirection.barePhi(), gPModule.barePhi());
367  dZ = gVDirection.z() - gPModule.z();
368  if (dZ >= 0.)
369  treeMem.rOrZDirection = 1;
370  else
371  treeMem.rOrZDirection = -1;
372  } else if (treeMem.subDetId == PixelSubdetector::PixelEndcap) {
373  dR = gUDirection.perp() - gPModule.perp();
374  dPhi = deltaPhi(gVDirection.barePhi(), gPModule.barePhi());
375  dZ = gWDirection.z() - gPModule.z();
376  if (dR >= 0.)
377  treeMem.rOrZDirection = 1;
378  else
379  treeMem.rOrZDirection = -1;
380  } else if (treeMem.subDetId == StripSubdetector::TID || treeMem.subDetId == StripSubdetector::TEC) {
381  dR = gVDirection.perp() - gPModule.perp();
382  dPhi = deltaPhi(gUDirection.barePhi(), gPModule.barePhi());
383  dZ = gWDirection.z() - gPModule.z();
384  if (dR >= 0.)
385  treeMem.rOrZDirection = 1;
386  else
387  treeMem.rOrZDirection = -1;
388  }
389  if (dR >= 0.)
390  treeMem.rDirection = 1;
391  else
392  treeMem.rDirection = -1;
393  if (dPhi >= 0.)
394  treeMem.phiDirection = 1;
395  else
396  treeMem.phiDirection = -1;
397  if (dZ >= 0.)
398  treeMem.zDirection = 1;
399  else
400  treeMem.zDirection = -1;
401 
402  // Assign histos from first step (TrackerOfflineValidation) to the module's entry in the TTree for retrieving mean, rms, median ...
403  const std::string histDir = associateModuleHistsWithTree(treeMem, it->second, substructureName);
404 
405  //mean and RMS values (extracted from histograms Xprime on module level)
406  treeMem.entries = static_cast<UInt_t>(it->second.ResXprimeHisto->GetEntries());
407  treeMem.meanX = it->second.ResXprimeHisto->GetMean();
408  treeMem.rmsX = it->second.ResXprimeHisto->GetRMS();
409  //treeMem.sigmaX = Fwhm(it->second.ResXprimeHisto)/2.355;
410  if (useFit_) {
411  //call fit function which returns mean and sigma from the fit
412  //for absolute residuals
413  std::pair<float, float> fitResult1 = this->fitResiduals(it->second.ResXprimeHisto);
414  treeMem.fitMeanX = fitResult1.first;
415  treeMem.fitSigmaX = fitResult1.second;
416  //for normalized residuals
417  std::pair<float, float> fitResult2 = this->fitResiduals(it->second.NormResXprimeHisto);
418  treeMem.fitMeanNormX = fitResult2.first;
419  treeMem.fitSigmaNormX = fitResult2.second;
420  }
421 
422  //get median for absolute residuals
423  treeMem.medianX = this->getMedian(it->second.ResXprimeHisto);
424 
425  int numberOfBins = it->second.ResXprimeHisto->GetNbinsX();
426  treeMem.numberOfUnderflows = it->second.ResXprimeHisto->GetBinContent(0);
427  treeMem.numberOfOverflows = it->second.ResXprimeHisto->GetBinContent(numberOfBins + 1);
428  treeMem.numberOfOutliers =
429  it->second.ResXprimeHisto->GetBinContent(0) + it->second.ResXprimeHisto->GetBinContent(numberOfBins + 1);
430  //mean and RMS values (extracted from histograms(normalized Xprime on module level)
431  treeMem.meanNormX = it->second.NormResXprimeHisto->GetMean();
432  treeMem.rmsNormX = it->second.NormResXprimeHisto->GetRMS();
433 
434  double stats[20];
435  it->second.NormResXprimeHisto->GetStats(stats);
436  // GF treeMem.chi2PerDofX = stats[3]/(stats[0]-1);
437  if (stats[0])
438  treeMem.chi2PerDofX = stats[3] / stats[0];
439 
440  //treeMem.sigmaNormX = Fwhm(it->second.NormResXprimeHisto)/2.355;
441  treeMem.histNameX = it->second.ResXprimeHisto->GetName();
442  treeMem.histNameNormX = it->second.NormResXprimeHisto->GetName();
443 
444  // fill tree variables in local coordinates if set in cfg of TrackerOfllineValidation
445  if (it->second.ResHisto && it->second.NormResHisto) { // if(lCoorHistOn_) {
446  treeMem.meanLocalX = it->second.ResHisto->GetMean();
447  treeMem.rmsLocalX = it->second.ResHisto->GetRMS();
448  treeMem.meanNormLocalX = it->second.NormResHisto->GetMean();
449  treeMem.rmsNormLocalX = it->second.NormResHisto->GetRMS();
450  treeMem.histNameLocalX = it->second.ResHisto->GetName();
451  treeMem.histNameNormLocalX = it->second.NormResHisto->GetName();
452  }
453 
454  // mean and RMS values in local y (extracted from histograms Yprime on module level)
455  // might exist in pixel only
456  if (it->second.ResYprimeHisto) { //(stripYResiduals_){
457  TH1* h = it->second.ResYprimeHisto;
458  treeMem.meanY = h->GetMean();
459  treeMem.rmsY = h->GetRMS();
460 
461  if (useFit_) { // fit function which returns mean and sigma from the fit
462  std::pair<float, float> fitMeanSigma = this->fitResiduals(h);
463  treeMem.fitMeanY = fitMeanSigma.first;
464  treeMem.fitSigmaY = fitMeanSigma.second;
465  }
466 
467  //get median for absolute residuals
468  treeMem.medianY = this->getMedian(h);
469 
470  treeMem.histNameY = h->GetName();
471  }
472 
473  if (it->second.NormResYprimeHisto) {
474  TH1* h = it->second.NormResYprimeHisto;
475  treeMem.meanNormY = h->GetMean();
476  treeMem.rmsNormY = h->GetRMS();
477  h->GetStats(stats); // stats buffer defined above
478  if (stats[0])
479  treeMem.chi2PerDofY = stats[3] / stats[0];
480 
481  if (useFit_) { // fit function which returns mean and sigma from the fit
482  std::pair<float, float> fitMeanSigma = this->fitResiduals(h);
483  treeMem.fitMeanNormY = fitMeanSigma.first;
484  treeMem.fitSigmaNormY = fitMeanSigma.second;
485  }
486  treeMem.histNameNormY = h->GetName();
487  }
488 
489  tree.Fill();
490  }
491 }

References associateModuleHistsWithTree(), PV3DBase< T, PVType, FrameType >::barePhi(), TkOffTreeVariables::blade, TkOffTreeVariables::chi2PerDofX, TkOffTreeVariables::chi2PerDofY, TkOffTreeVariables::clear(), SiPixelRawToDigiRegional_cfi::deltaPhi, HLT_FULL_cff::dPhi, HGC3DClusterGenMatchSelector_cfi::dR, TkOffTreeVariables::entries, PV3DBase< T, PVType, FrameType >::eta(), TkOffTreeVariables::fitMeanNormX, TkOffTreeVariables::fitMeanNormY, TkOffTreeVariables::fitMeanX, TkOffTreeVariables::fitMeanY, fitResiduals(), TkOffTreeVariables::fitSigmaNormX, TkOffTreeVariables::fitSigmaNormY, TkOffTreeVariables::fitSigmaX, TkOffTreeVariables::fitSigmaY, getMedian(), TkOffTreeVariables::half, L1TStage2EMTFEventInfoClient_cfi::histDir, TkOffTreeVariables::histNameLocalX, TkOffTreeVariables::histNameNormLocalX, TkOffTreeVariables::histNameNormX, TkOffTreeVariables::histNameNormY, TkOffTreeVariables::histNameX, TkOffTreeVariables::histNameY, TrackerGeometry::idToDet(), TkOffTreeVariables::isDoubleSide, TkOffTreeVariables::isStereo, TkOffTreeVariables::layer, TkOffTreeVariables::meanLocalX, TkOffTreeVariables::meanNormLocalX, TkOffTreeVariables::meanNormX, TkOffTreeVariables::meanNormY, TkOffTreeVariables::meanX, TkOffTreeVariables::meanY, TkOffTreeVariables::medianX, TkOffTreeVariables::medianY, TkOffTreeVariables::module, TkOffTreeVariables::moduleId, spclusmultinvestigator_cfi::numberOfBins, TkOffTreeVariables::numberOfOutliers, TkOffTreeVariables::numberOfOverflows, TkOffTreeVariables::numberOfUnderflows, TkOffTreeVariables::outerInner, TkOffTreeVariables::panel, PV3DBase< T, PVType, FrameType >::perp(), TkOffTreeVariables::petal, PV3DBase< T, PVType, FrameType >::phi(), TkOffTreeVariables::phiDirection, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TkOffTreeVariables::posEta, GeomDet::position(), TkOffTreeVariables::posPhi, TkOffTreeVariables::posR, TkOffTreeVariables::posX, TkOffTreeVariables::posY, TkOffTreeVariables::posZ, TrackerTopology::pxbLadder(), TrackerTopology::pxbLayer(), TrackerTopology::pxbModule(), TrackerTopology::pxfBlade(), TrackerTopology::pxfDisk(), TrackerTopology::pxfModule(), TrackerTopology::pxfPanel(), TrackerTopology::pxfSide(), DetId::rawId(), TkOffTreeVariables::rDirection, TkOffTreeVariables::ring, TkOffTreeVariables::rmsLocalX, TkOffTreeVariables::rmsNormLocalX, TkOffTreeVariables::rmsNormX, TkOffTreeVariables::rmsNormY, TkOffTreeVariables::rmsX, TkOffTreeVariables::rmsY, TkOffTreeVariables::rod, TkOffTreeVariables::rOrZDirection, TkOffTreeVariables::side, dqmMemoryStats::stats, AlCaHLTBitMon_QueryRunRegistry::string, DetId::subdetId(), TkOffTreeVariables::subDetId, GeomDet::surface(), StripSubdetector::TEC, TrackerTopology::tecIsDoubleSide(), TrackerTopology::tecModule(), TrackerTopology::tecPetalInfo(), TrackerTopology::tecRing(), TrackerTopology::tecSide(), TrackerTopology::tecStereo(), TrackerTopology::tecWheel(), StripSubdetector::TIB, TrackerTopology::tibIsDoubleSide(), TrackerTopology::tibLayer(), TrackerTopology::tibModule(), TrackerTopology::tibStereo(), TrackerTopology::tibStringInfo(), StripSubdetector::TID, TrackerTopology::tidIsDoubleSide(), TrackerTopology::tidModuleInfo(), TrackerTopology::tidRing(), TrackerTopology::tidSide(), TrackerTopology::tidStereo(), TrackerTopology::tidWheel(), StripSubdetector::TOB, TrackerTopology::tobIsDoubleSide(), TrackerTopology::tobLayer(), TrackerTopology::tobModule(), TrackerTopology::tobRodInfo(), TrackerTopology::tobStereo(), Surface::toGlobal(), useFit_, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and TkOffTreeVariables::zDirection.

Referenced by endJob(), and core.AutoFillTreeProducer.AutoFillTreeProducer::process().

◆ fitResiduals()

std::pair< float, float > TrackerOfflineValidationSummary::fitResiduals ( TH1 *  hist) const
private

Definition at line 679 of file TrackerOfflineValidationSummary.cc.

679  {
680  std::pair<float, float> fitResult(9999., 9999.);
681  if (!hist || hist->GetEntries() < 20)
682  return fitResult;
683 
684  float mean = hist->GetMean();
685  float sigma = hist->GetRMS();
686 
687  try { // for < CMSSW_2_2_0 since ROOT warnings from fit are converted to exceptions
688  // Remove the try/catch for more recent CMSSW!
689  // first fit: two RMS around mean
690  TF1 func("tmp", "gaus", mean - 2. * sigma, mean + 2. * sigma);
691  if (0 == hist->Fit(&func, "QNR")) { // N: do not blow up file by storing fit!
692  mean = func.GetParameter(1);
693  sigma = func.GetParameter(2);
694  // second fit: three sigma of first fit around mean of first fit
695  func.SetRange(mean - 3. * sigma, mean + 3. * sigma);
696  // I: integral gives more correct results if binning is too wide
697  // L: Likelihood can treat empty bins correctly (if hist not weighted...)
698  if (0 == hist->Fit(&func, "Q0LR")) {
699  if (hist->GetFunction(func.GetName())) { // Take care that it is later on drawn:
700  hist->GetFunction(func.GetName())->ResetBit(TF1::kNotDraw);
701  }
702  fitResult.first = func.GetParameter(1);
703  fitResult.second = func.GetParameter(2);
704  }
705  }
706  } catch (cms::Exception const& e) {
707  edm::LogWarning("Alignment") << "@SUB=TrackerOfflineValidation::fitResiduals"
708  << "Caught this exception during ROOT fit: " << e.what();
709  }
710  return fitResult;
711 }

References MillePedeFileConverter_cfg::e, TrackCollections2monitor_cff::func, compare::hist, SiStripPI::mean, and tools::TF1.

Referenced by fillTree().

◆ getBinning()

void TrackerOfflineValidationSummary::getBinning ( const std::string &  binningPSetName,
int &  nBinsX,
double &  lowerBoundX,
double &  upperBoundX 
) const
private

Definition at line 826 of file TrackerOfflineValidationSummary.cc.

829  {
830  const edm::ParameterSet& binningPSet = parSet_.getParameter<edm::ParameterSet>(binningPSetName);
831  nBinsX = binningPSet.getParameter<int>("Nbinx");
832  lowerBoundX = binningPSet.getParameter<double>("xmin");
833  upperBoundX = binningPSet.getParameter<double>("xmax");
834 }

References edm::ParameterSet::getParameter(), and parSet_.

Referenced by bookHarvestingHists().

◆ getMedian()

float TrackerOfflineValidationSummary::getMedian ( const TH1 *  hist) const
private

Definition at line 713 of file TrackerOfflineValidationSummary.cc.

713  {
714  float median = 999;
715  const int nbins = histo->GetNbinsX();
716 
717  //extract median from histogram
718  double* x = new double[nbins];
719  double* y = new double[nbins];
720  for (int j = 0; j < nbins; j++) {
721  x[j] = histo->GetBinCenter(j + 1);
722  y[j] = histo->GetBinContent(j + 1);
723  }
724  median = TMath::Median(nbins, x, y);
725 
726  delete[] x;
727  x = nullptr;
728  delete[] y;
729  y = nullptr;
730 
731  return median;
732 }

References timingPdfMaker::histo, dqmiolumiharvest::j, pfDeepBoostedJetPreprocessParams_cfi::median, LaserClient_cfi::nbins, x, and y.

Referenced by fillTree().

Member Data Documentation

◆ dbe_

DQMStore* TrackerOfflineValidationSummary::dbe_
private

◆ geomToken_

const edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> TrackerOfflineValidationSummary::geomToken_
private

Definition at line 65 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze().

◆ lastSetup_

const edm::EventSetup* TrackerOfflineValidationSummary::lastSetup_
private

Definition at line 144 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ moduleDirectory_

const std::string TrackerOfflineValidationSummary::moduleDirectory_
private

◆ moduleMapsInitialized

bool TrackerOfflineValidationSummary::moduleMapsInitialized
private

Definition at line 133 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze().

◆ mPxbResiduals_

std::map<int, TrackerOfflineValidationSummary::ModuleHistos> TrackerOfflineValidationSummary::mPxbResiduals_
private

Definition at line 135 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ mPxeResiduals_

std::map<int, TrackerOfflineValidationSummary::ModuleHistos> TrackerOfflineValidationSummary::mPxeResiduals_
private

Definition at line 136 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ mTecResiduals_

std::map<int, TrackerOfflineValidationSummary::ModuleHistos> TrackerOfflineValidationSummary::mTecResiduals_
private

Definition at line 140 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ mTibResiduals_

std::map<int, TrackerOfflineValidationSummary::ModuleHistos> TrackerOfflineValidationSummary::mTibResiduals_
private

Definition at line 137 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ mTidResiduals_

std::map<int, TrackerOfflineValidationSummary::ModuleHistos> TrackerOfflineValidationSummary::mTidResiduals_
private

Definition at line 138 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ mTobResiduals_

std::map<int, TrackerOfflineValidationSummary::ModuleHistos> TrackerOfflineValidationSummary::mTobResiduals_
private

Definition at line 139 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ parSet_

const edm::ParameterSet TrackerOfflineValidationSummary::parSet_
private

◆ tkGeom_

edm::ESHandle<TrackerGeometry> TrackerOfflineValidationSummary::tkGeom_
private

Definition at line 125 of file TrackerOfflineValidationSummary.cc.

Referenced by analyze(), and endJob().

◆ topoToken_

const edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> TrackerOfflineValidationSummary::topoToken_
private

Definition at line 66 of file TrackerOfflineValidationSummary.cc.

◆ useFit_

const bool TrackerOfflineValidationSummary::useFit_
private

Definition at line 129 of file TrackerOfflineValidationSummary.cc.

Referenced by fillTree().

◆ vHarvestingHierarchy_

std::vector<HarvestingHierarchy> TrackerOfflineValidationSummary::vHarvestingHierarchy_
private
TrackerOfflineValidationSummary::mTidResiduals_
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > mTidResiduals_
Definition: TrackerOfflineValidationSummary.cc:138
GeomDet::position
const Surface::PositionType & position() const
The position (origin of the R.F.)
Definition: GeomDet.h:43
TrackerGeometry::idToDet
const TrackerGeomDet * idToDet(DetId) const override
Definition: TrackerGeometry.cc:193
TrackerTopology::tobIsDoubleSide
bool tobIsDoubleSide(const DetId &id) const
Definition: TrackerTopology.h:245
TkOffTreeVariables::meanY
Float_t meanY
Definition: TkOffTreeVariables.h:50
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
DDAxes::y
TrackerOfflineValidationSummary::ModuleHistos::ResHisto
TH1 * ResHisto
Definition: TrackerOfflineValidationSummary.cc:71
TkOffTreeVariables::medianX
Float_t medianX
Definition: TkOffTreeVariables.h:50
SiStripPI::mean
Definition: SiStripPayloadInspectorHelper.h:169
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
TrackerOfflineValidationSummary::moduleDirectory_
const std::string moduleDirectory_
Definition: TrackerOfflineValidationSummary.cc:128
TkOffTreeVariables::medianY
Float_t medianY
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::petal
UInt_t petal
Definition: TkOffTreeVariables.h:59
TrackerTopology::pxfSide
unsigned int pxfSide(const DetId &id) const
Definition: TrackerTopology.h:192
TrackerOfflineValidationSummary::getBinning
void getBinning(const std::string &binningPSetName, int &nBinsX, double &lowerBoundX, double &upperBoundX) const
Definition: TrackerOfflineValidationSummary.cc:826
PV3DBase::x
T x() const
Definition: PV3DBase.h:59
TrackerOfflineValidationSummary::bookHarvestingHists
void bookHarvestingHists()
Definition: TrackerOfflineValidationSummary.cc:786
TkOffTreeVariables::rmsLocalX
Float_t rmsLocalX
Definition: TkOffTreeVariables.h:50
contentValuesFiles.fullPath
fullPath
Definition: contentValuesFiles.py:64
TkOffTreeVariables::rDirection
Float_t rDirection
Definition: TkOffTreeVariables.h:50
TrackerTopology
Definition: TrackerTopology.h:16
tree
Definition: tree.py:1
TrackerTopology::tecIsDoubleSide
bool tecIsDoubleSide(const DetId &id) const
Definition: TrackerTopology.h:246
DetId::det
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
TrackerTopology::tidIsDoubleSide
bool tidIsDoubleSide(const DetId &id) const
Definition: TrackerTopology.h:250
TrackerTopology::pxbLadder
unsigned int pxbLadder(const DetId &id) const
Definition: TrackerTopology.h:155
pfDeepBoostedJetPreprocessParams_cfi.median
median
Definition: pfDeepBoostedJetPreprocessParams_cfi.py:12
TrackerOfflineValidationSummary::collateHarvestingHists
void collateHarvestingHists(TTree &tree)
Definition: TrackerOfflineValidationSummary.cc:734
TkOffTreeVariables::phiDirection
Float_t phiDirection
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::fitMeanY
Float_t fitMeanY
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::lastSetup_
const edm::EventSetup * lastSetup_
Definition: TrackerOfflineValidationSummary.cc:144
timingPdfMaker.histo
histo
Definition: timingPdfMaker.py:279
L1TStage2EMTFEventInfoClient_cfi.histDir
histDir
Location of output EventInfo/reportSummaryContents.
Definition: L1TStage2EMTFEventInfoClient_cfi.py:17
TrackerOfflineValidationSummary::ModuleHistos::NormResYprimeHisto
TH1 * NormResYprimeHisto
Definition: TrackerOfflineValidationSummary.cc:76
Surface
Definition: Surface.h:36
TrackerOfflineValidationSummary::ModuleHistos::NormResXprimeHisto
TH1 * NormResXprimeHisto
Definition: TrackerOfflineValidationSummary.cc:74
DDAxes::x
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
TkOffTreeVariables::rod
UInt_t rod
Definition: TkOffTreeVariables.h:59
HLT_FULL_cff.dPhi
dPhi
Definition: HLT_FULL_cff.py:13702
TkOffTreeVariables::outerInner
UInt_t outerInner
Definition: TkOffTreeVariables.h:59
TkOffTreeVariables::meanNormY
Float_t meanNormY
Definition: TkOffTreeVariables.h:50
tools.TF1
TF1
Definition: tools.py:23
TrackerOfflineValidationSummary::topoToken_
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
Definition: TrackerOfflineValidationSummary.cc:66
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
TkOffTreeVariables::histNameLocalX
std::string histNameLocalX
Definition: TkOffTreeVariables.h:67
TrackerTopology::tidRing
unsigned int tidRing(const DetId &id) const
Definition: TrackerTopology.h:218
TrackerTopology::tobStereo
uint32_t tobStereo(const DetId &id) const
Definition: TrackerTopology.h:275
TkOffTreeVariables::fitMeanNormY
Float_t fitMeanNormY
Definition: TkOffTreeVariables.h:50
TrackerTopology::tidWheel
unsigned int tidWheel(const DetId &id) const
Definition: TrackerTopology.h:201
TrackerOfflineValidationSummary::tkGeom_
edm::ESHandle< TrackerGeometry > tkGeom_
Definition: TrackerOfflineValidationSummary.cc:125
TrackerTopology::pxbLayer
unsigned int pxbLayer(const DetId &id) const
Definition: TrackerTopology.h:144
TkOffTreeVariables::numberOfOverflows
Float_t numberOfOverflows
Definition: TkOffTreeVariables.h:50
PV3DBase::z
T z() const
Definition: PV3DBase.h:61
TrackerTopology::pxfPanel
unsigned int pxfPanel(const DetId &id) const
Definition: TrackerTopology.h:450
TkOffTreeVariables::fitSigmaNormX
Float_t fitSigmaNormX
Definition: TkOffTreeVariables.h:50
photonAnalyzer_cfi.xMin
xMin
Definition: photonAnalyzer_cfi.py:82
TkOffTreeVariables::rmsX
Float_t rmsX
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::posR
Float_t posR
Definition: TkOffTreeVariables.h:50
DetId
Definition: DetId.h:17
TrackerTopology::tobRodInfo
std::vector< unsigned int > tobRodInfo(const DetId &id) const
Definition: TrackerTopology.h:226
GeomDet::surface
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
TrackerOfflineValidationSummary::mTobResiduals_
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > mTobResiduals_
Definition: TrackerOfflineValidationSummary.cc:139
TkOffTreeVariables::posPhi
Float_t posPhi
Definition: TkOffTreeVariables.h:50
TrackerTopology::tibStringInfo
std::vector< unsigned int > tibStringInfo(const DetId &id) const
Definition: TrackerTopology.h:421
TrackerTopology::tidModuleInfo
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
Definition: TrackerTopology.h:434
edm::EventSetup::get
T get() const
Definition: EventSetup.h:80
TkOffTreeVariables::panel
UInt_t panel
Definition: TkOffTreeVariables.h:59
compare.hist
hist
Definition: compare.py:376
SiPixelRawToDigiRegional_cfi.deltaPhi
deltaPhi
Definition: SiPixelRawToDigiRegional_cfi.py:9
TkOffTreeVariables::histNameX
std::string histNameX
Definition: TkOffTreeVariables.h:68
TkOffTreeVariables::layer
UInt_t layer
Definition: TkOffTreeVariables.h:59
TkOffTreeVariables::posY
Float_t posY
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::entries
UInt_t entries
Definition: TkOffTreeVariables.h:58
TkOffTreeVariables::numberOfUnderflows
Float_t numberOfUnderflows
Definition: TkOffTreeVariables.h:50
Surface::toGlobal
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:79
edm::ESHandle< TrackerTopology >
AlignableTracker
Definition: AlignableTracker.h:17
LaserClient_cfi.nbins
nbins
Definition: LaserClient_cfi.py:51
TkOffTreeVariables::clear
void clear()
set to empty values
Definition: TkOffTreeVariables.h:14
TrackerOfflineValidationSummary::mTibResiduals_
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > mTibResiduals_
Definition: TrackerOfflineValidationSummary.cc:137
dqm::implementation::DQMStore::setCurrentFolder
void setCurrentFolder(std::string const &fullpath) override
Definition: DQMStore.h:569
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
h
TkOffTreeVariables::fitSigmaY
Float_t fitSigmaY
Definition: TkOffTreeVariables.h:50
Point3DBase< float, GlobalTag >
TrackerOfflineValidationSummary::parSet_
const edm::ParameterSet parSet_
Definition: TrackerOfflineValidationSummary.cc:124
TkOffTreeVariables::histNameNormY
std::string histNameNormY
Definition: TkOffTreeVariables.h:68
dqm::legacy::MonitorElement::getTH1
virtual TH1 * getTH1() const
Definition: MonitorElement.h:474
TkOffTreeVariables::moduleId
UInt_t moduleId
Definition: TkOffTreeVariables.h:59
DetId::subdetId
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
Definition: DetId.h:48
TrackerOfflineValidationSummary::mTecResiduals_
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > mTecResiduals_
Definition: TrackerOfflineValidationSummary.cc:140
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TkOffTreeVariables::rOrZDirection
Float_t rOrZDirection
Definition: TkOffTreeVariables.h:50
TrackerTopology::tibStereo
uint32_t tibStereo(const DetId &id) const
Definition: TrackerTopology.h:279
TkOffTreeVariables::meanNormLocalX
Float_t meanNormLocalX
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::posZ
Float_t posZ
Definition: TkOffTreeVariables.h:50
TrackingGeometry::DetIdContainer
std::vector< DetId > DetIdContainer
Definition: TrackingGeometry.h:30
TkOffTreeVariables::fitSigmaNormY
Float_t fitSigmaNormY
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::mPxeResiduals_
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > mPxeResiduals_
Definition: TrackerOfflineValidationSummary.cc:136
edm::ParameterSet
Definition: ParameterSet.h:47
TrackerOfflineValidationSummary::geomToken_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
Definition: TrackerOfflineValidationSummary.cc:65
PV3DBase::barePhi
T barePhi() const
Definition: PV3DBase.h:65
TkOffTreeVariables::rmsNormX
Float_t rmsNormX
Definition: TkOffTreeVariables.h:50
MainPageGenerator.tree
tree
Definition: MainPageGenerator.py:264
TrackerOfflineValidationSummary::mPxbResiduals_
std::map< int, TrackerOfflineValidationSummary::ModuleHistos > mPxbResiduals_
Definition: TrackerOfflineValidationSummary.cc:135
TkOffTreeVariables::zDirection
Float_t zDirection
Definition: TkOffTreeVariables.h:50
PV3DBase::eta
T eta() const
Definition: PV3DBase.h:73
PV3DBase::y
T y() const
Definition: PV3DBase.h:60
TrackerTopology::tidStereo
uint32_t tidStereo(const DetId &id) const
Definition: TrackerTopology.h:283
TrackerTopology::tibModule
unsigned int tibModule(const DetId &id) const
Definition: TrackerTopology.h:172
TrackerTopology::tidSide
unsigned int tidSide(const DetId &id) const
Definition: TrackerTopology.h:190
edm::Service
Definition: Service.h:30
TrackerOfflineValidationSummary::getMedian
float getMedian(const TH1 *hist) const
Definition: TrackerOfflineValidationSummary.cc:713
TkOffTreeVariables::meanX
Float_t meanX
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::blade
UInt_t blade
Definition: TkOffTreeVariables.h:59
TrackerTopology::tecRing
unsigned int tecRing(const DetId &id) const
ring id
Definition: TrackerTopology.h:217
TrackerOfflineValidationSummary::associateModuleHistsWithTree
const std::string associateModuleHistsWithTree(const TkOffTreeVariables &treeMem, TrackerOfflineValidationSummary::ModuleHistos &moduleHists, std::map< std::string, std::string > &substructureName)
Definition: TrackerOfflineValidationSummary.cc:493
TrackerTopology::pxfModule
unsigned int pxfModule(const DetId &id) const
Definition: TrackerTopology.h:163
TrackerTopology::pxfDisk
unsigned int pxfDisk(const DetId &id) const
Definition: TrackerTopology.h:446
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:148
TkOffTreeVariables::rmsNormY
Float_t rmsNormY
Definition: TkOffTreeVariables.h:50
dqmMemoryStats.stats
stats
Definition: dqmMemoryStats.py:134
TkOffTreeVariables::fitMeanX
Float_t fitMeanX
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::side
UInt_t side
Definition: TkOffTreeVariables.h:59
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
TkOffTreeVariables::half
UInt_t half
Definition: TkOffTreeVariables.h:59
TrackCollections2monitor_cff.func
func
Definition: TrackCollections2monitor_cff.py:359
get
#define get
TrackerOfflineValidationSummary::ModuleHistos::NormResHisto
TH1 * NormResHisto
Definition: TrackerOfflineValidationSummary.cc:72
TrackerOfflineValidationSummary::ModuleHistos::ResXprimeHisto
TH1 * ResXprimeHisto
Definition: TrackerOfflineValidationSummary.cc:73
TkOffTreeVariables::meanNormX
Float_t meanNormX
Definition: TkOffTreeVariables.h:50
TkOffTreeVariables::subDetId
UInt_t subDetId
Definition: TkOffTreeVariables.h:59
TkOffTreeVariables::isDoubleSide
Bool_t isDoubleSide
Definition: TkOffTreeVariables.h:64
TkOffTreeVariables::posX
Float_t posX
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::fitResiduals
std::pair< float, float > fitResiduals(TH1 *hist) const
Definition: TrackerOfflineValidationSummary.cc:679
TrackerTopology::tobLayer
unsigned int tobLayer(const DetId &id) const
Definition: TrackerTopology.h:147
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
TrackerTopology::tobModule
unsigned int tobModule(const DetId &id) const
Definition: TrackerTopology.h:166
TrackerTopology::pxbModule
unsigned int pxbModule(const DetId &id) const
Definition: TrackerTopology.h:160
TrackerTopology::tibIsDoubleSide
bool tibIsDoubleSide(const DetId &id) const
Definition: TrackerTopology.h:249
TkOffTreeVariables::ring
UInt_t ring
Definition: TkOffTreeVariables.h:59
TkOffTreeVariables::fitSigmaX
Float_t fitSigmaX
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::ModuleHistos::ResYprimeHisto
TH1 * ResYprimeHisto
Definition: TrackerOfflineValidationSummary.cc:75
TkOffTreeVariables::chi2PerDofX
Float_t chi2PerDofX
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::useFit_
const bool useFit_
Definition: TrackerOfflineValidationSummary.cc:129
Exception
Definition: hltDiff.cc:246
TkOffTreeVariables::chi2PerDofY
Float_t chi2PerDofY
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::moduleMapsInitialized
bool moduleMapsInitialized
Definition: TrackerOfflineValidationSummary.cc:133
PVValHelper::ladder
Definition: PVValidationHelpers.h:72
relativeConstraints.ring
ring
Definition: relativeConstraints.py:68
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
TkOffTreeVariables::histNameY
std::string histNameY
Definition: TkOffTreeVariables.h:68
TrackerOfflineValidationSummary::dbe_
DQMStore * dbe_
Definition: TrackerOfflineValidationSummary.cc:131
dqm::implementation::IGetter::get
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:651
multiplicitycorr_cfi.xMax
xMax
Definition: multiplicitycorr_cfi.py:5
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
TrackerGeometry::detIds
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
Definition: TrackerGeometry.h:64
TrackerOfflineValidationSummary::fillHarvestingHists
void fillHarvestingHists(TTree &tree)
Definition: TrackerOfflineValidationSummary.cc:836
TrackerTopology::tecModule
unsigned int tecModule(const DetId &id) const
Definition: TrackerTopology.h:169
TkOffTreeVariables::histNameNormX
std::string histNameNormX
Definition: TkOffTreeVariables.h:68
TkOffTreeVariables::histNameNormLocalX
std::string histNameNormLocalX
Definition: TkOffTreeVariables.h:67
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:200
TrackerOfflineValidationSummary::fillTree
void fillTree(TTree &tree, std::map< int, TrackerOfflineValidationSummary::ModuleHistos > &moduleHist, TkOffTreeVariables &treeMem, const TrackerGeometry &tkgeom, std::map< std::string, std::string > &substructureName, const TrackerTopology *tTopo)
Definition: TrackerOfflineValidationSummary.cc:263
TrackerTopology::pxfBlade
unsigned int pxfBlade(const DetId &id) const
Definition: TrackerTopology.h:447
TrackerTopology::tecPetalInfo
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
Definition: TrackerTopology.h:407
TkOffTreeVariables::posEta
Float_t posEta
Definition: TkOffTreeVariables.h:50
TrackerOfflineValidationSummary::vHarvestingHierarchy_
std::vector< HarvestingHierarchy > vHarvestingHierarchy_
Definition: TrackerOfflineValidationSummary.cc:142
cms::Exception
Definition: Exception.h:70
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
HGC3DClusterGenMatchSelector_cfi.dR
dR
Definition: HGC3DClusterGenMatchSelector_cfi.py:7
TkOffTreeVariables::meanLocalX
Float_t meanLocalX
Definition: TkOffTreeVariables.h:50
spclusmultinvestigator_cfi.numberOfBins
numberOfBins
Definition: spclusmultinvestigator_cfi.py:17
TkOffTreeVariables::fitMeanNormX
Float_t fitMeanNormX
Definition: TkOffTreeVariables.h:50
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
TkOffTreeVariables::module
UInt_t module
Definition: TkOffTreeVariables.h:59
TkOffTreeVariables::rmsNormLocalX
Float_t rmsNormLocalX
Definition: TkOffTreeVariables.h:50
TrackerTopology::tecWheel
unsigned int tecWheel(const DetId &id) const
Definition: TrackerTopology.h:198
TkOffTreeVariables::isStereo
Bool_t isStereo
Definition: TkOffTreeVariables.h:65
TrackerOfflineValidationSummary::applyHarvestingHierarchy
void applyHarvestingHierarchy(TTree &treeMem)
Definition: TrackerOfflineValidationSummary.cc:739
PV3DBase::perp
T perp() const
Definition: PV3DBase.h:69
PV3DBase::phi
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
TkOffTreeVariables::rmsY
Float_t rmsY
Definition: TkOffTreeVariables.h:50
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
dqm::implementation::IBooker::book1D
MonitorElement * book1D(TString const &name, TString const &title, int const nchX, double const lowX, double const highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:98
TrackerTopology::tecStereo
uint32_t tecStereo(const DetId &id) const
Definition: TrackerTopology.h:287
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
TrackerTopology::tibLayer
unsigned int tibLayer(const DetId &id) const
Definition: TrackerTopology.h:150
TrackerGeometry
Definition: TrackerGeometry.h:14
TkOffTreeVariables
container to hold data to be written into TTree
Definition: TkOffTreeVariables.h:9
TrackerTopology::tecSide
unsigned int tecSide(const DetId &id) const
Definition: TrackerTopology.h:184
TkOffTreeVariables::numberOfOutliers
Float_t numberOfOutliers
Definition: TkOffTreeVariables.h:50