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 > 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 >
void accumulate (edm::StreamID id, edm::Event const &event, edm::EventSetup const &setup) const final
 
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &, APVGain::APVGainHistograms &) const=0
 
virtual void dqmEndRun (edm::Run const &, edm::EventSetup const &, APVGain::APVGainHistograms const &) const
 
 DQMGlobalEDAnalyzer ()
 
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
 
void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup) const final
 
- Public Member Functions inherited from edm::global::EDProducer< edm::RunCache< APVGain::APVGainHistograms >, edm::EndRunProducer, edm::Accumulator, Args... >
 EDProducer ()=default
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () 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
 
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
 
void endJob () 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::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::EDGetTokenT< std::vector< unsigned int > > rawid_token_
 
edm::EDGetTokenT< std::vector< bool > > saturation_token_
 
std::map< unsigned int, APVloctheTopologyMap
 
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_
 
bool useCalibration
 
bool Validation
 
std::vector< std::string > VChargeHisto
 

Additional Inherited Members

- Public Types inherited from DQMGlobalEDAnalyzer< APVGain::APVGainHistograms >
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 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>
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<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

user includes

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

Definition at line 75 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  std::string s = hnames[i].first;
36 
37  auto loc = APVloc(id, side, plane, s);
38  theTopologyMap.insert(std::make_pair(i, loc));
39  }
40 
41  //Set the monitoring element tag and store
42  dqm_tag_.reserve(7);
43  dqm_tag_.clear();
44  dqm_tag_.push_back("StdBunch"); // statistic collection from Standard Collision Bunch @ 3.8 T
45  dqm_tag_.push_back("StdBunch0T"); // statistic collection from Standard Collision Bunch @ 0 T
46  dqm_tag_.push_back("AagBunch"); // statistic collection from First Collision After Abort Gap @ 3.8 T
47  dqm_tag_.push_back("AagBunch0T"); // statistic collection from First Collision After Abort Gap @ 0 T
48  dqm_tag_.push_back("IsoMuon"); // statistic collection from Isolated Muon @ 3.8 T
49  dqm_tag_.push_back("IsoMuon0T"); // statistic collection from Isolated Muon @ 0 T
50  dqm_tag_.push_back("Harvest"); // statistic collection: Harvest
51 
52  // configure token for gathering the ntuple variables
53  edm::ParameterSet swhallowgain_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("gain");
54 
55  std::string label = swhallowgain_pset.getUntrackedParameter<std::string>("label");
56  CalibPrefix_ = swhallowgain_pset.getUntrackedParameter<std::string>("prefix");
57  CalibSuffix_ = swhallowgain_pset.getUntrackedParameter<std::string>("suffix");
58 
59  trackindex_token_ = consumes<std::vector<int>>(edm::InputTag(label, CalibPrefix_ + "trackindex" + CalibSuffix_));
60  rawid_token_ = consumes<std::vector<unsigned int>>(edm::InputTag(label, CalibPrefix_ + "rawid" + CalibSuffix_));
61  localdirx_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdirx" + CalibSuffix_));
62  localdiry_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdiry" + CalibSuffix_));
63  localdirz_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdirz" + CalibSuffix_));
65  consumes<std::vector<unsigned short>>(edm::InputTag(label, CalibPrefix_ + "firststrip" + CalibSuffix_));
66  nstrips_token_ = consumes<std::vector<unsigned short>>(edm::InputTag(label, CalibPrefix_ + "nstrips" + CalibSuffix_));
67  saturation_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "saturation" + CalibSuffix_));
68  overlapping_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "overlapping" + CalibSuffix_));
69  farfromedge_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "farfromedge" + CalibSuffix_));
70  charge_token_ = consumes<std::vector<unsigned int>>(edm::InputTag(label, CalibPrefix_ + "charge" + CalibSuffix_));
71  path_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "path" + CalibSuffix_));
72 #ifdef ExtendedCALIBTree
74  consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "chargeoverpath" + CalibSuffix_));
75 #endif
77  consumes<std::vector<unsigned char>>(edm::InputTag(label, CalibPrefix_ + "amplitude" + CalibSuffix_));
78  gainused_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "gainused" + CalibSuffix_));
80  consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "gainusedTick" + CalibSuffix_));
81 
82  edm::ParameterSet evtinfo_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("evtinfo");
83  label = evtinfo_pset.getUntrackedParameter<std::string>("label");
84  EventPrefix_ = evtinfo_pset.getUntrackedParameter<std::string>("prefix");
85  EventSuffix_ = evtinfo_pset.getUntrackedParameter<std::string>("suffix");
86  TrigTech_token_ = consumes<std::vector<bool>>(edm::InputTag(label, EventPrefix_ + "TrigTech" + EventSuffix_));
87 
88  edm::ParameterSet track_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("tracks");
89  label = track_pset.getUntrackedParameter<std::string>("label");
90  TrackPrefix_ = track_pset.getUntrackedParameter<std::string>("prefix");
91  TrackSuffix_ = track_pset.getUntrackedParameter<std::string>("suffix");
92 
93  trackchi2ndof_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "chi2ndof" + TrackSuffix_));
94  trackp_token_ = consumes<std::vector<float>>(edm::InputTag(label, TrackPrefix_ + "momentum" + TrackSuffix_));
95  trackpt_token_ = consumes<std::vector<float>>(edm::InputTag(label, TrackPrefix_ + "pt" + TrackSuffix_));
96  tracketa_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "eta" + TrackSuffix_));
97  trackphi_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "phi" + TrackSuffix_));
99  consumes<std::vector<unsigned int>>(edm::InputTag(label, TrackPrefix_ + "hitsvalid" + TrackSuffix_));
100  trackalgo_token_ = consumes<std::vector<int>>(edm::InputTag(label, TrackPrefix_ + "algo" + TrackSuffix_));
101 }

