CMS 3D CMS Logo

List of all members | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
SiStripGainsPCLWorker Class Reference

user includes More...

#include <SiStripGainsPCLWorker.h>

Inheritance diagram for SiStripGainsPCLWorker:
DQMGlobalEDAnalyzer< APVGain::APVGainHistograms > DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... > edm::global::EDProducer< edm::RunCache< APVGain::APVGainHistograms >, edm::EndRunProducer, edm::Accumulator, Args... > edm::global::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Member Functions

void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, APVGain::APVGainHistograms &) const override
 
void dqmAnalyze (edm::Event const &, edm::EventSetup const &, APVGain::APVGainHistograms const &) const override
 
 SiStripGainsPCLWorker (const edm::ParameterSet &)
 
- Public Member Functions inherited from DQMGlobalEDAnalyzer< APVGain::APVGainHistograms >
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &, APVGain::APVGainHistograms const &) const
 
void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final
 
- Public Member Functions inherited from DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >
void accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final
 
 DQMGlobalEDAnalyzerBase ()
 
std::shared_ptr< APVGain::APVGainHistogramsglobalBeginRun (edm::Run const &run, edm::EventSetup const &setup) const final
 
void globalEndRun (edm::Run const &, edm::EventSetup const &) const final
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< APVGain::APVGainHistograms >, edm::EndRunProducer, edm::Accumulator, Args... >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
bool wantsStreamLuminosityBlocks () const final
 
bool wantsStreamRuns () const final
 
- Public Member Functions inherited from edm::global::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) 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)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from edm::global::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void beginJob () override
 
void checkBookAPVColls (const TrackerGeometry *bareTkGeomPtr, APVGain::APVGainHistograms &histograms) const
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &, APVGain::APVGainHistograms &) const override
 
int statCollectionFromMode (const char *tag) const
 

Private Attributes

bool AllowSaturation
 
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
 
std::string CalibPrefix_
 
std::string CalibSuffix_
 
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
 
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
 
bool doChargeMonitorPerPlane
 
std::vector< std::string > dqm_tag_
 
std::string EventPrefix_
 
std::string EventSuffix_
 
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
 
bool FirstSetOfConstants
 
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
 
edm::ESGetToken< SiStripGain, SiStripGainRcdgainToken_
 
edm::EDGetTokenT< std::vector< double > > gainused_token_
 
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
 
edm::EDGetTokenT< std::vector< double > > localdirx_token_
 
edm::EDGetTokenT< std::vector< double > > localdiry_token_
 
edm::EDGetTokenT< std::vector< double > > localdirz_token_
 
std::string m_calibrationMode
 
std::string m_DQMdir
 
unsigned int MaxNrStrips
 
double MaxTrackChiOverNdf
 
double MaxTrackEta
 
int MaxTrackingIteration
 
double MaxTrackMomentum
 
double MinTrackEta
 
unsigned int MinTrackHits
 
double MinTrackMomentum
 
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
 
bool OldGainRemoving
 
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
 
edm::EDGetTokenT< std::vector< double > > path_token_
 
edm::ESGetToken< SiStripQuality, SiStripQualityRcdqualityToken_
 
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
 
edm::EDGetTokenT< std::vector< bool > > saturation_token_
 
std::map< unsigned int, APVloctheTopologyMap
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtkGeomToken_
 
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
 
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
 
edm::EDGetTokenT< std::vector< double > > tracketa_token_
 
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
 
edm::EDGetTokenT< std::vector< int > > trackindex_token_
 
edm::EDGetTokenT< std::vector< float > > trackp_token_
 
edm::EDGetTokenT< std::vector< double > > trackphi_token_
 
std::string TrackPrefix_
 
edm::EDGetTokenT< std::vector< float > > trackpt_token_
 
std::string TrackSuffix_
 
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 
bool useCalibration
 
bool Validation
 
std::vector< std::string > VChargeHisto
 

Additional Inherited Members

- Public Types inherited from DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::global::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >
uint64_t meId (edm::Run const &run) const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- 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)
 
- Protected Attributes inherited from DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >
DQMStoredqmstore_
 
edm::EDPutTokenT< DQMTokenrunToken_
 

Detailed Description

user includes

Description: Fill DQM histograms with SiStrip Charge normalized to path length

Definition at line 74 of file SiStripGainsPCLWorker.h.

Constructor & Destructor Documentation

◆ SiStripGainsPCLWorker()

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

Definition at line 9 of file SiStripGainsPCLWorker.cc.

