|
|
#include <Alignment/Validator/src/TrackerOfflineValidation.cc>
|
| TrackerOfflineValidation (const edm::ParameterSet &) |
|
| ~TrackerOfflineValidation () override |
|
| EDAnalyzer ()=default |
|
SerialTaskQueue * | globalLuminosityBlocksQueue () final |
|
SerialTaskQueue * | globalRunsQueue () final |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsInputProcessBlocks () const final |
|
bool | wantsProcessBlocks () const final |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
| EDAnalyzerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
bool | wantsStreamLuminosityBlocks () const |
|
bool | wantsStreamRuns () const |
|
| ~EDAnalyzerBase () override |
|
std::vector< ConsumesInfo > | consumesInfo () 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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (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) |
|
|
void | analyze (const edm::Event &, const edm::EventSetup &) override |
|
void | bookDirHists (DirectoryWrapper &tfd, const Alignable &ali, const TrackerTopology *tTopo) |
|
void | bookGlobalHists (DirectoryWrapper &tfd) |
|
void | bookHists (DirectoryWrapper &tfd, const Alignable &ali, const TrackerTopology *tTopo, align::StructureType type, int i) |
|
TrackerOfflineValidation::SummaryContainer | bookSummaryHists (DirectoryWrapper &tfd, const Alignable &ali, align::StructureType type, int i) |
|
TH1 * | bookTH1F (bool isTransient, DirectoryWrapper &tfd, const char *histName, const char *histTitle, int nBinsX, double lowX, double highX) |
|
TProfile * | bookTProfile (bool isTransient, DirectoryWrapper &tfd, const char *histName, const char *histTitle, int nBinsX, double lowX, double highX) |
|
TProfile * | bookTProfile (bool isTransient, DirectoryWrapper &tfd, const char *histName, const char *histTitle, int nBinsX, double lowX, double highX, double lowY, double highY) |
|
virtual void | checkBookHists (const edm::EventSetup &setup) |
|
void | collateSummaryHists () |
|
void | endJob () override |
|
void | fillTree (TTree &tree, TkOffTreeVariables &treeMem, const std::map< int, TrackerOfflineValidation::ModuleHistos > &moduleHist_) |
|
std::pair< float, float > | fitResiduals (TH1 *hist) const |
|
float | Fwhm (const TH1 *hist) const |
|
void | getBinning (uint32_t subDetId, TrackerOfflineValidation::HistogramType residualtype, int &nBinsX, double &lowerBoundX, double &upperBoundX) |
|
ModuleHistos & | getHistStructFromMap (const DetId &detid) |
|
template<class OBJECT_TYPE > |
int | GetIndex (const std::vector< OBJECT_TYPE * > &vec, const TString &name) |
|
float | getMedian (const TH1 *hist) const |
|
bool | isBarrel (uint32_t subDetId) |
|
bool | isDetOrDetUnit (align::StructureType type) |
|
bool | isEndCap (uint32_t subDetId) |
|
bool | isPixel (uint32_t subDetId) |
|
void | prepareSummaryHists (DirectoryWrapper &tfd, const Alignable &ali, std::vector< TrackerOfflineValidation::SummaryContainer > &vLevelProfiles) |
|
void | setSummaryBin (int bin, TH1 *targetHist, TH1 *sourceHist) |
|
void | setUpTreeMembers (const std::map< int, TrackerOfflineValidation::ModuleHistos > &moduleHist_, const TrackerGeometry &tkgeom, const TrackerTopology *tTopo) |
|
void | summarizeBinInContainer (int bin, SummaryContainer &targetContainer, SummaryContainer &sourceContainer) |
|
void | summarizeBinInContainer (int bin, uint32_t subDetId, SummaryContainer &targetContainer, ModuleHistos &sourceContainer) |
|
|
std::unique_ptr< AlignableTracker > | alignableTracker_ |
|
TrackerValidationVariables | avalidator_ |
|
const TrackerGeometry * | bareTkGeomPtr_ |
|
const int | chargeCut_ |
|
const int | compressionSettings_ |
|
const bool | dqmMode_ |
|
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > | geomToken_ |
|
const bool | lCoorHistOn_ |
|
const unsigned long long | maxTracks_ |
|
const std::string | moduleDirectory_ |
|
const bool | moduleLevelHistsTransient_ |
|
const bool | moduleLevelProfiles_ |
|
std::map< int, TrackerOfflineValidation::ModuleHistos > | mPxbResiduals_ |
|
std::map< int, TrackerOfflineValidation::ModuleHistos > | mPxeResiduals_ |
|
std::map< int, TrackerOfflineValidation::ModuleHistos > | mTecResiduals_ |
|
std::map< int, TrackerOfflineValidation::ModuleHistos > | mTibResiduals_ |
|
std::map< int, TrackerOfflineValidation::ModuleHistos > | mTidResiduals_ |
|
std::map< int, TrackerOfflineValidation::ModuleHistos > | mTobResiduals_ |
|
std::map< int, TkOffTreeVariables > | mTreeMembers_ |
|
unsigned long long | nTracks_ |
|
const edm::ParameterSet | parSet_ |
|
const bool | stripYResiduals_ |
|
std::vector< std::pair< TH1 *, TH1 * > > | sumHistStructure_ |
|
std::vector< std::tuple< int, TH1 *, TH1 * > > | summaryBins_ |
|
edm::ESHandle< TrackerGeometry > | tkGeom_ |
|
std::vector< TH1 * > | toFit_ |
|
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > | topoToken_ |
|
const bool | useFit_ |
|
const bool | useFwhm_ |
|
const bool | useOverflowForRMS_ |
|
std::vector< TH1 * > | vDeleteObjects_ |
|
std::vector< TH1 * > | vTrack2DHistos_ |
|
std::vector< TH1 * > | vTrackHistos_ |
|
std::vector< TH1 * > | vTrackProfiles_ |
|
|
static const std::string & | baseType () |
|
static void | fillDescriptions (ConfigurationDescriptions &descriptions) |
|
static void | prevalidate (ConfigurationDescriptions &descriptions) |
|
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) |
|
Description: <one line="" class="" summary>="">
Implementation: <Notes on="" implementation>="">
Definition at line 77 of file TrackerOfflineValidation.cc.
◆ DQMStore
◆ HistogramType
Enumerator |
---|
XResidual | |
NormXResidual | |
YResidual | |
XprimeResidual | |
NormXprimeResidual | |
YprimeResidual | |
NormYprimeResidual | |
XResidualProfile | |
YResidualProfile | |
Definition at line 83 of file TrackerOfflineValidation.cc.
◆ TrackerOfflineValidation()
TrackerOfflineValidation::TrackerOfflineValidation |
( |
const edm::ParameterSet & |
iConfig | ) |
|
|
explicit |
◆ ~TrackerOfflineValidation()
TrackerOfflineValidation::~TrackerOfflineValidation |
( |
| ) |
|
|
override |
◆ analyze()
Implements edm::one::EDAnalyzerBase.
Definition at line 1118 of file TrackerOfflineValidation.cc.
1124 TH1::StatOverflows(kTRUE);
1127 std::vector<TrackerValidationVariables::AVTrackStruct> vTrackstruct;
1130 for (std::vector<TrackerValidationVariables::AVTrackStruct>::const_iterator itT = vTrackstruct.begin();
1131 itT != vTrackstruct.end();
1144 vTrackHistos_[numOfValidHitsindex]->Fill(itT->numberOfValidHits);
1146 vTrackHistos_[numOfLostHitsindex]->Fill(itT->numberOfLostHits);
1150 if (itT->charge > 0)
1153 if (itT->charge < 0)
1163 if (itT->ptError != 0.) {
1165 vTrackHistos_[ptResolutionindex]->Fill(itT->ptError / itT->pt);
1181 vTrackProfiles_[chiProbabsd0index]->Fill(fabs(itT->d0), itT->chi2Prob);
1199 vTrackProfiles_[ptResphiindex]->Fill(itT->phi, itT->ptError / itT->pt);
1201 vTrackProfiles_[ptResetaindex]->Fill(itT->eta, itT->ptError / itT->pt);
1217 vTrack2DHistos_[chiProbabsd0index_2d]->Fill(fabs(itT->d0), itT->chi2Prob);
1234 for (std::vector<TrackerValidationVariables::AVHitStruct>::const_iterator itH = itT->hits.begin();
1235 itH != itT->hits.end();
1237 DetId detid(itH->rawDetId);
1242 histStruct.ResHisto->Fill(itH->resX);
1243 if (itH->resErrX != 0)
1244 histStruct.NormResHisto->Fill(itH->resX / itH->resErrX);
1246 histStruct.ResYHisto->Fill(itH->resY);
1250 if (itH->resXprime != -999.) {
1251 histStruct.ResXprimeHisto->Fill(itH->resXprime);
1281 float tgalpha =
tan(itH->localAlpha);
1282 if (fabs(tgalpha) != 0) {
1283 histStruct.LocalX->Fill(itH->localXnorm, tgalpha * tgalpha);
1284 histStruct.LocalY->Fill(itH->localYnorm, tgalpha * tgalpha);
1296 histStruct.ResXvsXProfile->Fill(itH->localXnorm, itH->resXatTrkY / tgalpha, tgalpha * tgalpha);
1297 histStruct.ResXvsYProfile->Fill(itH->localYnorm, itH->resXatTrkY / tgalpha, tgalpha * tgalpha);
1303 if (itH->resXprimeErr != 0 && itH->resXprimeErr != -999) {
1304 histStruct.NormResXprimeHisto->Fill(itH->resXprime / itH->resXprimeErr);
1308 if (itH->resYprime != -999.) {
1310 histStruct.ResYprimeHisto->Fill(itH->resYprime);
1324 float tgbeta =
tan(itH->localBeta);
1325 if (fabs(tgbeta) != 0) {
1338 histStruct.ResYvsXProfile->Fill(itH->localXnorm, itH->resY / tgbeta, tgbeta * tgbeta);
1339 histStruct.ResYvsYProfile->Fill(itH->localYnorm, itH->resY / tgbeta, tgbeta * tgbeta);
1344 if (itH->resYprimeErr != 0 && itH->resYprimeErr != -999.) {
1345 histStruct.NormResYprimeHisto->Fill(itH->resYprime / itH->resYprimeErr);
1354 TH1::StatOverflows(kFALSE);
References avalidator_, chargeCut_, checkBookHists(), TrackerValidationVariables::fillTrackQuantities(), getHistStructFromMap(), GetIndex(), iEvent, isPixel(), lCoorHistOn_, TrackerOfflineValidation::ModuleHistos::LocalX, TrackerOfflineValidation::ModuleHistos::LocalY, maxTracks_, moduleLevelProfiles_, TrackerOfflineValidation::ModuleHistos::NormResHisto, TrackerOfflineValidation::ModuleHistos::NormResXprimeHisto, TrackerOfflineValidation::ModuleHistos::NormResYprimeHisto, nTracks_, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, TrackerOfflineValidation::ModuleHistos::ResHisto, TrackerOfflineValidation::ModuleHistos::ResXprimeHisto, TrackerOfflineValidation::ModuleHistos::ResXvsXProfile, TrackerOfflineValidation::ModuleHistos::ResXvsYProfile, TrackerOfflineValidation::ModuleHistos::ResYHisto, TrackerOfflineValidation::ModuleHistos::ResYprimeHisto, TrackerOfflineValidation::ModuleHistos::ResYvsXProfile, TrackerOfflineValidation::ModuleHistos::ResYvsYProfile, stripYResiduals_, DetId::subdetId(), funct::tan(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, useOverflowForRMS_, vTrack2DHistos_, vTrackHistos_, and vTrackProfiles_.
◆ bookDirHists()
Definition at line 702 of file TrackerOfflineValidation.cc.
704 for (
int i = 0, iEnd = ali.
components().size();
i < iEnd; ++
i) {
706 LogDebug(
"TrackerOfflineValidation") <<
"StructureName = " << structurename;
710 if (structurename !=
"Strip" && structurename !=
"Pixel")
713 if (structurename.find(
"Endcap", 0) != std::string::npos) {
References Alignable::alignableObjectId(), alignableTracker_, bookHists(), makeMuonMisalignmentScenario::components, Alignable::components(), BTVHLTOfflineSource_cfi::dirname, dqmMode_, f, mps_fire::i, isDetOrDetUnit(), LogDebug, moduleDirectory_, findQualityFiles::size, and AlCaHLTBitMon_QueryRunRegistry::string.
Referenced by checkBookHists().
◆ bookGlobalHists()
Definition at line 551 of file TrackerOfflineValidation.cc.
552 vTrackHistos_.push_back(tfd.make<TH1F>(
"h_tracketa",
"Track #eta;#eta_{Track};Number of Tracks", 90, -3., 3.));
553 vTrackHistos_.push_back(tfd.make<TH1F>(
"h_trackphi",
"Track #phi;#phi_{Track};Number of Tracks", 90, -3.15, 3.15));
555 "h_trackNumberOfValidHits",
"Track # of valid hits;# of valid hits _{Track};Number of Tracks", 40, 0., 40.));
557 "h_trackNumberOfLostHits",
"Track # of lost hits;# of lost hits _{Track};Number of Tracks", 10, 0., 10.));
559 tfd.make<TH1F>(
"h_curvature",
"Curvature #kappa;#kappa_{Track};Number of Tracks", 100, -.05, .05));
561 "h_curvature_pos",
"Curvature |#kappa| Positive Tracks;|#kappa_{pos Track}|;Number of Tracks", 100, .0, .05));
563 "h_curvature_neg",
"Curvature |#kappa| Negative Tracks;|#kappa_{neg Track}|;Number of Tracks", 100, .0, .05));
565 tfd.make<TH1F>(
"h_diff_curvature",
566 "Curvature |#kappa| Tracks Difference;|#kappa_{Track}|;# Pos Tracks - # Neg Tracks",
570 vTrackHistos_.push_back(tfd.make<TH1F>(
"h_chi2",
"#chi^{2};#chi^{2}_{Track};Number of Tracks", 500, -0.01, 500.));
572 tfd.make<TH1F>(
"h_chi2Prob",
"#chi^{2} probability;#chi^{2}prob_{Track};Number of Tracks", 100, 0.0, 1.));
574 tfd.make<TH1F>(
"h_normchi2",
"#chi^{2}/ndof;#chi^{2}/ndof;Number of Tracks", 100, -0.01, 10.));
575 vTrackHistos_.push_back(tfd.make<TH1F>(
"h_pt",
"p_{T}^{track};p_{T}^{track} [GeV];Number of Tracks", 250, 0., 250));
577 "h_ptResolution",
"#delta_{p_{T}}/p_{T}^{track};#delta_{p_{T}}/p_{T}^{track};Number of Tracks", 100, 0., 0.5));
579 "p_d0_vs_phi",
"Transverse Impact Parameter vs. #phi;#phi_{Track};#LT d_{0} #GT [cm]", 100, -3.15, 3.15));
581 "p_dz_vs_phi",
"Longitudinal Impact Parameter vs. #phi;#phi_{Track};#LT d_{z} #GT [cm]", 100, -3.15, 3.15));
583 "p_d0_vs_eta",
"Transverse Impact Parameter vs. #eta;#eta_{Track};#LT d_{0} #GT [cm]", 100, -3.15, 3.15));
585 "p_dz_vs_eta",
"Longitudinal Impact Parameter vs. #eta;#eta_{Track};#LT d_{z} #GT [cm]", 100, -3.15, 3.15));
587 tfd.make<TProfile>(
"p_chi2_vs_phi",
"#chi^{2} vs. #phi;#phi_{Track};#LT #chi^{2} #GT", 100, -3.15, 3.15));
589 "p_chi2Prob_vs_phi",
"#chi^{2} probablility vs. #phi;#phi_{Track};#LT #chi^{2} probability#GT", 100, -3.15, 3.15));
591 "p_chi2Prob_vs_d0",
"#chi^{2} probablility vs. |d_{0}|;|d_{0}|[cm];#LT #chi^{2} probability#GT", 100, 0, 80));
593 "p_normchi2_vs_phi",
"#chi^{2}/ndof vs. #phi;#phi_{Track};#LT #chi^{2}/ndof #GT", 100, -3.15, 3.15));
595 tfd.make<TProfile>(
"p_chi2_vs_eta",
"#chi^{2} vs. #eta;#eta_{Track};#LT #chi^{2} #GT", 100, -3.15, 3.15));
597 double xBins[19] = {0., 0.15, 0.5, 1., 1.5, 2., 2.5, 3., 3.5, 4., 4.5, 5., 7., 10., 15., 25., 40., 100., 200.};
599 "p_normchi2_vs_pt",
"norm #chi^{2} vs. p_{T}_{Track}; p_{T}_{Track};#LT #chi^{2}/ndof #GT", 18,
xBins));
602 tfd.make<TProfile>(
"p_normchi2_vs_p",
"#chi^{2}/ndof vs. p_{Track};p_{Track};#LT #chi^{2}/ndof #GT", 18,
xBins));
604 "p_chi2Prob_vs_eta",
"#chi^{2} probability vs. #eta;#eta_{Track};#LT #chi^{2} probability #GT", 100, -3.15, 3.15));
606 "p_normchi2_vs_eta",
"#chi^{2}/ndof vs. #eta;#eta_{Track};#LT #chi^{2}/ndof #GT", 100, -3.15, 3.15));
608 tfd.make<TProfile>(
"p_kappa_vs_phi",
"#kappa vs. #phi;#phi_{Track};#kappa", 100, -3.15, 3.15));
610 tfd.make<TProfile>(
"p_kappa_vs_eta",
"#kappa vs. #eta;#eta_{Track};#kappa", 100, -3.15, 3.15));
612 "#delta_{p_{T}}/p_{T}^{track};#phi^{track};#delta_{p_{T}}/p_{T}^{track}",
617 "#delta_{p_{T}}/p_{T}^{track};#eta^{track};#delta_{p_{T}}/p_{T}^{track}",
623 "h2_d0_vs_phi",
"Transverse Impact Parameter vs. #phi;#phi_{Track};d_{0} [cm]", 100, -3.15, 3.15, 100, -1., 1.));
625 "Longitudinal Impact Parameter vs. #phi;#phi_{Track};d_{z} [cm]",
633 "h2_d0_vs_eta",
"Transverse Impact Parameter vs. #eta;#eta_{Track};d_{0} [cm]", 100, -3.15, 3.15, 100, -1., 1.));
635 "Longitudinal Impact Parameter vs. #eta;#eta_{Track};d_{z} [cm]",
643 tfd.make<TH2F>(
"h2_chi2_vs_phi",
"#chi^{2} vs. #phi;#phi_{Track};#chi^{2}", 100, -3.15, 3.15, 500, 0., 500.));
645 "#chi^{2} probability vs. #phi;#phi_{Track};#chi^{2} probability",
653 "#chi^{2} probability vs. |d_{0}|;|d_{0}| [cm];#chi^{2} probability",
661 "h2_normchi2_vs_phi",
"#chi^{2}/ndof vs. #phi;#phi_{Track};#chi^{2}/ndof", 100, -3.15, 3.15, 100, 0., 10.));
663 tfd.make<TH2F>(
"h2_chi2_vs_eta",
"#chi^{2} vs. #eta;#eta_{Track};#chi^{2}", 100, -3.15, 3.15, 500, 0., 500.));
665 "#chi^{2} probaility vs. #eta;#eta_{Track};#chi^{2} probability",
673 "h2_normchi2_vs_eta",
"#chi^{2}/ndof vs. #eta;#eta_{Track};#chi^{2}/ndof", 100, -3.15, 3.15, 100, 0., 10.));
675 tfd.make<TH2F>(
"h2_kappa_vs_phi",
"#kappa vs. #phi;#phi_{Track};#kappa", 100, -3.15, 3.15, 100, .0, .05));
677 tfd.make<TH2F>(
"h2_kappa_vs_eta",
"#kappa vs. #eta;#eta_{Track};#kappa", 100, -3.15, 3.15, 100, .0, .05));
679 "h2_normchi2_vs_kappa",
"#kappa vs. #chi^{2}/ndof;#chi^{2}/ndof;#kappa", 100, 0., 10, 100, -.03, .03));
683 "p_vs_resXprime_pixB",
"res_{x'} vs momentum in BPix;p [GeV]; res_{x'}", 15, 0., 15., 200, -0.1, 0.1));
685 "p_vs_resXprime_pixE",
"res_{x'} vs momentum in FPix;p [GeV]; res_{x'}", 15, 0., 15., 200, -0.1, 0.1));
687 "p_vs_resXprime_TIB",
"res_{x'} vs momentum in TIB;p [GeV]; res_{x'}", 15, 0., 15., 200, -0.1, 0.1));
689 "p_vs_resXprime_TID",
"res_{x'} vs momentum in TID;p [GeV]; res_{x'}", 15, 0., 15., 200, -0.1, 0.1));
691 "p_vs_resXprime_TOB",
"res_{x'} vs momentum in TOB;p [GeV]; res_{x'}", 15, 0., 15., 200, -0.1, 0.1));
693 "p_vs_resXprime_TEC",
"res_{x'} vs momentum in TEC;p [GeV]; res_{x'}", 15, 0., 15., 200, -0.1, 0.1));
697 "p_vs_resYprime_pixB",
"res_{y'} vs momentum in BPix;p [GeV]; res_{y'}", 15, 0., 15., 200, -0.1, 0.1));
699 "p_vs_resYprime_pixE",
"res_{y'} vs momentum in FPix;p [GeV]; res_{y'}", 15, 0., 15., 200, -0.1, 0.1));
References TrackerOfflineValidation::DirectoryWrapper::make(), vTrack2DHistos_, vTrackHistos_, vTrackProfiles_, and multiplicitycorr_cfi::xBins.
Referenced by checkBookHists().
◆ bookHists()
Definition at line 727 of file TrackerOfflineValidation.cc.
746 std::stringstream histoname, histotitle, normhistoname, normhistotitle, yhistoname, yhistotitle, xprimehistoname,
747 xprimehistotitle, normxprimehistoname, normxprimehistotitle, yprimehistoname, yprimehistotitle,
748 normyprimehistoname, normyprimehistotitle, localxname, localxtitle, localyname, localytitle, resxvsxprofilename,
749 resxvsxprofiletitle, resyvsxprofilename, resyvsxprofiletitle, resxvsyprofilename, resxvsyprofiletitle,
750 resyvsyprofilename, resyvsyprofiletitle;
754 if (this->
isEndCap(static_cast<uint32_t>(subdetandlayer.first)))
755 wheel_or_layer =
"_wheel_";
756 else if (this->
isBarrel(static_cast<uint32_t>(subdetandlayer.first)))
757 wheel_or_layer =
"_layer_";
759 edm::LogWarning(
"TrackerOfflineValidation") <<
"@SUB=TrackerOfflineValidation::bookHists"
760 <<
"Unknown subdetid: " << subdetandlayer.first;
762 histoname <<
"h_residuals_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second <<
"_module_"
764 yhistoname <<
"h_y_residuals_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second <<
"_module_"
766 xprimehistoname <<
"h_xprime_residuals_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second
767 <<
"_module_" <<
id.rawId();
768 yprimehistoname <<
"h_yprime_residuals_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second
769 <<
"_module_" <<
id.rawId();
770 normhistoname <<
"h_normresiduals_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second
771 <<
"_module_" <<
id.rawId();
772 normxprimehistoname <<
"h_normxprimeresiduals_subdet_" << subdetandlayer.first << wheel_or_layer
773 << subdetandlayer.second <<
"_module_" <<
id.rawId();
774 normyprimehistoname <<
"h_normyprimeresiduals_subdet_" << subdetandlayer.first << wheel_or_layer
775 << subdetandlayer.second <<
"_module_" <<
id.rawId();
776 histotitle <<
"X Residual for module " <<
id.rawId() <<
";x_{tr} - x_{hit} [cm]";
777 yhistotitle <<
"Y Residual for module " <<
id.rawId() <<
";y_{tr} - y_{hit} [cm]";
778 normhistotitle <<
"Normalized Residual for module " <<
id.rawId() <<
";x_{tr} - x_{hit}/#sigma";
779 xprimehistotitle <<
"X' Residual for module " <<
id.rawId() <<
";(x_{tr} - x_{hit})' [cm]";
780 normxprimehistotitle <<
"Normalized X' Residual for module " <<
id.rawId() <<
";(x_{tr} - x_{hit})'/#sigma";
781 yprimehistotitle <<
"Y' Residual for module " <<
id.rawId() <<
";(y_{tr} - y_{hit})' [cm]";
782 normyprimehistotitle <<
"Normalized Y' Residual for module " <<
id.rawId() <<
";(y_{tr} - y_{hit})'/#sigma";
785 localxname <<
"h_localx_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second <<
"_module_"
787 localyname <<
"h_localy_subdet_" << subdetandlayer.first << wheel_or_layer << subdetandlayer.second <<
"_module_"
789 localxtitle <<
"u local for module " <<
id.rawId() <<
"; u_{tr,r}";
790 localytitle <<
"v local for module " <<
id.rawId() <<
"; v_{tr,r}";
792 resxvsxprofilename <<
"p_residuals_x_vs_x_subdet_" << subdetandlayer.first << wheel_or_layer
793 << subdetandlayer.second <<
"_module_" <<
id.rawId();
794 resyvsxprofilename <<
"p_residuals_y_vs_x_subdet_" << subdetandlayer.first << wheel_or_layer
795 << subdetandlayer.second <<
"_module_" <<
id.rawId();
796 resxvsyprofilename <<
"p_residuals_x_vs_y_subdet_" << subdetandlayer.first << wheel_or_layer
797 << subdetandlayer.second <<
"_module_" <<
id.rawId();
798 resyvsyprofilename <<
"p_residuals_y_vs_y_subdet_" << subdetandlayer.first << wheel_or_layer
799 << subdetandlayer.second <<
"_module_" <<
id.rawId();
800 resxvsxprofiletitle <<
"U Residual vs u for module " <<
id.rawId()
801 <<
"; u_{tr,r} ;(u_{tr} - u_{hit})/tan#alpha [cm]";
802 resyvsxprofiletitle <<
"V Residual vs u for module " <<
id.rawId()
803 <<
"; u_{tr,r} ;(v_{tr} - v_{hit})/tan#beta [cm]";
804 resxvsyprofiletitle <<
"U Residual vs v for module " <<
id.rawId()
805 <<
"; v_{tr,r} ;(u_{tr} - u_{hit})/tan#alpha [cm]";
806 resyvsyprofiletitle <<
"V Residual vs v for module " <<
id.rawId()
807 <<
"; v_{tr,r} ;(v_{tr} - v_{hit})/tan#beta [cm]";
824 histStruct.ResHisto = this->
bookTH1F(
827 histStruct.NormResHisto = this->
bookTH1F(
833 xprimehistoname.str().c_str(),
834 xprimehistotitle.str().c_str(),
841 normxprimehistoname.str().c_str(),
842 normxprimehistotitle.str().c_str(),
856 resxvsxprofilename.str().c_str(),
857 resxvsxprofiletitle.str().c_str(),
863 histStruct.ResXvsXProfile->Sumw2();
866 resxvsyprofilename.str().c_str(),
867 resxvsyprofiletitle.str().c_str(),
873 histStruct.ResXvsYProfile->Sumw2();
880 yprimehistoname.str().c_str(),
881 yprimehistotitle.str().c_str(),
887 histStruct.ResYHisto = this->
bookTH1F(
893 normyprimehistoname.str().c_str(),
894 normyprimehistotitle.str().c_str(),
904 resyvsxprofilename.str().c_str(),
905 resyvsxprofiletitle.str().c_str(),
911 histStruct.ResYvsXProfile->Sumw2();
914 resyvsyprofilename.str().c_str(),
915 resyvsyprofiletitle.str().c_str(),
921 histStruct.ResYvsYProfile->Sumw2();
References align::AlignableDetUnit, Alignable::alignableObjectId(), bookTH1F(), bookTProfile(), dqmMode_, getBinning(), getHistStructFromMap(), Alignable::id(), align::invalid, isBarrel(), isDetOrDetUnit(), isEndCap(), isPixel(), lCoorHistOn_, TrackerOfflineValidation::ModuleHistos::LocalX, TrackerOfflineValidation::ModuleHistos::LocalY, TrackerOfflineValidation_Standalone_cff::moduleLevelHistsTransient, moduleLevelHistsTransient_, moduleLevelProfiles_, LaserClient_cfi::nbins, TrackerOfflineValidation::ModuleHistos::NormResHisto, TrackerOfflineValidation::ModuleHistos::NormResXprimeHisto, TrackerOfflineValidation::ModuleHistos::NormResYprimeHisto, NormXprimeResidual, NormXResidual, NormYprimeResidual, TrackerOfflineValidation::ModuleHistos::ResHisto, TrackerOfflineValidation::ModuleHistos::ResXprimeHisto, TrackerOfflineValidation::ModuleHistos::ResXvsXProfile, TrackerOfflineValidation::ModuleHistos::ResXvsYProfile, TrackerOfflineValidation::ModuleHistos::ResYHisto, TrackerOfflineValidation::ModuleHistos::ResYprimeHisto, TrackerOfflineValidation::ModuleHistos::ResYvsXProfile, TrackerOfflineValidation::ModuleHistos::ResYvsYProfile, AlCaHLTBitMon_QueryRunRegistry::string, stripYResiduals_, TrackerAlignableId::typeAndLayerFromDetId(), TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, XprimeResidual, XResidual, XResidualProfile, L1TOccupancyClient_cfi::ymax, L1TOccupancyClient_cfi::ymin, YprimeResidual, YResidual, and YResidualProfile.
Referenced by bookDirHists().
◆ bookSummaryHists()
Definition at line 1480 of file TrackerOfflineValidation.cc.
1487 const char* aliTypeName =
alignableTracker_->objectIdProvider().idToString(alitype);
1488 const char* aliSubtypeName =
alignableTracker_->objectIdProvider().idToString(subtype);
1491 const DetId aliDetId = ali.
id();
1495 SummaryContainer sumContainer;
1501 const uint subcompSize = ali.
components()[0]->components().size();
1503 const TString
title(Form(
"Summary for substructures in %s %d;%s;", aliTypeName,
i, aliSubtypeName));
1505 sumContainer.summaryXResiduals_ = tfd.make<TH1F>(
1506 Form(
"h_summaryX%s_%d", aliTypeName,
i),
title +
"#LT #Delta x' #GT", aliSize, 0.5, aliSize + 0.5);
1507 sumContainer.summaryNormXResiduals_ = tfd.make<TH1F>(
1508 Form(
"h_summaryNormX%s_%d", aliTypeName,
i),
title +
"#LT #Delta x'/#sigma #GT", aliSize, 0.5, aliSize + 0.5);
1511 sumContainer.summaryYResiduals_ = tfd.make<TH1F>(
1512 Form(
"h_summaryY%s_%d", aliTypeName,
i),
title +
"#LT #Delta y' #GT", aliSize, 0.5, aliSize + 0.5);
1513 sumContainer.summaryNormYResiduals_ = tfd.make<TH1F>(
1514 Form(
"h_summaryNormY%s_%d", aliTypeName,
i),
title +
"#LT #Delta y'/#sigma #GT", aliSize, 0.5, aliSize + 0.5);
1518 if (subcompSize != 2) {
1521 <<
"Det with " << subcompSize <<
" components";
1524 const TString
title(Form(
1525 "Summary for substructures in %s %d;%s;",
1530 sumContainer.summaryXResiduals_ = tfd.make<TH1F>(
1531 Form(
"h_summaryX%s_%d", aliTypeName,
i),
title +
"#LT #Delta x' #GT", (2 * aliSize), 0.5, 2 * aliSize + 0.5);
1532 sumContainer.summaryNormXResiduals_ = tfd.make<TH1F>(Form(
"h_summaryNormX%s_%d", aliTypeName,
i),
1533 title +
"#LT #Delta x'/#sigma #GT",
1539 sumContainer.summaryYResiduals_ = tfd.make<TH1F>(
1540 Form(
"h_summaryY%s_%d", aliTypeName,
i),
title +
"#LT #Delta y' #GT", (2 * aliSize), 0.5, 2 * aliSize + 0.5);
1541 sumContainer.summaryNormYResiduals_ = tfd.make<TH1F>(Form(
"h_summaryNormY%s_%d", aliTypeName,
i),
1542 title +
"#LT #Delta y'/#sigma #GT",
1550 <<
"@SUB=TrackerOfflineValidation::bookSummaryHists"
1551 <<
"No summary histogram for hierarchy level " << aliTypeName <<
" in subdet " << aliDetId.
subdetId();
1559 const TString sumTitle(Form(
"Residual for %s %d in %s;", aliTypeName,
i,
typeName));
1563 sumContainer.sumXResiduals_ = tfd.make<TH1F>(Form(
"h_Xprime_%s_%d", aliTypeName,
i),
1564 sumTitle + xTitHists.ResXprimeHisto->GetXaxis()->GetTitle(),
1570 sumContainer.sumNormXResiduals_ = tfd.make<TH1F>(Form(
"h_NormXprime_%s_%d", aliTypeName,
i),
1571 sumTitle + xTitHists.NormResXprimeHisto->GetXaxis()->GetTitle(),
1578 sumContainer.sumResXvsXProfile_ = tfd.make<TProfile>(Form(
"p_resXX_%s_%d", aliTypeName,
i),
1579 sumTitle + xTitHists.ResXvsXProfile->GetXaxis()->GetTitle() +
1580 ";" + xTitHists.ResXvsXProfile->GetYaxis()->GetTitle(),
1584 sumContainer.sumResXvsXProfile_->Sumw2();
1585 sumContainer.sumResXvsYProfile_ = tfd.make<TProfile>(Form(
"p_resXY_%s_%d", aliTypeName,
i),
1586 sumTitle + xTitHists.ResXvsYProfile->GetXaxis()->GetTitle() +
1587 ";" + xTitHists.ResXvsYProfile->GetYaxis()->GetTitle(),
1591 sumContainer.sumResXvsYProfile_->Sumw2();
1596 sumContainer.sumYResiduals_ = tfd.make<TH1F>(Form(
"h_Yprime_%s_%d", aliTypeName,
i),
1597 sumTitle + xTitHists.ResYprimeHisto->GetXaxis()->GetTitle(),
1603 sumContainer.sumNormYResiduals_ = tfd.make<TH1F>(Form(
"h_NormYprime_%s_%d", aliTypeName,
i),
1604 sumTitle + xTitHists.NormResYprimeHisto->GetXaxis()->GetTitle(),
1611 sumContainer.sumResYvsXProfile_ = tfd.make<TProfile>(Form(
"p_resYX_%s_%d", aliTypeName,
i),
1612 sumTitle + xTitHists.ResYvsXProfile->GetXaxis()->GetTitle() +
1613 ";" + xTitHists.ResYvsXProfile->GetYaxis()->GetTitle(),
1617 sumContainer.sumResYvsXProfile_->Sumw2();
1618 sumContainer.sumResYvsYProfile_ = tfd.make<TProfile>(Form(
"p_resYY_%s_%d", aliTypeName,
i),
1619 sumTitle + xTitHists.ResYvsYProfile->GetXaxis()->GetTitle() +
1620 ";" + xTitHists.ResYvsYProfile->GetYaxis()->GetTitle(),
1624 sumContainer.sumResYvsYProfile_->Sumw2();
1632 for (
uint k = 0;
k < aliSize; ++
k) {
1636 sumHistStructure_.emplace_back(sumContainer.sumXResiduals_, histStruct.ResXprimeHisto);
1637 sumHistStructure_.emplace_back(sumContainer.sumNormXResiduals_, histStruct.NormResXprimeHisto);
1639 sumHistStructure_.emplace_back(sumContainer.sumResXvsXProfile_, histStruct.ResXvsXProfile);
1640 sumHistStructure_.emplace_back(sumContainer.sumResXvsYProfile_, histStruct.ResXvsYProfile);
1643 sumHistStructure_.emplace_back(sumContainer.sumYResiduals_, histStruct.ResYprimeHisto);
1644 sumHistStructure_.emplace_back(sumContainer.sumNormYResiduals_, histStruct.NormResYprimeHisto);
1646 sumHistStructure_.emplace_back(sumContainer.sumResYvsXProfile_, histStruct.ResYvsXProfile);
1647 sumHistStructure_.emplace_back(sumContainer.sumResYvsYProfile_, histStruct.ResYvsYProfile);
1653 for (
uint k = 0;
k < aliSize; ++
k) {
1654 for (
uint j = 0;
j < subcompSize; ++
j) {
1658 sumHistStructure_.emplace_back(sumContainer.sumXResiduals_, histStruct.ResXprimeHisto);
1659 sumHistStructure_.emplace_back(sumContainer.sumNormXResiduals_, histStruct.NormResXprimeHisto);
1661 sumHistStructure_.emplace_back(sumContainer.sumResXvsXProfile_, histStruct.ResXvsXProfile);
1662 sumHistStructure_.emplace_back(sumContainer.sumResXvsYProfile_, histStruct.ResXvsYProfile);
1665 sumHistStructure_.emplace_back(sumContainer.sumYResiduals_, histStruct.ResYprimeHisto);
1666 sumHistStructure_.emplace_back(sumContainer.sumNormYResiduals_, histStruct.NormResYprimeHisto);
1668 sumHistStructure_.emplace_back(sumContainer.sumResYvsXProfile_, histStruct.ResYvsXProfile);
1669 sumHistStructure_.emplace_back(sumContainer.sumResYvsYProfile_, histStruct.ResYvsYProfile);
1675 return sumContainer;
References align::AlignableDet, align::AlignableDetUnit, Alignable::alignableObjectId(), alignableTracker_, Alignable::components(), getBinning(), getHistStructFromMap(), mps_fire::i, Alignable::id(), isPixel(), dqmiolumiharvest::j, dqmdumpme::k, TrackerOfflineValidation::DirectoryWrapper::make(), moduleLevelProfiles_, LaserClient_cfi::nbins, TrackerOfflineValidation::ModuleHistos::NormResXprimeHisto, TrackerOfflineValidation::ModuleHistos::NormResYprimeHisto, NormXprimeResidual, NormYprimeResidual, TrackerOfflineValidation::ModuleHistos::ResXprimeHisto, TrackerOfflineValidation::ModuleHistos::ResXvsXProfile, TrackerOfflineValidation::ModuleHistos::ResXvsYProfile, TrackerOfflineValidation::ModuleHistos::ResYprimeHisto, TrackerOfflineValidation::ModuleHistos::ResYvsXProfile, TrackerOfflineValidation::ModuleHistos::ResYvsYProfile, stripYResiduals_, DetId::subdetId(), sumHistStructure_, summarizeBinInContainer(), runGCPTkAlMap::title, dqmiodumpindices::typeName, parallelization::uint, TrackerOfflineValidation_Dqm_cff::xmax, TrackerOfflineValidation_Dqm_cff::xmin, XprimeResidual, XResidualProfile, YprimeResidual, and YResidualProfile.
Referenced by prepareSummaryHists().
◆ bookTH1F()
TH1 * TrackerOfflineValidation::bookTH1F |
( |
bool |
isTransient, |
|
|
DirectoryWrapper & |
tfd, |
|
|
const char * |
histName, |
|
|
const char * |
histTitle, |
|
|
int |
nBinsX, |
|
|
double |
lowX, |
|
|
double |
highX |
|
) |
| |
|
private |
◆ bookTProfile() [1/2]
TProfile * TrackerOfflineValidation::bookTProfile |
( |
bool |
isTransient, |
|
|
DirectoryWrapper & |
tfd, |
|
|
const char * |
histName, |
|
|
const char * |
histTitle, |
|
|
int |
nBinsX, |
|
|
double |
lowX, |
|
|
double |
highX |
|
) |
| |
|
private |
◆ bookTProfile() [2/2]
TProfile * TrackerOfflineValidation::bookTProfile |
( |
bool |
isTransient, |
|
|
DirectoryWrapper & |
tfd, |
|
|
const char * |
histName, |
|
|
const char * |
histTitle, |
|
|
int |
nBinsX, |
|
|
double |
lowX, |
|
|
double |
highX, |
|
|
double |
lowY, |
|
|
double |
highY |
|
) |
| |
|
private |
Definition at line 956 of file TrackerOfflineValidation.cc.
966 TProfile*
profile =
new TProfile(histName,
histTitle, nBinsX, lowX, highX, lowY, highY);
970 return (TProfile*)tfd.make<TProfile>(histName,
histTitle, nBinsX, lowX, highX, lowY, highY);
References B2GTnPMonitor_cfi::histTitle, TrackerOfflineValidation::DirectoryWrapper::make(), PostProcessor_cff::profile, and vDeleteObjects_.
◆ checkBookHists()
void TrackerOfflineValidation::checkBookHists |
( |
const edm::EventSetup & |
setup | ) |
|
|
privatevirtual |
Definition at line 507 of file TrackerOfflineValidation.cc.
523 <<
"There are " << newBareTkGeomPtr->
detIds().size() <<
" dets in the Geometry record.\n"
524 <<
"Out of these " << newBareTkGeomPtr->
detUnitIds().size() <<
" are detUnits";
535 std::vector<TrackerOfflineValidation::SummaryContainer> vTrackerprofiles;
546 <<
"TrackerGeometry changed, but will not re-book hists!";
References alignableTracker_, bareTkGeomPtr_, bookDirHists(), bookGlobalHists(), TrackerGeometry::detIds(), TrackerGeometry::detUnitIds(), dqmMode_, geomToken_, edm::EventSetup::getData(), edm::EventSetup::getHandle(), moduleDirectory_, mPxbResiduals_, mPxeResiduals_, mTecResiduals_, mTibResiduals_, mTidResiduals_, mTobResiduals_, prepareSummaryHists(), setUpTreeMembers(), AlCaHLTBitMon_QueryRunRegistry::string, tkGeom_, and topoToken_.
Referenced by analyze().
◆ collateSummaryHists()
void TrackerOfflineValidation::collateSummaryHists |
( |
| ) |
|
|
private |
◆ endJob()
void TrackerOfflineValidation::endJob |
( |
void |
| ) |
|
|
overrideprivatevirtual |
Reimplemented from edm::one::EDAnalyzerBase.
Definition at line 1358 of file TrackerOfflineValidation.cc.
1382 TTree*
tree = fs->
make<TTree>(
"TkOffVal",
"TkOffVal");
1388 tree->Branch(
"TkOffTreeVariables", &treeMemPtr);
1398 treeMemPtr =
nullptr;
References collateSummaryHists(), compressionSettings_, dqmMode_, TFileService::file(), fillTree(), GetIndex(), TFileService::make(), mPxbResiduals_, mPxeResiduals_, mTecResiduals_, mTibResiduals_, mTidResiduals_, mTobResiduals_, edm::ESHandle< T >::product(), tkGeom_, and vTrackHistos_.
Referenced by o2olib.O2ORunMgr::executeJob().
◆ fillTree()
Definition at line 1841 of file TrackerOfflineValidation.cc.
1844 for (std::map<int, TrackerOfflineValidation::ModuleHistos>::const_iterator it = moduleHist_.begin(),
1845 itEnd = moduleHist_.end();
1851 treeMem.
entries = static_cast<UInt_t>(it->second.ResXprimeHisto->GetEntries());
1852 treeMem.
meanX = it->second.ResXprimeHisto->GetMean();
1853 treeMem.
rmsX = it->second.ResXprimeHisto->GetRMS();
1859 std::pair<float, float> fitResult1 = this->
fitResiduals(it->second.ResXprimeHisto);
1860 treeMem.
fitMeanX = fitResult1.first;
1863 std::pair<float, float> fitResult2 = this->
fitResiduals(it->second.NormResXprimeHisto);
1871 int numberOfBins = it->second.ResXprimeHisto->GetNbinsX();
1875 it->second.ResXprimeHisto->GetBinContent(0) + it->second.ResXprimeHisto->GetBinContent(
numberOfBins + 1);
1878 treeMem.
meanNormX = it->second.NormResXprimeHisto->GetMean();
1879 treeMem.
rmsNormX = it->second.NormResXprimeHisto->GetRMS();
1882 it->second.NormResXprimeHisto->GetStats(
stats);
1887 treeMem.
sigmaNormX =
Fwhm(it->second.NormResXprimeHisto) / 2.355;
1888 treeMem.
histNameX = it->second.ResXprimeHisto->GetName();
1889 treeMem.
histNameNormX = it->second.NormResXprimeHisto->GetName();
1893 treeMem.
meanLocalX = it->second.ResHisto->GetMean();
1894 treeMem.
rmsLocalX = it->second.ResHisto->GetRMS();
1900 if (it->second.ResYHisto)
1906 if (it->second.ResYprimeHisto) {
1907 TH1*
h = it->second.ResYprimeHisto;
1908 treeMem.
meanY =
h->GetMean();
1909 treeMem.
rmsY =
h->GetRMS();
1912 std::pair<float, float> fitMeanSigma = this->
fitResiduals(h);
1913 treeMem.
fitMeanY = fitMeanSigma.first;
1914 treeMem.
fitSigmaY = fitMeanSigma.second;
1922 if (it->second.NormResYprimeHisto) {
1923 TH1*
h = it->second.NormResYprimeHisto;
1931 std::pair<float, float> fitMeanSigma = this->
fitResiduals(h);
1939 if (it->second.ResXvsXProfile) {
1940 TH1*
h = it->second.ResXvsXProfile;
1945 if (it->second.ResXvsYProfile) {
1946 TH1*
h = it->second.ResXvsYProfile;
1951 if (it->second.ResYvsXProfile) {
1952 TH1*
h = it->second.ResYvsXProfile;
1957 if (it->second.ResYvsYProfile) {
1958 TH1*
h = it->second.ResYvsYProfile;
References TkOffTreeVariables::chi2PerDofX, TkOffTreeVariables::chi2PerDofY, TkOffTreeVariables::entries, TkOffTreeVariables::fitMeanNormX, TkOffTreeVariables::fitMeanNormY, TkOffTreeVariables::fitMeanX, TkOffTreeVariables::fitMeanY, fitResiduals(), TkOffTreeVariables::fitSigmaNormX, TkOffTreeVariables::fitSigmaNormY, TkOffTreeVariables::fitSigmaX, TkOffTreeVariables::fitSigmaY, Fwhm(), getMedian(), TkOffTreeVariables::histNameLocalX, TkOffTreeVariables::histNameLocalY, TkOffTreeVariables::histNameNormLocalX, TkOffTreeVariables::histNameNormX, TkOffTreeVariables::histNameNormY, TkOffTreeVariables::histNameX, TkOffTreeVariables::histNameY, lCoorHistOn_, TkOffTreeVariables::meanLocalX, TkOffTreeVariables::meanNormLocalX, TkOffTreeVariables::meanNormX, TkOffTreeVariables::meanNormY, TkOffTreeVariables::meanResXvsX, TkOffTreeVariables::meanResXvsY, TkOffTreeVariables::meanResYvsX, TkOffTreeVariables::meanResYvsY, TkOffTreeVariables::meanX, TkOffTreeVariables::meanY, TkOffTreeVariables::medianX, TkOffTreeVariables::medianY, moduleLevelProfiles_, mTreeMembers_, spclusmultinvestigator_cfi::numberOfBins, TkOffTreeVariables::numberOfOutliers, TkOffTreeVariables::numberOfOverflows, TkOffTreeVariables::numberOfUnderflows, TkOffTreeVariables::profileNameResXvsX, TkOffTreeVariables::profileNameResXvsY, TkOffTreeVariables::profileNameResYvsX, TkOffTreeVariables::profileNameResYvsY, TkOffTreeVariables::rmsLocalX, TkOffTreeVariables::rmsNormLocalX, TkOffTreeVariables::rmsNormX, TkOffTreeVariables::rmsNormY, TkOffTreeVariables::rmsResXvsX, TkOffTreeVariables::rmsResXvsY, TkOffTreeVariables::rmsResYvsX, TkOffTreeVariables::rmsResYvsY, TkOffTreeVariables::rmsX, TkOffTreeVariables::rmsY, TkOffTreeVariables::sigmaNormX, dqmMemoryStats::stats, and useFit_.
Referenced by endJob(), and core.AutoFillTreeProducer.AutoFillTreeProducer::process().
◆ fitResiduals()
std::pair< float, float > TrackerOfflineValidation::fitResiduals |
( |
TH1 * |
hist | ) |
const |
|
private |
Definition at line 1969 of file TrackerOfflineValidation.cc.
1970 std::pair<float, float> fitResult(9999., 9999.);
1971 if (!
hist ||
hist->GetEntries() < 20)
1975 float sigma =
hist->GetRMS();
1980 TF1
func(
"tmp",
"gaus",
mean - 2. * sigma,
mean + 2. * sigma);
1981 if (0 ==
hist->Fit(&
func,
"QNR")) {
1983 sigma =
func.GetParameter(2);
1988 if (0 ==
hist->Fit(&
func,
"Q0LR")) {
1989 if (
hist->GetFunction(
func.GetName())) {
1990 hist->GetFunction(
func.GetName())->ResetBit(TF1::kNotDraw);
1992 fitResult.first =
func.GetParameter(1);
1993 fitResult.second =
func.GetParameter(2);
1997 edm::LogWarning(
"Alignment") <<
"@SUB=TrackerOfflineValidation::fitResiduals"
1998 <<
"Caught this exception during ROOT fit: " <<
e.what();
References MillePedeFileConverter_cfg::e, TrackCollections2monitor_cff::func, gpuVertexFinder::hist, and SiStripPI::mean.
Referenced by collateSummaryHists(), and fillTree().
◆ Fwhm()
float TrackerOfflineValidation::Fwhm |
( |
const TH1 * |
hist | ) |
const |
|
private |
◆ getBinning()
Definition at line 991 of file TrackerOfflineValidation.cc.
1054 lowerBoundX = binningPSet.
getParameter<
double>(
"xmin");
1055 upperBoundX = binningPSet.
getParameter<
double>(
"xmax");
References edm::ParameterSet::getParameter(), isPixel(), NormXprimeResidual, NormXResidual, NormYprimeResidual, parSet_, XprimeResidual, XResidual, XResidualProfile, YprimeResidual, YResidual, and YResidualProfile.
Referenced by bookHists(), and bookSummaryHists().
◆ getHistStructFromMap()
Definition at line 1092 of file TrackerOfflineValidation.cc.
1111 <<
"[TrackerOfflineValidation] Error, tried to get reference for non-tracker subdet " << subdetid
1112 <<
" from detector " << detid.
det();
References DetId::det(), Exception, mPxbResiduals_, mPxeResiduals_, mTecResiduals_, mTibResiduals_, mTidResiduals_, mTobResiduals_, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, and parallelization::uint.
Referenced by analyze(), bookHists(), and bookSummaryHists().
◆ GetIndex()
template<class OBJECT_TYPE >
int TrackerOfflineValidation::GetIndex |
( |
const std::vector< OBJECT_TYPE * > & |
vec, |
|
|
const TString & |
name |
|
) |
| |
|
private |
◆ getMedian()
float TrackerOfflineValidation::getMedian |
( |
const TH1 * |
hist | ) |
const |
|
private |
◆ isBarrel()
bool TrackerOfflineValidation::isBarrel |
( |
uint32_t |
subDetId | ) |
|
|
private |
◆ isDetOrDetUnit()
◆ isEndCap()
bool TrackerOfflineValidation::isEndCap |
( |
uint32_t |
subDetId | ) |
|
|
private |
◆ isPixel()
bool TrackerOfflineValidation::isPixel |
( |
uint32_t |
subDetId | ) |
|
|
private |
◆ prepareSummaryHists()
Definition at line 1401 of file TrackerOfflineValidation.cc.
1409 for (
int iComp = 0, iCompEnd = ali.
components().size(); iComp < iCompEnd; ++iComp) {
1410 std::vector<TrackerOfflineValidation::SummaryContainer> vProfiles;
1413 LogDebug(
"TrackerOfflineValidation") <<
"StructureName = " << structurename;
1418 if (structurename !=
"Strip" && structurename !=
"Pixel")
1425 TH1* hX = vLevelProfiles[iComp].sumXResiduals_;
1426 TH1* hNormX = vLevelProfiles[iComp].sumNormXResiduals_;
1427 TH1* hY = vLevelProfiles[iComp].sumYResiduals_;
1428 TH1* hNormY = vLevelProfiles[iComp].sumNormYResiduals_;
1429 TH1* pXX = vLevelProfiles[iComp].sumResXvsXProfile_;
1430 TH1* pXY = vLevelProfiles[iComp].sumResXvsYProfile_;
1431 TH1* pYX = vLevelProfiles[iComp].sumResYvsXProfile_;
1432 TH1* pYY = vLevelProfiles[iComp].sumResYvsYProfile_;
1433 for (
uint n = 0;
n < vProfiles.size(); ++
n) {
1453 toFit_.push_back(vLevelProfiles[iComp].sumXResiduals_);
1454 toFit_.push_back(vLevelProfiles[iComp].sumNormXResiduals_);
1458 toFit_.push_back(hNormY);
References Alignable::alignableObjectId(), alignableTracker_, bookSummaryHists(), makeMuonMisalignmentScenario::components, Alignable::components(), BTVHLTOfflineSource_cfi::dirname, dqmMode_, f, isDetOrDetUnit(), LogDebug, moduleDirectory_, dqmiodumpmetadata::n, findQualityFiles::size, AlCaHLTBitMon_QueryRunRegistry::string, sumHistStructure_, summarizeBinInContainer(), toFit_, and parallelization::uint.
Referenced by checkBookHists().
◆ setSummaryBin()
void TrackerOfflineValidation::setSummaryBin |
( |
int |
bin, |
|
|
TH1 * |
targetHist, |
|
|
TH1 * |
sourceHist |
|
) |
| |
|
private |
◆ setUpTreeMembers()
Definition at line 1704 of file TrackerOfflineValidation.cc.
1707 for (std::map<int, TrackerOfflineValidation::ModuleHistos>::const_iterator it = moduleHist_.begin(),
1708 itEnd = moduleHist_.end();
1714 DetId detId_ = it->first;
1720 unsigned int whichHalfBarrel(1), rawId(detId_.
rawId());
1721 if ((rawId >= 302056964 && rawId < 302059300) || (rawId >= 302123268 && rawId < 302127140) ||
1722 (rawId >= 302189572 && rawId < 302194980))
1723 whichHalfBarrel = 2;
1725 treeMem.
half = whichHalfBarrel;
1729 unsigned int whichHalfCylinder(1), rawId(detId_.
rawId());
1730 if ((rawId >= 352394500 && rawId < 352406032) || (rawId >= 352460036 && rawId < 352471568) ||
1731 (rawId >= 344005892 && rawId < 344017424) || (rawId >= 344071428 && rawId < 344082960))
1732 whichHalfCylinder = 2;
1735 treeMem.
half = whichHalfCylinder;
1740 unsigned int whichHalfShell(1), rawId(detId_.
rawId());
1741 if ((rawId >= 369120484 && rawId < 369120688) || (rawId >= 369121540 && rawId < 369121776) ||
1742 (rawId >= 369136932 && rawId < 369137200) || (rawId >= 369137988 && rawId < 369138288) ||
1743 (rawId >= 369153396 && rawId < 369153744) || (rawId >= 369154436 && rawId < 369154800) ||
1744 (rawId >= 369169844 && rawId < 369170256) || (rawId >= 369170900 && rawId < 369171344) ||
1745 (rawId >= 369124580 && rawId < 369124784) || (rawId >= 369125636 && rawId < 369125872) ||
1746 (rawId >= 369141028 && rawId < 369141296) || (rawId >= 369142084 && rawId < 369142384) ||
1747 (rawId >= 369157492 && rawId < 369157840) || (rawId >= 369158532 && rawId < 369158896) ||
1748 (rawId >= 369173940 && rawId < 369174352) || (rawId >= 369174996 && rawId < 369175440))
1752 treeMem.
half = whichHalfShell;
1789 treeMem.
posX = gPModule.
x();
1790 treeMem.
posY = gPModule.
y();
1791 treeMem.
posZ = gPModule.
z();
1796 LocalPoint lUDirection(1., 0., 0.), lVDirection(0., 1., 0.), lWDirection(0., 0., 1.);
1798 gWDirection = surface.
toGlobal(lWDirection);
1799 double dR(999.),
dPhi(999.), dZ(999.);
1802 dR = gWDirection.perp() - gPModule.
perp();
1804 dZ = gVDirection.z() - gPModule.
z();
1812 dZ = gWDirection.z() - gPModule.
z();
1818 dR = gVDirection.perp() - gPModule.
perp();
1820 dZ = gWDirection.z() - gPModule.
z();
References PV3DBase< T, PVType, FrameType >::barePhi(), TkOffTreeVariables::blade, SiPixelRawToDigiRegional_cfi::deltaPhi, HLT_FULL_cff::dPhi, HGC3DClusterGenMatchSelector_cfi::dR, PV3DBase< T, PVType, FrameType >::eta(), TkOffTreeVariables::half, TrackerGeometry::idToDet(), TkOffTreeVariables::isDoubleSide, TkOffTreeVariables::isStereo, TkOffTreeVariables::layer, TkOffTreeVariables::module, TkOffTreeVariables::moduleId, mTreeMembers_, 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::rod, TkOffTreeVariables::rOrZDirection, TkOffTreeVariables::side, 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(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::z(), and TkOffTreeVariables::zDirection.
Referenced by checkBookHists().
◆ summarizeBinInContainer() [1/2]
Definition at line 1069 of file TrackerOfflineValidation.cc.
1072 summaryBins_.emplace_back(
bin, targetContainer.summaryXResiduals_, sourceContainer.sumXResiduals_);
1073 summaryBins_.emplace_back(
bin, targetContainer.summaryNormXResiduals_, sourceContainer.sumNormXResiduals_);
1075 summaryBins_.emplace_back(
bin, targetContainer.summaryYResiduals_, sourceContainer.sumYResiduals_);
1076 summaryBins_.emplace_back(
bin, targetContainer.summaryNormYResiduals_, sourceContainer.sumNormYResiduals_);
References newFWLiteAna::bin, summaryBins_, TrackerOfflineValidation::SummaryContainer::summaryNormXResiduals_, TrackerOfflineValidation::SummaryContainer::summaryNormYResiduals_, TrackerOfflineValidation::SummaryContainer::summaryXResiduals_, TrackerOfflineValidation::SummaryContainer::summaryYResiduals_, TrackerOfflineValidation::SummaryContainer::sumNormXResiduals_, TrackerOfflineValidation::SummaryContainer::sumNormYResiduals_, TrackerOfflineValidation::SummaryContainer::sumXResiduals_, and TrackerOfflineValidation::SummaryContainer::sumYResiduals_.
Referenced by bookSummaryHists(), and prepareSummaryHists().
◆ summarizeBinInContainer() [2/2]
void TrackerOfflineValidation::summarizeBinInContainer |
( |
int |
bin, |
|
|
uint32_t |
subDetId, |
|
|
SummaryContainer & |
targetContainer, |
|
|
ModuleHistos & |
sourceContainer |
|
) |
| |
|
private |
Definition at line 1079 of file TrackerOfflineValidation.cc.
1084 summaryBins_.emplace_back(
bin, targetContainer.summaryXResiduals_, sourceContainer.ResXprimeHisto);
1085 summaryBins_.emplace_back(
bin, targetContainer.summaryNormXResiduals_, sourceContainer.NormResXprimeHisto);
1087 summaryBins_.emplace_back(
bin, targetContainer.summaryYResiduals_, sourceContainer.ResYprimeHisto);
1088 summaryBins_.emplace_back(
bin, targetContainer.summaryNormYResiduals_, sourceContainer.NormResYprimeHisto);
References newFWLiteAna::bin, isPixel(), TrackerOfflineValidation::ModuleHistos::NormResXprimeHisto, TrackerOfflineValidation::ModuleHistos::NormResYprimeHisto, TrackerOfflineValidation::ModuleHistos::ResXprimeHisto, TrackerOfflineValidation::ModuleHistos::ResYprimeHisto, stripYResiduals_, summaryBins_, TrackerOfflineValidation::SummaryContainer::summaryNormXResiduals_, TrackerOfflineValidation::SummaryContainer::summaryNormYResiduals_, TrackerOfflineValidation::SummaryContainer::summaryXResiduals_, and TrackerOfflineValidation::SummaryContainer::summaryYResiduals_.
◆ alignableTracker_
◆ avalidator_
◆ bareTkGeomPtr_
◆ chargeCut_
const int TrackerOfflineValidation::chargeCut_ |
|
private |
◆ compressionSettings_
const int TrackerOfflineValidation::compressionSettings_ |
|
private |
◆ dqmMode_
const bool TrackerOfflineValidation::dqmMode_ |
|
private |
◆ geomToken_
◆ lCoorHistOn_
const bool TrackerOfflineValidation::lCoorHistOn_ |
|
private |
◆ maxTracks_
const unsigned long long TrackerOfflineValidation::maxTracks_ |
|
private |
◆ moduleDirectory_
const std::string TrackerOfflineValidation::moduleDirectory_ |
|
private |
◆ moduleLevelHistsTransient_
const bool TrackerOfflineValidation::moduleLevelHistsTransient_ |
|
private |
◆ moduleLevelProfiles_
const bool TrackerOfflineValidation::moduleLevelProfiles_ |
|
private |
◆ mPxbResiduals_
◆ mPxeResiduals_
◆ mTecResiduals_
◆ mTibResiduals_
◆ mTidResiduals_
◆ mTobResiduals_
◆ mTreeMembers_
◆ nTracks_
unsigned long long TrackerOfflineValidation::nTracks_ |
|
private |
◆ parSet_
◆ stripYResiduals_
const bool TrackerOfflineValidation::stripYResiduals_ |
|
private |
◆ sumHistStructure_
std::vector<std::pair<TH1*, TH1*> > TrackerOfflineValidation::sumHistStructure_ |
|
private |
◆ summaryBins_
std::vector<std::tuple<int, TH1*, TH1*> > TrackerOfflineValidation::summaryBins_ |
|
private |
◆ tkGeom_
◆ toFit_
std::vector<TH1*> TrackerOfflineValidation::toFit_ |
|
private |
◆ topoToken_
◆ useFit_
const bool TrackerOfflineValidation::useFit_ |
|
private |
◆ useFwhm_
const bool TrackerOfflineValidation::useFwhm_ |
|
private |
◆ useOverflowForRMS_
const bool TrackerOfflineValidation::useOverflowForRMS_ |
|
private |
◆ vDeleteObjects_
std::vector<TH1*> TrackerOfflineValidation::vDeleteObjects_ |
|
private |
◆ vTrack2DHistos_
std::vector<TH1*> TrackerOfflineValidation::vTrack2DHistos_ |
|
private |
◆ vTrackHistos_
std::vector<TH1*> TrackerOfflineValidation::vTrackHistos_ |
|
private |
◆ vTrackProfiles_
std::vector<TH1*> TrackerOfflineValidation::vTrackProfiles_ |
|
private |
const Surface::PositionType & position() const
The position (origin of the R.F.)
const TrackerGeomDet * idToDet(DetId) const override
bool tobIsDoubleSide(const DetId &id) const
T const * product() const
void setSummaryBin(int bin, TH1 *targetHist, TH1 *sourceHist)
bool isBarrel(uint32_t subDetId)
std::map< int, TrackerOfflineValidation::ModuleHistos > mTibResiduals_
std::map< int, TrackerOfflineValidation::ModuleHistos > mPxeResiduals_
std::vector< TH1 * > vDeleteObjects_
void summarizeBinInContainer(int bin, SummaryContainer &targetContainer, SummaryContainer &sourceContainer)
std::map< int, TrackerOfflineValidation::ModuleHistos > mPxbResiduals_
unsigned int pxfSide(const DetId &id) const
const edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > topoToken_
std::map< int, TkOffTreeVariables > mTreeMembers_
const edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > geomToken_
const bool stripYResiduals_
bool tecIsDoubleSide(const DetId &id) const
constexpr Detector det() const
get the detector field from this detid
TFile & file() const
return opened TFile
void bookDirHists(DirectoryWrapper &tfd, const Alignable &ali, const TrackerTopology *tTopo)
bool tidIsDoubleSide(const DetId &id) const
unsigned int pxbLadder(const DetId &id) const
void fillTrackQuantities(const edm::Event &, const edm::EventSetup &, std::vector< AVTrackStruct > &v_avtrackout)
void bookHists(DirectoryWrapper &tfd, const Alignable &ali, const TrackerTopology *tTopo, align::StructureType type, int i)
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
int GetIndex(const std::vector< OBJECT_TYPE * > &vec, const TString &name)
TProfile * bookTProfile(bool isTransient, DirectoryWrapper &tfd, const char *histName, const char *histTitle, int nBinsX, double lowX, double highX)
ModuleHistos & getHistStructFromMap(const DetId &detid)
T getUntrackedParameter(std::string const &, T const &) const
Log< level::Info, false > LogInfo
const unsigned long long maxTracks_
void getBinning(uint32_t subDetId, TrackerOfflineValidation::HistogramType residualtype, int &nBinsX, double &lowerBoundX, double &upperBoundX)
Log< level::Warning, false > LogWarning
std::map< int, TrackerOfflineValidation::ModuleHistos > mTobResiduals_
std::string histNameLocalX
unsigned int tidRing(const DetId &id) const
const int compressionSettings_
TrackerOfflineValidation::SummaryContainer bookSummaryHists(DirectoryWrapper &tfd, const Alignable &ali, align::StructureType type, int i)
uint32_t tobStereo(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
std::unique_ptr< AlignableTracker > alignableTracker_
unsigned int pxbLayer(const DetId &id) const
Float_t numberOfOverflows
unsigned int pxfPanel(const DetId &id) const
virtual void checkBookHists(const edm::EventSetup &setup)
std::vector< unsigned int > tobRodInfo(const DetId &id) const
const Plane & surface() const
The nominal surface of the GeomDet.
unsigned long long nTracks_
std::vector< unsigned int > tibStringInfo(const DetId &id) const
TH1 * bookTH1F(bool isTransient, DirectoryWrapper &tfd, const char *histName, const char *histTitle, int nBinsX, double lowX, double highX)
std::vector< unsigned int > tidModuleInfo(const DetId &id) const
const TrackerGeometry * bareTkGeomPtr_
std::string profileNameResXvsY
std::string profileNameResYvsX
bool isPixel(uint32_t subDetId)
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
std::vector< TH1 * > vTrack2DHistos_
const std::string moduleDirectory_
Float_t numberOfUnderflows
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
std::map< int, TrackerOfflineValidation::ModuleHistos > mTecResiduals_
static constexpr auto TIB
std::vector< std::tuple< int, TH1 *, TH1 * > > summaryBins_
std::vector< TH1 * > toFit_
std::string histNameNormY
void fillTree(TTree &tree, TkOffTreeVariables &treeMem, const std::map< int, TrackerOfflineValidation::ModuleHistos > &moduleHist_)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
std::pair< int, int > typeAndLayerFromDetId(const DetId &detId, const TrackerTopology *tTopo) const
uint32_t tibStereo(const DetId &id) const
float Fwhm(const TH1 *hist) const
std::string profileNameResXvsX
TrackerValidationVariables avalidator_
std::vector< std::pair< TH1 *, TH1 * > > sumHistStructure_
edm::ESHandle< TrackerGeometry > tkGeom_
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
Tan< T >::type tan(const T &t)
uint32_t tidStereo(const DetId &id) const
unsigned int tibModule(const DetId &id) const
unsigned int tidSide(const DetId &id) const
bool isDetOrDetUnit(align::StructureType type)
unsigned int tecRing(const DetId &id) const
ring id
unsigned int pxfModule(const DetId &id) const
unsigned int pxfDisk(const DetId &id) const
Log< level::Error, false > LogError
moduleLevelHistsTransient
void collateSummaryHists()
std::string profileNameResYvsY
void bookGlobalHists(DirectoryWrapper &tfd)
unsigned int tobLayer(const DetId &id) const
constexpr uint32_t rawId() const
get the raw id
static constexpr auto TEC
unsigned int tobModule(const DetId &id) const
unsigned int pxbModule(const DetId &id) const
bool tibIsDoubleSide(const DetId &id) const
void setUpTreeMembers(const std::map< int, TrackerOfflineValidation::ModuleHistos > &moduleHist_, const TrackerGeometry &tkgeom, const TrackerTopology *tTopo)
static const std::string kSharedResource
const edm::ParameterSet parSet_
constexpr unsigned int subDetId[21]
static constexpr auto TOB
void prepareSummaryHists(DirectoryWrapper &tfd, const Alignable &ali, std::vector< TrackerOfflineValidation::SummaryContainer > &vLevelProfiles)
float getMedian(const TH1 *hist) const
T getParameter(std::string const &) const
std::vector< TH1 * > vTrackProfiles_
const DetIdContainer & detIds() const override
Returm a vector of all GeomDet DetIds (including those of GeomDetUnits)
unsigned int tecModule(const DetId &id) const
std::string histNameNormX
std::string histNameNormLocalX
std::vector< TH1 * > vTrackHistos_
unsigned int pxfBlade(const DetId &id) const
std::vector< unsigned int > tecPetalInfo(const DetId &id) const
const bool useOverflowForRMS_
const bool moduleLevelHistsTransient_
const DetIdContainer & detUnitIds() const override
Returm a vector of all GeomDetUnit DetIds.
virtual const Alignables & components() const =0
Return vector of all direct components.
unsigned int tecWheel(const DetId &id) const
std::map< int, TrackerOfflineValidation::ModuleHistos > mTidResiduals_
Geom::Phi< T > phi() const
static constexpr auto TID
T * make(const Args &... args) const
make new ROOT object
const bool moduleLevelProfiles_
uint32_t tecStereo(const DetId &id) const
std::string histNameLocalY
unsigned int tibLayer(const DetId &id) const
container to hold data to be written into TTree
unsigned int tecSide(const DetId &id) const
std::pair< float, float > fitResiduals(TH1 *hist) const
bool isEndCap(uint32_t subDetId)