References AllowSaturation, amplitude_token_, CalibPrefix_, CalibSuffix_, charge_token_, chargeoverpath_token_, doChargeMonitorPerPlane, dqm_tag_, EventPrefix_, EventSuffix_, farfromedge_token_, dqmdumpme::first, FirstSetOfConstants, firststrip_token_, gainused_token_, gainusedTick_token_, edm::ParameterSet::getUntrackedParameter(), mps_fire::i, HLT_2018_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_, rawid_token_, alignCSCRings::s, saturation_token_, AlCaHLTBitMon_QueryRunRegistry::string, APVGain::subdetectorId(), APVGain::subdetectorPlane(), APVGain::subdetectorSide(), theTopologyMap, trackalgo_token_, trackchi2ndof_token_, tracketa_token_, trackhitsvalid_token_, trackindex_token_, trackp_token_, trackphi_token_, TrackPrefix_, trackpt_token_, TrackSuffix_, TrigTech_token_, 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
override

Definition at line 555 of file SiStripGainsPCLWorker.cc.

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

References a, b, doChargeMonitorPerPlane, dqm_tag_, JetChargeProducer_cfi::exp, dqmdumpme::first, mps_fire::i, dqm-mbProfile::log, m_calibrationMode, m_DQMdir, APVGain::monHnames(), p1, p2, edm::second(), 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 DQMGlobalEDAnalyzer< APVGain::APVGainHistograms >.

Definition at line 160 of file SiStripGainsPCLWorker.cc.