9  {
10  MinTrackMomentum = iConfig.getUntrackedParameter<double>("minTrackMomentum", 3.0);
11  MaxTrackMomentum = iConfig.getUntrackedParameter<double>("maxTrackMomentum", 99999.0);
12  MinTrackEta = iConfig.getUntrackedParameter<double>("minTrackEta", -5.0);
13  MaxTrackEta = iConfig.getUntrackedParameter<double>("maxTrackEta", 5.0);
14  MaxNrStrips = iConfig.getUntrackedParameter<unsigned>("maxNrStrips", 2);
15  MinTrackHits = iConfig.getUntrackedParameter<unsigned>("MinTrackHits", 8);
16  MaxTrackChiOverNdf = iConfig.getUntrackedParameter<double>("MaxTrackChiOverNdf", 3);
17  MaxTrackingIteration = iConfig.getUntrackedParameter<int>("MaxTrackingIteration", 7);
18  AllowSaturation = iConfig.getUntrackedParameter<bool>("AllowSaturation", false);
19  FirstSetOfConstants = iConfig.getUntrackedParameter<bool>("FirstSetOfConstants", true);
20  Validation = iConfig.getUntrackedParameter<bool>("Validation", false);
21  OldGainRemoving = iConfig.getUntrackedParameter<bool>("OldGainRemoving", false);
22  useCalibration = iConfig.getUntrackedParameter<bool>("UseCalibration", false);
23  doChargeMonitorPerPlane = iConfig.getUntrackedParameter<bool>("doChargeMonitorPerPlane", false);
24  m_DQMdir = iConfig.getUntrackedParameter<std::string>("DQMdir", "AlCaReco/SiStripGains");
25  m_calibrationMode = iConfig.getUntrackedParameter<std::string>("calibrationMode", "StdBunch");
26  VChargeHisto = iConfig.getUntrackedParameter<std::vector<std::string>>("ChargeHisto");
27 
28  // fill in the mapping between the histogram indices and the (id,side,plane) tuple
29  std::vector<std::pair<std::string, std::string>> hnames =
31  for (unsigned int i = 0; i < hnames.size(); i++) {
32  int id = APVGain::subdetectorId((hnames[i]).first);
33  int side = APVGain::subdetectorSide((hnames[i]).first);
34  int plane = APVGain::subdetectorPlane((hnames[i]).first);
35  int thick = APVGain::thickness((hnames[i]).first);
36  std::string s = hnames[i].first;
37 
38  auto loc = APVloc(thick, id, side, plane, s);
39  theTopologyMap.insert(std::make_pair(i, loc));
40  }
41 
42  //Set the monitoring element tag and store
43  dqm_tag_.reserve(7);
44  dqm_tag_.clear();
45  dqm_tag_.push_back("StdBunch"); // statistic collection from Standard Collision Bunch @ 3.8 T
46  dqm_tag_.push_back("StdBunch0T"); // statistic collection from Standard Collision Bunch @ 0 T
47  dqm_tag_.push_back("AagBunch"); // statistic collection from First Collision After Abort Gap @ 3.8 T
48  dqm_tag_.push_back("AagBunch0T"); // statistic collection from First Collision After Abort Gap @ 0 T
49  dqm_tag_.push_back("IsoMuon"); // statistic collection from Isolated Muon @ 3.8 T
50  dqm_tag_.push_back("IsoMuon0T"); // statistic collection from Isolated Muon @ 0 T
51  dqm_tag_.push_back("Harvest"); // statistic collection: Harvest
52 
53  // configure token for gathering the ntuple variables
54  edm::ParameterSet swhallowgain_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("gain");
55 
56  std::string label = swhallowgain_pset.getUntrackedParameter<std::string>("label");
57  CalibPrefix_ = swhallowgain_pset.getUntrackedParameter<std::string>("prefix");
58  CalibSuffix_ = swhallowgain_pset.getUntrackedParameter<std::string>("suffix");
59 
60  trackindex_token_ = consumes<std::vector<int>>(edm::InputTag(label, CalibPrefix_ + "trackindex" + CalibSuffix_));
61  rawid_token_ = consumes<std::vector<unsigned int>>(edm::InputTag(label, CalibPrefix_ + "rawid" + CalibSuffix_));
62  localdirx_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdirx" + CalibSuffix_));
63  localdiry_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdiry" + CalibSuffix_));
64  localdirz_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdirz" + CalibSuffix_));
66  consumes<std::vector<unsigned short>>(edm::InputTag(label, CalibPrefix_ + "firststrip" + CalibSuffix_));
67  nstrips_token_ = consumes<std::vector<unsigned short>>(edm::InputTag(label, CalibPrefix_ + "nstrips" + CalibSuffix_));
68  saturation_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "saturation" + CalibSuffix_));
69  overlapping_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "overlapping" + CalibSuffix_));
70  farfromedge_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "farfromedge" + CalibSuffix_));
71  charge_token_ = consumes<std::vector<unsigned int>>(edm::InputTag(label, CalibPrefix_ + "charge" + CalibSuffix_));
72  path_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "path" + CalibSuffix_));
73 #ifdef ExtendedCALIBTree
75  consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "chargeoverpath" + CalibSuffix_));
76 #endif
78  consumes<std::vector<unsigned char>>(edm::InputTag(label, CalibPrefix_ + "amplitude" + CalibSuffix_));
79  gainused_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "gainused" + CalibSuffix_));
81  consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "gainusedTick" + CalibSuffix_));
82 
83  edm::ParameterSet evtinfo_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("evtinfo");
84  label = evtinfo_pset.getUntrackedParameter<std::string>("label");
85  EventPrefix_ = evtinfo_pset.getUntrackedParameter<std::string>("prefix");
86  EventSuffix_ = evtinfo_pset.getUntrackedParameter<std::string>("suffix");
87  TrigTech_token_ = consumes<std::vector<bool>>(edm::InputTag(label, EventPrefix_ + "TrigTech" + EventSuffix_));
88 
89  edm::ParameterSet track_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("tracks");
90  label = track_pset.getUntrackedParameter<std::string>("label");
91  TrackPrefix_ = track_pset.getUntrackedParameter<std::string>("prefix");
92  TrackSuffix_ = track_pset.getUntrackedParameter<std::string>("suffix");
93 
94  trackchi2ndof_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "chi2ndof" + TrackSuffix_));
95  trackp_token_ = consumes<std::vector<float>>(edm::InputTag(label, TrackPrefix_ + "momentum" + TrackSuffix_));
96  trackpt_token_ = consumes<std::vector<float>>(edm::InputTag(label, TrackPrefix_ + "pt" + TrackSuffix_));
97  tracketa_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "eta" + TrackSuffix_));
98  trackphi_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "phi" + TrackSuffix_));
100  consumes<std::vector<unsigned int>>(edm::InputTag(label, TrackPrefix_ + "hitsvalid" + TrackSuffix_));
101  trackalgo_token_ = consumes<std::vector<int>>(edm::InputTag(label, TrackPrefix_ + "algo" + TrackSuffix_));
102 
104  tkGeomToken_ = esConsumes<edm::Transition::BeginRun>();
105  gainToken_ = esConsumes<edm::Transition::BeginRun>();
106  qualityToken_ = esConsumes<edm::Transition::BeginRun>();
107 }

References AllowSaturation, amplitude_token_, CalibPrefix_, CalibSuffix_, charge_token_, chargeoverpath_token_, doChargeMonitorPerPlane, dqm_tag_, edm::EDConsumerBase::esConsumes(), EventPrefix_, EventSuffix_, farfromedge_token_, dqmdumpme::first, FirstSetOfConstants, firststrip_token_, gainToken_, gainused_token_, gainusedTick_token_, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, HLT_FULL_cff::InputTag, label, localdirx_token_, localdiry_token_, localdirz_token_, m_calibrationMode, m_DQMdir, MaxNrStrips, MaxTrackChiOverNdf, MaxTrackEta, MaxTrackingIteration, MaxTrackMomentum, MinTrackEta, MinTrackHits, MinTrackMomentum, APVGain::monHnames(), nstrips_token_, OldGainRemoving, overlapping_token_, path_token_, qualityToken_, rawid_token_, alignCSCRings::s, saturation_token_, AlCaHLTBitMon_QueryRunRegistry::string, APVGain::subdetectorId(), APVGain::subdetectorPlane(), APVGain::subdetectorSide(), theTopologyMap, APVGain::thickness(), tkGeomToken_, trackalgo_token_, trackchi2ndof_token_, tracketa_token_, trackhitsvalid_token_, trackindex_token_, trackp_token_, trackphi_token_, TrackPrefix_, trackpt_token_, TrackSuffix_, TrigTech_token_, tTopoToken_, useCalibration, Validation, and VChargeHisto.

Member Function Documentation

◆ beginJob()

void SiStripGainsPCLWorker::beginJob ( void  )
overrideprivatevirtual

Reimplemented from edm::global::EDProducerBase.

Definition at line 433 of file SiStripGainsPCLWorker.cc.

433 {}

◆ bookHistograms()

void SiStripGainsPCLWorker::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  setup,
APVGain::APVGainHistograms histograms 
) const
overridevirtual

Implements DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >.

Definition at line 552 of file SiStripGainsPCLWorker.cc.