162  {
163  using namespace edm;
164 
165  unsigned int eventnumber = iEvent.id().event();
166  unsigned int runnumber = iEvent.id().run();
167 
168  edm::LogInfo("SiStripGainsPCLWorker") << "Processing run " << runnumber << " and event " << eventnumber << std::endl;
169 
171  iSetup.get<TrackerTopologyRcd>().get(TopoHandle);
172  const TrackerTopology* topo = TopoHandle.product();
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::get(), get, 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(), edm::ESHandle< T >::product(), rawid_token_, cond::runnumber, alignCSCRings::s, saturation_token_, statCollectionFromMode(), StripSubdetector::TEC, theTopologyMap, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, trackalgo_token_, trackchi2ndof_token_, tracketa_token_, trackhitsvalid_token_, trackindex_token_, trackp_token_, useCalibration, and Validation.

◆ dqmBeginRun()

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

Reimplemented from DQMGlobalEDAnalyzer< APVGain::APVGainHistograms >.

Definition at line 104 of file SiStripGainsPCLWorker.cc.

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

References a, sistrip::APV, checkBookAPVColls(), beamvalidation::exit(), edm::EventSetup::get(), get, SiStripGain::getApvGain(), SiStripGain::getNumberOfTags(), SiStripGain::getRange(), SiStripQuality::IsApvBad(), edm::ESHandleBase::isValid(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, and mps_setup::stdout.

◆ endJob()

void SiStripGainsPCLWorker::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::global::EDProducerBase.

Definition at line 545 of file SiStripGainsPCLWorker.cc.

545 {}

Referenced by o2olib.O2ORunMgr::executeJob().

◆ fillDescriptions()

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

Definition at line 548 of file SiStripGainsPCLWorker.cc.

548  {
550  desc.setUnknown();
551  descriptions.addDefault(desc);
552 }

References edm::ConfigurationDescriptions::addDefault(), and edm::ParameterSetDescription::setUnknown().

◆ statCollectionFromMode()

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

Definition at line 154 of file SiStripGainsPCLWorker.h.

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

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 105 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ amplitude_token_

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

Definition at line 139 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ CalibPrefix_

std::string SiStripGainsPCLWorker::CalibPrefix_
private

Definition at line 147 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ CalibSuffix_

std::string SiStripGainsPCLWorker::CalibSuffix_
private

Definition at line 148 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ charge_token_

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

Definition at line 136 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ chargeoverpath_token_

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

Definition at line 138 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ doChargeMonitorPerPlane

bool SiStripGainsPCLWorker::doChargeMonitorPerPlane
private

Charge monitor per detector plane

Definition at line 110 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 143 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ EventSuffix_

std::string SiStripGainsPCLWorker::EventSuffix_
private

Definition at line 144 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ farfromedge_token_

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

Definition at line 135 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ FirstSetOfConstants

bool SiStripGainsPCLWorker::FirstSetOfConstants
private

Definition at line 106 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ firststrip_token_

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

Definition at line 131 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ gainused_token_

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

Definition at line 140 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ gainusedTick_token_

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

Definition at line 141 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ localdirx_token_

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

Definition at line 128 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ localdiry_token_

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

Definition at line 129 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ localdirz_token_

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

Definition at line 130 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ m_calibrationMode

std::string SiStripGainsPCLWorker::m_calibrationMode
private

Type of statistics for the calibration

Definition at line 113 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 112 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

◆ MaxNrStrips

unsigned int SiStripGainsPCLWorker::MaxNrStrips
private

Definition at line 101 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackChiOverNdf

double SiStripGainsPCLWorker::MaxTrackChiOverNdf
private

Definition at line 103 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackEta

double SiStripGainsPCLWorker::MaxTrackEta
private

Definition at line 100 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackingIteration

int SiStripGainsPCLWorker::MaxTrackingIteration
private

Definition at line 104 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MaxTrackMomentum

double SiStripGainsPCLWorker::MaxTrackMomentum
private

Definition at line 98 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MinTrackEta

double SiStripGainsPCLWorker::MinTrackEta
private

Definition at line 99 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MinTrackHits

unsigned int SiStripGainsPCLWorker::MinTrackHits
private

Definition at line 102 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ MinTrackMomentum

double SiStripGainsPCLWorker::MinTrackMomentum
private

Definition at line 97 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ nstrips_token_

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

Definition at line 132 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ OldGainRemoving

bool SiStripGainsPCLWorker::OldGainRemoving
private

Definition at line 108 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ overlapping_token_

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

Definition at line 134 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ path_token_

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

Definition at line 137 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ rawid_token_

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

Definition at line 127 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ saturation_token_

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

Definition at line 133 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ theTopologyMap

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

Definition at line 151 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackalgo_token_

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

Definition at line 125 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackchi2ndof_token_

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

Definition at line 119 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ tracketa_token_

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

Definition at line 122 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackhitsvalid_token_

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

Definition at line 124 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackindex_token_

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

Definition at line 126 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackp_token_

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

Definition at line 120 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ trackphi_token_

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

Definition at line 123 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ TrackPrefix_

std::string SiStripGainsPCLWorker::TrackPrefix_
private

Definition at line 145 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ trackpt_token_

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

Definition at line 121 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ TrackSuffix_

std::string SiStripGainsPCLWorker::TrackSuffix_
private

Definition at line 146 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ TrigTech_token_

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

Definition at line 118 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

◆ useCalibration

bool SiStripGainsPCLWorker::useCalibration
private

Definition at line 109 of file SiStripGainsPCLWorker.h.

Referenced by dqmAnalyze(), and SiStripGainsPCLWorker().

◆ Validation

bool SiStripGainsPCLWorker::Validation
private

Definition at line 107 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 114 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

SiStripGainsPCLWorker::trackpt_token_
edm::EDGetTokenT< std::vector< float > > trackpt_token_
Definition: SiStripGainsPCLWorker.h:121
bTagCombinedSVVariables_cff.indices
indices
Definition: bTagCombinedSVVariables_cff.py:67
edm::ESHandle::product
T const * product() const
Definition: ESHandle.h:86
SiStripGainsPCLWorker::MinTrackHits
unsigned int MinTrackHits
Definition: SiStripGainsPCLWorker.h:102
SiStripGainRcd
Definition: SiStripDependentRecords.h:29
DDAxes::y
SiStripGainsPCLWorker::VChargeHisto
std::vector< std::string > VChargeHisto
Definition: SiStripGainsPCLWorker.h:114
mps_fire.i
i
Definition: mps_fire.py:355
SiStripGainsPCLWorker::charge_token_
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
Definition: SiStripGainsPCLWorker.h:136
CustomPhysics_cfi.amplitude
amplitude
Definition: CustomPhysics_cfi.py:12
SiStripGainsPCLWorker::m_DQMdir
std::string m_DQMdir
Definition: SiStripGainsPCLWorker.h:112
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
edm::Handle::product
T const * product() const
Definition: Handle.h:70
APVGain::FetchIndices
std::vector< unsigned int > FetchIndices(std::map< unsigned int, APVloc >, uint32_t, const TrackerTopology *topo=nullptr)
Definition: APVGainHelpers.cc:141
SiStripGainsPCLWorker::nstrips_token_
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
Definition: SiStripGainsPCLWorker.h:132
SiStripGainsPCLWorker::MinTrackMomentum
double MinTrackMomentum
Definition: SiStripGainsPCLWorker.h:97
edm
HLT enums.
Definition: AlignableModifier.h:19
TrackerTopology
Definition: TrackerTopology.h:16
edm::LogInfo
Definition: MessageLogger.h:254
edm::ParameterSetDescription
Definition: ParameterSetDescription.h:52
SiStripGainsPCLWorker::amplitude_token_
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
Definition: SiStripGainsPCLWorker.h:139
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:215
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
SiStripGainsPCLWorker::MaxTrackMomentum
double MaxTrackMomentum
Definition: SiStripGainsPCLWorker.h:98
APVGain::subdetectorPlane
int subdetectorPlane(uint32_t, const TrackerTopology *)
Definition: APVGainHelpers.cc:76
SiStripGainsPCLWorker::TrigTech_token_
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
Definition: SiStripGainsPCLWorker.h:118
edm::Handle
Definition: AssociativeIterator.h:50
SiStripGainsPCLWorker::CalibSuffix_
std::string CalibSuffix_
Definition: SiStripGainsPCLWorker.h:148
SiStripGainsPCLWorker::AllowSaturation
bool AllowSaturation
Definition: SiStripGainsPCLWorker.h:105
dqmdumpme.first
first
Definition: dqmdumpme.py:55
SiStripGainsPCLWorker::localdirz_token_
edm::EDGetTokenT< std::vector< double > > localdirz_token_
Definition: SiStripGainsPCLWorker.h:130
SiStripGainsPCLWorker::trackphi_token_
edm::EDGetTokenT< std::vector< double > > trackphi_token_
Definition: SiStripGainsPCLWorker.h:123
SiStripGainsPCLWorker::path_token_
edm::EDGetTokenT< std::vector< double > > path_token_
Definition: SiStripGainsPCLWorker.h:137
SiStripGainsPCLWorker::FirstSetOfConstants
bool FirstSetOfConstants
Definition: SiStripGainsPCLWorker.h:106
SiStripGain::getNumberOfTags
size_t getNumberOfTags() const
Definition: SiStripGain.h:95
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:141
SiStripGainsPCLWorker::MinTrackEta
double MinTrackEta
Definition: SiStripGainsPCLWorker.h:99
None
Definition: APVGainStruct.h:52
GlobalPosition_Frontier_DevDB_cff.tag
tag
Definition: GlobalPosition_Frontier_DevDB_cff.py:11
ntupleEnum.SubDet
SubDet
Definition: ntupleEnum.py:15
SiStripGain::getRange
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:71
SiStripGainsPCLWorker::TrackPrefix_
std::string TrackPrefix_
Definition: SiStripGainsPCLWorker.h:145
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:72
SiStripQualityRcd
Definition: SiStripDependentRecords.h:56
TrackerDigiGeometryRecord
Definition: TrackerDigiGeometryRecord.h:15
SiStripGainsPCLWorker::TrackSuffix_
std::string TrackSuffix_
Definition: SiStripGainsPCLWorker.h:146
edm::ESHandle< TrackerTopology >
p2
double p2[4]
Definition: TauolaWrapper.h:90
PixelTopology::ncolumns
virtual int ncolumns() const =0
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripGainsPCLWorker::Validation
bool Validation
Definition: SiStripGainsPCLWorker.h:107
SiStripGainsPCLWorker::trackindex_token_
edm::EDGetTokenT< std::vector< int > > trackindex_token_
Definition: SiStripGainsPCLWorker.h:126
SiStripGainsPCLWorker::farfromedge_token_
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
Definition: SiStripGainsPCLWorker.h:135
PixelTopology
Definition: PixelTopology.h:10
b
double b
Definition: hdecay.h:118
SiStripGainsPCLWorker::doChargeMonitorPerPlane
bool doChargeMonitorPerPlane
Definition: SiStripGainsPCLWorker.h:110
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
SiStripGain::getApvGain
static float getApvGain(const uint16_t &apv, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:76
SiStripGainsPCLWorker::saturation_token_
edm::EDGetTokenT< std::vector< bool > > saturation_token_
Definition: SiStripGainsPCLWorker.h:133
edm::LogWarning
Definition: MessageLogger.h:141
ALCARECOTkAlJpsiMuMu_cff.charge
charge
Definition: ALCARECOTkAlJpsiMuMu_cff.py:47
SiStripGainsPCLWorker::MaxNrStrips
unsigned int MaxNrStrips
Definition: SiStripGainsPCLWorker.h:101
SiStripGainsPCLWorker::rawid_token_
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
Definition: SiStripGainsPCLWorker.h:127
HLT_2018_cff.InputTag
InputTag
Definition: HLT_2018_cff.py:79016
LogDebug
#define LogDebug(id)
Definition: MessageLogger.h:670
edm::ParameterSet
Definition: ParameterSet.h:36
edm::LogError
Definition: MessageLogger.h:183
a
double a
Definition: hdecay.h:119
APVGain::subdetectorSide
int subdetectorSide(uint32_t, const TrackerTopology *)
Definition: APVGainHelpers.cc:48
SiStripGainsPCLWorker::trackalgo_token_
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
Definition: SiStripGainsPCLWorker.h:125
mps_setup.stdout
stdout
Definition: mps_setup.py:250
SiStripGainsPCLWorker::trackhitsvalid_token_
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
Definition: SiStripGainsPCLWorker.h:124
cond::runnumber
Definition: Time.h:19
SiStripGainsPCLWorker::chargeoverpath_token_
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
Definition: SiStripGainsPCLWorker.h:138
SiStripGainsPCLWorker::overlapping_token_
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
Definition: SiStripGainsPCLWorker.h:134
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:93
SiStripGainsPCLWorker::tracketa_token_
edm::EDGetTokenT< std::vector< double > > tracketa_token_
Definition: SiStripGainsPCLWorker.h:122
SiStripGainsPCLWorker::EventSuffix_
std::string EventSuffix_
Definition: SiStripGainsPCLWorker.h:144
p1
double p1[4]
Definition: TauolaWrapper.h:89
edm::ParameterSetDescription::setUnknown
void setUnknown()
Definition: ParameterSetDescription.cc:39
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
SiStripGainsPCLWorker::OldGainRemoving
bool OldGainRemoving
Definition: SiStripGainsPCLWorker.h:108
SiStripGainsPCLWorker::theTopologyMap
std::map< unsigned int, APVloc > theTopologyMap
Definition: SiStripGainsPCLWorker.h:151
get
#define get
edm::ESHandleBase::isValid
bool isValid() const
Definition: ESHandle.h:44
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:128
SiStripGainsPCLWorker::gainused_token_
edm::EDGetTokenT< std::vector< double > > gainused_token_
Definition: SiStripGainsPCLWorker.h:140
SiStripGainsPCLWorker::statCollectionFromMode
int statCollectionFromMode(const char *tag) const
Definition: SiStripGainsPCLWorker.h:154
SiStripQuality::IsApvBad
bool IsApvBad(const uint32_t &detid, const short &apvNb) const
Definition: SiStripQuality.cc:620
SiStripGainsPCLWorker::MaxTrackingIteration
int MaxTrackingIteration
Definition: SiStripGainsPCLWorker.h:104
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:129
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:100
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
PixelTestBeamValidation_cfi.Charge
Charge
Definition: PixelTestBeamValidation_cfi.py:78
SiStripGainsPCLWorker::EventPrefix_
std::string EventPrefix_
Definition: SiStripGainsPCLWorker.h:143
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:166
SiStripGainsPCLWorker::MaxTrackChiOverNdf
double MaxTrackChiOverNdf
Definition: SiStripGainsPCLWorker.h:103
SiStripGainsPCLWorker::firststrip_token_
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
Definition: SiStripGainsPCLWorker.h:131
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
SiStripGainsPCLWorker::useCalibration
bool useCalibration
Definition: SiStripGainsPCLWorker.h:109
TrackerTopologyRcd
Definition: TrackerTopologyRcd.h:10
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:120
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:147
label
const char * label
Definition: PFTauDecayModeTools.cc:11
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
SiStripGainsPCLWorker::trackchi2ndof_token_
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
Definition: SiStripGainsPCLWorker.h:119
APVGain::subdetectorId
int subdetectorId(uint32_t)
Definition: APVGainHelpers.cc:15
SiStripGainsPCLWorker::m_calibrationMode
std::string m_calibrationMode
Definition: SiStripGainsPCLWorker.h:113
TrackerGeometry
Definition: TrackerGeometry.h:14