555  {
556  ibooker.cd();
557  std::string dqm_dir = m_DQMdir;
558  const char* tag = dqm_tag_[statCollectionFromMode(m_calibrationMode.c_str())].c_str();
559 
560  edm::LogInfo("SiStripGainsPCLWorker") << "Setting " << dqm_dir << " in DQM and booking histograms for tag " << tag
561  << std::endl;
562 
563  ibooker.setCurrentFolder(dqm_dir);
564 
565  // this MonitorElement is created to log the number of events / tracks and clusters used
566  // by the calibration algorithm
567 
568  histograms.EventStats = ibooker.book2S("EventStats", "Statistics", 3, -0.5, 2.5, 1, 0, 1);
569  histograms.EventStats->setBinLabel(1, "events count", 1);
570  histograms.EventStats->setBinLabel(2, "tracks count", 1);
571  histograms.EventStats->setBinLabel(3, "clusters count", 1);
572 
573  std::string stag(tag);
574  if (!stag.empty() && stag[0] != '_')
575  stag.insert(0, 1, '_');
576 
577  std::string cvi = std::string("Charge_Vs_Index") + stag;
578  std::string cvpTIB = std::string("Charge_Vs_PathlengthTIB") + stag;
579  std::string cvpTOB = std::string("Charge_Vs_PathlengthTOB") + stag;
580  std::string cvpTIDP = std::string("Charge_Vs_PathlengthTIDP") + stag;
581  std::string cvpTIDM = std::string("Charge_Vs_PathlengthTIDM") + stag;
582  std::string cvpTECP1 = std::string("Charge_Vs_PathlengthTECP1") + stag;
583  std::string cvpTECP2 = std::string("Charge_Vs_PathlengthTECP2") + stag;
584  std::string cvpTECM1 = std::string("Charge_Vs_PathlengthTECM1") + stag;
585  std::string cvpTECM2 = std::string("Charge_Vs_PathlengthTECM2") + stag;
586 
587  int elepos = statCollectionFromMode(tag);
588 
589  histograms.Charge_Vs_Index.reserve(dqm_tag_.size());
590  histograms.Charge_Vs_PathlengthTIB.reserve(dqm_tag_.size());
591  histograms.Charge_Vs_PathlengthTOB.reserve(dqm_tag_.size());
592  histograms.Charge_Vs_PathlengthTIDP.reserve(dqm_tag_.size());
593  histograms.Charge_Vs_PathlengthTIDM.reserve(dqm_tag_.size());
594  histograms.Charge_Vs_PathlengthTECP1.reserve(dqm_tag_.size());
595  histograms.Charge_Vs_PathlengthTECP2.reserve(dqm_tag_.size());
596  histograms.Charge_Vs_PathlengthTECM1.reserve(dqm_tag_.size());
597  histograms.Charge_Vs_PathlengthTECM2.reserve(dqm_tag_.size());
598 
599  // The cluster charge is stored by exploiting a non uniform binning in order
600  // reduce the histogram memory size. The bin width is relaxed with a falling
601  // exponential function and the bin boundaries are stored in the binYarray.
602  // The binXarray is used to provide as many bins as the APVs.
603  //
604  // More details about this implementations are here:
605  // https://indico.cern.ch/event/649344/contributions/2672267/attachments/1498323/2332518/OptimizeChHisto.pdf
606 
607  std::vector<float> binXarray;
608  binXarray.reserve(histograms.NStripAPVs + 1);
609  for (unsigned int a = 0; a <= histograms.NStripAPVs; a++) {
610  binXarray.push_back((float)a);
611  }
612 
613  std::array<float, 688> binYarray;
614  double p0 = 5.445;
615  double p1 = 0.002113;
616  double p2 = 69.01576;
617  double y = 0.;
618  for (int b = 0; b < 687; b++) {
619  binYarray[b] = y;
620  if (y <= 902.)
621  y = y + 2.;
622  else
623  y = (p0 - log(exp(p0 - p1 * y) - p2 * p1)) / p1;
624  }
625  binYarray[687] = 4000.;
626 
627  histograms.Charge_1[elepos].clear();
628  histograms.Charge_2[elepos].clear();
629  histograms.Charge_3[elepos].clear();
630  histograms.Charge_4[elepos].clear();
631 
632  auto it = histograms.Charge_Vs_Index.begin();
633  histograms.Charge_Vs_Index.insert(
634  it + elepos,
635  ibooker.book2S(cvi.c_str(), cvi.c_str(), histograms.NStripAPVs, &binXarray[0], 687, binYarray.data()));
636 
637  it = histograms.Charge_Vs_PathlengthTIB.begin();
638  histograms.Charge_Vs_PathlengthTIB.insert(it + elepos,
639  ibooker.book2S(cvpTIB.c_str(), cvpTIB.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
640 
641  it = histograms.Charge_Vs_PathlengthTOB.begin();
642  histograms.Charge_Vs_PathlengthTOB.insert(it + elepos,
643  ibooker.book2S(cvpTOB.c_str(), cvpTOB.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
644 
645  it = histograms.Charge_Vs_PathlengthTIDP.begin();
646  histograms.Charge_Vs_PathlengthTIDP.insert(
647  it + elepos, ibooker.book2S(cvpTIDP.c_str(), cvpTIDP.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
648 
649  it = histograms.Charge_Vs_PathlengthTIDM.begin();
650  histograms.Charge_Vs_PathlengthTIDM.insert(
651  it + elepos, ibooker.book2S(cvpTIDM.c_str(), cvpTIDM.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
652 
653  it = histograms.Charge_Vs_PathlengthTECP1.begin();
654  histograms.Charge_Vs_PathlengthTECP1.insert(
655  it + elepos, ibooker.book2S(cvpTECP1.c_str(), cvpTECP1.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
656 
657  it = histograms.Charge_Vs_PathlengthTECP2.begin();
658  histograms.Charge_Vs_PathlengthTECP2.insert(
659  it + elepos, ibooker.book2S(cvpTECP2.c_str(), cvpTECP2.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
660 
661  it = histograms.Charge_Vs_PathlengthTECM1.begin();
662  histograms.Charge_Vs_PathlengthTECM1.insert(
663  it + elepos, ibooker.book2S(cvpTECM1.c_str(), cvpTECM1.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
664 
665  it = histograms.Charge_Vs_PathlengthTECM2.begin();
666  histograms.Charge_Vs_PathlengthTECM2.insert(
667  it + elepos, ibooker.book2S(cvpTECM2.c_str(), cvpTECM2.c_str(), 20, 0.3, 1.3, 250, 0, 2000));
668 
669  std::vector<std::pair<std::string, std::string>> hnames =
671  for (unsigned int i = 0; i < hnames.size(); i++) {
672  std::string htag = (hnames[i]).first + stag;
673  histograms.Charge_1[elepos].push_back(ibooker.book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.));
674  }
675 
677  for (unsigned int i = 0; i < hnames.size(); i++) {
678  std::string htag = (hnames[i]).first + stag;
679  histograms.Charge_2[elepos].push_back(ibooker.book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.));
680  }
681 
683  for (unsigned int i = 0; i < hnames.size(); i++) {
684  std::string htag = (hnames[i]).first + stag;
685  histograms.Charge_3[elepos].push_back(ibooker.book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.));
686  }
687 
689  for (unsigned int i = 0; i < hnames.size(); i++) {
690  std::string htag = (hnames[i]).first + stag;
691  histograms.Charge_4[elepos].push_back(ibooker.book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.));
692  }
693 }

References a, b, dqm::implementation::IBooker::book1DD(), dqm::implementation::IBooker::book2S(), dqm::implementation::NavigatorBase::cd(), doChargeMonitorPerPlane, dqm_tag_, JetChargeProducer_cfi::exp, dqmdumpme::first, mps_fire::i, dqm-mbProfile::log, m_calibrationMode, m_DQMdir, APVGain::monHnames(), p1, p2, edm::second(), dqm::implementation::NavigatorBase::setCurrentFolder(), statCollectionFromMode(), AlCaHLTBitMon_QueryRunRegistry::string, GlobalPosition_Frontier_DevDB_cff::tag, VChargeHisto, and y.

◆ checkBookAPVColls()

void SiStripGainsPCLWorker::checkBookAPVColls ( const TrackerGeometry bareTkGeomPtr,
APVGain::APVGainHistograms histograms 
) const
private

Definition at line 437 of file SiStripGainsPCLWorker.cc.

438  {
439  if (bareTkGeomPtr) { // pointer not yet set: called the first time => fill the APVColls
440  auto const& Det = bareTkGeomPtr->dets();
441 
442  edm::LogInfo("SiStripGainsPCLWorker") << " Resetting APV struct" << std::endl;
443 
444  unsigned int Index = 0;
445 
446  for (unsigned int i = 0; i < Det.size(); i++) {
447  DetId Detid = Det[i]->geographicalId();
448  int SubDet = Detid.subdetId();
449 
452  auto DetUnit = dynamic_cast<const StripGeomDetUnit*>(Det[i]);
453  if (!DetUnit)
454  continue;
455 
456  const StripTopology& Topo = DetUnit->specificTopology();
457  unsigned int NAPV = Topo.nstrips() / 128;
458 
459  for (unsigned int j = 0; j < NAPV; j++) {
460  auto APV = std::make_shared<stAPVGain>();
461  APV->Index = Index;
462  APV->Bin = -1;
463  APV->DetId = Detid.rawId();
464  APV->APVId = j;
465  APV->SubDet = SubDet;
466  APV->FitMPV = -1;
467  APV->FitMPVErr = -1;
468  APV->FitWidth = -1;
469  APV->FitWidthErr = -1;
470  APV->FitChi2 = -1;
471  APV->FitNorm = -1;
472  APV->Gain = -1;
473  APV->PreviousGain = 1;
474  APV->PreviousGainTick = 1;
475  APV->x = DetUnit->position().basicVector().x();
476  APV->y = DetUnit->position().basicVector().y();
477  APV->z = DetUnit->position().basicVector().z();
478  APV->Eta = DetUnit->position().basicVector().eta();
479  APV->Phi = DetUnit->position().basicVector().phi();
480  APV->R = DetUnit->position().basicVector().transverse();
481  APV->Thickness = DetUnit->surface().bounds().thickness();
482  APV->NEntries = 0;
483  APV->isMasked = false;
484 
485  histograms.APVsCollOrdered.push_back(APV);
486  histograms.APVsColl[(APV->DetId << 4) | APV->APVId] = APV;
487  Index++;
488  histograms.NStripAPVs++;
489  } // loop on APVs
490  } // if is Strips
491  } // loop on dets
492 
493  for (unsigned int i = 0; i < Det.size();
494  i++) { //Make two loop such that the Pixel information is added at the end --> make transition simpler
495  DetId Detid = Det[i]->geographicalId();
496  int SubDet = Detid.subdetId();
498  auto DetUnit = dynamic_cast<const PixelGeomDetUnit*>(Det[i]);
499  if (!DetUnit)
500  continue;
501 
502  const PixelTopology& Topo = DetUnit->specificTopology();
503  unsigned int NROCRow = Topo.nrows() / (80.);
504  unsigned int NROCCol = Topo.ncolumns() / (52.);
505 
506  for (unsigned int j = 0; j < NROCRow; j++) {
507  for (unsigned int i = 0; i < NROCCol; i++) {
508  auto APV = std::make_shared<stAPVGain>();
509  APV->Index = Index;
510  APV->Bin = -1;
511  APV->DetId = Detid.rawId();
512  APV->APVId = (j << 3 | i);
513  APV->SubDet = SubDet;
514  APV->FitMPV = -1;
515  APV->FitMPVErr = -1;
516  APV->FitWidth = -1;
517  APV->FitWidthErr = -1;
518  APV->FitChi2 = -1;
519  APV->Gain = -1;
520  APV->PreviousGain = 1;
521  APV->PreviousGainTick = 1;
522  APV->x = DetUnit->position().basicVector().x();
523  APV->y = DetUnit->position().basicVector().y();
524  APV->z = DetUnit->position().basicVector().z();
525  APV->Eta = DetUnit->position().basicVector().eta();
526  APV->Phi = DetUnit->position().basicVector().phi();
527  APV->R = DetUnit->position().basicVector().transverse();
528  APV->Thickness = DetUnit->surface().bounds().thickness();
529  APV->isMasked = false; //SiPixelQuality_->IsModuleBad(Detid.rawId());
530  APV->NEntries = 0;
531 
532  histograms.APVsCollOrdered.push_back(APV);
533  histograms.APVsColl[(APV->DetId << 4) | APV->APVId] = APV;
534  Index++;
535  histograms.NPixelDets++;
536 
537  } // loop on ROC cols
538  } // loop on ROC rows
539  } // if Pixel
540  } // loop on Dets
541  } //if (!bareTkGeomPtr_) ...
542 }

References sistrip::APV, TrackerGeometry::dets(), mps_fire::i, dqmiolumiharvest::j, PixelTopology::ncolumns(), PixelTopology::nrows(), StripTopology::nstrips(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), ntupleEnum::SubDet, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, and StripSubdetector::TOB.

Referenced by dqmBeginRun().

◆ dqmAnalyze()

void SiStripGainsPCLWorker::dqmAnalyze ( edm::Event const &  iEvent,
edm::EventSetup const &  iSetup,
APVGain::APVGainHistograms const &  histograms 
) const
overridevirtual

Implements DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >.

Definition at line 162 of file SiStripGainsPCLWorker.cc.

164  {
165  using namespace edm;
166 
167  unsigned int eventnumber = iEvent.id().event();
168  unsigned int runnumber = iEvent.id().run();
169 
170  edm::LogInfo("SiStripGainsPCLWorker") << "Processing run " << runnumber << " and event " << eventnumber << std::endl;
171 
172  const TrackerTopology* topo = &iSetup.getData(tTopoToken_);
173 
174  // *****************************
175  // * Event data handles
176  // *****************************
177 
178  //Event data
179 
180  // Track data
182  iEvent.getByToken(trackchi2ndof_token_, handle01);
183  auto trackchi2ndof = handle01.product();
184 
186  iEvent.getByToken(trackp_token_, handle02);
187  auto trackp = handle02.product();
188 
190  iEvent.getByToken(tracketa_token_, handle03);
191  auto tracketa = handle03.product();
192 
194  iEvent.getByToken(trackhitsvalid_token_, handle04);
195  auto trackhitsvalid = handle04.product();
196 
198  iEvent.getByToken(trackalgo_token_, handle05);
199  auto trackalgo = handle05.product();
200 
201  // CalibTree data
203  iEvent.getByToken(trackindex_token_, handle06);
204  auto trackindex = handle06.product();
205 
207  iEvent.getByToken(rawid_token_, handle07);
208  auto rawid = handle07.product();
209 
211  iEvent.getByToken(firststrip_token_, handle08);
212  auto firststrip = handle08.product();
213 
215  iEvent.getByToken(nstrips_token_, handle09);
216  auto nstrips = handle09.product();
217 
219  iEvent.getByToken(saturation_token_, handle10);
220  auto saturation = handle10.product();
221 
223  iEvent.getByToken(overlapping_token_, handle11);
224  auto overlapping = handle11.product();
225 
227  iEvent.getByToken(farfromedge_token_, handle12);
228  auto farfromedge = handle12.product();
229 
231  iEvent.getByToken(charge_token_, handle13);
232  auto charge = handle13.product();
233 
235  iEvent.getByToken(path_token_, handle14);
236  auto path = handle14.product();
237 
238 #ifdef ExtendedCALIBTree
240  iEvent.getByToken(chargeoverpath_token_, handle15);
241  auto chargeoverpath = handle15.product();
242 #endif
243 
245  iEvent.getByToken(amplitude_token_, handle16);
246  auto amplitude = handle16.product();
247 
249  iEvent.getByToken(gainused_token_, handle17);
250  auto gainused = handle17.product();
251 
253  iEvent.getByToken(gainusedTick_token_, handle18);
254  auto gainusedTick = handle18.product();
255 
256  for (const auto& elem : theTopologyMap) {
257  LogDebug("SiStripGainsPCLWorker") << elem.first << " - " << elem.second.m_string << " "
258  << elem.second.m_subdetectorId << " " << elem.second.m_subdetectorSide << " "
259  << elem.second.m_subdetectorPlane << std::endl;
260  }
261 
262  LogDebug("SiStripGainsPCLWorker") << "for mode" << m_calibrationMode << std::endl;
263 
264  int elepos = statCollectionFromMode(m_calibrationMode.c_str());
265 
266  histograms.EventStats->Fill(0., 0., 1);
267  histograms.EventStats->Fill(1., 0., trackp->size());
268  histograms.EventStats->Fill(2., 0., charge->size());
269 
270  unsigned int FirstAmplitude = 0;
271  for (unsigned int i = 0; i < charge->size(); i++) {
272  FirstAmplitude += (*nstrips)[i];
273  int TI = (*trackindex)[i];
274 
275  if ((*tracketa)[TI] < MinTrackEta)
276  continue;
277  if ((*tracketa)[TI] > MaxTrackEta)
278  continue;
279  if ((*trackp)[TI] < MinTrackMomentum)
280  continue;
281  if ((*trackp)[TI] > MaxTrackMomentum)
282  continue;
283  if ((*trackhitsvalid)[TI] < MinTrackHits)
284  continue;
285  if ((*trackchi2ndof)[TI] > MaxTrackChiOverNdf)
286  continue;
287  if ((*trackalgo)[TI] > MaxTrackingIteration)
288  continue;
289 
290  std::shared_ptr<stAPVGain> APV = histograms.APVsColl.at(
291  ((*rawid)[i] << 4) |
292  ((*firststrip)[i] /
293  128)); //works for both strip and pixel thanks to firstStrip encoding for pixel in the calibTree
294 
295  if (APV->SubDet > 2 && (*farfromedge)[i] == false)
296  continue;
297  if (APV->SubDet > 2 && (*overlapping)[i] == true)
298  continue;
299  if (APV->SubDet > 2 && (*saturation)[i] && !AllowSaturation)
300  continue;
301  if (APV->SubDet > 2 && (*nstrips)[i] > MaxNrStrips)
302  continue;
303 
304  int Charge = 0;
305  if (APV->SubDet > 2 && (useCalibration || !FirstSetOfConstants)) {
306  bool Saturation = false;
307  for (unsigned int s = 0; s < (*nstrips)[i]; s++) {
308  int StripCharge = (*amplitude)[FirstAmplitude - (*nstrips)[i] + s];
310  StripCharge = (int)(StripCharge * (APV->PreviousGain / APV->CalibGain));
311  } else if (useCalibration) {
312  StripCharge = (int)(StripCharge / APV->CalibGain);
313  } else if (!FirstSetOfConstants) {
314  StripCharge = (int)(StripCharge * APV->PreviousGain);
315  }
316  if (StripCharge > 1024) {
317  StripCharge = 255;
318  Saturation = true;
319  } else if (StripCharge > 254) {
320  StripCharge = 254;
321  Saturation = true;
322  }
323  Charge += StripCharge;
324  }
325  if (Saturation && !AllowSaturation)
326  continue;
327  } else if (APV->SubDet > 2) {
328  Charge = (*charge)[i];
329  } else {
330  Charge = (*charge)[i] / 265.0; //expected scale factor between pixel and strip charge
331  }
332 
333  double ClusterChargeOverPath = ((double)Charge) / (*path)[i];
334  if (APV->SubDet > 2) {
335  if (Validation) {
336  ClusterChargeOverPath /= (*gainused)[i];
337  }
338  if (OldGainRemoving) {
339  ClusterChargeOverPath *= (*gainused)[i];
340  }
341  }
342 
343  // keep processing of pixel cluster charge until here
344  if (APV->SubDet <= 2)
345  continue;
346 
347  // real histogram for calibration
348  histograms.Charge_Vs_Index[elepos]->Fill(APV->Index, ClusterChargeOverPath);
349  LogDebug("SiStripGainsPCLWorker") << " for mode " << m_calibrationMode << "\n"
350  << " i " << i << " useCalibration " << useCalibration << " FirstSetOfConstants "
351  << FirstSetOfConstants << " APV->PreviousGain " << APV->PreviousGain
352  << " APV->CalibGain " << APV->CalibGain << " APV->DetId " << APV->DetId
353  << " APV->Index " << APV->Index << " Charge " << Charge << " Path " << (*path)[i]
354  << " ClusterChargeOverPath " << ClusterChargeOverPath << std::endl;
355 
356  // Fill monitoring histograms
357  int mCharge1 = 0;
358  int mCharge2 = 0;
359  int mCharge3 = 0;
360  int mCharge4 = 0;
361  if (APV->SubDet > 2) {
362  for (unsigned int s = 0; s < (*nstrips)[i]; s++) {
363  int StripCharge = (*amplitude)[FirstAmplitude - (*nstrips)[i] + s];
364  if (StripCharge > 1024)
365  StripCharge = 255;
366  else if (StripCharge > 254)
367  StripCharge = 254;
368  mCharge1 += StripCharge;
369  mCharge2 += StripCharge;
370  mCharge3 += StripCharge;
371  mCharge4 += StripCharge;
372  }
373  // Revome gains for monitoring
374  mCharge2 *= (*gainused)[i]; // remove G2
375  mCharge3 *= (*gainusedTick)[i]; // remove G1
376  mCharge4 *= ((*gainused)[i] * (*gainusedTick)[i]); // remove G1 and G2
377  }
378 
379  LogDebug("SiStripGainsPCLWorker") << " full charge " << mCharge1 << " remove G2 " << mCharge2 << " remove G1 "
380  << mCharge3 << " remove G1*G2 " << mCharge4 << std::endl;
381 
382  auto indices = APVGain::FetchIndices(theTopologyMap, (*rawid)[i], topo);
383 
384  for (auto m : indices)
385  histograms.Charge_1[elepos][m]->Fill(((double)mCharge1) / (*path)[i]);
386  for (auto m : indices)
387  histograms.Charge_2[elepos][m]->Fill(((double)mCharge2) / (*path)[i]);
388  for (auto m : indices)
389  histograms.Charge_3[elepos][m]->Fill(((double)mCharge3) / (*path)[i]);
390  for (auto m : indices)
391  histograms.Charge_4[elepos][m]->Fill(((double)mCharge4) / (*path)[i]);
392 
393  if (APV->SubDet == StripSubdetector::TIB) {
394  histograms.Charge_Vs_PathlengthTIB[elepos]->Fill((*path)[i], Charge); // TIB
395 
396  } else if (APV->SubDet == StripSubdetector::TOB) {
397  histograms.Charge_Vs_PathlengthTOB[elepos]->Fill((*path)[i], Charge); // TOB
398 
399  } else if (APV->SubDet == StripSubdetector::TID) {
400  if (APV->Eta < 0) {
401  histograms.Charge_Vs_PathlengthTIDM[elepos]->Fill((*path)[i], Charge);
402  } // TID minus
403  else if (APV->Eta > 0) {
404  histograms.Charge_Vs_PathlengthTIDP[elepos]->Fill((*path)[i], Charge);
405  } // TID plus
406 
407  } else if (APV->SubDet == StripSubdetector::TEC) {
408  if (APV->Eta < 0) {
409  if (APV->Thickness < 0.04) {
410  histograms.Charge_Vs_PathlengthTECM1[elepos]->Fill((*path)[i], Charge);
411  } // TEC minus, type 1
412  else if (APV->Thickness > 0.04) {
413  histograms.Charge_Vs_PathlengthTECM2[elepos]->Fill((*path)[i], Charge);
414  } // TEC minus, type 2
415  } else if (APV->Eta > 0) {
416  if (APV->Thickness < 0.04) {
417  histograms.Charge_Vs_PathlengthTECP1[elepos]->Fill((*path)[i], Charge);
418  } // TEC plus, type 1
419  else if (APV->Thickness > 0.04) {
420  histograms.Charge_Vs_PathlengthTECP2[elepos]->Fill((*path)[i], Charge);
421  } // TEC plus, type 2
422  }
423  }
424 
425  } // END OF ON-CLUSTER LOOP
426 
427  //LogDebug("SiStripGainsPCLWorker")<<" for mode"<< m_calibrationMode
428  // <<" entries in histogram:"<< histograms.Charge_Vs_Index[elepos].getEntries()
429  // <<std::endl;
430 }

References AllowSaturation, CustomPhysics_cfi::amplitude, amplitude_token_, sistrip::APV, ALCARECOTkAlJpsiMuMu_cff::charge, PixelTestBeamValidation_cfi::Charge, charge_token_, chargeoverpath_token_, farfromedge_token_, APVGain::FetchIndices(), FirstSetOfConstants, firststrip_token_, gainused_token_, gainusedTick_token_, edm::EventSetup::getData(), mps_fire::i, iEvent, bTagCombinedSVVariables_cff::indices, createfilelist::int, LogDebug, visualization-live-secondInstance_cfg::m, m_calibrationMode, MaxNrStrips, MaxTrackChiOverNdf, MaxTrackEta, MaxTrackingIteration, MaxTrackMomentum, MinTrackEta, MinTrackHits, MinTrackMomentum, nstrips_token_, OldGainRemoving, overlapping_token_, castor_dqm_sourceclient_file_cfg::path, path_token_, edm::Handle< T >::product(), rawid_token_, cond::runnumber, alignCSCRings::s, EcalSCDynamicDPhiParametersESProducer_cfi::saturation, saturation_token_, statCollectionFromMode(), StripSubdetector::TEC, theTopologyMap, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, trackalgo_token_, trackchi2ndof_token_, tracketa_token_, trackhitsvalid_token_, trackindex_token_, trackp_token_, tTopoToken_, useCalibration, and Validation.

◆ dqmBeginRun()

void SiStripGainsPCLWorker::dqmBeginRun ( edm::Run const &  run,
edm::EventSetup const &  iSetup,
APVGain::APVGainHistograms histograms 
) const
overrideprivatevirtual

Reimplemented from DQMGlobalEDAnalyzerBase< APVGain::APVGainHistograms, Args... >.

Definition at line 110 of file SiStripGainsPCLWorker.cc.

112  {
113  using namespace edm;
114  static constexpr float defaultGainTick = 690. / 640.;
115 
116  // fills the APV collections at each begin run
117  const TrackerGeometry* bareTkGeomPtr = &iSetup.getData(tkGeomToken_);
118  checkBookAPVColls(bareTkGeomPtr, histograms);
119 
120  const auto gainHandle = iSetup.getHandle(gainToken_);
121  if (!gainHandle.isValid()) {
122  edm::LogError("SiStripGainPCLWorker") << "gainHandle is not valid\n";
123  exit(0);
124  }
125 
126  const auto& siStripQuality = iSetup.getData(qualityToken_);
127 
128  for (unsigned int a = 0; a < histograms.APVsCollOrdered.size(); a++) {
129  std::shared_ptr<stAPVGain> APV = histograms.APVsCollOrdered[a];
130 
132  continue;
133 
134  APV->isMasked = siStripQuality.IsApvBad(APV->DetId, APV->APVId);
135 
136  if (gainHandle->getNumberOfTags() != 2) {
137  edm::LogError("SiStripGainPCLWorker") << "NUMBER OF GAIN TAG IS EXPECTED TO BE 2\n";
138  fflush(stdout);
139  exit(0);
140  };
141  float newPreviousGain = gainHandle->getApvGain(APV->APVId, gainHandle->getRange(APV->DetId, 1), 1);
142  if (APV->PreviousGain != 1 and newPreviousGain != APV->PreviousGain)
143  edm::LogWarning("SiStripGainPCLWorker") << "WARNING: ParticleGain in the global tag changed\n";
144  APV->PreviousGain = newPreviousGain;
145 
146  float newPreviousGainTick =
147  APV->isMasked ? defaultGainTick : gainHandle->getApvGain(APV->APVId, gainHandle->getRange(APV->DetId, 0), 0);
148  if (APV->PreviousGainTick != 1 and newPreviousGainTick != APV->PreviousGainTick) {
149  edm::LogWarning("SiStripGainPCLWorker")
150  << "WARNING: TickMarkGain in the global tag changed\n"
151  << std::endl
152  << " APV->SubDet: " << APV->SubDet << " APV->APVId:" << APV->APVId << std::endl
153  << " APV->PreviousGainTick: " << APV->PreviousGainTick << " newPreviousGainTick: " << newPreviousGainTick
154  << std::endl;
155  }
156  APV->PreviousGainTick = newPreviousGainTick;
157  }
158 }

References a, sistrip::APV, checkBookAPVColls(), beamvalidation::exit(), gainToken_, edm::EventSetup::getData(), edm::EventSetup::getHandle(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, qualityToken_, mps_setup::stdout, and tkGeomToken_.

◆ fillDescriptions()

void SiStripGainsPCLWorker::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static

Definition at line 545 of file SiStripGainsPCLWorker.cc.

545  {
547  desc.setUnknown();
548  descriptions.addDefault(desc);
549 }

References edm::ConfigurationDescriptions::addDefault(), and submitPVResolutionJobs::desc.

◆ statCollectionFromMode()

int SiStripGainsPCLWorker::statCollectionFromMode ( const char *  tag) const
inlineprivate

Definition at line 157 of file SiStripGainsPCLWorker.h.

157  {
158  std::vector<std::string>::const_iterator it = dqm_tag_.begin();
159  while (it != dqm_tag_.end()) {
160  if (*it == std::string(tag))
161  return it - dqm_tag_.begin();
162  it++;
163  }
164 
165  if (std::string(tag).empty())
166  return 0; // return StdBunch calibration mode for backward compatibility
167 
168  return None;
169 }

References dqm_tag_, relativeConstraints::empty, None, AlCaHLTBitMon_QueryRunRegistry::string, and GlobalPosition_Frontier_DevDB_cff::tag.

Referenced by bookHistograms(), and dqmAnalyze().

Member Data Documentation

◆ AllowSaturation

bool SiStripGainsPCLWorker::AllowSaturation
private

Definition at line 103 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ amplitude_token_

edm::EDGetTokenT<std::vector<unsigned char> > SiStripGainsPCLWorker::amplitude_token_
private

Definition at line 137 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ CalibPrefix_

std::string SiStripGainsPCLWorker::CalibPrefix_
private

Definition at line 150 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ CalibSuffix_

std::string SiStripGainsPCLWorker::CalibSuffix_
private

Definition at line 151 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ charge_token_

edm::EDGetTokenT<std::vector<unsigned int> > SiStripGainsPCLWorker::charge_token_
private

Definition at line 134 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ chargeoverpath_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::chargeoverpath_token_
private

Definition at line 136 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ doChargeMonitorPerPlane

bool SiStripGainsPCLWorker::doChargeMonitorPerPlane
private

Charge monitor per detector plane

Definition at line 108 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

◆ dqm_tag_

std::vector<std::string> SiStripGainsPCLWorker::dqm_tag_
private

◆ EventPrefix_

std::string SiStripGainsPCLWorker::EventPrefix_
private

Definition at line 146 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ EventSuffix_

std::string SiStripGainsPCLWorker::EventSuffix_
private

Definition at line 147 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ farfromedge_token_

edm::EDGetTokenT<std::vector<bool> > SiStripGainsPCLWorker::farfromedge_token_
private

Definition at line 133 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ FirstSetOfConstants

bool SiStripGainsPCLWorker::FirstSetOfConstants
private

Definition at line 104 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ firststrip_token_

edm::EDGetTokenT<std::vector<unsigned short> > SiStripGainsPCLWorker::firststrip_token_
private

Definition at line 129 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ gainToken_

edm::ESGetToken<SiStripGain, SiStripGainRcd> SiStripGainsPCLWorker::gainToken_
private

Definition at line 143 of file SiStripGainsPCLWorker.h.

Referenced by dqmBeginRun(), and SiStripGainsPCLWorker().

◆ gainused_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::gainused_token_
private

Definition at line 138 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ gainusedTick_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::gainusedTick_token_
private

Definition at line 139 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ localdirx_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::localdirx_token_
private

Definition at line 126 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ localdiry_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::localdiry_token_
private

Definition at line 127 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ localdirz_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::localdirz_token_
private

Definition at line 128 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ m_calibrationMode

std::string SiStripGainsPCLWorker::m_calibrationMode
private

Type of statistics for the calibration

Definition at line 111 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), dqmAnalyze(), and SiStripGainsPCLWorker().

◆ m_DQMdir

std::string SiStripGainsPCLWorker::m_DQMdir
private

DQM folder hosting the charge statistics and the monitor plots

Definition at line 110 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

◆ MaxNrStrips

unsigned int SiStripGainsPCLWorker::MaxNrStrips
private

Definition at line 99 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackChiOverNdf

double SiStripGainsPCLWorker::MaxTrackChiOverNdf
private

Definition at line 101 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackEta

double SiStripGainsPCLWorker::MaxTrackEta
private

Definition at line 98 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackingIteration

int SiStripGainsPCLWorker::MaxTrackingIteration
private

Definition at line 102 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackMomentum

double SiStripGainsPCLWorker::MaxTrackMomentum
private

Definition at line 96 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MinTrackEta

double SiStripGainsPCLWorker::MinTrackEta
private

Definition at line 97 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MinTrackHits

unsigned int SiStripGainsPCLWorker::MinTrackHits
private

Definition at line 100 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MinTrackMomentum

double SiStripGainsPCLWorker::MinTrackMomentum
private

Definition at line 95 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ nstrips_token_

edm::EDGetTokenT<std::vector<unsigned short> > SiStripGainsPCLWorker::nstrips_token_
private

Definition at line 130 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ OldGainRemoving

bool SiStripGainsPCLWorker::OldGainRemoving
private

Definition at line 106 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ overlapping_token_

edm::EDGetTokenT<std::vector<bool> > SiStripGainsPCLWorker::overlapping_token_
private

Definition at line 132 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ path_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::path_token_
private

Definition at line 135 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ qualityToken_

edm::ESGetToken<SiStripQuality, SiStripQualityRcd> SiStripGainsPCLWorker::qualityToken_
private

Definition at line 144 of file SiStripGainsPCLWorker.h.

Referenced by dqmBeginRun(), and SiStripGainsPCLWorker().

◆ rawid_token_

edm::EDGetTokenT<std::vector<unsigned int> > SiStripGainsPCLWorker::rawid_token_
private

Definition at line 125 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ saturation_token_

edm::EDGetTokenT<std::vector<bool> > SiStripGainsPCLWorker::saturation_token_
private

Definition at line 131 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ theTopologyMap

std::map<unsigned int, APVloc> SiStripGainsPCLWorker::theTopologyMap
private

Definition at line 154 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ tkGeomToken_

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> SiStripGainsPCLWorker::tkGeomToken_
private

Definition at line 142 of file SiStripGainsPCLWorker.h.

Referenced by dqmBeginRun(), and SiStripGainsPCLWorker().

◆ trackalgo_token_

edm::EDGetTokenT<std::vector<int> > SiStripGainsPCLWorker::trackalgo_token_
private

Definition at line 123 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackchi2ndof_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::trackchi2ndof_token_
private

Definition at line 117 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ tracketa_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::tracketa_token_
private

Definition at line 120 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackhitsvalid_token_

edm::EDGetTokenT<std::vector<unsigned int> > SiStripGainsPCLWorker::trackhitsvalid_token_
private

Definition at line 122 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackindex_token_

edm::EDGetTokenT<std::vector<int> > SiStripGainsPCLWorker::trackindex_token_
private

Definition at line 124 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackp_token_

edm::EDGetTokenT<std::vector<float> > SiStripGainsPCLWorker::trackp_token_
private

Definition at line 118 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackphi_token_

edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::trackphi_token_
private

Definition at line 121 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ TrackPrefix_

std::string SiStripGainsPCLWorker::TrackPrefix_
private

Definition at line 148 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ trackpt_token_

edm::EDGetTokenT<std::vector<float> > SiStripGainsPCLWorker::trackpt_token_
private

Definition at line 119 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ TrackSuffix_

std::string SiStripGainsPCLWorker::TrackSuffix_
private

Definition at line 149 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ TrigTech_token_

edm::EDGetTokenT<std::vector<bool> > SiStripGainsPCLWorker::TrigTech_token_
private

Definition at line 116 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ tTopoToken_

edm::ESGetToken<TrackerTopology, TrackerTopologyRcd> SiStripGainsPCLWorker::tTopoToken_
private

Definition at line 141 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ useCalibration

bool SiStripGainsPCLWorker::useCalibration
private

Definition at line 107 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ Validation

bool SiStripGainsPCLWorker::Validation
private

Definition at line 105 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ VChargeHisto

std::vector<std::string> SiStripGainsPCLWorker::VChargeHisto
private

Charge monitor plots to be output

Definition at line 112 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

SiStripGainsPCLWorker::trackpt_token_
edm::EDGetTokenT< std::vector< float > > trackpt_token_
Definition: SiStripGainsPCLWorker.h:119
bTagCombinedSVVariables_cff.indices
indices
Definition: bTagCombinedSVVariables_cff.py:67
EcalSCDynamicDPhiParametersESProducer_cfi.saturation
saturation
Definition: EcalSCDynamicDPhiParametersESProducer_cfi.py:14
SiStripGainsPCLWorker::MinTrackHits
unsigned int MinTrackHits
Definition: SiStripGainsPCLWorker.h:100
DDAxes::y
SiStripGainsPCLWorker::tkGeomToken_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
Definition: SiStripGainsPCLWorker.h:142
SiStripGainsPCLWorker::VChargeHisto
std::vector< std::string > VChargeHisto
Definition: SiStripGainsPCLWorker.h:112
mps_fire.i
i
Definition: mps_fire.py:428
SiStripGainsPCLWorker::charge_token_
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
Definition: SiStripGainsPCLWorker.h:134
CustomPhysics_cfi.amplitude
amplitude
Definition: CustomPhysics_cfi.py:12
SiStripGainsPCLWorker::m_DQMdir
std::string m_DQMdir
Definition: SiStripGainsPCLWorker.h:110
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
edm::Handle::product
T const * product() const
Definition: Handle.h:70
dqm::implementation::IBooker::book2S
MonitorElement * book2S(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:219
APVGain::FetchIndices
std::vector< unsigned int > FetchIndices(std::map< unsigned int, APVloc >, uint32_t, const TrackerTopology *topo=nullptr)
Definition: APVGainHelpers.cc:187
SiStripGainsPCLWorker::nstrips_token_
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
Definition: SiStripGainsPCLWorker.h:130
SiStripGainsPCLWorker::MinTrackMomentum
double MinTrackMomentum
Definition: SiStripGainsPCLWorker.h:95
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89287
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SiStripGainsPCLWorker::amplitude_token_
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
Definition: SiStripGainsPCLWorker.h:137
dqm::implementation::NavigatorBase::setCurrentFolder
virtual void setCurrentFolder(std::string const &fullpath)
Definition: DQMStore.cc:32
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
SiStripGainsPCLWorker::MaxTrackMomentum
double MaxTrackMomentum
Definition: SiStripGainsPCLWorker.h:96
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
APVGain::subdetectorPlane
int subdetectorPlane(uint32_t, const TrackerTopology *)
Definition: APVGainHelpers.cc:119
SiStripGainsPCLWorker::TrigTech_token_
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
Definition: SiStripGainsPCLWorker.h:116
edm::Handle
Definition: AssociativeIterator.h:50
SiStripGainsPCLWorker::CalibSuffix_
std::string CalibSuffix_
Definition: SiStripGainsPCLWorker.h:151
SiStripGainsPCLWorker::AllowSaturation
bool AllowSaturation
Definition: SiStripGainsPCLWorker.h:103
dqmdumpme.first
first
Definition: dqmdumpme.py:55
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
SiStripGainsPCLWorker::localdirz_token_
edm::EDGetTokenT< std::vector< double > > localdirz_token_
Definition: SiStripGainsPCLWorker.h:128
SiStripGainsPCLWorker::trackphi_token_
edm::EDGetTokenT< std::vector< double > > trackphi_token_
Definition: SiStripGainsPCLWorker.h:121
SiStripGainsPCLWorker::path_token_
edm::EDGetTokenT< std::vector< double > > path_token_
Definition: SiStripGainsPCLWorker.h:135
SiStripGainsPCLWorker::FirstSetOfConstants
bool FirstSetOfConstants
Definition: SiStripGainsPCLWorker.h:104
DetId
Definition: DetId.h:17
alignCSCRings.s
s
Definition: alignCSCRings.py:92
SiStripGainsPCLWorker::gainusedTick_token_
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
Definition: SiStripGainsPCLWorker.h:139
SiStripGainsPCLWorker::MinTrackEta
double MinTrackEta
Definition: SiStripGainsPCLWorker.h:97
None
Definition: APVGainStruct.h:53
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
ntupleEnum.SubDet
SubDet
Definition: ntupleEnum.py:15
SiStripGainsPCLWorker::TrackPrefix_
std::string TrackPrefix_
Definition: SiStripGainsPCLWorker.h:148
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
SiStripGainsPCLWorker::TrackSuffix_
std::string TrackSuffix_
Definition: SiStripGainsPCLWorker.h:149
p2
double p2[4]
Definition: TauolaWrapper.h:90
dqm::implementation::NavigatorBase::cd
virtual void cd()
Definition: DQMStore.cc:29
PixelTopology::ncolumns
virtual int ncolumns() const =0
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripGainsPCLWorker::Validation
bool Validation
Definition: SiStripGainsPCLWorker.h:105
SiStripGainsPCLWorker::trackindex_token_
edm::EDGetTokenT< std::vector< int > > trackindex_token_
Definition: SiStripGainsPCLWorker.h:124
SiStripGainsPCLWorker::farfromedge_token_
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
Definition: SiStripGainsPCLWorker.h:133
PixelTopology
Definition: PixelTopology.h:10
b
double b
Definition: hdecay.h:118
SiStripGainsPCLWorker::doChargeMonitorPerPlane
bool doChargeMonitorPerPlane
Definition: SiStripGainsPCLWorker.h:108
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
AlCaHLTBitMon_QueryRunRegistry.string
string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
SiStripGainsPCLWorker::saturation_token_
edm::EDGetTokenT< std::vector< bool > > saturation_token_
Definition: SiStripGainsPCLWorker.h:131
dqm::implementation::IBooker::book1DD
MonitorElement * book1DD(TString const &name, TString const &title, int nchX, double lowX, double highX, FUNC onbooking=NOOP())
Definition: DQMStore.h:155
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
SiStripGainsPCLWorker::MaxNrStrips
unsigned int MaxNrStrips
Definition: SiStripGainsPCLWorker.h:99
SiStripGainsPCLWorker::tTopoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
Definition: SiStripGainsPCLWorker.h:141
SiStripGainsPCLWorker::rawid_token_
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
Definition: SiStripGainsPCLWorker.h:125
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:223
edm::ParameterSet
Definition: ParameterSet.h:47
a
double a
Definition: hdecay.h:119
APVGain::subdetectorSide
int subdetectorSide(uint32_t, const TrackerTopology *)
Definition: APVGainHelpers.cc:49
SiStripGainsPCLWorker::trackalgo_token_
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
Definition: SiStripGainsPCLWorker.h:123
mps_setup.stdout
stdout
Definition: mps_setup.py:250
SiStripGainsPCLWorker::trackhitsvalid_token_
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
Definition: SiStripGainsPCLWorker.h:122
cond::runnumber
Definition: Time.h:19
SiStripGainsPCLWorker::chargeoverpath_token_
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
Definition: SiStripGainsPCLWorker.h:136
SiStripGainsPCLWorker::overlapping_token_
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
Definition: SiStripGainsPCLWorker.h:132
sistrip::APV
Definition: ConstantsForGranularity.h:79
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripGainsPCLWorker::dqm_tag_
std::vector< std::string > dqm_tag_
Definition: SiStripGainsPCLWorker.h:91
SiStripGainsPCLWorker::tracketa_token_
edm::EDGetTokenT< std::vector< double > > tracketa_token_
Definition: SiStripGainsPCLWorker.h:120
SiStripGainsPCLWorker::EventSuffix_
std::string EventSuffix_
Definition: SiStripGainsPCLWorker.h:147
p1
double p1[4]
Definition: TauolaWrapper.h:89
APVGain::thickness
int thickness(uint32_t)
Definition: APVGainHelpers.cc:76
histograms
Definition: histograms.py:1
TrackerGeometry::dets
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
Definition: TrackerGeometry.h:62
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
SiStripGainsPCLWorker::OldGainRemoving
bool OldGainRemoving
Definition: SiStripGainsPCLWorker.h:106
SiStripGainsPCLWorker::theTopologyMap
std::map< unsigned int, APVloc > theTopologyMap
Definition: SiStripGainsPCLWorker.h:154
APVloc
Definition: APVGainStruct.h:36
StripTopology::nstrips
virtual int nstrips() const =0
SiStripGainsPCLWorker::localdirx_token_
edm::EDGetTokenT< std::vector< double > > localdirx_token_
Definition: SiStripGainsPCLWorker.h:126
SiStripGainsPCLWorker::gainused_token_
edm::EDGetTokenT< std::vector< double > > gainused_token_
Definition: SiStripGainsPCLWorker.h:138
SiStripGainsPCLWorker::statCollectionFromMode
int statCollectionFromMode(const char *tag) const
Definition: SiStripGainsPCLWorker.h:157
SiStripGainsPCLWorker::MaxTrackingIteration
int MaxTrackingIteration
Definition: SiStripGainsPCLWorker.h:102
submitPVResolutionJobs.desc
string desc
Definition: submitPVResolutionJobs.py:251
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
SiStripGainsPCLWorker::localdiry_token_
edm::EDGetTokenT< std::vector< double > > localdiry_token_
Definition: SiStripGainsPCLWorker.h:127
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
SiStripGainsPCLWorker::MaxTrackEta
double MaxTrackEta
Definition: SiStripGainsPCLWorker.h:98
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
PixelTestBeamValidation_cfi.Charge
Charge
Definition: PixelTestBeamValidation_cfi.py:91
SiStripGainsPCLWorker::EventPrefix_
std::string EventPrefix_
Definition: SiStripGainsPCLWorker.h:146
SiStripGainsPCLWorker::qualityToken_
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > qualityToken_
Definition: SiStripGainsPCLWorker.h:144
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
APVGain::monHnames
std::vector< std::pair< std::string, std::string > > monHnames(std::vector< std::string >, bool, const char *tag)
Definition: APVGainHelpers.cc:215
edm::EDConsumerBase::esConsumes
auto esConsumes()
Definition: EDConsumerBase.h:200
SiStripGainsPCLWorker::MaxTrackChiOverNdf
double MaxTrackChiOverNdf
Definition: SiStripGainsPCLWorker.h:101
SiStripGainsPCLWorker::firststrip_token_
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
Definition: SiStripGainsPCLWorker.h:129
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
SiStripGainsPCLWorker::useCalibration
bool useCalibration
Definition: SiStripGainsPCLWorker.h:107
beamvalidation.exit
def exit(msg="")
Definition: beamvalidation.py:53
GeometricSearchDet
Definition: GeometricSearchDet.h:17
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
SiStripGainsPCLWorker::trackp_token_
edm::EDGetTokenT< std::vector< float > > trackp_token_
Definition: SiStripGainsPCLWorker.h:118
PixelTopology::nrows
virtual int nrows() const =0
edm::ConfigurationDescriptions::addDefault
void addDefault(ParameterSetDescription const &psetDescription)
Definition: ConfigurationDescriptions.cc:99
SiStripGainsPCLWorker::checkBookAPVColls
void checkBookAPVColls(const TrackerGeometry *bareTkGeomPtr, APVGain::APVGainHistograms &histograms) const
Definition: SiStripGainsPCLWorker.cc:437
StripTopology
Definition: StripTopology.h:11
SiStripGainsPCLWorker::CalibPrefix_
std::string CalibPrefix_
Definition: SiStripGainsPCLWorker.h:150
label
const char * label
Definition: PFTauDecayModeTools.cc:11
SiStripGainsPCLWorker::gainToken_
edm::ESGetToken< SiStripGain, SiStripGainRcd > gainToken_
Definition: SiStripGainsPCLWorker.h:143
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
SiStripGainsPCLWorker::trackchi2ndof_token_
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
Definition: SiStripGainsPCLWorker.h:117
APVGain::subdetectorId
int subdetectorId(uint32_t)
Definition: APVGainHelpers.cc:16
SiStripGainsPCLWorker::m_calibrationMode
std::string m_calibrationMode
Definition: SiStripGainsPCLWorker.h:111
TrackerGeometry
Definition: TrackerGeometry.h:14