CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
SiStripGainFromCalibTree Class Reference
Inheritance diagram for SiStripGainFromCalibTree:
ConditionDBWriter< SiStripApvGain > edm::EDAnalyzer edm::EDConsumerBase

Public Types

typedef dqm::legacy::DQMStore DQMStore
 
typedef dqm::legacy::MonitorElement MonitorElement
 
- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

 SiStripGainFromCalibTree (const edm::ParameterSet &)
 
 ~SiStripGainFromCalibTree () override
 
- Public Member Functions inherited from ConditionDBWriter< SiStripApvGain >
 ConditionDBWriter (const edm::ParameterSet &iConfig)
 
 ~ConditionDBWriter () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () 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::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void algoAnalyze (const edm::Event &, const edm::EventSetup &) override
 
void algoAnalyzeTheTree ()
 
void algoBeginJob (const edm::EventSetup &iSetup) override
 
void algoBeginRun (const edm::Run &run, const edm::EventSetup &iSetup) override
 
void algoComputeMPVandGain ()
 
void algoEndJob () override
 
void algoEndRun (const edm::Run &run, const edm::EventSetup &iSetup) override
 
void bookDQMHistos (const char *dqm_dir, const char *tag)
 
template<typename T >
edm::Handle< Tconnect (const T *&ptr, edm::EDGetTokenT< T > token, const edm::Event &evt)
 
std::unique_ptr< SiStripApvGaingetNewObject () override
 
void getPeakOfLandau (TH1 *InputHisto, double *FitResults, double LowRange=50, double HighRange=5400)
 
bool isBFieldConsistentWithMode (const edm::EventSetup &iSetup) const
 
bool IsGoodLandauFit (double *FitResults)
 
void MakeCalibrationMap ()
 
void merge (TH2 *A, TH2 *B)
 
void processEvent ()
 
bool produceTagFilter ()
 
void qualityMonitor ()
 
int statCollectionFromMode (const char *tag) const
 
void storeOnTree (TFileService *tfs)
 
void swapBFieldMode (void)
 

Private Attributes

std::string AlgoMode
 
bool AllowSaturation
 
const std::vector< unsigned char > * amplitude = nullptr
 
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
 
std::unordered_map< unsigned int, stAPVGain * > APVsColl
 
std::vector< stAPVGain * > APVsCollOrdered
 
unsigned int BAD
 
std::string booked_dir_
 
string CalibPrefix_
 
int CalibrationLevel
 
string CalibSuffix_
 
const std::vector< unsigned int > * charge = nullptr
 
std::array< std::vector< APVGain::APVmon >, 7 > Charge_1
 
std::array< std::vector< APVGain::APVmon >, 7 > Charge_2
 
std::array< std::vector< APVGain::APVmon >, 7 > Charge_3
 
std::array< std::vector< APVGain::APVmon >, 7 > Charge_4
 
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
 
std::vector< MonitorElement * > Charge_Vs_Index
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM1
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM2
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP1
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP2
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTIB
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDM
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDP
 
std::vector< MonitorElement * > Charge_Vs_PathlengthTOB
 
const std::vector< double > * chargeoverpath = nullptr
 
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
 
DQMStoredbe
 
MonitorElementDiffWRTPrevGainTEC
 
MonitorElementDiffWRTPrevGainTIB
 
MonitorElementDiffWRTPrevGainTID
 
MonitorElementDiffWRTPrevGainTOB
 
bool doChargeMonitorPerPlane
 
std::vector< string > dqm_tag_
 
unsigned int ERun
 
unsigned int eventnumber = 0
 
string EventPrefix_
 
string EventSuffix_
 
const std::vector< bool > * farfromedge = nullptr
 
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
 
bool FirstSetOfConstants
 
const std::vector< unsigned short > * firststrip = nullptr
 
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
 
MonitorElementGains
 
edm::ESGetToken< SiStripGain, SiStripGainRcdgainToken_
 
const std::vector< double > * gainused = nullptr
 
edm::EDGetTokenT< std::vector< double > > gainused_token_
 
const std::vector< double > * gainusedTick = nullptr
 
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
 
MonitorElementGainVsPrevGainTEC
 
MonitorElementGainVsPrevGainTIB
 
MonitorElementGainVsPrevGainTID
 
MonitorElementGainVsPrevGainTOB
 
unsigned int GOOD
 
const std::vector< double > * localdirx = nullptr
 
edm::EDGetTokenT< std::vector< double > > localdirx_token_
 
const std::vector< double > * localdiry = nullptr
 
edm::EDGetTokenT< std::vector< double > > localdiry_token_
 
const std::vector< double > * localdirz = nullptr
 
edm::EDGetTokenT< std::vector< double > > localdirz_token_
 
std::string m_calibrationMode
 
std::string m_calibrationPath
 
std::string m_DQMdir
 
bool m_harvestingMode
 
bool m_splitDQMstat
 
double MagFieldCurrentTh
 
unsigned int MASKED
 
double MaxChi2OverNDF
 
double MaxMPVError
 
unsigned int MaxNrStrips
 
double MaxTrackChiOverNdf
 
double MaxTrackEta
 
int MaxTrackingIteration
 
double MaxTrackMomentum
 
double MinNrEntries
 
double MinTrackEta
 
unsigned int MinTrackHits
 
double MinTrackMomentum
 
MonitorElementMPV_Vs_EtaTEC
 
MonitorElementMPV_Vs_EtaTECthick
 
MonitorElementMPV_Vs_EtaTECthin
 
MonitorElementMPV_Vs_EtaTIB
 
MonitorElementMPV_Vs_EtaTID
 
MonitorElementMPV_Vs_EtaTOB
 
MonitorElementMPV_Vs_PhiTEC
 
MonitorElementMPV_Vs_PhiTECthick
 
MonitorElementMPV_Vs_PhiTECthin
 
MonitorElementMPV_Vs_PhiTIB
 
MonitorElementMPV_Vs_PhiTID
 
MonitorElementMPV_Vs_PhiTOB
 
MonitorElementMPVError
 
MonitorElementMPVErrorVsEta
 
MonitorElementMPVErrorVsMPV
 
MonitorElementMPVErrorVsN
 
MonitorElementMPVErrorVsPhi
 
MonitorElementMPVs
 
MonitorElementMPVs320
 
MonitorElementMPVs500
 
MonitorElementMPVsTEC
 
MonitorElementMPVsTECM
 
MonitorElementMPVsTECM1
 
MonitorElementMPVsTECM2
 
MonitorElementMPVsTECP
 
MonitorElementMPVsTECP1
 
MonitorElementMPVsTECP2
 
MonitorElementMPVsTECthick
 
MonitorElementMPVsTECthin
 
MonitorElementMPVsTIB
 
MonitorElementMPVsTID
 
MonitorElementMPVsTIDM
 
MonitorElementMPVsTIDP
 
MonitorElementMPVsTOB
 
unsigned int NClusterPixel
 
unsigned int NClusterStrip
 
unsigned int NEvent
 
std::vector< APVGain::APVmonnewCharge
 
MonitorElementNoMPVfit
 
MonitorElementNoMPVmasked
 
int NPixelDets
 
int NStripAPVs
 
const std::vector< unsigned short > * nstrips = nullptr
 
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
 
unsigned int NTrack
 
bool OldGainRemoving
 
std::string OutputGains
 
const std::vector< bool > * overlapping = nullptr
 
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
 
const std::vector< double > * path = nullptr
 
edm::EDGetTokenT< std::vector< double > > path_token_
 
edm::ESGetToken< SiStripQuality, SiStripQualityRcdqualityToken_
 
const std::vector< unsigned int > * rawid = nullptr
 
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
 
edm::ESGetToken< RunInfo, RunInfoRcdrunInfoToken_
 
unsigned int runnumber = 0
 
const std::vector< bool > * saturation = nullptr
 
edm::EDGetTokenT< std::vector< bool > > saturation_token_
 
bool saveSummary
 
unsigned int SRun
 
double tagCondition_GoodFrac
 
double tagCondition_NClusters
 
TFileServicetfs
 
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecordtkGeomToken_
 
const std::vector< int > * trackalgo = nullptr
 
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
 
const std::vector< double > * trackchi2ndof = nullptr
 
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
 
const std::vector< double > * tracketa = nullptr
 
edm::EDGetTokenT< std::vector< double > > tracketa_token_
 
const std::vector< unsigned int > * trackhitsvalid = nullptr
 
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
 
const std::vector< int > * trackindex = nullptr
 
edm::EDGetTokenT< std::vector< int > > trackindex_token_
 
const std::vector< float > * trackp = nullptr
 
edm::EDGetTokenT< std::vector< float > > trackp_token_
 
const std::vector< double > * trackphi = nullptr
 
edm::EDGetTokenT< std::vector< double > > trackphi_token_
 
string TrackPrefix_
 
const std::vector< float > * trackpt = nullptr
 
edm::EDGetTokenT< std::vector< float > > trackpt_token_
 
string TrackSuffix_
 
const std::vector< bool > * TrigTech = nullptr
 
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
 
const TrackerTopologytTopo_ = nullptr
 
edm::ESGetToken< TrackerTopology, TrackerTopologyRcdtTopoToken_
 
bool useCalibration
 
bool Validation
 
std::vector< std::string > VChargeHisto
 
vector< string > VInputFiles
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsInputProcessBlocks ()
 
static bool wantsProcessBlocks ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from ConditionDBWriter< SiStripApvGain >
void setDoStore (const bool doStore)
 When set to false the payload will not be written to the db. More...
 
void storeOnDbNow ()
 
cond::Time_t timeOfLastIOV ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 89 of file SiStripGainFromCalibTree.cc.

Member Typedef Documentation

◆ DQMStore

Definition at line 92 of file SiStripGainFromCalibTree.cc.

◆ MonitorElement

Definition at line 91 of file SiStripGainFromCalibTree.cc.

Constructor & Destructor Documentation

◆ SiStripGainFromCalibTree()

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

Definition at line 360 of file SiStripGainFromCalibTree.cc.

362  OutputGains = iConfig.getParameter<std::string>("OutputGains");
363 
364  AlgoMode = iConfig.getUntrackedParameter<std::string>("AlgoMode", "CalibTree");
365  MagFieldCurrentTh = iConfig.getUntrackedParameter<double>("MagFieldCurrentTh", 2000.);
366  MinNrEntries = iConfig.getUntrackedParameter<double>("minNrEntries", 20);
367  MaxMPVError = iConfig.getUntrackedParameter<double>("maxMPVError", 500.0);
368  MaxChi2OverNDF = iConfig.getUntrackedParameter<double>("maxChi2OverNDF", 5.0);
369  MinTrackMomentum = iConfig.getUntrackedParameter<double>("minTrackMomentum", 3.0);
370  MaxTrackMomentum = iConfig.getUntrackedParameter<double>("maxTrackMomentum", 99999.0);
371  MinTrackEta = iConfig.getUntrackedParameter<double>("minTrackEta", -5.0);
372  MaxTrackEta = iConfig.getUntrackedParameter<double>("maxTrackEta", 5.0);
373  MaxNrStrips = iConfig.getUntrackedParameter<unsigned>("maxNrStrips", 2);
374  MinTrackHits = iConfig.getUntrackedParameter<unsigned>("MinTrackHits", 8);
375  MaxTrackChiOverNdf = iConfig.getUntrackedParameter<double>("MaxTrackChiOverNdf", 3);
376  MaxTrackingIteration = iConfig.getUntrackedParameter<int>("MaxTrackingIteration", 7);
377  AllowSaturation = iConfig.getUntrackedParameter<bool>("AllowSaturation", false);
378  FirstSetOfConstants = iConfig.getUntrackedParameter<bool>("FirstSetOfConstants", true);
379  Validation = iConfig.getUntrackedParameter<bool>("Validation", false);
380  OldGainRemoving = iConfig.getUntrackedParameter<bool>("OldGainRemoving", false);
381 
382  CalibrationLevel = iConfig.getUntrackedParameter<int>("CalibrationLevel", 0);
383  VInputFiles = iConfig.getUntrackedParameter<vector<string>>("InputFiles");
384  VChargeHisto = iConfig.getUntrackedParameter<vector<string>>("ChargeHisto");
385 
386  useCalibration = iConfig.getUntrackedParameter<bool>("UseCalibration", false);
387  m_harvestingMode = iConfig.getUntrackedParameter<bool>("harvestingMode", false);
388  m_splitDQMstat = iConfig.getUntrackedParameter<bool>("splitDQMstat", false);
389  m_calibrationMode = iConfig.getUntrackedParameter<string>("calibrationMode", "StdBunch");
390  m_calibrationPath = iConfig.getUntrackedParameter<string>("calibrationPath");
391  m_DQMdir = iConfig.getUntrackedParameter<string>("DQMdir", "AlCaReco/SiStripGains");
392 
393  tagCondition_NClusters = iConfig.getUntrackedParameter<double>("NClustersForTagProd", 2E8);
394  tagCondition_GoodFrac = iConfig.getUntrackedParameter<double>("GoodFracForTagProd", 0.95);
395 
396  saveSummary = iConfig.getUntrackedParameter<bool>("saveSummary", false);
397 
398  doChargeMonitorPerPlane = iConfig.getUntrackedParameter<bool>("doChargeMonitorPerPlane", false);
399 
400  // Gather DQM Service
401  dbe = edm::Service<DQMStore>().operator->();
402 
403  //Set the monitoring element tag and store
404  dqm_tag_.reserve(7);
405  dqm_tag_.clear();
406  dqm_tag_.push_back("StdBunch"); // statistic collection from Standard Collision Bunch @ 3.8 T
407  dqm_tag_.push_back("StdBunch0T"); // statistic collection from Standard Collision Bunch @ 0 T
408  dqm_tag_.push_back("AagBunch"); // statistic collection from First Collision After Abort Gap @ 3.8 T
409  dqm_tag_.push_back("AagBunch0T"); // statistic collection from First Collision After Abort Gap @ 0 T
410  dqm_tag_.push_back("IsoMuon"); // statistic collection from Isolated Muon @ 3.8 T
411  dqm_tag_.push_back("IsoMuon0T"); // statistic collection from Isolated Muon @ 0 T
412  dqm_tag_.push_back("Harvest"); // statistic collection: Harvest
413 
414  Charge_Vs_Index.insert(Charge_Vs_Index.begin(), dqm_tag_.size(), nullptr);
415  //Charge_Vs_Index_Absolute.insert( Charge_Vs_Index_Absolute.begin(), dqm_tag_.size(), 0);
416  Charge_Vs_PathlengthTIB.insert(Charge_Vs_PathlengthTIB.begin(), dqm_tag_.size(), nullptr);
417  Charge_Vs_PathlengthTOB.insert(Charge_Vs_PathlengthTOB.begin(), dqm_tag_.size(), nullptr);
418  Charge_Vs_PathlengthTIDP.insert(Charge_Vs_PathlengthTIDP.begin(), dqm_tag_.size(), nullptr);
419  Charge_Vs_PathlengthTIDM.insert(Charge_Vs_PathlengthTIDM.begin(), dqm_tag_.size(), nullptr);
420  Charge_Vs_PathlengthTECP1.insert(Charge_Vs_PathlengthTECP1.begin(), dqm_tag_.size(), nullptr);
421  Charge_Vs_PathlengthTECP2.insert(Charge_Vs_PathlengthTECP2.begin(), dqm_tag_.size(), nullptr);
422  Charge_Vs_PathlengthTECM1.insert(Charge_Vs_PathlengthTECM1.begin(), dqm_tag_.size(), nullptr);
423  Charge_Vs_PathlengthTECM2.insert(Charge_Vs_PathlengthTECM2.begin(), dqm_tag_.size(), nullptr);
424 
425  // configure token for gathering the ntuple variables
426  edm::ParameterSet swhallowgain_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("gain");
427 
428  string label = swhallowgain_pset.getUntrackedParameter<string>("label");
429  CalibPrefix_ = swhallowgain_pset.getUntrackedParameter<string>("prefix");
430  CalibSuffix_ = swhallowgain_pset.getUntrackedParameter<string>("suffix");
431 
432  trackindex_token_ = consumes<std::vector<int>>(edm::InputTag(label, CalibPrefix_ + "trackindex" + CalibSuffix_));
433  rawid_token_ = consumes<std::vector<unsigned int>>(edm::InputTag(label, CalibPrefix_ + "rawid" + CalibSuffix_));
434  localdirx_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdirx" + CalibSuffix_));
435  localdiry_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdiry" + CalibSuffix_));
436  localdirz_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "localdirz" + CalibSuffix_));
438  consumes<std::vector<unsigned short>>(edm::InputTag(label, CalibPrefix_ + "firststrip" + CalibSuffix_));
439  nstrips_token_ = consumes<std::vector<unsigned short>>(edm::InputTag(label, CalibPrefix_ + "nstrips" + CalibSuffix_));
440  saturation_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "saturation" + CalibSuffix_));
441  overlapping_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "overlapping" + CalibSuffix_));
442  farfromedge_token_ = consumes<std::vector<bool>>(edm::InputTag(label, CalibPrefix_ + "farfromedge" + CalibSuffix_));
443  charge_token_ = consumes<std::vector<unsigned int>>(edm::InputTag(label, CalibPrefix_ + "charge" + CalibSuffix_));
444  path_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "path" + CalibSuffix_));
446  consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "chargeoverpath" + CalibSuffix_));
448  consumes<std::vector<unsigned char>>(edm::InputTag(label, CalibPrefix_ + "amplitude" + CalibSuffix_));
449  gainused_token_ = consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "gainused" + CalibSuffix_));
451  consumes<std::vector<double>>(edm::InputTag(label, CalibPrefix_ + "gainusedTick" + CalibSuffix_));
452 
453  edm::ParameterSet evtinfo_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("evtinfo");
454  label = evtinfo_pset.getUntrackedParameter<string>("label");
455  EventPrefix_ = evtinfo_pset.getUntrackedParameter<string>("prefix");
456  EventSuffix_ = evtinfo_pset.getUntrackedParameter<string>("suffix");
457  TrigTech_token_ = consumes<std::vector<bool>>(edm::InputTag(label, EventPrefix_ + "TrigTech" + EventSuffix_));
458 
459  edm::ParameterSet track_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("tracks");
460  label = track_pset.getUntrackedParameter<string>("label");
461  TrackPrefix_ = track_pset.getUntrackedParameter<string>("prefix");
462  TrackSuffix_ = track_pset.getUntrackedParameter<string>("suffix");
463 
464  trackchi2ndof_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "chi2ndof" + TrackSuffix_));
465  trackp_token_ = consumes<std::vector<float>>(edm::InputTag(label, TrackPrefix_ + "momentum" + TrackSuffix_));
466  trackpt_token_ = consumes<std::vector<float>>(edm::InputTag(label, TrackPrefix_ + "pt" + TrackSuffix_));
467  tracketa_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "eta" + TrackSuffix_));
468  trackphi_token_ = consumes<std::vector<double>>(edm::InputTag(label, TrackPrefix_ + "phi" + TrackSuffix_));
470  consumes<std::vector<unsigned int>>(edm::InputTag(label, TrackPrefix_ + "hitsvalid" + TrackSuffix_));
471  trackalgo_token_ = consumes<std::vector<int>>(edm::InputTag(label, TrackPrefix_ + "algo" + TrackSuffix_));
472 
473  tTopoToken_ = esConsumes<edm::Transition::BeginRun>();
474  tkGeomToken_ = esConsumes<edm::Transition::BeginRun>();
475  runInfoToken_ = esConsumes<edm::Transition::BeginRun>();
476  gainToken_ = esConsumes<edm::Transition::BeginRun>();
477  qualityToken_ = esConsumes<edm::Transition::BeginRun>();
478 }

References AlgoMode, AllowSaturation, amplitude_token_, CalibPrefix_, CalibrationLevel, CalibSuffix_, charge_token_, Charge_Vs_Index, Charge_Vs_PathlengthTECM1, Charge_Vs_PathlengthTECM2, Charge_Vs_PathlengthTECP1, Charge_Vs_PathlengthTECP2, Charge_Vs_PathlengthTIB, Charge_Vs_PathlengthTIDM, Charge_Vs_PathlengthTIDP, Charge_Vs_PathlengthTOB, chargeoverpath_token_, dbe, doChargeMonitorPerPlane, dqm_tag_, EventPrefix_, EventSuffix_, farfromedge_token_, FirstSetOfConstants, firststrip_token_, gainToken_, gainused_token_, gainusedTick_token_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HLT_FULL_cff::InputTag, label, localdirx_token_, localdiry_token_, localdirz_token_, m_calibrationMode, m_calibrationPath, m_DQMdir, m_harvestingMode, m_splitDQMstat, MagFieldCurrentTh, MaxChi2OverNDF, MaxMPVError, MaxNrStrips, MaxTrackChiOverNdf, MaxTrackEta, MaxTrackingIteration, MaxTrackMomentum, MinNrEntries, MinTrackEta, MinTrackHits, MinTrackMomentum, nstrips_token_, OldGainRemoving, OutputGains, overlapping_token_, path_token_, qualityToken_, rawid_token_, runInfoToken_, saturation_token_, saveSummary, AlCaHLTBitMon_QueryRunRegistry::string, tagCondition_GoodFrac, tagCondition_NClusters, tkGeomToken_, trackalgo_token_, trackchi2ndof_token_, tracketa_token_, trackhitsvalid_token_, trackindex_token_, trackp_token_, trackphi_token_, TrackPrefix_, trackpt_token_, TrackSuffix_, TrigTech_token_, tTopoToken_, useCalibration, Validation, VChargeHisto, and VInputFiles.

◆ ~SiStripGainFromCalibTree()

SiStripGainFromCalibTree::~SiStripGainFromCalibTree ( )
override

Definition at line 1806 of file SiStripGainFromCalibTree.cc.

1806  {
1807  APVsColl.clear();
1808  for (unsigned int a = 0; a < APVsCollOrdered.size(); a++) {
1810  if (APV != nullptr)
1811  delete APV;
1812  }
1813  APVsCollOrdered.clear();
1814 }

References a, sistrip::APV, APVsColl, and APVsCollOrdered.

Member Function Documentation

◆ algoAnalyze()

void SiStripGainFromCalibTree::algoAnalyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from ConditionDBWriter< SiStripApvGain >.

Definition at line 1840 of file SiStripGainFromCalibTree.cc.

1840  {
1841  // in AlCaHarvesting mode we just need to run the logic in the endJob step
1842  if (m_harvestingMode)
1843  return;
1844 
1845  if (AlgoMode == "CalibTree")
1846  return;
1847 
1848  eventnumber = iEvent.id().event();
1849  runnumber = iEvent.id().run();
1850  auto handle01 = connect(TrigTech, TrigTech_token_, iEvent);
1851  auto handle02 = connect(trackchi2ndof, trackchi2ndof_token_, iEvent);
1852  auto handle03 = connect(trackp, trackp_token_, iEvent);
1853  auto handle04 = connect(trackpt, trackpt_token_, iEvent);
1854  auto handle05 = connect(tracketa, tracketa_token_, iEvent);
1855  auto handle06 = connect(trackphi, trackphi_token_, iEvent);
1857  auto handle08 = connect(trackindex, trackindex_token_, iEvent);
1858  auto handle09 = connect(rawid, rawid_token_, iEvent);
1859  auto handle11 = connect(localdirx, localdirx_token_, iEvent);
1860  auto handle12 = connect(localdiry, localdiry_token_, iEvent);
1861  auto handle13 = connect(localdirz, localdirz_token_, iEvent);
1862  auto handle14 = connect(firststrip, firststrip_token_, iEvent);
1863  auto handle15 = connect(nstrips, nstrips_token_, iEvent);
1864  auto handle16 = connect(saturation, saturation_token_, iEvent);
1865  auto handle17 = connect(overlapping, overlapping_token_, iEvent);
1866  auto handle18 = connect(farfromedge, farfromedge_token_, iEvent);
1867  auto handle19 = connect(charge, charge_token_, iEvent);
1868  auto handle21 = connect(path, path_token_, iEvent);
1870  auto handle23 = connect(amplitude, amplitude_token_, iEvent);
1871  auto handle24 = connect(gainused, gainused_token_, iEvent);
1872  auto handle25 = connect(gainusedTick, gainusedTick_token_, iEvent);
1873  auto handle26 = connect(trackalgo, trackalgo_token_, iEvent);
1874 
1875  processEvent();
1876 }

References AlgoMode, amplitude, amplitude_token_, charge, charge_token_, chargeoverpath, chargeoverpath_token_, connect(), eventnumber, farfromedge, farfromedge_token_, firststrip, firststrip_token_, gainused, gainused_token_, gainusedTick, gainusedTick_token_, iEvent, localdirx, localdirx_token_, localdiry, localdiry_token_, localdirz, localdirz_token_, m_harvestingMode, nstrips, nstrips_token_, overlapping, overlapping_token_, path, path_token_, processEvent(), rawid, rawid_token_, runnumber, saturation, saturation_token_, trackalgo, trackalgo_token_, trackchi2ndof, trackchi2ndof_token_, tracketa, tracketa_token_, trackhitsvalid, trackhitsvalid_token_, trackindex, trackindex_token_, trackp, trackp_token_, trackphi, trackphi_token_, trackpt, trackpt_token_, TrigTech, and TrigTech_token_.

◆ algoAnalyzeTheTree()

void SiStripGainFromCalibTree::algoAnalyzeTheTree ( )
private

Definition at line 1312 of file SiStripGainFromCalibTree.cc.

1312  {
1313  for (unsigned int i = 0; i < VInputFiles.size(); i++) {
1314  printf("Openning file %3i/%3i --> %s\n", i + 1, (int)VInputFiles.size(), (char*)(VInputFiles[i].c_str()));
1315  fflush(stdout);
1316  TFile* tfile = TFile::Open(VInputFiles[i].c_str());
1317  TString tree_path = TString::Format("gainCalibrationTree%s/tree", m_calibrationMode.c_str());
1318  TTree* tree = dynamic_cast<TTree*>(tfile->Get(tree_path.Data()));
1319 
1320  tree->SetBranchAddress((EventPrefix_ + "event" + EventSuffix_).c_str(), &eventnumber, nullptr);
1321  tree->SetBranchAddress((EventPrefix_ + "run" + EventSuffix_).c_str(), &runnumber, nullptr);
1322  tree->SetBranchAddress((EventPrefix_ + "TrigTech" + EventSuffix_).c_str(), &TrigTech, nullptr);
1323 
1324  tree->SetBranchAddress((TrackPrefix_ + "chi2ndof" + TrackSuffix_).c_str(), &trackchi2ndof, nullptr);
1325  tree->SetBranchAddress((TrackPrefix_ + "momentum" + TrackSuffix_).c_str(), &trackp, nullptr);
1326  tree->SetBranchAddress((TrackPrefix_ + "pt" + TrackSuffix_).c_str(), &trackpt, nullptr);
1327  tree->SetBranchAddress((TrackPrefix_ + "eta" + TrackSuffix_).c_str(), &tracketa, nullptr);
1328  tree->SetBranchAddress((TrackPrefix_ + "phi" + TrackSuffix_).c_str(), &trackphi, nullptr);
1329  tree->SetBranchAddress((TrackPrefix_ + "hitsvalid" + TrackSuffix_).c_str(), &trackhitsvalid, nullptr);
1330  tree->SetBranchAddress((TrackPrefix_ + "algo" + TrackSuffix_).c_str(), &trackalgo, nullptr);
1331 
1332  tree->SetBranchAddress((CalibPrefix_ + "trackindex" + CalibSuffix_).c_str(), &trackindex, nullptr);
1333  tree->SetBranchAddress((CalibPrefix_ + "rawid" + CalibSuffix_).c_str(), &rawid, nullptr);
1334  tree->SetBranchAddress((CalibPrefix_ + "localdirx" + CalibSuffix_).c_str(), &localdirx, nullptr);
1335  tree->SetBranchAddress((CalibPrefix_ + "localdiry" + CalibSuffix_).c_str(), &localdiry, nullptr);
1336  tree->SetBranchAddress((CalibPrefix_ + "localdirz" + CalibSuffix_).c_str(), &localdirz, nullptr);
1337  tree->SetBranchAddress((CalibPrefix_ + "firststrip" + CalibSuffix_).c_str(), &firststrip, nullptr);
1338  tree->SetBranchAddress((CalibPrefix_ + "nstrips" + CalibSuffix_).c_str(), &nstrips, nullptr);
1339  tree->SetBranchAddress((CalibPrefix_ + "saturation" + CalibSuffix_).c_str(), &saturation, nullptr);
1340  tree->SetBranchAddress((CalibPrefix_ + "overlapping" + CalibSuffix_).c_str(), &overlapping, nullptr);
1341  tree->SetBranchAddress((CalibPrefix_ + "farfromedge" + CalibSuffix_).c_str(), &farfromedge, nullptr);
1342  tree->SetBranchAddress((CalibPrefix_ + "charge" + CalibSuffix_).c_str(), &charge, nullptr);
1343  tree->SetBranchAddress((CalibPrefix_ + "path" + CalibSuffix_).c_str(), &path, nullptr);
1344  tree->SetBranchAddress((CalibPrefix_ + "chargeoverpath" + CalibSuffix_).c_str(), &chargeoverpath, nullptr);
1345  tree->SetBranchAddress((CalibPrefix_ + "amplitude" + CalibSuffix_).c_str(), &amplitude, nullptr);
1346  tree->SetBranchAddress((CalibPrefix_ + "gainused" + CalibSuffix_).c_str(), &gainused, nullptr);
1347  tree->SetBranchAddress((CalibPrefix_ + "gainusedTick" + CalibSuffix_).c_str(), &gainusedTick, nullptr);
1348 
1349  unsigned int nentries = tree->GetEntries();
1350  printf("Number of Events = %i + %i = %i\n", NEvent, nentries, (NEvent + nentries));
1351  printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n");
1352  printf("Looping on the Tree :");
1353  int TreeStep = nentries / 50;
1354  if (TreeStep <= 1)
1355  TreeStep = 1;
1356  for (unsigned int ientry = 0; ientry < tree->GetEntries(); ientry++) {
1357  if (ientry % TreeStep == 0) {
1358  printf(".");
1359  fflush(stdout);
1360  }
1361  tree->GetEntry(ientry);
1362  processEvent();
1363  }
1364  printf("\n"); // END OF EVENT LOOP
1365  }
1366 }

References amplitude, CalibPrefix_, CalibSuffix_, charge, chargeoverpath, eventnumber, EventPrefix_, EventSuffix_, farfromedge, firststrip, gainused, gainusedTick, mps_fire::i, localdirx, localdiry, localdirz, m_calibrationMode, NEvent, nstrips, overlapping, path, processEvent(), rawid, runnumber, saturation, mps_setup::stdout, trackalgo, trackchi2ndof, tracketa, trackhitsvalid, trackindex, trackp, trackphi, TrackPrefix_, trackpt, TrackSuffix_, TrigTech, and VInputFiles.

Referenced by algoEndJob().

◆ algoBeginJob()

void SiStripGainFromCalibTree::algoBeginJob ( const edm::EventSetup iSetup)
overrideprivatevirtual

Reimplemented from ConditionDBWriter< SiStripApvGain >.

Definition at line 662 of file SiStripGainFromCalibTree.cc.

662  {
663  edm::LogInfo("SiStripGainFromCalibTree") << "AlgoMode : " << AlgoMode << "\n"
664  << "CalibrationMode : " << m_calibrationMode << "\n"
665  << "HarvestingMode : " << m_harvestingMode << std::endl;
666  //Setup DQM histograms
667  if (AlgoMode != "PCL" or m_harvestingMode) {
668  const char* dqm_dir = "AlCaReco/SiStripGainsHarvesting/";
669  this->bookDQMHistos(dqm_dir, dqm_tag_[statCollectionFromMode(m_calibrationMode.c_str())].c_str());
670  } else {
671  //Check consistency of calibration Mode and BField only for the ALCAPROMPT in the PCL workflow
672  if (!isBFieldConsistentWithMode(iSetup)) {
673  string prevMode = m_calibrationMode;
674  swapBFieldMode();
675  edm::LogInfo("SiStripGainFromCalibTree") << "Switching calibration mode for endorsing BField status: " << prevMode
676  << " ==> " << m_calibrationMode << std::endl;
677  }
678  std::string dqm_dir = m_DQMdir + ((m_splitDQMstat) ? m_calibrationMode : "") + "/";
679  int elem = statCollectionFromMode(m_calibrationMode.c_str());
680  this->bookDQMHistos(dqm_dir.c_str(), dqm_tag_[elem].c_str());
681  }
682 
683  tTopo_ = &iSetup.getData(tTopoToken_);
684 
685  auto const& Det = iSetup.getData(tkGeomToken_).dets();
686 
687  NPixelDets = 0;
688  NStripAPVs = 0;
689  unsigned int Index = 0;
690  for (unsigned int i = 0; i < Det.size(); i++) {
691  DetId Detid = Det[i]->geographicalId();
692  int SubDet = Detid.subdetId();
693 
696  auto DetUnit = dynamic_cast<const StripGeomDetUnit*>(Det[i]);
697  if (!DetUnit)
698  continue;
699 
700  const StripTopology& Topo = DetUnit->specificTopology();
701  unsigned int NAPV = Topo.nstrips() / 128;
702 
703  for (unsigned int j = 0; j < NAPV; j++) {
704  stAPVGain* APV = new stAPVGain;
705  APV->Index = Index;
706  APV->Bin = -1;
707  APV->DetId = Detid.rawId();
708  APV->APVId = j;
709  APV->SubDet = SubDet;
710  APV->FitMPV = -1;
711  APV->FitMPVErr = -1;
712  APV->FitWidth = -1;
713  APV->FitWidthErr = -1;
714  APV->FitChi2 = -1;
715  APV->FitNorm = -1;
716  APV->Gain = -1;
717  APV->PreviousGain = 1;
718  APV->PreviousGainTick = 1;
719  APV->x = DetUnit->position().basicVector().x();
720  APV->y = DetUnit->position().basicVector().y();
721  APV->z = DetUnit->position().basicVector().z();
722  APV->Eta = DetUnit->position().basicVector().eta();
723  APV->Phi = DetUnit->position().basicVector().phi();
724  APV->R = DetUnit->position().basicVector().transverse();
725  APV->Thickness = DetUnit->surface().bounds().thickness();
726  APV->NEntries = 0;
727  APV->isMasked = false;
728 
729  APVsCollOrdered.push_back(APV);
730  APVsColl[(APV->DetId << 4) | APV->APVId] = APV;
731  Index++;
732  NStripAPVs++;
733  }
734  }
735  }
736 
737  for (unsigned int i = 0; i < Det.size();
738  i++) { //Make two loop such that the Pixel information is added at the end --> make transition simpler
739  DetId Detid = Det[i]->geographicalId();
740  int SubDet = Detid.subdetId();
742  auto DetUnit = dynamic_cast<const PixelGeomDetUnit*>(Det[i]);
743  if (!DetUnit)
744  continue;
745 
746  const PixelTopology& Topo = DetUnit->specificTopology();
747  unsigned int NROCRow = Topo.nrows() / (80.);
748  unsigned int NROCCol = Topo.ncolumns() / (52.);
749 
750  for (unsigned int j = 0; j < NROCRow; j++) {
751  for (unsigned int i = 0; i < NROCCol; i++) {
752  stAPVGain* APV = new stAPVGain;
753  APV->Index = Index;
754  APV->Bin = -1;
755  APV->DetId = Detid.rawId();
756  APV->APVId = (j << 3 | i);
757  APV->SubDet = SubDet;
758  APV->FitMPV = -1;
759  APV->FitMPVErr = -1;
760  APV->FitWidth = -1;
761  APV->FitWidthErr = -1;
762  APV->FitChi2 = -1;
763  APV->Gain = -1;
764  APV->PreviousGain = 1;
765  APV->PreviousGainTick = 1;
766  APV->x = DetUnit->position().basicVector().x();
767  APV->y = DetUnit->position().basicVector().y();
768  APV->z = DetUnit->position().basicVector().z();
769  APV->Eta = DetUnit->position().basicVector().eta();
770  APV->Phi = DetUnit->position().basicVector().phi();
771  APV->R = DetUnit->position().basicVector().transverse();
772  APV->Thickness = DetUnit->surface().bounds().thickness();
773  APV->isMasked = false; //SiPixelQuality_->IsModuleBad(Detid.rawId());
774  APV->NEntries = 0;
775 
776  APVsCollOrdered.push_back(APV);
777  APVsColl[(APV->DetId << 4) | APV->APVId] = APV;
778  Index++;
779  NPixelDets++;
780  }
781  }
782  }
783  }
784 
786 
787  NEvent = 0;
788  NTrack = 0;
789  NClusterStrip = 0;
790  NClusterPixel = 0;
791  SRun = 1 << 31;
792  ERun = 0;
793  GOOD = 0;
794  BAD = 0;
795  MASKED = 0;
796 }

References AlgoMode, sistrip::APV, APVsColl, APVsCollOrdered, BAD, bookDQMHistos(), dqm_tag_, ERun, edm::EventSetup::getData(), GOOD, mps_fire::i, isBFieldConsistentWithMode(), dqmiolumiharvest::j, m_calibrationMode, m_DQMdir, m_harvestingMode, m_splitDQMstat, MakeCalibrationMap(), MASKED, NClusterPixel, NClusterStrip, PixelTopology::ncolumns(), NEvent, NPixelDets, PixelTopology::nrows(), NStripAPVs, StripTopology::nstrips(), NTrack, or, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), SRun, statCollectionFromMode(), AlCaHLTBitMon_QueryRunRegistry::string, ntupleEnum::SubDet, DetId::subdetId(), swapBFieldMode(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, tkGeomToken_, StripSubdetector::TOB, tTopo_, and tTopoToken_.

◆ algoBeginRun()

void SiStripGainFromCalibTree::algoBeginRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from ConditionDBWriter< SiStripApvGain >.

Definition at line 816 of file SiStripGainFromCalibTree.cc.

816  {
817  if (!m_harvestingMode && AlgoMode == "PCL") {
818  //Check consistency of calibration Mode and BField only for the ALCAPROMPT in the PCL workflow
819  if (!isBFieldConsistentWithMode(iSetup)) {
820  string prevMode = m_calibrationMode;
821  swapBFieldMode();
822  edm::LogInfo("SiStripGainFromCalibTree") << "Switching calibration mode for endorsing BField status: " << prevMode
823  << " ==> " << m_calibrationMode << std::endl;
824  }
825  }
826 
827  const auto gainHandle = iSetup.getHandle(gainToken_);
828  if (!gainHandle.isValid()) {
829  edm::LogError("SiStripGainFromCalibTree") << "gainHandle is not valid\n";
830  exit(0);
831  }
832 
833  const auto& siStripQuality = iSetup.getData(qualityToken_);
834  for (unsigned int a = 0; a < APVsCollOrdered.size(); a++) {
836 
837  // MM. 03/03/2017 all of this makes sense only for SiStrip (i.e. get me out of here if I am on a pixel ROC)
839  continue;
840 
841  APV->isMasked = siStripQuality.IsApvBad(APV->DetId, APV->APVId);
842  // if(!FirstSetOfConstants){
843 
844  if (gainHandle->getNumberOfTags() != 2) {
845  edm::LogError("SiStripGainFromCalibTree") << "NUMBER OF GAIN TAG IS EXPECTED TO BE 2\n";
846  fflush(stdout);
847  exit(0);
848  };
849  float newPreviousGain = gainHandle->getApvGain(APV->APVId, gainHandle->getRange(APV->DetId, 1), 1);
850  if (APV->PreviousGain != 1 and newPreviousGain != APV->PreviousGain)
851  edm::LogWarning("SiStripGainFromCalibTree") << "WARNING: ParticleGain in the global tag changed\n";
852  APV->PreviousGain = newPreviousGain;
853 
854  float newPreviousGainTick = gainHandle->getApvGain(APV->APVId, gainHandle->getRange(APV->DetId, 0), 0);
855  if (APV->PreviousGainTick != 1 and newPreviousGainTick != APV->PreviousGainTick) {
856  edm::LogWarning("SiStripGainFromCalibTree")
857  << "WARNING: TickMarkGain in the global tag changed\n"
858  << std::endl
859  << " APV->SubDet: " << APV->SubDet << " APV->APVId:" << APV->APVId << std::endl
860  << " APV->PreviousGainTick: " << APV->PreviousGainTick << " newPreviousGainTick: " << newPreviousGainTick
861  << std::endl;
862  }
863  APV->PreviousGainTick = newPreviousGainTick;
864 
865  //printf("DETID = %7i APVID=%1i Previous Gain=%8.4f (G1) x %8.4f (G2)\n",APV->DetId,APV->APVId,APV->PreviousGainTick, APV->PreviousGain);
866  // }
867  }
868 }

References a, AlgoMode, sistrip::APV, APVsCollOrdered, beamvalidation::exit(), gainToken_, edm::EventSetup::getData(), edm::EventSetup::getHandle(), isBFieldConsistentWithMode(), m_calibrationMode, m_harvestingMode, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, qualityToken_, mps_setup::stdout, and swapBFieldMode().

◆ algoComputeMPVandGain()

void SiStripGainFromCalibTree::algoComputeMPVandGain ( )
private

Definition at line 1368 of file SiStripGainFromCalibTree.cc.

1368  {
1369  unsigned int I = 0;
1370  TH1F* Proj = nullptr;
1371  double FitResults[6];
1372  double MPVmean = 300;
1373 
1374  int elepos = (AlgoMode == "PCL") ? Harvest : statCollectionFromMode(m_calibrationMode.c_str());
1375 
1376  if (Charge_Vs_Index[elepos] == nullptr) {
1377  edm::LogError("SiStripGainFromCalibTree")
1378  << "Harvesting: could not execute algoComputeMPVandGain method because " << m_calibrationMode.c_str()
1379  << " statistics cannot be retrieved.\n"
1380  << "Please check if input contains " << m_calibrationMode.c_str() << " data." << std::endl;
1381  return;
1382  }
1383 
1384  TH2S* chvsidx = (Charge_Vs_Index[elepos])->getTH2S();
1385 
1386  printf("Progressing Bar :0%% 20%% 40%% 60%% 80%% 100%%\n");
1387  printf("Fitting Charge Distribution :");
1388  int TreeStep = APVsColl.size() / 50;
1389  for (auto it = APVsColl.begin(); it != APVsColl.end(); it++, I++) {
1390  if (I % TreeStep == 0) {
1391  printf(".");
1392  fflush(stdout);
1393  }
1394  stAPVGain* APV = it->second;
1395  if (APV->Bin < 0)
1396  APV->Bin = chvsidx->GetXaxis()->FindBin(APV->Index);
1397 
1398  if (APV->isMasked) {
1399  APV->Gain = APV->PreviousGain;
1400  MASKED++;
1401  continue;
1402  }
1403 
1404  Proj = (TH1F*)(chvsidx->ProjectionY(
1405  "", chvsidx->GetXaxis()->FindBin(APV->Index), chvsidx->GetXaxis()->FindBin(APV->Index), "e"));
1406  if (!Proj)
1407  continue;
1408 
1409  if (CalibrationLevel == 0) {
1410  } else if (CalibrationLevel == 1) {
1411  int SecondAPVId = APV->APVId;
1412  if (SecondAPVId % 2 == 0) {
1413  SecondAPVId = SecondAPVId + 1;
1414  } else {
1415  SecondAPVId = SecondAPVId - 1;
1416  }
1417  stAPVGain* APV2 = APVsColl[(APV->DetId << 4) | SecondAPVId];
1418  if (APV2->Bin < 0)
1419  APV2->Bin = chvsidx->GetXaxis()->FindBin(APV2->Index);
1420  TH1F* Proj2 = (TH1F*)(chvsidx->ProjectionY("", APV2->Bin, APV2->Bin, "e"));
1421  if (Proj2) {
1422  Proj->Add(Proj2, 1);
1423  delete Proj2;
1424  }
1425  } else if (CalibrationLevel == 2) {
1426  for (unsigned int i = 0; i < 16; i++) { //loop up to 6APV for Strip and up to 16 for Pixels
1427  auto tmpit = APVsColl.find((APV->DetId << 4) | i);
1428  if (tmpit == APVsColl.end())
1429  continue;
1430  stAPVGain* APV2 = tmpit->second;
1431  if (APV2->DetId != APV->DetId || APV2->APVId == APV->APVId)
1432  continue;
1433  if (APV2->Bin < 0)
1434  APV2->Bin = chvsidx->GetXaxis()->FindBin(APV2->Index);
1435  TH1F* Proj2 = (TH1F*)(chvsidx->ProjectionY("", APV2->Bin, APV2->Bin, "e"));
1436  if (Proj2) {
1437  Proj->Add(Proj2, 1);
1438  delete Proj2;
1439  }
1440  }
1441  } else {
1442  CalibrationLevel = 0;
1443  printf("Unknown Calibration Level, will assume %i\n", CalibrationLevel);
1444  }
1445 
1446  getPeakOfLandau(Proj, FitResults);
1447  APV->FitMPV = FitResults[0];
1448  APV->FitMPVErr = FitResults[1];
1449  APV->FitWidth = FitResults[2];
1450  APV->FitWidthErr = FitResults[3];
1451  APV->FitChi2 = FitResults[4];
1452  APV->FitNorm = FitResults[5];
1453  APV->NEntries = Proj->GetEntries();
1454 
1455  if (IsGoodLandauFit(FitResults)) {
1456  APV->Gain = APV->FitMPV / MPVmean;
1457  if (APV->SubDet > 2)
1458  GOOD++;
1459  } else {
1460  APV->Gain = APV->PreviousGain;
1461  if (APV->SubDet > 2)
1462  BAD++;
1463  }
1464  if (APV->Gain <= 0)
1465  APV->Gain = 1;
1466 
1467  //printf("%5i/%5i: %6i - %1i %5E Entries --> MPV = %f +- %f\n",I,APVsColl.size(),APV->DetId, APV->APVId, Proj->GetEntries(), FitResults[0], FitResults[1]);fflush(stdout);
1468  delete Proj;
1469  }
1470  printf("\n");
1471 }

References AlgoMode, sistrip::APV, stAPVGain::APVId, APVsColl, BAD, stAPVGain::Bin, CalibrationLevel, Charge_Vs_Index, stAPVGain::DetId, getPeakOfLandau(), GOOD, Harvest, Exhume::I, mps_fire::i, stAPVGain::Index, IsGoodLandauFit(), m_calibrationMode, MASKED, statCollectionFromMode(), and mps_setup::stdout.

Referenced by algoEndJob().

◆ algoEndJob()

void SiStripGainFromCalibTree::algoEndJob ( )
overrideprivatevirtual

Reimplemented from ConditionDBWriter< SiStripApvGain >.

Definition at line 1030 of file SiStripGainFromCalibTree.cc.

1030  {
1031  if (AlgoMode == "PCL" && !m_harvestingMode)
1032  return; //nothing to do in that case
1033 
1034  if (AlgoMode == "CalibTree") {
1035  edm::LogInfo("SiStripGainFromCalibTree") << "Analyzing calibration tree" << std::endl;
1036  // Loop on calibTrees to fill the 2D histograms
1038  } else if (m_harvestingMode) {
1039  NClusterStrip = (Charge_Vs_Index[Harvest])->getTH2S()->Integral(0, NStripAPVs + 1, 0, 99999);
1040  //NClusterPixel = (Charge_Vs_Index[Harvest])->getTH2S()->Integral(NStripAPVs+2, NStripAPVs+NPixelDets+2, 0, 99999 );
1041  }
1042 
1043  // Now that we have the full statistics we can extract the information of the 2D histograms
1045 
1046  // Result monitoring
1047  qualityMonitor();
1048 
1049  // Force the DB object writing,
1050  // thus setting the IOV as the first processed run (if timeFromEndRun is set to false)
1051  storeOnDbNow();
1052 
1053  if (AlgoMode != "PCL" or saveSummary) {
1054  edm::LogInfo("SiStripGainFromCalibTree") << "Saving summary into root file" << std::endl;
1055 
1056  //also save the 2D monitor elements to this file as TH2D tfs
1057  tfs = edm::Service<TFileService>().operator->();
1058 
1059  //save only the statistics for the calibrationTag
1060  int elepos = statCollectionFromMode(m_calibrationMode.c_str());
1061 
1062  if (Charge_Vs_Index[elepos] != nullptr)
1063  tfs->make<TH2S>(*(Charge_Vs_Index[elepos])->getTH2S());
1064  //if( Charge_Vs_Index_Absolute[elepos]!=0 ) tfs->make<TH2S> ( *(Charge_Vs_Index_Absolute[elepos])->getTH2S() );
1065  if (Charge_Vs_PathlengthTIB[elepos] != nullptr)
1066  tfs->make<TH2S>(*(Charge_Vs_PathlengthTIB[elepos])->getTH2S());
1067  if (Charge_Vs_PathlengthTOB[elepos] != nullptr)
1068  tfs->make<TH2S>(*(Charge_Vs_PathlengthTOB[elepos])->getTH2S());
1069  if (Charge_Vs_PathlengthTIDP[elepos] != nullptr)
1070  tfs->make<TH2S>(*(Charge_Vs_PathlengthTIDP[elepos])->getTH2S());
1071  if (Charge_Vs_PathlengthTIDM[elepos] != nullptr)
1072  tfs->make<TH2S>(*(Charge_Vs_PathlengthTIDM[elepos])->getTH2S());
1073  if (Charge_Vs_PathlengthTECP1[elepos] != nullptr)
1074  tfs->make<TH2S>(*(Charge_Vs_PathlengthTECP1[elepos])->getTH2S());
1075  if (Charge_Vs_PathlengthTECP2[elepos] != nullptr)
1076  tfs->make<TH2S>(*(Charge_Vs_PathlengthTECP2[elepos])->getTH2S());
1077  if (Charge_Vs_PathlengthTECM1[elepos] != nullptr)
1078  tfs->make<TH2S>(*(Charge_Vs_PathlengthTECM1[elepos])->getTH2S());
1079  if (Charge_Vs_PathlengthTECM2[elepos] != nullptr)
1080  tfs->make<TH2S>(*(Charge_Vs_PathlengthTECM2[elepos])->getTH2S());
1081 
1082  storeOnTree(tfs);
1083  }
1084 }

References algoAnalyzeTheTree(), algoComputeMPVandGain(), AlgoMode, Charge_Vs_Index, Charge_Vs_PathlengthTECM1, Charge_Vs_PathlengthTECM2, Charge_Vs_PathlengthTECP1, Charge_Vs_PathlengthTECP2, Charge_Vs_PathlengthTIB, Charge_Vs_PathlengthTIDM, Charge_Vs_PathlengthTIDP, Charge_Vs_PathlengthTOB, Harvest, m_calibrationMode, m_harvestingMode, TFileService::make(), NClusterStrip, NStripAPVs, or, qualityMonitor(), saveSummary, statCollectionFromMode(), ConditionDBWriter< SiStripApvGain >::storeOnDbNow(), storeOnTree(), and tfs.

◆ algoEndRun()

void SiStripGainFromCalibTree::algoEndRun ( const edm::Run run,
const edm::EventSetup iSetup 
)
overrideprivatevirtual

Reimplemented from ConditionDBWriter< SiStripApvGain >.

Definition at line 870 of file SiStripGainFromCalibTree.cc.

870  {
871  if (AlgoMode == "PCL" && !m_harvestingMode)
872  return; //nothing to do in that case
873 
874  if (AlgoMode == "PCL" and m_harvestingMode) {
875  // Load the 2D histograms from the DQM objects
876  // When running in AlCaHarvesting mode the histos are already booked and should be just retrieved from
877  // DQMStore so that they can be used in the fit
878 
879  edm::LogInfo("SiStripGainFromCalibTree") << "Starting harvesting statistics" << std::endl;
880 
881  // check the required tag before adding histograms
882  int elepos = statCollectionFromMode(m_calibrationMode.c_str());
883  if (elepos != Harvest) {
884  //collect statistics from DQM into the related monitored elements
886  if (!stag.empty() && stag[0] != '_')
887  stag.insert(0, 1, '_');
888 
889  if (elepos == -1) {
890  //implememt backward compatibility
891  elepos = 0;
892  stag = "";
893  }
894 
895  std::string DQM_dir = m_DQMdir + ((m_splitDQMstat) ? m_calibrationMode : "");
896 
897  std::string cvi = DQM_dir + std::string("/Charge_Vs_Index") + stag;
898  //std::string cviA = DQM_dir + std::string("/Charge_Vs_Index_Absolute") + stag;
899  std::string cvpTIB = DQM_dir + std::string("/Charge_Vs_PathlengthTIB") + stag;
900  std::string cvpTOB = DQM_dir + std::string("/Charge_Vs_PathlengthTOB") + stag;
901  std::string cvpTIDP = DQM_dir + std::string("/Charge_Vs_PathlengthTIDP") + stag;
902  std::string cvpTIDM = DQM_dir + std::string("/Charge_Vs_PathlengthTIDM") + stag;
903  std::string cvpTECP1 = DQM_dir + std::string("/Charge_Vs_PathlengthTECP1") + stag;
904  std::string cvpTECP2 = DQM_dir + std::string("/Charge_Vs_PathlengthTECP2") + stag;
905  std::string cvpTECM1 = DQM_dir + std::string("/Charge_Vs_PathlengthTECM1") + stag;
906  std::string cvpTECM2 = DQM_dir + std::string("/Charge_Vs_PathlengthTECM2") + stag;
907 
908  Charge_Vs_Index[elepos] = dbe->get(cvi);
909  //Charge_Vs_Index_Absolute[elepos] = dbe->get(cviA.c_str());
910  Charge_Vs_PathlengthTIB[elepos] = dbe->get(cvpTIB);
911  Charge_Vs_PathlengthTOB[elepos] = dbe->get(cvpTOB);
912  Charge_Vs_PathlengthTIDP[elepos] = dbe->get(cvpTIDP);
913  Charge_Vs_PathlengthTIDM[elepos] = dbe->get(cvpTIDM);
914  Charge_Vs_PathlengthTECP1[elepos] = dbe->get(cvpTECP1);
915  Charge_Vs_PathlengthTECP2[elepos] = dbe->get(cvpTECP2);
916  Charge_Vs_PathlengthTECM1[elepos] = dbe->get(cvpTECM1);
917  Charge_Vs_PathlengthTECM2[elepos] = dbe->get(cvpTECM2);
918 
919  if (Charge_Vs_Index[elepos] == nullptr) {
920  edm::LogError("SiStripGainFromCalibTree")
921  << "Harvesting: could not retrieve " << cvi.c_str() << ", statistics will not be summed!" << std::endl;
922  } else {
923  merge((Charge_Vs_Index[Harvest])->getTH2S(), (Charge_Vs_Index[elepos])->getTH2S());
924  edm::LogInfo("SiStripGainFromCalibTree")
925  << "Harvesting " << (Charge_Vs_Index[elepos])->getTH2S()->GetEntries() << " more clusters" << std::endl;
926  }
927 
928  //if (Charge_Vs_Index_Absolute[elepos]==0) {
929  // edm::LogError("SiStripGainFromCalibTree") << "Harvesting: could not retrieve " << cviA.c_str()
930  // << ", statistics will not be summed!" << std::endl;
931  //} else merge( (Charge_Vs_Index_Absolute[Harvest])->getTH2S(), (Charge_Vs_Index_Absolute[elepos])->getTH2S() );
932 
933  if (Charge_Vs_PathlengthTIB[elepos] == nullptr) {
934  edm::LogError("SiStripGainFromCalibTree")
935  << "Harvesting: could not retrieve " << cvpTIB.c_str() << ", statistics will not be summed!" << std::endl;
936  } else
937  (Charge_Vs_PathlengthTIB[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTIB[elepos])->getTH2S());
938 
939  if (Charge_Vs_PathlengthTOB[elepos] == nullptr) {
940  edm::LogError("SiStripGainFromCalibTree")
941  << "Harvesting: could not retrieve " << cvpTOB.c_str() << ", statistics will not be summed!" << std::endl;
942  } else
943  (Charge_Vs_PathlengthTOB[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTOB[elepos])->getTH2S());
944 
945  if (Charge_Vs_PathlengthTIDP[elepos] == nullptr) {
946  edm::LogError("SiStripGainFromCalibTree")
947  << "Harvesting: could not retrieve " << cvpTIDP.c_str() << ", statistics will not be summed!" << std::endl;
948  } else
949  (Charge_Vs_PathlengthTIDP[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTIDP[elepos])->getTH2S());
950 
951  if (Charge_Vs_PathlengthTIDM[elepos] == nullptr) {
952  edm::LogError("SiStripGainFromCalibTree")
953  << "Harvesting: could not retrieve " << cvpTIDM.c_str() << ", statistics will not be summed!" << std::endl;
954  } else
955  (Charge_Vs_PathlengthTIDM[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTIDM[elepos])->getTH2S());
956 
957  if (Charge_Vs_PathlengthTECP1[elepos] == nullptr) {
958  edm::LogError("SiStripGainFromCalibTree")
959  << "Harvesting: could not retrieve " << cvpTECP1.c_str() << ", statistics will not be summed!" << std::endl;
960  } else
961  (Charge_Vs_PathlengthTECP1[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTECP1[elepos])->getTH2S());
962 
963  if (Charge_Vs_PathlengthTECP2[elepos] == nullptr) {
964  edm::LogError("SiStripGainFromCalibTree")
965  << "Harvesting: could not retrieve " << cvpTECP2.c_str() << ", statistics will not be summed!" << std::endl;
966  } else
967  (Charge_Vs_PathlengthTECP2[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTECP2[elepos])->getTH2S());
968 
969  if (Charge_Vs_PathlengthTECM1[elepos] == nullptr) {
970  edm::LogError("SiStripGainFromCalibTree")
971  << "Harvesting: could not retrieve " << cvpTECM1.c_str() << ", statistics will not be summed!" << std::endl;
972  } else
973  (Charge_Vs_PathlengthTECM1[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTECM1[elepos])->getTH2S());
974 
975  if (Charge_Vs_PathlengthTECM2[elepos] == nullptr) {
976  edm::LogError("SiStripGainFromCalibTree")
977  << "Harvesting: could not retrieve " << cvpTECM2.c_str() << ", statistics will not be summed!" << std::endl;
978  } else
979  (Charge_Vs_PathlengthTECM2[Harvest])->getTH2S()->Add((Charge_Vs_PathlengthTECM2[elepos])->getTH2S());
980 
981  // Gather Charge monitoring histograms
982  std::vector<std::pair<std::string, std::string>> tags =
984  for (unsigned int i = 0; i < tags.size(); i++) {
985  std::string tag = DQM_dir + "/" + (tags[i]).first + stag;
986  Charge_1[elepos].push_back(APVGain::APVmon(0, 0, 0, 0, dbe->get(tag)));
987  if ((Charge_1[elepos][i]).getMonitor() == nullptr) {
988  edm::LogError("SiStripGainFromCalibTree")
989  << "Harvesting: could not retrieve " << tag.c_str() << ", statistics will not be summed!" << std::endl;
990  } else
991  (Charge_1[Harvest][i]).getMonitor()->getTH1D()->Add((Charge_1[elepos][i]).getMonitor()->getTH1D());
992  }
993 
995  for (unsigned int i = 0; i < tags.size(); i++) {
996  std::string tag = DQM_dir + "/" + (tags[i]).first + stag;
997  Charge_2[elepos].push_back(APVGain::APVmon(0, 0, 0, 0, dbe->get(tag)));
998  if ((Charge_2[elepos][i]).getMonitor() == nullptr) {
999  edm::LogError("SiStripGainFromCalibTree")
1000  << "Harvesting: could not retrieve " << tag.c_str() << ", statistics will not be summed!" << std::endl;
1001  } else
1002  (Charge_2[Harvest][i]).getMonitor()->getTH1D()->Add((Charge_2[elepos][i]).getMonitor()->getTH1D());
1003  }
1004 
1006  for (unsigned int i = 0; i < tags.size(); i++) {
1007  std::string tag = DQM_dir + "/" + (tags[i]).first + stag;
1008  Charge_3[elepos].push_back(APVGain::APVmon(0, 0, 0, 0, dbe->get(tag)));
1009  if ((Charge_3[elepos][i]).getMonitor() == nullptr) {
1010  edm::LogError("SiStripGainFromCalibTree")
1011  << "Harvesting: could not retrieve " << tag.c_str() << ", statistics will not be summed!" << std::endl;
1012  } else
1013  (Charge_3[Harvest][i]).getMonitor()->getTH1D()->Add((Charge_3[elepos][i]).getMonitor()->getTH1D());
1014  }
1015 
1017  for (unsigned int i = 0; i < tags.size(); i++) {
1018  std::string tag = DQM_dir + "/" + (tags[i]).first + stag;
1019  Charge_4[elepos].push_back(APVGain::APVmon(0, 0, 0, 0, dbe->get(tag)));
1020  if ((Charge_4[elepos][i]).getMonitor() == nullptr) {
1021  edm::LogError("SiStripGainFromCalibTree")
1022  << "Harvesting: could not retrieve " << tag.c_str() << ", statistics will not be summed!" << std::endl;
1023  } else
1024  (Charge_4[Harvest][i]).getMonitor()->getTH1D()->Add((Charge_4[elepos][i]).getMonitor()->getTH1D());
1025  }
1026  }
1027  }
1028 }

References AlgoMode, Charge_1, Charge_2, Charge_3, Charge_4, Charge_Vs_Index, Charge_Vs_PathlengthTECM1, Charge_Vs_PathlengthTECM2, Charge_Vs_PathlengthTECP1, Charge_Vs_PathlengthTECP2, Charge_Vs_PathlengthTIB, Charge_Vs_PathlengthTIDM, Charge_Vs_PathlengthTIDP, Charge_Vs_PathlengthTOB, dbe, doChargeMonitorPerPlane, first, dqm::implementation::IGetter::get(), Harvest, mps_fire::i, m_calibrationMode, m_DQMdir, m_harvestingMode, m_splitDQMstat, merge(), APVGain::monHnames(), statCollectionFromMode(), AlCaHLTBitMon_QueryRunRegistry::string, makeGlobalPositionRcd_cfg::tag, triggerMatcherToHLTDebug_cfi::tags, and VChargeHisto.

◆ bookDQMHistos()

void SiStripGainFromCalibTree::bookDQMHistos ( const char *  dqm_dir,
const char *  tag 
)
private

Definition at line 480 of file SiStripGainFromCalibTree.cc.

480  {
481  edm::LogInfo("SiStripGainFromCalibTree")
482  << "Setting " << dqm_dir << "in DQM and booking histograms for tag " << tag << std::endl;
483 
484  if (strcmp(booked_dir_.c_str(), dqm_dir) != 0) {
485  booked_dir_ = dqm_dir;
486  dbe->setCurrentFolder(dqm_dir);
487  }
488 
489  std::string stag(tag);
490  if (!stag.empty() && stag[0] != '_')
491  stag.insert(0, 1, '_');
492 
493  std::string cvi = std::string("Charge_Vs_Index") + stag;
494  //std::string cviA = std::string("Charge_Vs_Index_Absolute") + stag;
495  std::string cvpTIB = std::string("Charge_Vs_PathlengthTIB") + stag;
496  std::string cvpTOB = std::string("Charge_Vs_PathlengthTOB") + stag;
497  std::string cvpTIDP = std::string("Charge_Vs_PathlengthTIDP") + stag;
498  std::string cvpTIDM = std::string("Charge_Vs_PathlengthTIDM") + stag;
499  std::string cvpTECP1 = std::string("Charge_Vs_PathlengthTECP1") + stag;
500  std::string cvpTECP2 = std::string("Charge_Vs_PathlengthTECP2") + stag;
501  std::string cvpTECM1 = std::string("Charge_Vs_PathlengthTECM1") + stag;
502  std::string cvpTECM2 = std::string("Charge_Vs_PathlengthTECM2") + stag;
503 
504  int elepos = (m_harvestingMode && AlgoMode == "PCL") ? Harvest : statCollectionFromMode(tag);
505 
506  // The cluster charge is stored by exploiting a non uniform binning in order
507  // reduce the histogram memory size. The bin width is relaxed with a falling
508  // exponential function and the bin boundaries are stored in the binYarray.
509  // The binXarray is used to provide as many bins as the APVs.
510  //
511  // More details about this implementations are here:
512  // https://indico.cern.ch/event/649344/contributions/2672267/attachments/1498323/2332518/OptimizeChHisto.pdf
513 
514  std::vector<float> binXarray;
515  binXarray.reserve(NStripAPVs + 1);
516  for (int a = 0; a <= NStripAPVs; a++) {
517  binXarray.push_back((float)a);
518  }
519 
520  std::array<float, 688> binYarray;
521  double p0 = 5.445;
522  double p1 = 0.002113;
523  double p2 = 69.01576;
524  double y = 0.;
525  for (int b = 0; b < 687; b++) {
526  binYarray[b] = y;
527  if (y <= 902.)
528  y = y + 2.;
529  else
530  y = (p0 - log(exp(p0 - p1 * y) - p2 * p1)) / p1;
531  }
532  binYarray[687] = 4000.;
533 
534  Charge_Vs_Index[elepos] = dbe->book2S(cvi.c_str(), cvi.c_str(), NStripAPVs, &binXarray[0], 687, binYarray.data());
535  //Charge_Vs_Index_Absolute[elepos] = dbe->book2S(cviA.c_str() , cviA.c_str() , 88625, 0 , 88624,1000,0,4000);
536  Charge_Vs_PathlengthTIB[elepos] = dbe->book2S(cvpTIB.c_str(), cvpTIB.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
537  Charge_Vs_PathlengthTOB[elepos] = dbe->book2S(cvpTOB.c_str(), cvpTOB.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
538  Charge_Vs_PathlengthTIDP[elepos] = dbe->book2S(cvpTIDP.c_str(), cvpTIDP.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
539  Charge_Vs_PathlengthTIDM[elepos] = dbe->book2S(cvpTIDM.c_str(), cvpTIDM.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
540  Charge_Vs_PathlengthTECP1[elepos] = dbe->book2S(cvpTECP1.c_str(), cvpTECP1.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
541  Charge_Vs_PathlengthTECP2[elepos] = dbe->book2S(cvpTECP2.c_str(), cvpTECP2.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
542  Charge_Vs_PathlengthTECM1[elepos] = dbe->book2S(cvpTECM1.c_str(), cvpTECM1.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
543  Charge_Vs_PathlengthTECM2[elepos] = dbe->book2S(cvpTECM2.c_str(), cvpTECM2.c_str(), 20, 0.3, 1.3, 250, 0, 2000);
544 
545  //Book Charge monitoring histograms
546  std::vector<std::pair<std::string, std::string>> hnames =
548  for (unsigned int i = 0; i < hnames.size(); i++) {
549  std::string htag = (hnames[i]).first + stag;
550  MonitorElement* monitor = dbe->book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.);
551  int thick = APVGain::thickness((hnames[i]).first);
552  int id = APVGain::subdetectorId((hnames[i]).first);
553  int side = APVGain::subdetectorSide((hnames[i]).first);
554  int plane = APVGain::subdetectorPlane((hnames[i]).first);
555  Charge_1[elepos].push_back(APVGain::APVmon(thick, id, side, plane, monitor));
556  }
557 
559  for (unsigned int i = 0; i < hnames.size(); i++) {
560  std::string htag = (hnames[i]).first + stag;
561  MonitorElement* monitor = dbe->book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.);
562  int thick = APVGain::thickness((hnames[i]).first);
563  int id = APVGain::subdetectorId((hnames[i]).first);
564  int side = APVGain::subdetectorSide((hnames[i]).first);
565  int plane = APVGain::subdetectorPlane((hnames[i]).first);
566  Charge_2[elepos].push_back(APVGain::APVmon(thick, id, side, plane, monitor));
567  }
568 
570  for (unsigned int i = 0; i < hnames.size(); i++) {
571  std::string htag = (hnames[i]).first + stag;
572  MonitorElement* monitor = dbe->book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.);
573  int thick = APVGain::thickness((hnames[i]).first);
574  int id = APVGain::subdetectorId((hnames[i]).first);
575  int side = APVGain::subdetectorSide((hnames[i]).first);
576  int plane = APVGain::subdetectorPlane((hnames[i]).first);
577  Charge_3[elepos].push_back(APVGain::APVmon(thick, id, side, plane, monitor));
578  }
579 
581  for (unsigned int i = 0; i < hnames.size(); i++) {
582  std::string htag = (hnames[i]).first + stag;
583  MonitorElement* monitor = dbe->book1DD(htag.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.);
584  int thick = APVGain::thickness((hnames[i]).first);
585  int id = APVGain::subdetectorId((hnames[i]).first);
586  int side = APVGain::subdetectorSide((hnames[i]).first);
587  int plane = APVGain::subdetectorPlane((hnames[i]).first);
588  Charge_4[elepos].push_back(APVGain::APVmon(thick, id, side, plane, monitor));
589  }
590 
591  //Book validation histograms
592  if (m_harvestingMode) {
593  int MPVbin = 300;
594  float MPVmin = 0.;
595  float MPVmax = 600.;
596 
597  MPV_Vs_EtaTIB = dbe->book2DD("MPV_vs_EtaTIB", "MPV vs Eta TIB", 50, -3.0, 3.0, MPVbin, MPVmin, MPVmax);
598  MPV_Vs_EtaTID = dbe->book2DD("MPV_vs_EtaTID", "MPV vs Eta TID", 50, -3.0, 3.0, MPVbin, MPVmin, MPVmax);
599  MPV_Vs_EtaTOB = dbe->book2DD("MPV_vs_EtaTOB", "MPV vs Eta TOB", 50, -3.0, 3.0, MPVbin, MPVmin, MPVmax);
600  MPV_Vs_EtaTEC = dbe->book2DD("MPV_vs_EtaTEC", "MPV vs Eta TEC", 50, -3.0, 3.0, MPVbin, MPVmin, MPVmax);
601  MPV_Vs_EtaTECthin = dbe->book2DD("MPV_vs_EtaTEC1", "MPV vs Eta TEC-thin", 50, -3.0, 3.0, MPVbin, MPVmin, MPVmax);
602  MPV_Vs_EtaTECthick = dbe->book2DD("MPV_vs_EtaTEC2", "MPV vs Eta TEC-thick", 50, -3.0, 3.0, MPVbin, MPVmin, MPVmax);
603 
604  MPV_Vs_PhiTIB = dbe->book2DD("MPV_vs_PhiTIB", "MPV vs Phi TIB", 50, -3.4, 3.4, MPVbin, MPVmin, MPVmax);
605  MPV_Vs_PhiTID = dbe->book2DD("MPV_vs_PhiTID", "MPV vs Phi TID", 50, -3.4, 3.4, MPVbin, MPVmin, MPVmax);
606  MPV_Vs_PhiTOB = dbe->book2DD("MPV_vs_PhiTOB", "MPV vs Phi TOB", 50, -3.4, 3.4, MPVbin, MPVmin, MPVmax);
607  MPV_Vs_PhiTEC = dbe->book2DD("MPV_vs_PhiTEC", "MPV vs Phi TEC", 50, -3.4, 3.4, MPVbin, MPVmin, MPVmax);
608  MPV_Vs_PhiTECthin = dbe->book2DD("MPV_vs_PhiTEC1", "MPV vs Phi TEC-thin", 50, -3.4, 3.4, MPVbin, MPVmin, MPVmax);
609  MPV_Vs_PhiTECthick = dbe->book2DD("MPV_vs_PhiTEC2", "MPV vs Phi TEC-thick", 50, -3.4, 3.4, MPVbin, MPVmin, MPVmax);
610 
611  NoMPVfit = dbe->book2DD("NoMPVfit", "Modules with bad Landau Fit", 350, -350, 350, 240, 0, 120);
612  NoMPVmasked = dbe->book2DD("NoMPVmasked", "Masked Modules", 350, -350, 350, 240, 0, 120);
613 
614  Gains = dbe->book1DD("Gains", "Gains", 300, 0, 2);
615  MPVs = dbe->book1DD("MPVs", "MPVs", MPVbin, MPVmin, MPVmax);
616  MPVs320 = dbe->book1DD("MPV_320", "MPV 320 thickness", MPVbin, MPVmin, MPVmax);
617  MPVs500 = dbe->book1DD("MPV_500", "MPV 500 thickness", MPVbin, MPVmin, MPVmax);
618  MPVsTIB = dbe->book1DD("MPV_TIB", "MPV TIB", MPVbin, MPVmin, MPVmax);
619  MPVsTID = dbe->book1DD("MPV_TID", "MPV TID", MPVbin, MPVmin, MPVmax);
620  MPVsTIDP = dbe->book1DD("MPV_TIDP", "MPV TIDP", MPVbin, MPVmin, MPVmax);
621  MPVsTIDM = dbe->book1DD("MPV_TIDM", "MPV TIDM", MPVbin, MPVmin, MPVmax);
622  MPVsTOB = dbe->book1DD("MPV_TOB", "MPV TOB", MPVbin, MPVmin, MPVmax);
623  MPVsTEC = dbe->book1DD("MPV_TEC", "MPV TEC", MPVbin, MPVmin, MPVmax);
624  MPVsTECP = dbe->book1DD("MPV_TECP", "MPV TECP", MPVbin, MPVmin, MPVmax);
625  MPVsTECM = dbe->book1DD("MPV_TECM", "MPV TECM", MPVbin, MPVmin, MPVmax);
626  MPVsTECthin = dbe->book1DD("MPV_TEC1", "MPV TEC1", MPVbin, MPVmin, MPVmax);
627  MPVsTECthick = dbe->book1DD("MPV_TEC2", "MPV TEC2", MPVbin, MPVmin, MPVmax);
628  MPVsTECP1 = dbe->book1DD("MPV_TECP1", "MPV TECP1", MPVbin, MPVmin, MPVmax);
629  MPVsTECP2 = dbe->book1DD("MPV_TECP2", "MPV TECP2", MPVbin, MPVmin, MPVmax);
630  MPVsTECM1 = dbe->book1DD("MPV_TECM1", "MPV TECM1", MPVbin, MPVmin, MPVmax);
631  MPVsTECM2 = dbe->book1DD("MPV_TECM2", "MPV TECM2", MPVbin, MPVmin, MPVmax);
632 
633  MPVError = dbe->book1DD("MPVError", "MPV Error", 150, 0, 150);
634  MPVErrorVsMPV = dbe->book2DD("MPVErrorVsMPV", "MPV Error vs MPV", 300, 0, 600, 150, 0, 150);
635  MPVErrorVsEta = dbe->book2DD("MPVErrorVsEta", "MPV Error vs Eta", 50, -3.0, 3.0, 150, 0, 150);
636  MPVErrorVsPhi = dbe->book2DD("MPVErrorVsPhi", "MPV Error vs Phi", 50, -3.4, 3.4, 150, 0, 150);
637  MPVErrorVsN = dbe->book2DD("MPVErrorVsN", "MPV Error vs N", 500, 0, 1000, 150, 0, 150);
638 
639  DiffWRTPrevGainTIB = dbe->book1DD("DiffWRTPrevGainTIB", "Diff w.r.t. PrevGain TIB", 250, 0, 2);
640  DiffWRTPrevGainTID = dbe->book1DD("DiffWRTPrevGainTID", "Diff w.r.t. PrevGain TID", 250, 0, 2);
641  DiffWRTPrevGainTOB = dbe->book1DD("DiffWRTPrevGainTOB", "Diff w.r.t. PrevGain TOB", 250, 0, 2);
642  DiffWRTPrevGainTEC = dbe->book1DD("DiffWRTPrevGainTEC", "Diff w.r.t. PrevGain TEC", 250, 0, 2);
643 
644  GainVsPrevGainTIB = dbe->book2DD("GainVsPrevGainTIB", "Gain vs PrevGain TIB", 100, 0, 2, 100, 0, 2);
645  GainVsPrevGainTID = dbe->book2DD("GainVsPrevGainTID", "Gain vs PrevGain TID", 100, 0, 2, 100, 0, 2);
646  GainVsPrevGainTOB = dbe->book2DD("GainVsPrevGainTOB", "Gain vs PrevGain TOB", 100, 0, 2, 100, 0, 2);
647  GainVsPrevGainTEC = dbe->book2DD("GainVsPrevGainTEC", "Gain vs PrevGain TEC", 100, 0, 2, 100, 0, 2);
648 
649  std::vector<std::pair<std::string, std::string>> hnames =
651  for (unsigned int i = 0; i < hnames.size(); i++) {
652  MonitorElement* monitor = dbe->book1DD((hnames[i]).first.c_str(), (hnames[i]).second.c_str(), 100, 0., 1000.);
653  int thick = APVGain::thickness((hnames[i]).first);
654  int id = APVGain::subdetectorId((hnames[i]).first);
655  int side = APVGain::subdetectorSide((hnames[i]).first);
656  int plane = APVGain::subdetectorPlane((hnames[i]).first);
657  newCharge.push_back(APVGain::APVmon(thick, id, side, plane, monitor));
658  }
659  }
660 }

References a, AlgoMode, b, dqm::implementation::IBooker::book1DD(), dqm::implementation::IBooker::book2DD(), dqm::implementation::IBooker::book2S(), booked_dir_, Charge_1, Charge_2, Charge_3, Charge_4, Charge_Vs_Index, Charge_Vs_PathlengthTECM1, Charge_Vs_PathlengthTECM2, Charge_Vs_PathlengthTECP1, Charge_Vs_PathlengthTECP2, Charge_Vs_PathlengthTIB, Charge_Vs_PathlengthTIDM, Charge_Vs_PathlengthTIDP, Charge_Vs_PathlengthTOB, dbe, DiffWRTPrevGainTEC, DiffWRTPrevGainTIB, DiffWRTPrevGainTID, DiffWRTPrevGainTOB, doChargeMonitorPerPlane, JetChargeProducer_cfi::exp, first, Gains, GainVsPrevGainTEC, GainVsPrevGainTIB, GainVsPrevGainTID, GainVsPrevGainTOB, Harvest, postprocess-scan-build::htag, mps_fire::i, dqm-mbProfile::log, m_harvestingMode, APVGain::monHnames(), beam_dqm_sourceclient-live_cfg::monitor, MPV_Vs_EtaTEC, MPV_Vs_EtaTECthick, MPV_Vs_EtaTECthin, MPV_Vs_EtaTIB, MPV_Vs_EtaTID, MPV_Vs_EtaTOB, MPV_Vs_PhiTEC, MPV_Vs_PhiTECthick, MPV_Vs_PhiTECthin, MPV_Vs_PhiTIB, MPV_Vs_PhiTID, MPV_Vs_PhiTOB, MPVError, MPVErrorVsEta, MPVErrorVsMPV, MPVErrorVsN, MPVErrorVsPhi, MPVs, MPVs320, MPVs500, MPVsTEC, MPVsTECM, MPVsTECM1, MPVsTECM2, MPVsTECP, MPVsTECP1, MPVsTECP2, MPVsTECthick, MPVsTECthin, MPVsTIB, MPVsTID, MPVsTIDM, MPVsTIDP, MPVsTOB, newCharge, NoMPVfit, NoMPVmasked, NStripAPVs, p1, p2, edm::second(), dqm::implementation::DQMStore::setCurrentFolder(), statCollectionFromMode(), AlCaHLTBitMon_QueryRunRegistry::string, APVGain::subdetectorId(), APVGain::subdetectorPlane(), APVGain::subdetectorSide(), makeGlobalPositionRcd_cfg::tag, APVGain::thickness(), VChargeHisto, and y.

Referenced by algoBeginJob().

◆ connect()

template<typename T >
edm::Handle<T> SiStripGainFromCalibTree::connect ( const T *&  ptr,
edm::EDGetTokenT< T token,
const edm::Event evt 
)
inlineprivate

Definition at line 122 of file SiStripGainFromCalibTree.cc.

122  {
124  evt.getByToken(token, handle);
125  ptr = handle.product();
126  return handle; //return handle to keep alive pointer (safety first)
127  }

References edm::Event::getByToken(), patZpeak::handle, and unpackBuffers-CaloStage2::token.

Referenced by algoAnalyze(), and o2o_db_cfgmap.DbManagerDAQ::update_hashmap().

◆ getNewObject()

std::unique_ptr< SiStripApvGain > SiStripGainFromCalibTree::getNewObject ( )
overrideprivatevirtual

Implements ConditionDBWriter< SiStripApvGain >.

Definition at line 1761 of file SiStripGainFromCalibTree.cc.

1761  {
1762  auto obj = std::make_unique<SiStripApvGain>();
1763  if (!m_harvestingMode)
1764  return obj;
1765 
1766  if (!produceTagFilter()) {
1767  edm::LogWarning("SiStripGainFromCalibTree")
1768  << "getNewObject -> will not produce a paylaod because produceTagFilter returned false " << endl;
1769  setDoStore(false);
1770  return obj;
1771  }
1772 
1773  std::vector<float>* theSiStripVector = nullptr;
1774  unsigned int PreviousDetId = 0;
1775  for (unsigned int a = 0; a < APVsCollOrdered.size(); a++) {
1777  if (APV == nullptr) {
1778  printf("Bug\n");
1779  continue;
1780  }
1781  if (APV->SubDet <= 2)
1782  continue;
1783  if (APV->DetId != PreviousDetId) {
1784  if (theSiStripVector != nullptr) {
1785  SiStripApvGain::Range range(theSiStripVector->begin(), theSiStripVector->end());
1786  if (!obj->put(PreviousDetId, range))
1787  printf("Bug to put detId = %i\n", PreviousDetId);
1788  }
1789  theSiStripVector = new std::vector<float>;
1790  PreviousDetId = APV->DetId;
1791  }
1792  theSiStripVector->push_back(APV->Gain);
1793  }
1794  if (theSiStripVector != nullptr) {
1795  SiStripApvGain::Range range(theSiStripVector->begin(), theSiStripVector->end());
1796  if (!obj->put(PreviousDetId, range))
1797  printf("Bug to put detId = %i\n", PreviousDetId);
1798  }
1799 
1800  if (theSiStripVector != nullptr)
1801  delete theSiStripVector;
1802 
1803  return obj;
1804 }

References a, sistrip::APV, APVsCollOrdered, m_harvestingMode, getGTfromDQMFile::obj, produceTagFilter(), FastTimerService_cff::range, and ConditionDBWriter< SiStripApvGain >::setDoStore().

◆ getPeakOfLandau()

void SiStripGainFromCalibTree::getPeakOfLandau ( TH1 *  InputHisto,
double *  FitResults,
double  LowRange = 50,
double  HighRange = 5400 
)
private

Definition at line 1086 of file SiStripGainFromCalibTree.cc.

1086  {
1087  FitResults[0] = -0.5; //MPV
1088  FitResults[1] = 0; //MPV error
1089  FitResults[2] = -0.5; //Width
1090  FitResults[3] = 0; //Width error
1091  FitResults[4] = -0.5; //Fit Chi2/NDF
1092  FitResults[5] = 0; //Normalization
1093 
1094  if (InputHisto->GetEntries() < MinNrEntries)
1095  return;
1096 
1097  // perform fit with standard landau
1098  TF1* MyLandau = new TF1("MyLandau", "landau", LowRange, HighRange);
1099  MyLandau->SetParameter(1, 300);
1100  InputHisto->Fit(MyLandau, "0QR WW");
1101 
1102  // MPV is parameter 1 (0=constant, 1=MPV, 2=Sigma)
1103  FitResults[0] = MyLandau->GetParameter(1); //MPV
1104  FitResults[1] = MyLandau->GetParError(1); //MPV error
1105  FitResults[2] = MyLandau->GetParameter(2); //Width
1106  FitResults[3] = MyLandau->GetParError(2); //Width error
1107  FitResults[4] = MyLandau->GetChisquare() / MyLandau->GetNDF(); //Fit Chi2/NDF
1108  FitResults[5] = MyLandau->GetParameter(0);
1109 
1110  delete MyLandau;
1111 }

References MinNrEntries.

Referenced by algoComputeMPVandGain().

◆ isBFieldConsistentWithMode()

bool SiStripGainFromCalibTree::isBFieldConsistentWithMode ( const edm::EventSetup iSetup) const
private

Definition at line 798 of file SiStripGainFromCalibTree.cc.

798  {
799  const auto& runInfo = iSetup.getData(runInfoToken_);
800 
801  double average_current = runInfo.m_avg_current;
802  bool isOn = (average_current > MagFieldCurrentTh);
803  bool is0T = (m_calibrationMode.substr(m_calibrationMode.length() - 2) == "0T");
804 
805  return ((isOn && !is0T) || (!isOn && is0T));
806 }

References edm::EventSetup::getData(), m_calibrationMode, MagFieldCurrentTh, submitPVValidationJobs::runInfo, and runInfoToken_.

Referenced by algoBeginJob(), and algoBeginRun().

◆ IsGoodLandauFit()

bool SiStripGainFromCalibTree::IsGoodLandauFit ( double *  FitResults)
private

Definition at line 1113 of file SiStripGainFromCalibTree.cc.

1113  {
1114  if (FitResults[0] <= 0)
1115  return false;
1116  // if(FitResults[1] > MaxMPVError )return false;
1117  // if(FitResults[4] > MaxChi2OverNDF)return false;
1118  return true;
1119 }

Referenced by algoComputeMPVandGain().

◆ MakeCalibrationMap()

void SiStripGainFromCalibTree::MakeCalibrationMap ( )
private

Definition at line 1816 of file SiStripGainFromCalibTree.cc.

1816  {
1817  if (!useCalibration)
1818  return;
1819 
1820  TChain* t1 = new TChain("SiStripCalib/APVGain");
1821  t1->Add(m_calibrationPath.c_str());
1822 
1823  unsigned int tree_DetId;
1824  unsigned char tree_APVId;
1825  double tree_Gain;
1826 
1827  t1->SetBranchAddress("DetId", &tree_DetId);
1828  t1->SetBranchAddress("APVId", &tree_APVId);
1829  t1->SetBranchAddress("Gain", &tree_Gain);
1830 
1831  for (unsigned int ientry = 0; ientry < t1->GetEntries(); ientry++) {
1832  t1->GetEntry(ientry);
1833  stAPVGain* APV = APVsColl[(tree_DetId << 4) | (unsigned int)tree_APVId];
1834  APV->CalibGain = tree_Gain;
1835  }
1836 
1837  delete t1;
1838 }

References sistrip::APV, APVsColl, m_calibrationPath, RandomServiceHelper::t1, and useCalibration.

Referenced by algoBeginJob().

◆ merge()

void SiStripGainFromCalibTree::merge ( TH2 *  A,
TH2 *  B 
)
private

Definition at line 348 of file SiStripGainFromCalibTree.cc.

348  {
349  if (A->GetNbinsX() == B->GetNbinsX()) {
350  A->Add(B);
351  } else {
352  for (int x = 0; x <= B->GetNbinsX() + 1; x++) {
353  for (int y = 0; y <= B->GetNbinsY() + 1; y++) {
354  A->SetBinContent(x, y, A->GetBinContent(x, y) + B->GetBinContent(x, y));
355  }
356  }
357  }
358 }

References TtFullHadDaughter::B.

Referenced by algoEndRun().

◆ processEvent()

void SiStripGainFromCalibTree::processEvent ( )
private

Definition at line 1121 of file SiStripGainFromCalibTree.cc.

1121  {
1122  edm::LogInfo("SiStripGainFromCalibTree") << "Processing run " << runnumber << " and event " << eventnumber << " for "
1123  << m_calibrationMode << " calibration." << std::endl;
1124 
1125  if (runnumber < SRun)
1126  SRun = runnumber;
1127  if (runnumber > ERun)
1128  ERun = runnumber;
1129 
1130  NEvent++;
1131  NTrack += (*trackp).size();
1132 
1133  int elepos = statCollectionFromMode(m_calibrationMode.c_str());
1134 
1135  unsigned int FirstAmplitude = 0;
1136  for (unsigned int i = 0; i < (*chargeoverpath).size(); i++) {
1137  FirstAmplitude += (*nstrips)[i];
1138  int TI = (*trackindex)[i];
1139 
1140  //printf("%i - %i - %i %i %i\n", (int)(*rawid)[i], (int)(*firststrip)[i]/128, (int)(*farfromedge)[i], (int)(*overlapping)[i], (int)(*saturation )[i] );
1141  if ((*tracketa)[TI] < MinTrackEta)
1142  continue;
1143  if ((*tracketa)[TI] > MaxTrackEta)
1144  continue;
1145  if ((*trackp)[TI] < MinTrackMomentum)
1146  continue;
1147  if ((*trackp)[TI] > MaxTrackMomentum)
1148  continue;
1149  if ((*trackhitsvalid)[TI] < MinTrackHits)
1150  continue;
1151  if ((*trackchi2ndof)[TI] > MaxTrackChiOverNdf)
1152  continue;
1153  if ((*trackalgo)[TI] > MaxTrackingIteration)
1154  continue;
1155 
1156  stAPVGain* APV =
1157  APVsColl[((*rawid)[i] << 4) |
1158  ((*firststrip)[i] /
1159  128)]; //works for both strip and pixel thanks to firstStrip encoding for pixel in the calibTree
1160 
1161  if (APV->SubDet > 2 && (*farfromedge)[i] == false)
1162  continue;
1163  if (APV->SubDet > 2 && (*overlapping)[i] == true)
1164  continue;
1165  if (APV->SubDet > 2 && (*saturation)[i] && !AllowSaturation)
1166  continue;
1167  if (APV->SubDet > 2 && (*nstrips)[i] > MaxNrStrips)
1168  continue;
1169 
1170  //printf("detId=%7i run=%7i event=%9i charge=%5i cs=%3i\n",(*rawid)[i],runnumber,eventnumber,(*charge)[i],(*nstrips)[i]);
1171 
1172  //double trans = atan2((*localdiry)[i],(*localdirx)[i])*(180/3.14159265);
1173  //double alpha = acos ((*localdirx)[i] / sqrt( pow((*localdirx)[i],2) + pow((*localdirz)[i],2) ) ) * (180/3.14159265);
1174  //double beta = acos ((*localdiry)[i] / sqrt( pow((*localdirx)[i],2) + pow((*localdirz)[i],2) ) ) * (180/3.14159265);
1175 
1176  //printf("NStrip = %i : Charge = %i --> Path = %f --> ChargeOverPath=%f\n",(*nstrips)[i],(*charge)[i],(*path)[i],(*chargeoverpath)[i]);
1177  //printf("Amplitudes: ");
1178  //for(unsigned int a=0;a<(*nstrips)[i];a++){printf("%i ",(*amplitude)[FirstAmplitude+a]);}
1179  //printf("\n");
1180 
1181  if (APV->SubDet > 2) {
1182  NClusterStrip++;
1183  } else {
1184  NClusterPixel++;
1185  }
1186 
1187  int Charge = 0;
1188  if (APV->SubDet > 2 && (useCalibration || !FirstSetOfConstants)) {
1189  bool Saturation = false;
1190  for (unsigned int s = 0; s < (*nstrips)[i]; s++) {
1191  int StripCharge = (*amplitude)[FirstAmplitude - (*nstrips)[i] + s];
1193  StripCharge = (int)(StripCharge * (APV->PreviousGain / APV->CalibGain));
1194  } else if (useCalibration) {
1195  StripCharge = (int)(StripCharge / APV->CalibGain);
1196  } else if (!FirstSetOfConstants) {
1197  StripCharge = (int)(StripCharge * APV->PreviousGain);
1198  }
1199  if (StripCharge > 1024) {
1200  StripCharge = 255;
1201  Saturation = true;
1202  } else if (StripCharge > 254) {
1203  StripCharge = 254;
1204  Saturation = true;
1205  }
1206  Charge += StripCharge;
1207  }
1208  if (Saturation && !AllowSaturation)
1209  continue;
1210  } else if (APV->SubDet > 2) {
1211  Charge = (*charge)[i];
1212  } else {
1213  Charge = (*charge)[i] / 265.0; //expected scale factor between pixel and strip charge
1214  }
1215 
1216  //printf("ChargeDifference = %i Vs %i with Gain = %f\n",(*charge)[i],Charge,APV->CalibGain);
1217 
1218  double ClusterChargeOverPath = ((double)Charge) / (*path)[i];
1219  if (APV->SubDet > 2) {
1220  if (Validation) {
1221  ClusterChargeOverPath /= (*gainused)[i];
1222  }
1223  if (OldGainRemoving) {
1224  ClusterChargeOverPath *= (*gainused)[i];
1225  }
1226  }
1227 
1228  // keep pixel cluster charge processing until here
1229  if (APV->SubDet <= 2)
1230  continue;
1231 
1232  (Charge_Vs_Index[elepos])->Fill(APV->Index, ClusterChargeOverPath);
1233 
1234  // Compute the charge for monitoring and fill the relative histograms
1235  int mCharge1 = 0;
1236  int mCharge2 = 0;
1237  int mCharge3 = 0;
1238  int mCharge4 = 0;
1239  if (APV->SubDet > 2) {
1240  for (unsigned int s = 0; s < (*nstrips)[i]; s++) {
1241  int StripCharge = (*amplitude)[FirstAmplitude - (*nstrips)[i] + s];
1242  if (StripCharge > 1024)
1243  StripCharge = 255;
1244  else if (StripCharge > 254)
1245  StripCharge = 254;
1246  mCharge1 += StripCharge;
1247  mCharge2 += StripCharge;
1248  mCharge3 += StripCharge;
1249  mCharge4 += StripCharge;
1250  }
1251  // Revome gains for monitoring
1252  mCharge2 *= (*gainused)[i]; // remove G2
1253  mCharge3 *= (*gainusedTick)[i]; // remove G1
1254  mCharge4 *= ((*gainused)[i] * (*gainusedTick)[i]); // remove G1 and G2
1255  }
1256  std::vector<APVGain::APVmon>& v1 = Charge_1[elepos];
1257  std::vector<MonitorElement*> cmon1 = APVGain::FetchMonitor(v1, (*rawid)[i], tTopo_);
1258  for (unsigned int m = 0; m < cmon1.size(); m++)
1259  cmon1[m]->Fill(((double)mCharge1) / (*path)[i]);
1260 
1261  std::vector<APVGain::APVmon>& v2 = Charge_2[elepos];
1262  std::vector<MonitorElement*> cmon2 = APVGain::FetchMonitor(v2, (*rawid)[i], tTopo_);
1263  for (unsigned int m = 0; m < cmon2.size(); m++)
1264  cmon2[m]->Fill(((double)mCharge2) / (*path)[i]);
1265 
1266  std::vector<APVGain::APVmon>& v3 = Charge_3[elepos];
1267  std::vector<MonitorElement*> cmon3 = APVGain::FetchMonitor(v3, (*rawid)[i], tTopo_);
1268  for (unsigned int m = 0; m < cmon3.size(); m++)
1269  cmon3[m]->Fill(((double)mCharge3) / (*path)[i]);
1270 
1271  std::vector<APVGain::APVmon>& v4 = Charge_4[elepos];
1272  std::vector<MonitorElement*> cmon4 = APVGain::FetchMonitor(v4, (*rawid)[i], tTopo_);
1273  for (unsigned int m = 0; m < cmon4.size(); m++)
1274  cmon4[m]->Fill(((double)mCharge4) / (*path)[i]);
1275 
1276  // Fill Charge Vs pathLenght histograms
1277  if (APV->SubDet == StripSubdetector::TIB) {
1278  (Charge_Vs_PathlengthTIB[elepos])->Fill((*path)[i], Charge); // TIB
1279 
1280  } else if (APV->SubDet == StripSubdetector::TOB) {
1281  (Charge_Vs_PathlengthTOB[elepos])->Fill((*path)[i], Charge); // TOB
1282 
1283  } else if (APV->SubDet == StripSubdetector::TID) {
1284  if (APV->Eta < 0) {
1285  (Charge_Vs_PathlengthTIDM[elepos])->Fill((*path)[i], Charge);
1286  } // TID minus
1287  else if (APV->Eta > 0) {
1288  (Charge_Vs_PathlengthTIDP[elepos])->Fill((*path)[i], Charge);
1289  } // TID plus
1290 
1291  } else if (APV->SubDet == StripSubdetector::TEC) {
1292  if (APV->Eta < 0) {
1293  if (APV->Thickness < 0.04) {
1294  (Charge_Vs_PathlengthTECM1[elepos])->Fill((*path)[i], Charge);
1295  } // TEC minus, type 1
1296  else if (APV->Thickness > 0.04) {
1297  (Charge_Vs_PathlengthTECM2[elepos])->Fill((*path)[i], Charge);
1298  } // TEC minus, type 2
1299  } else if (APV->Eta > 0) {
1300  if (APV->Thickness < 0.04) {
1301  (Charge_Vs_PathlengthTECP1[elepos])->Fill((*path)[i], Charge);
1302  } // TEC plus, type 1
1303  else if (APV->Thickness > 0.04) {
1304  (Charge_Vs_PathlengthTECP2[elepos])->Fill((*path)[i], Charge);
1305  } // TEC plus, type 2
1306  }
1307  }
1308 
1309  } // END OF ON-CLUSTER LOOP
1310 } //END OF processEvent()

References AllowSaturation, sistrip::APV, APVsColl, PixelTestBeamValidation_cfi::Charge, Charge_1, Charge_2, Charge_3, Charge_4, Charge_Vs_Index, Charge_Vs_PathlengthTECM1, Charge_Vs_PathlengthTECM2, Charge_Vs_PathlengthTECP1, Charge_Vs_PathlengthTECP2, Charge_Vs_PathlengthTIB, Charge_Vs_PathlengthTIDM, Charge_Vs_PathlengthTIDP, Charge_Vs_PathlengthTOB, ERun, eventnumber, farfromedge, APVGain::FetchMonitor(), HcalObjRepresent::Fill(), FirstSetOfConstants, firststrip, mps_fire::i, createfilelist::int, visualization-live-secondInstance_cfg::m, m_calibrationMode, MaxNrStrips, MaxTrackChiOverNdf, MaxTrackEta, MaxTrackingIteration, MaxTrackMomentum, MinTrackEta, MinTrackHits, MinTrackMomentum, NClusterPixel, NClusterStrip, NEvent, nstrips, NTrack, OldGainRemoving, overlapping, path, rawid, runnumber, alignCSCRings::s, saturation, SRun, statCollectionFromMode(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, StripSubdetector::TOB, trackalgo, trackchi2ndof, tracketa, trackhitsvalid, trackp, tTopo_, useCalibration, and Validation.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ produceTagFilter()

bool SiStripGainFromCalibTree::produceTagFilter ( )
private

Definition at line 1734 of file SiStripGainFromCalibTree.cc.

1734  {
1735  // The goal of this function is to check wether or not there is enough statistics
1736  // to produce a meaningful tag for the DB
1737  int elepos = (AlgoMode == "PCL") ? Harvest : statCollectionFromMode(m_calibrationMode.c_str());
1738  if (Charge_Vs_Index[elepos] == nullptr) {
1739  edm::LogError("SiStripGainFromCalibTree")
1740  << "produceTagFilter -> Return false: could not retrieve the " << m_calibrationMode.c_str() << " statistics.\n"
1741  << "Please check if input contains " << m_calibrationMode.c_str() << " data." << std::endl;
1742  return false;
1743  }
1744 
1745  float integral = (Charge_Vs_Index[elepos])->getTH2S()->Integral();
1746  if ((Charge_Vs_Index[elepos])->getTH2S()->Integral(0, NStripAPVs + 1, 0, 99999) < tagCondition_NClusters) {
1747  edm::LogWarning("SiStripGainFromCalibTree")
1748  << "calibrationMode -> " << m_calibrationMode << "\n"
1749  << "produceTagFilter -> Return false: Statistics is too low : " << integral << endl;
1750  return false;
1751  }
1752  if ((1.0 * GOOD) / (GOOD + BAD) < tagCondition_GoodFrac) {
1753  edm::LogWarning("SiStripGainFromCalibTree")
1754  << "calibrationMode -> " << m_calibrationMode << "\n"
1755  << "produceTagFilter -> Return false: ratio of GOOD/TOTAL is too low: " << (1.0 * GOOD) / (GOOD + BAD) << endl;
1756  return false;
1757  }
1758  return true;
1759 }

References AlgoMode, BAD, Charge_Vs_Index, GOOD, Harvest, funct::integral(), m_calibrationMode, NStripAPVs, statCollectionFromMode(), tagCondition_GoodFrac, and tagCondition_NClusters.

Referenced by getNewObject().

◆ qualityMonitor()

void SiStripGainFromCalibTree::qualityMonitor ( )
private

Definition at line 1473 of file SiStripGainFromCalibTree.cc.

1473  {
1474  int elepos = (AlgoMode == "PCL") ? Harvest : statCollectionFromMode(m_calibrationMode.c_str());
1475 
1476  for (unsigned int a = 0; a < APVsCollOrdered.size(); a++) {
1478  if (APV == nullptr)
1479  continue;
1480 
1481  unsigned int Index = APV->Index;
1482  unsigned int SubDet = APV->SubDet;
1483  unsigned int DetId = APV->DetId;
1484  float z = APV->z;
1485  float Eta = APV->Eta;
1486  float R = APV->R;
1487  float Phi = APV->Phi;
1488  float Thickness = APV->Thickness;
1489  double FitMPV = APV->FitMPV;
1490  double FitMPVErr = APV->FitMPVErr;
1491  double Gain = APV->Gain;
1492  double NEntries = APV->NEntries;
1493  double PreviousGain = APV->PreviousGain;
1494 
1495  if (SubDet < 3)
1496  continue; // avoid to loop over Pixel det id
1497 
1498  if (Gain != 1.) {
1499  std::vector<MonitorElement*> charge_histos = APVGain::FetchMonitor(newCharge, DetId, tTopo_);
1500  TH2S* chvsidx = (Charge_Vs_Index[elepos])->getTH2S();
1501  int bin = chvsidx->GetXaxis()->FindBin(Index);
1502  TH1D* Proj = chvsidx->ProjectionY("proj", bin, bin);
1503  for (int binId = 0; binId < Proj->GetXaxis()->GetNbins(); binId++) {
1504  double new_charge = Proj->GetXaxis()->GetBinCenter(binId) / Gain;
1505  if (Proj->GetBinContent(binId) != 0.) {
1506  for (unsigned int h = 0; h < charge_histos.size(); h++) {
1507  TH1D* chisto = (charge_histos[h])->getTH1D();
1508  for (int e = 0; e < Proj->GetBinContent(binId); e++)
1509  chisto->Fill(new_charge);
1510  }
1511  }
1512  }
1513  }
1514 
1515  if (FitMPV <= 0.) { // No fit of MPV
1516  if (APV->isMasked)
1517  NoMPVmasked->Fill(z, R);
1518  else
1519  NoMPVfit->Fill(z, R);
1520 
1521  } else { // Fit of MPV
1522  if (FitMPV > 0.)
1523  Gains->Fill(Gain);
1524 
1525  MPVs->Fill(FitMPV);
1526  if (Thickness < 0.04)
1527  MPVs320->Fill(FitMPV);
1528  if (Thickness > 0.04)
1529  MPVs500->Fill(FitMPV);
1530 
1531  MPVError->Fill(FitMPVErr);
1532  MPVErrorVsMPV->Fill(FitMPV, FitMPVErr);
1533  MPVErrorVsEta->Fill(Eta, FitMPVErr);
1534  MPVErrorVsPhi->Fill(Phi, FitMPVErr);
1535  MPVErrorVsN->Fill(NEntries, FitMPVErr);
1536 
1537  if (SubDet == 3) {
1538  MPV_Vs_EtaTIB->Fill(Eta, FitMPV);
1539  MPV_Vs_PhiTIB->Fill(Phi, FitMPV);
1540  MPVsTIB->Fill(FitMPV);
1541 
1542  } else if (SubDet == 4) {
1543  MPV_Vs_EtaTID->Fill(Eta, FitMPV);
1544  MPV_Vs_PhiTID->Fill(Phi, FitMPV);
1545  MPVsTID->Fill(FitMPV);
1546  if (Eta < 0.)
1547  MPVsTIDM->Fill(FitMPV);
1548  if (Eta > 0.)
1549  MPVsTIDP->Fill(FitMPV);
1550 
1551  } else if (SubDet == 5) {
1552  MPV_Vs_EtaTOB->Fill(Eta, FitMPV);
1553  MPV_Vs_PhiTOB->Fill(Phi, FitMPV);
1554  MPVsTOB->Fill(FitMPV);
1555 
1556  } else if (SubDet == 6) {
1557  MPV_Vs_EtaTEC->Fill(Eta, FitMPV);
1558  MPV_Vs_PhiTEC->Fill(Phi, FitMPV);
1559  MPVsTEC->Fill(FitMPV);
1560  if (Eta < 0.)
1561  MPVsTECM->Fill(FitMPV);
1562  if (Eta > 0.)
1563  MPVsTECP->Fill(FitMPV);
1564  if (Thickness < 0.04) {
1565  MPV_Vs_EtaTECthin->Fill(Eta, FitMPV);
1566  MPV_Vs_PhiTECthin->Fill(Phi, FitMPV);
1567  MPVsTECthin->Fill(FitMPV);
1568  if (Eta > 0.)
1569  MPVsTECP1->Fill(FitMPV);
1570  if (Eta < 0.)
1571  MPVsTECM1->Fill(FitMPV);
1572  }
1573  if (Thickness > 0.04) {
1574  MPV_Vs_EtaTECthick->Fill(Eta, FitMPV);
1575  MPV_Vs_PhiTECthick->Fill(Phi, FitMPV);
1576  MPVsTECthick->Fill(FitMPV);
1577  if (Eta > 0.)
1578  MPVsTECP2->Fill(FitMPV);
1579  if (Eta < 0.)
1580  MPVsTECM2->Fill(FitMPV);
1581  }
1582  }
1583  }
1584 
1585  if (SubDet == 3 && PreviousGain != 0.)
1586  DiffWRTPrevGainTIB->Fill(Gain / PreviousGain);
1587  else if (SubDet == 4 && PreviousGain != 0.)
1588  DiffWRTPrevGainTID->Fill(Gain / PreviousGain);
1589  else if (SubDet == 5 && PreviousGain != 0.)
1590  DiffWRTPrevGainTOB->Fill(Gain / PreviousGain);
1591  else if (SubDet == 6 && PreviousGain != 0.)
1592  DiffWRTPrevGainTEC->Fill(Gain / PreviousGain);
1593 
1594  if (SubDet == 3)
1595  GainVsPrevGainTIB->Fill(PreviousGain, Gain);
1596  else if (SubDet == 4)
1597  GainVsPrevGainTID->Fill(PreviousGain, Gain);
1598  else if (SubDet == 5)
1599  GainVsPrevGainTOB->Fill(PreviousGain, Gain);
1600  else if (SubDet == 6)
1601  GainVsPrevGainTEC->Fill(PreviousGain, Gain);
1602  }
1603 }

References a, AlgoMode, sistrip::APV, APVsCollOrdered, newFWLiteAna::bin, Charge_Vs_Index, DiffWRTPrevGainTEC, DiffWRTPrevGainTIB, DiffWRTPrevGainTID, DiffWRTPrevGainTOB, MillePedeFileConverter_cfg::e, APVGain::FetchMonitor(), dqm::impl::MonitorElement::Fill(), IntegrityClient_cfi::Gain, Gains, GainVsPrevGainTEC, GainVsPrevGainTIB, GainVsPrevGainTID, GainVsPrevGainTOB, h, Harvest, m_calibrationMode, MPV_Vs_EtaTEC, MPV_Vs_EtaTECthick, MPV_Vs_EtaTECthin, MPV_Vs_EtaTIB, MPV_Vs_EtaTID, MPV_Vs_EtaTOB, MPV_Vs_PhiTEC, MPV_Vs_PhiTECthick, MPV_Vs_PhiTECthin, MPV_Vs_PhiTIB, MPV_Vs_PhiTID, MPV_Vs_PhiTOB, MPVError, MPVErrorVsEta, MPVErrorVsMPV, MPVErrorVsN, MPVErrorVsPhi, MPVs, MPVs320, MPVs500, MPVsTEC, MPVsTECM, MPVsTECM1, MPVsTECM2, MPVsTECP, MPVsTECP1, MPVsTECP2, MPVsTECthick, MPVsTECthin, MPVsTIB, MPVsTID, MPVsTIDM, MPVsTIDP, MPVsTOB, newCharge, NoMPVfit, NoMPVmasked, VtxSmearedParameters_cfi::Phi, dttmaxenums::R, statCollectionFromMode(), ntupleEnum::SubDet, tTopo_, and z.

Referenced by algoEndJob().

◆ statCollectionFromMode()

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

Definition at line 334 of file SiStripGainFromCalibTree.cc.

334  {
335  std::vector<string>::const_iterator it = dqm_tag_.begin();
336  while (it != dqm_tag_.end()) {
337  if (*it == std::string(tag))
338  return it - dqm_tag_.begin();
339  it++;
340  }
341 
342  if (std::string(tag).empty())
343  return 0; // return StdBunch calibration mode for backward compatibility
344 
345  return None;
346 }

References relativeConstraints::empty, None, AlCaHLTBitMon_QueryRunRegistry::string, and makeGlobalPositionRcd_cfg::tag.

Referenced by algoBeginJob(), algoComputeMPVandGain(), algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), produceTagFilter(), qualityMonitor(), and storeOnTree().

◆ storeOnTree()

void SiStripGainFromCalibTree::storeOnTree ( TFileService tfs)
private

Definition at line 1605 of file SiStripGainFromCalibTree.cc.

1605  {
1606  unsigned int tree_Index;
1607  unsigned int tree_Bin;
1608  unsigned int tree_DetId;
1609  unsigned char tree_APVId;
1610  unsigned char tree_SubDet;
1611  float tree_x;
1612  float tree_y;
1613  float tree_z;
1614  float tree_Eta;
1615  float tree_R;
1616  float tree_Phi;
1617  float tree_Thickness;
1618  float tree_FitMPV;
1619  float tree_FitMPVErr;
1620  float tree_FitWidth;
1621  float tree_FitWidthErr;
1622  float tree_FitChi2NDF;
1623  float tree_FitNorm;
1624  double tree_Gain;
1625  double tree_PrevGain;
1626  double tree_PrevGainTick;
1627  double tree_NEntries;
1628  bool tree_isMasked;
1629 
1630  TTree* MyTree;
1631  MyTree = tfs->make<TTree>("APVGain", "APVGain");
1632  MyTree->Branch("Index", &tree_Index, "Index/i");
1633  MyTree->Branch("Bin", &tree_Bin, "Bin/i");
1634  MyTree->Branch("DetId", &tree_DetId, "DetId/i");
1635  MyTree->Branch("APVId", &tree_APVId, "APVId/b");
1636  MyTree->Branch("SubDet", &tree_SubDet, "SubDet/b");
1637  MyTree->Branch("x", &tree_x, "x/F");
1638  MyTree->Branch("y", &tree_y, "y/F");
1639  MyTree->Branch("z", &tree_z, "z/F");
1640  MyTree->Branch("Eta", &tree_Eta, "Eta/F");
1641  MyTree->Branch("R", &tree_R, "R/F");
1642  MyTree->Branch("Phi", &tree_Phi, "Phi/F");
1643  MyTree->Branch("Thickness", &tree_Thickness, "Thickness/F");
1644  MyTree->Branch("FitMPV", &tree_FitMPV, "FitMPV/F");
1645  MyTree->Branch("FitMPVErr", &tree_FitMPVErr, "FitMPVErr/F");
1646  MyTree->Branch("FitWidth", &tree_FitWidth, "FitWidth/F");
1647  MyTree->Branch("FitWidthErr", &tree_FitWidthErr, "FitWidthErr/F");
1648  MyTree->Branch("FitChi2NDF", &tree_FitChi2NDF, "FitChi2NDF/F");
1649  MyTree->Branch("FitNorm", &tree_FitNorm, "FitNorm/F");
1650  MyTree->Branch("Gain", &tree_Gain, "Gain/D");
1651  MyTree->Branch("PrevGain", &tree_PrevGain, "PrevGain/D");
1652  MyTree->Branch("PrevGainTick", &tree_PrevGainTick, "PrevGainTick/D");
1653  MyTree->Branch("NEntries", &tree_NEntries, "NEntries/D");
1654  MyTree->Branch("isMasked", &tree_isMasked, "isMasked/O");
1655 
1656  FILE* Gains = stdout;
1657  fprintf(Gains, "NEvents = %i\n", NEvent);
1658  fprintf(Gains, "NTracks = %i\n", NTrack);
1659  //fprintf(Gains,"NClustersPixel = %i\n",NClusterPixel);
1660  fprintf(Gains, "NClustersStrip = %i\n", NClusterStrip);
1661  //fprintf(Gains,"Number of Pixel Dets = %lu\n",static_cast<unsigned long>(NPixelDets));
1662  fprintf(Gains, "Number of Strip APVs = %lu\n", static_cast<unsigned long>(NStripAPVs));
1663  fprintf(Gains,
1664  "GoodFits = %i BadFits = %i ratio = %f%% (MASKED=%i)\n",
1665  GOOD,
1666  BAD,
1667  (100.0 * GOOD) / (GOOD + BAD),
1668  MASKED);
1669 
1670  Gains = fopen(OutputGains.c_str(), "w");
1671  fprintf(Gains, "NEvents = %i\n", NEvent);
1672  fprintf(Gains, "NTracks = %i\n", NTrack);
1673  //fprintf(Gains,"NClustersPixel = %i\n",NClusterPixel);
1674  fprintf(Gains, "NClustersStrip = %i\n", NClusterStrip);
1675  fprintf(Gains, "Number of Strip APVs = %lu\n", static_cast<unsigned long>(NStripAPVs));
1676  //fprintf(Gains,"Number of Pixel Dets = %lu\n",static_cast<unsigned long>(NPixelDets));
1677  fprintf(Gains,
1678  "GoodFits = %i BadFits = %i ratio = %f%% (MASKED=%i)\n",
1679  GOOD,
1680  BAD,
1681  (100.0 * GOOD) / (GOOD + BAD),
1682  MASKED);
1683 
1684  int elepos = statCollectionFromMode(m_calibrationMode.c_str());
1685 
1686  for (unsigned int a = 0; a < APVsCollOrdered.size(); a++) {
1688  if (APV == nullptr)
1689  continue;
1690  // printf( "%i | %i | PreviousGain = %7.5f NewGain = %7.5f (#clusters=%8.0f)\n", APV->DetId,APV->APVId,APV->PreviousGain,APV->Gain, APV->NEntries);
1691  fprintf(Gains,
1692  "%i | %i | PreviousGain = %7.5f(tick) x %7.5f(particle) NewGain (particle) = %7.5f (#clusters=%8.0f)\n",
1693  APV->DetId,
1694  APV->APVId,
1695  APV->PreviousGainTick,
1696  APV->PreviousGain,
1697  APV->Gain,
1698  APV->NEntries);
1699 
1700  tree_Index = APV->Index;
1701  tree_Bin = (Charge_Vs_Index[elepos])->getTH2S()->GetXaxis()->FindBin(APV->Index);
1702  tree_DetId = APV->DetId;
1703  tree_APVId = APV->APVId;
1704  tree_SubDet = APV->SubDet;
1705  tree_x = APV->x;
1706  tree_y = APV->y;
1707  tree_z = APV->z;
1708  tree_Eta = APV->Eta;
1709  tree_R = APV->R;
1710  tree_Phi = APV->Phi;
1711  tree_Thickness = APV->Thickness;
1712  tree_FitMPV = APV->FitMPV;
1713  tree_FitMPVErr = APV->FitMPVErr;
1714  tree_FitWidth = APV->FitWidth;
1715  tree_FitWidthErr = APV->FitWidthErr;
1716  tree_FitChi2NDF = APV->FitChi2;
1717  tree_FitNorm = APV->FitNorm;
1718  tree_Gain = APV->Gain;
1719  tree_PrevGain = APV->PreviousGain;
1720  tree_PrevGainTick = APV->PreviousGainTick;
1721  tree_NEntries = APV->NEntries;
1722  tree_isMasked = APV->isMasked;
1723 
1724  if (tree_DetId == 402673324) {
1725  printf("%i | %i : %f --> %f (%f)\n", tree_DetId, tree_APVId, tree_PrevGain, tree_Gain, tree_NEntries);
1726  }
1727 
1728  MyTree->Fill();
1729  }
1730  if (Gains)
1731  fclose(Gains);
1732 }

References a, sistrip::APV, APVsCollOrdered, BAD, Charge_Vs_Index, Gains, GOOD, m_calibrationMode, TFileService::make(), MASKED, NClusterStrip, NEvent, NStripAPVs, NTrack, OutputGains, statCollectionFromMode(), mps_setup::stdout, and tfs.

Referenced by algoEndJob().

◆ swapBFieldMode()

void SiStripGainFromCalibTree::swapBFieldMode ( void  )
private

Definition at line 808 of file SiStripGainFromCalibTree.cc.

808  {
809  if (m_calibrationMode.substr(m_calibrationMode.length() - 2) == "0T") {
810  m_calibrationMode.erase(m_calibrationMode.length() - 2, 2);
811  } else {
812  m_calibrationMode.append("0T");
813  }
814 }

References m_calibrationMode.

Referenced by algoBeginJob(), and algoBeginRun().

Member Data Documentation

◆ AlgoMode

std::string SiStripGainFromCalibTree::AlgoMode
private

◆ AllowSaturation

bool SiStripGainFromCalibTree::AllowSaturation
private

Definition at line 145 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ amplitude

const std::vector<unsigned char>* SiStripGainFromCalibTree::amplitude = nullptr
private

Definition at line 308 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ amplitude_token_

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

Definition at line 309 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ APVsColl

std::unordered_map<unsigned int, stAPVGain*> SiStripGainFromCalibTree::APVsColl
private

◆ APVsCollOrdered

std::vector<stAPVGain*> SiStripGainFromCalibTree::APVsCollOrdered
private

◆ BAD

unsigned int SiStripGainFromCalibTree::BAD
private

◆ booked_dir_

std::string SiStripGainFromCalibTree::booked_dir_
private

Definition at line 171 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos().

◆ CalibPrefix_

string SiStripGainFromCalibTree::CalibPrefix_
private

Definition at line 319 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

◆ CalibrationLevel

int SiStripGainFromCalibTree::CalibrationLevel
private

Definition at line 149 of file SiStripGainFromCalibTree.cc.

Referenced by algoComputeMPVandGain(), and SiStripGainFromCalibTree().

◆ CalibSuffix_

string SiStripGainFromCalibTree::CalibSuffix_
private

Definition at line 320 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

◆ charge

const std::vector<unsigned int>* SiStripGainFromCalibTree::charge = nullptr
private

Definition at line 302 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ Charge_1

std::array<std::vector<APVGain::APVmon>, 7> SiStripGainFromCalibTree::Charge_1
private

Charge per cm per layer / wheel

Definition at line 174 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndRun(), bookDQMHistos(), and processEvent().

◆ Charge_2

std::array<std::vector<APVGain::APVmon>, 7> SiStripGainFromCalibTree::Charge_2
private

Charge per cm per layer / wheel without G2

Definition at line 175 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndRun(), bookDQMHistos(), and processEvent().

◆ Charge_3

std::array<std::vector<APVGain::APVmon>, 7> SiStripGainFromCalibTree::Charge_3
private

Charge per cm per layer / wheel without G1

Definition at line 176 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndRun(), bookDQMHistos(), and processEvent().

◆ Charge_4

std::array<std::vector<APVGain::APVmon>, 7> SiStripGainFromCalibTree::Charge_4
private

Charge per cm per layer / wheel without G1 and G1

Definition at line 177 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndRun(), bookDQMHistos(), and processEvent().

◆ charge_token_

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

Definition at line 303 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ Charge_Vs_Index

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_Index
private

◆ Charge_Vs_PathlengthTECM1

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTECM1
private

Charge vs pathlength in TECP thin

Definition at line 185 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTECM2

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTECM2
private

Charge vs pathlength in TECP thick

Definition at line 186 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTECP1

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTECP1
private

Charge vs pathlength in TECP thin

Definition at line 183 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTECP2

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTECP2
private

Charge vs pathlength in TECP thick

Definition at line 184 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTIB

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTIB
private

Charge vs pathlength in TIB

Definition at line 179 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTIDM

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTIDM
private

Charge vs pathlength in TIDM

Definition at line 182 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTIDP

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTIDP
private

Charge vs pathlength in TIDP

Definition at line 181 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ Charge_Vs_PathlengthTOB

std::vector<MonitorElement*> SiStripGainFromCalibTree::Charge_Vs_PathlengthTOB
private

Charge vs pathlength in TOB

Definition at line 180 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), algoEndRun(), bookDQMHistos(), processEvent(), and SiStripGainFromCalibTree().

◆ chargeoverpath

const std::vector<double>* SiStripGainFromCalibTree::chargeoverpath = nullptr
private

Definition at line 306 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ chargeoverpath_token_

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

Definition at line 307 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ dbe

DQMStore* SiStripGainFromCalibTree::dbe
private

◆ DiffWRTPrevGainTEC

MonitorElement* SiStripGainFromCalibTree::DiffWRTPrevGainTEC
private

ratio gain / PreviousGain for TEC disks

Definition at line 236 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ DiffWRTPrevGainTIB

MonitorElement* SiStripGainFromCalibTree::DiffWRTPrevGainTIB
private

ratio Gain / PreviousGain for TIB layers

Definition at line 233 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ DiffWRTPrevGainTID

MonitorElement* SiStripGainFromCalibTree::DiffWRTPrevGainTID
private

ratio Gain / PreviousGain for TID disks

Definition at line 234 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ DiffWRTPrevGainTOB

MonitorElement* SiStripGainFromCalibTree::DiffWRTPrevGainTOB
private

ratio Gain / PreviousGain for TOB layers

Definition at line 235 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ doChargeMonitorPerPlane

bool SiStripGainFromCalibTree::doChargeMonitorPerPlane
private

Charge monitor per detector plane

Definition at line 155 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndRun(), bookDQMHistos(), and SiStripGainFromCalibTree().

◆ dqm_tag_

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

Definition at line 170 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), and SiStripGainFromCalibTree().

◆ ERun

unsigned int SiStripGainFromCalibTree::ERun
private

Definition at line 252 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), and processEvent().

◆ eventnumber

unsigned int SiStripGainFromCalibTree::eventnumber = 0
private

Definition at line 260 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ EventPrefix_

string SiStripGainFromCalibTree::EventPrefix_
private

Definition at line 315 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

◆ EventSuffix_

string SiStripGainFromCalibTree::EventSuffix_
private

Definition at line 316 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

◆ farfromedge

const std::vector<bool>* SiStripGainFromCalibTree::farfromedge = nullptr
private

Definition at line 300 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ farfromedge_token_

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

Definition at line 301 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ FirstSetOfConstants

bool SiStripGainFromCalibTree::FirstSetOfConstants
private

Definition at line 146 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ firststrip

const std::vector<unsigned short>* SiStripGainFromCalibTree::firststrip = nullptr
private

Definition at line 292 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ firststrip_token_

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

Definition at line 293 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ Gains

MonitorElement* SiStripGainFromCalibTree::Gains
private

distribution of gain factors

Definition at line 208 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), qualityMonitor(), and storeOnTree().

◆ gainToken_

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

Definition at line 329 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginRun(), and SiStripGainFromCalibTree().

◆ gainused

const std::vector<double>* SiStripGainFromCalibTree::gainused = nullptr
private

Definition at line 310 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ gainused_token_

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

Definition at line 311 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ gainusedTick

const std::vector<double>* SiStripGainFromCalibTree::gainusedTick = nullptr
private

Definition at line 312 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ gainusedTick_token_

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

Definition at line 313 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ GainVsPrevGainTEC

MonitorElement* SiStripGainFromCalibTree::GainVsPrevGainTEC
private

Gain vs PreviousGain for TEC

Definition at line 241 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ GainVsPrevGainTIB

MonitorElement* SiStripGainFromCalibTree::GainVsPrevGainTIB
private

Gain vs PreviousGain for TIB

Definition at line 238 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ GainVsPrevGainTID

MonitorElement* SiStripGainFromCalibTree::GainVsPrevGainTID
private

Gain vs PreviousGain for TID

Definition at line 239 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ GainVsPrevGainTOB

MonitorElement* SiStripGainFromCalibTree::GainVsPrevGainTOB
private

Gain vs PreviousGain for TOB

Definition at line 240 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ GOOD

unsigned int SiStripGainFromCalibTree::GOOD
private

◆ localdirx

const std::vector<double>* SiStripGainFromCalibTree::localdirx = nullptr
private

Definition at line 286 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ localdirx_token_

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

Definition at line 287 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ localdiry

const std::vector<double>* SiStripGainFromCalibTree::localdiry = nullptr
private

Definition at line 288 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ localdiry_token_

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

Definition at line 289 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ localdirz

const std::vector<double>* SiStripGainFromCalibTree::localdirz = nullptr
private

Definition at line 290 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ localdirz_token_

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

Definition at line 291 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ m_calibrationMode

std::string SiStripGainFromCalibTree::m_calibrationMode
private

◆ m_calibrationPath

std::string SiStripGainFromCalibTree::m_calibrationPath
private

Definition at line 157 of file SiStripGainFromCalibTree.cc.

Referenced by MakeCalibrationMap(), and SiStripGainFromCalibTree().

◆ m_DQMdir

std::string SiStripGainFromCalibTree::m_DQMdir
private

DQM folder hosting the charge statistics and the monitor plots

Definition at line 158 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), algoEndRun(), and SiStripGainFromCalibTree().

◆ m_harvestingMode

bool SiStripGainFromCalibTree::m_harvestingMode
private

◆ m_splitDQMstat

bool SiStripGainFromCalibTree::m_splitDQMstat
private

Definition at line 154 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), algoEndRun(), and SiStripGainFromCalibTree().

◆ MagFieldCurrentTh

double SiStripGainFromCalibTree::MagFieldCurrentTh
private

◆ MASKED

unsigned int SiStripGainFromCalibTree::MASKED
private

Definition at line 255 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), algoComputeMPVandGain(), and storeOnTree().

◆ MaxChi2OverNDF

double SiStripGainFromCalibTree::MaxChi2OverNDF
private

Definition at line 136 of file SiStripGainFromCalibTree.cc.

Referenced by SiStripGainFromCalibTree().

◆ MaxMPVError

double SiStripGainFromCalibTree::MaxMPVError
private

Definition at line 135 of file SiStripGainFromCalibTree.cc.

Referenced by SiStripGainFromCalibTree().

◆ MaxNrStrips

unsigned int SiStripGainFromCalibTree::MaxNrStrips
private

Definition at line 141 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MaxTrackChiOverNdf

double SiStripGainFromCalibTree::MaxTrackChiOverNdf
private

Definition at line 143 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MaxTrackEta

double SiStripGainFromCalibTree::MaxTrackEta
private

Definition at line 140 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MaxTrackingIteration

int SiStripGainFromCalibTree::MaxTrackingIteration
private

Definition at line 144 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MaxTrackMomentum

double SiStripGainFromCalibTree::MaxTrackMomentum
private

Definition at line 138 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MinNrEntries

double SiStripGainFromCalibTree::MinNrEntries
private

Definition at line 134 of file SiStripGainFromCalibTree.cc.

Referenced by getPeakOfLandau(), and SiStripGainFromCalibTree().

◆ MinTrackEta

double SiStripGainFromCalibTree::MinTrackEta
private

Definition at line 139 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MinTrackHits

unsigned int SiStripGainFromCalibTree::MinTrackHits
private

Definition at line 142 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MinTrackMomentum

double SiStripGainFromCalibTree::MinTrackMomentum
private

Definition at line 137 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ MPV_Vs_EtaTEC

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_EtaTEC
private

MPV vs Eta for TEC planes

Definition at line 194 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_EtaTECthick

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_EtaTECthick
private

MPV vs Eta for TEC tick planes

Definition at line 196 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_EtaTECthin

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_EtaTECthin
private

MPV vs Eta for TEC thin planes

Definition at line 195 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_EtaTIB

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_EtaTIB
private

MPV vs Eta for TIB planes

Definition at line 191 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_EtaTID

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_EtaTID
private

MPV vs Eta for TID planes

Definition at line 192 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_EtaTOB

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_EtaTOB
private

MPV vs Eta for TOB planes

Definition at line 193 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_PhiTEC

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_PhiTEC
private

MPV vs Phi for TEC planes

Definition at line 201 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_PhiTECthick

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_PhiTECthick
private

MPV vs Phi for TID tick planes

Definition at line 203 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_PhiTECthin

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_PhiTECthin
private

MPV vs Phi for TEC thin planes

Definition at line 202 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_PhiTIB

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_PhiTIB
private

MPV vs Phi for TIB planes

Definition at line 198 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_PhiTID

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_PhiTID
private

MPV vs Phi for TID planes

Definition at line 199 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPV_Vs_PhiTOB

MonitorElement* SiStripGainFromCalibTree::MPV_Vs_PhiTOB
private

MPV vs Phi for TOB planes

Definition at line 200 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVError

MonitorElement* SiStripGainFromCalibTree::MPVError
private

error of Landau fit

Definition at line 227 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVErrorVsEta

MonitorElement* SiStripGainFromCalibTree::MPVErrorVsEta
private

error of Landau fit vs Eta

Definition at line 229 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVErrorVsMPV

MonitorElement* SiStripGainFromCalibTree::MPVErrorVsMPV
private

error of Landau fit vs MPV

Definition at line 228 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVErrorVsN

MonitorElement* SiStripGainFromCalibTree::MPVErrorVsN
private

error of landau fit vs number of entries

Definition at line 231 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVErrorVsPhi

MonitorElement* SiStripGainFromCalibTree::MPVErrorVsPhi
private

error of Landau fit vs Phi

Definition at line 230 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVs

MonitorElement* SiStripGainFromCalibTree::MPVs
private

distribution of MPVs

Definition at line 209 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVs320

MonitorElement* SiStripGainFromCalibTree::MPVs320
private

distribution of MPVs for thin sensors

Definition at line 210 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVs500

MonitorElement* SiStripGainFromCalibTree::MPVs500
private

distribution of MPVs for tick sensors

Definition at line 211 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTEC

MonitorElement* SiStripGainFromCalibTree::MPVsTEC
private

distribution of MPVs for TEC disks

Definition at line 217 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECM

MonitorElement* SiStripGainFromCalibTree::MPVsTECM
private

distribution of MPVs for TECM disks

Definition at line 219 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECM1

MonitorElement* SiStripGainFromCalibTree::MPVsTECM1
private

distribution of MPVs for TECM thin sensors

Definition at line 224 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECM2

MonitorElement* SiStripGainFromCalibTree::MPVsTECM2
private

distribution of MPVs for TECM tick sensors

Definition at line 225 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECP

MonitorElement* SiStripGainFromCalibTree::MPVsTECP
private

distribution of MPVs for TECP disks

Definition at line 218 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECP1

MonitorElement* SiStripGainFromCalibTree::MPVsTECP1
private

distribution of MPVs for TECP thin sensors

Definition at line 222 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECP2

MonitorElement* SiStripGainFromCalibTree::MPVsTECP2
private

distribution of MPVs for TECP tick sensors

Definition at line 223 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECthick

MonitorElement* SiStripGainFromCalibTree::MPVsTECthick
private

distribution of MPVs for TEC tick sensors

Definition at line 221 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTECthin

MonitorElement* SiStripGainFromCalibTree::MPVsTECthin
private

distribution of MPVs for TEC thin sensors

Definition at line 220 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTIB

MonitorElement* SiStripGainFromCalibTree::MPVsTIB
private

distribution of MPVs for TIB planes

Definition at line 212 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTID

MonitorElement* SiStripGainFromCalibTree::MPVsTID
private

distribution of MPVs for TID disks

Definition at line 213 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTIDM

MonitorElement* SiStripGainFromCalibTree::MPVsTIDM
private

distribution of MPVs for TIDM disks

Definition at line 215 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTIDP

MonitorElement* SiStripGainFromCalibTree::MPVsTIDP
private

distribution of MPVs for TIDP disks

Definition at line 214 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ MPVsTOB

MonitorElement* SiStripGainFromCalibTree::MPVsTOB
private

distribution of MPVs for TOB planes

Definition at line 216 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ NClusterPixel

unsigned int SiStripGainFromCalibTree::NClusterPixel
private

Definition at line 248 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), and processEvent().

◆ NClusterStrip

unsigned int SiStripGainFromCalibTree::NClusterStrip
private

Definition at line 247 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), algoEndJob(), processEvent(), and storeOnTree().

◆ NEvent

unsigned int SiStripGainFromCalibTree::NEvent
private

◆ newCharge

std::vector<APVGain::APVmon> SiStripGainFromCalibTree::newCharge
private

Definition at line 243 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ NoMPVfit

MonitorElement* SiStripGainFromCalibTree::NoMPVfit
private

R,Z map of missing APV calibration (no fit)

Definition at line 206 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ NoMPVmasked

MonitorElement* SiStripGainFromCalibTree::NoMPVmasked
private

R,Z map of missing APV calibration (masked modules)

Definition at line 205 of file SiStripGainFromCalibTree.cc.

Referenced by bookDQMHistos(), and qualityMonitor().

◆ NPixelDets

int SiStripGainFromCalibTree::NPixelDets
private

Definition at line 250 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob().

◆ NStripAPVs

int SiStripGainFromCalibTree::NStripAPVs
private

◆ nstrips

const std::vector<unsigned short>* SiStripGainFromCalibTree::nstrips = nullptr
private

Definition at line 294 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ nstrips_token_

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

Definition at line 295 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ NTrack

unsigned int SiStripGainFromCalibTree::NTrack
private

Definition at line 246 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), processEvent(), and storeOnTree().

◆ OldGainRemoving

bool SiStripGainFromCalibTree::OldGainRemoving
private

Definition at line 148 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ OutputGains

std::string SiStripGainFromCalibTree::OutputGains
private

Definition at line 165 of file SiStripGainFromCalibTree.cc.

Referenced by SiStripGainFromCalibTree(), and storeOnTree().

◆ overlapping

const std::vector<bool>* SiStripGainFromCalibTree::overlapping = nullptr
private

Definition at line 298 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ overlapping_token_

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

Definition at line 299 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ path

const std::vector<double>* SiStripGainFromCalibTree::path = nullptr
private

◆ path_token_

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

Definition at line 305 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ qualityToken_

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

Definition at line 330 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginRun(), and SiStripGainFromCalibTree().

◆ rawid

const std::vector<unsigned int>* SiStripGainFromCalibTree::rawid = nullptr
private

Definition at line 284 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ rawid_token_

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

Definition at line 285 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ runInfoToken_

edm::ESGetToken<RunInfo, RunInfoRcd> SiStripGainFromCalibTree::runInfoToken_
private

◆ runnumber

unsigned int SiStripGainFromCalibTree::runnumber = 0
private

Definition at line 261 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ saturation

const std::vector<bool>* SiStripGainFromCalibTree::saturation = nullptr
private

Definition at line 296 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ saturation_token_

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

Definition at line 297 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ saveSummary

bool SiStripGainFromCalibTree::saveSummary
private

Definition at line 151 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), and SiStripGainFromCalibTree().

◆ SRun

unsigned int SiStripGainFromCalibTree::SRun
private

Definition at line 251 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), and processEvent().

◆ tagCondition_GoodFrac

double SiStripGainFromCalibTree::tagCondition_GoodFrac
private

Definition at line 162 of file SiStripGainFromCalibTree.cc.

Referenced by produceTagFilter(), and SiStripGainFromCalibTree().

◆ tagCondition_NClusters

double SiStripGainFromCalibTree::tagCondition_NClusters
private

Definition at line 161 of file SiStripGainFromCalibTree.cc.

Referenced by produceTagFilter(), and SiStripGainFromCalibTree().

◆ tfs

TFileService* SiStripGainFromCalibTree::tfs
private

Definition at line 131 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndJob(), and storeOnTree().

◆ tkGeomToken_

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

Definition at line 327 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), and SiStripGainFromCalibTree().

◆ trackalgo

const std::vector<int>* SiStripGainFromCalibTree::trackalgo = nullptr
private

Definition at line 278 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ trackalgo_token_

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

Definition at line 279 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ trackchi2ndof

const std::vector<double>* SiStripGainFromCalibTree::trackchi2ndof = nullptr
private

Definition at line 266 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ trackchi2ndof_token_

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

Definition at line 267 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ tracketa

const std::vector<double>* SiStripGainFromCalibTree::tracketa = nullptr
private

Definition at line 272 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ tracketa_token_

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

Definition at line 273 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ trackhitsvalid

const std::vector<unsigned int>* SiStripGainFromCalibTree::trackhitsvalid = nullptr
private

Definition at line 276 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ trackhitsvalid_token_

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

Definition at line 277 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ trackindex

const std::vector<int>* SiStripGainFromCalibTree::trackindex = nullptr
private

Definition at line 282 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ trackindex_token_

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

Definition at line 283 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ trackp

const std::vector<float>* SiStripGainFromCalibTree::trackp = nullptr
private

Definition at line 268 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), algoAnalyzeTheTree(), and processEvent().

◆ trackp_token_

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

Definition at line 269 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ trackphi

const std::vector<double>* SiStripGainFromCalibTree::trackphi = nullptr
private

Definition at line 274 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ trackphi_token_

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

Definition at line 275 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ TrackPrefix_

string SiStripGainFromCalibTree::TrackPrefix_
private

Definition at line 317 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

◆ trackpt

const std::vector<float>* SiStripGainFromCalibTree::trackpt = nullptr
private

Definition at line 270 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ trackpt_token_

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

Definition at line 271 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ TrackSuffix_

string SiStripGainFromCalibTree::TrackSuffix_
private

Definition at line 318 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

◆ TrigTech

const std::vector<bool>* SiStripGainFromCalibTree::TrigTech = nullptr
private

Definition at line 262 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and algoAnalyzeTheTree().

◆ TrigTech_token_

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

Definition at line 263 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyze(), and SiStripGainFromCalibTree().

◆ tTopo_

const TrackerTopology* SiStripGainFromCalibTree::tTopo_ = nullptr
private

Definition at line 331 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), processEvent(), and qualityMonitor().

◆ tTopoToken_

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

Definition at line 326 of file SiStripGainFromCalibTree.cc.

Referenced by algoBeginJob(), and SiStripGainFromCalibTree().

◆ useCalibration

bool SiStripGainFromCalibTree::useCalibration
private

◆ Validation

bool SiStripGainFromCalibTree::Validation
private

Definition at line 147 of file SiStripGainFromCalibTree.cc.

Referenced by processEvent(), and SiStripGainFromCalibTree().

◆ VChargeHisto

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

Charge monitor plots to be output

Definition at line 159 of file SiStripGainFromCalibTree.cc.

Referenced by algoEndRun(), bookDQMHistos(), and SiStripGainFromCalibTree().

◆ VInputFiles

vector<string> SiStripGainFromCalibTree::VInputFiles
private

Definition at line 166 of file SiStripGainFromCalibTree.cc.

Referenced by algoAnalyzeTheTree(), and SiStripGainFromCalibTree().

SiStripGainFromCalibTree::overlapping
const std::vector< bool > * overlapping
Definition: SiStripGainFromCalibTree.cc:298
SiStripGainFromCalibTree::saturation_token_
edm::EDGetTokenT< std::vector< bool > > saturation_token_
Definition: SiStripGainFromCalibTree.cc:297
SiStripGainFromCalibTree::NTrack
unsigned int NTrack
Definition: SiStripGainFromCalibTree.cc:246
SiStripGainFromCalibTree::gainToken_
edm::ESGetToken< SiStripGain, SiStripGainRcd > gainToken_
Definition: SiStripGainFromCalibTree.cc:329
SiStripGainFromCalibTree::trackindex_token_
edm::EDGetTokenT< std::vector< int > > trackindex_token_
Definition: SiStripGainFromCalibTree.cc:283
SiStripGainFromCalibTree::getPeakOfLandau
void getPeakOfLandau(TH1 *InputHisto, double *FitResults, double LowRange=50, double HighRange=5400)
Definition: SiStripGainFromCalibTree.cc:1086
SiStripGainFromCalibTree::statCollectionFromMode
int statCollectionFromMode(const char *tag) const
Definition: SiStripGainFromCalibTree.cc:334
SiStripGainFromCalibTree::OutputGains
std::string OutputGains
Definition: SiStripGainFromCalibTree.cc:165
SiStripGainFromCalibTree::Charge_Vs_Index
std::vector< MonitorElement * > Charge_Vs_Index
Definition: SiStripGainFromCalibTree.cc:173
FastTimerService_cff.range
range
Definition: FastTimerService_cff.py:34
DDAxes::y
SiStripGainFromCalibTree::dqm_tag_
std::vector< string > dqm_tag_
Definition: SiStripGainFromCalibTree.cc:170
SiStripGainFromCalibTree::farfromedge_token_
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
Definition: SiStripGainFromCalibTree.cc:301
mps_fire.i
i
Definition: mps_fire.py:428
SiStripGainFromCalibTree::trackalgo_token_
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
Definition: SiStripGainFromCalibTree.cc:279
SiStripGainFromCalibTree::Charge_3
std::array< std::vector< APVGain::APVmon >, 7 > Charge_3
Definition: SiStripGainFromCalibTree.cc:176
SiStripGainFromCalibTree::tagCondition_GoodFrac
double tagCondition_GoodFrac
Definition: SiStripGainFromCalibTree.cc:162
ConditionDBWriter< SiStripApvGain >::setDoStore
void setDoStore(const bool doStore)
When set to false the payload will not be written to the db.
Definition: ConditionDBWriter.h:385
Harvest
Definition: APVGainStruct.h:53
SiStripGainFromCalibTree::MPVsTECM2
MonitorElement * MPVsTECM2
Definition: SiStripGainFromCalibTree.cc:225
PixelSubdetector::PixelEndcap
Definition: PixelSubdetector.h:11
SiStripGainFromCalibTree::trackphi
const std::vector< double > * trackphi
Definition: SiStripGainFromCalibTree.cc:274
SiStripGainFromCalibTree::TrackPrefix_
string TrackPrefix_
Definition: SiStripGainFromCalibTree.cc:317
PixelSubdetector::PixelBarrel
Definition: PixelSubdetector.h:11
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
SiStripGainFromCalibTree::MPVs500
MonitorElement * MPVs500
Definition: SiStripGainFromCalibTree.cc:211
SiStripGainFromCalibTree::DiffWRTPrevGainTID
MonitorElement * DiffWRTPrevGainTID
Definition: SiStripGainFromCalibTree.cc:234
SiStripGainFromCalibTree::NEvent
unsigned int NEvent
Definition: SiStripGainFromCalibTree.cc:245
SiStripGainFromCalibTree::m_harvestingMode
bool m_harvestingMode
Definition: SiStripGainFromCalibTree.cc:153
SiStripGainFromCalibTree::m_calibrationMode
std::string m_calibrationMode
Definition: SiStripGainFromCalibTree.cc:156
SiStripGainFromCalibTree::MPV_Vs_PhiTECthin
MonitorElement * MPV_Vs_PhiTECthin
Definition: SiStripGainFromCalibTree.cc:202
SiStripGainFromCalibTree::MPVsTEC
MonitorElement * MPVsTEC
Definition: SiStripGainFromCalibTree.cc:217
patZpeak.handle
handle
Definition: patZpeak.py:23
SiStripGainFromCalibTree::tagCondition_NClusters
double tagCondition_NClusters
Definition: SiStripGainFromCalibTree.cc:161
SiStripGainFromCalibTree::booked_dir_
std::string booked_dir_
Definition: SiStripGainFromCalibTree.cc:171
SiStripGainFromCalibTree::NClusterStrip
unsigned int NClusterStrip
Definition: SiStripGainFromCalibTree.cc:247
SiStripGainFromCalibTree::trackchi2ndof
const std::vector< double > * trackchi2ndof
Definition: SiStripGainFromCalibTree.cc:266
SiStripGainFromCalibTree::MASKED
unsigned int MASKED
Definition: SiStripGainFromCalibTree.cc:255
tree
Definition: tree.py:1
SiStripGainFromCalibTree::eventnumber
unsigned int eventnumber
Definition: SiStripGainFromCalibTree.cc:260
SiStripGainFromCalibTree::qualityMonitor
void qualityMonitor()
Definition: SiStripGainFromCalibTree.cc:1473
SiStripGainFromCalibTree::trackhitsvalid_token_
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
Definition: SiStripGainFromCalibTree.cc:277
SiStripGainFromCalibTree::trackchi2ndof_token_
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
Definition: SiStripGainFromCalibTree.cc:267
SiStripGainFromCalibTree::MPVError
MonitorElement * MPVError
Definition: SiStripGainFromCalibTree.cc:227
HLT_FULL_cff.InputTag
InputTag
Definition: HLT_FULL_cff.py:89301
postprocess-scan-build.htag
htag
Definition: postprocess-scan-build.py:15
SiStripGainFromCalibTree::newCharge
std::vector< APVGain::APVmon > newCharge
Definition: SiStripGainFromCalibTree.cc:243
SiStripGainFromCalibTree::chargeoverpath
const std::vector< double > * chargeoverpath
Definition: SiStripGainFromCalibTree.cc:306
stAPVGain
Definition: APVGainStruct.h:7
SiStripGainFromCalibTree::Gains
MonitorElement * Gains
Definition: SiStripGainFromCalibTree.cc:208
SiStripGainFromCalibTree::trackp_token_
edm::EDGetTokenT< std::vector< float > > trackp_token_
Definition: SiStripGainFromCalibTree.cc:269
stAPVGain::Bin
int Bin
Definition: APVGainStruct.h:9
SiStripGainFromCalibTree::useCalibration
bool useCalibration
Definition: SiStripGainFromCalibTree.cc:152
SiStripGainFromCalibTree::qualityToken_
edm::ESGetToken< SiStripQuality, SiStripQualityRcd > qualityToken_
Definition: SiStripGainFromCalibTree.cc:330
SiStripGainFromCalibTree::MPV_Vs_EtaTOB
MonitorElement * MPV_Vs_EtaTOB
Definition: SiStripGainFromCalibTree.cc:193
SiStripGainFromCalibTree::rawid
const std::vector< unsigned int > * rawid
Definition: SiStripGainFromCalibTree.cc:284
stAPVGain::DetId
unsigned int DetId
Definition: APVGainStruct.h:10
edm::second
U second(std::pair< T, U > const &p)
Definition: ParameterSet.cc:222
SiStripGainFromCalibTree::Charge_Vs_PathlengthTIDP
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDP
Definition: SiStripGainFromCalibTree.cc:181
dqm::legacy::MonitorElement
Definition: MonitorElement.h:462
IntegrityClient_cfi.Gain
Gain
Definition: IntegrityClient_cfi.py:16
APVGain::APVmon
Definition: APVGainHelpers.h:30
SiStripGainFromCalibTree::MPV_Vs_EtaTID
MonitorElement * MPV_Vs_EtaTID
Definition: SiStripGainFromCalibTree.cc:192
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
SiStripGainFromCalibTree::MPVsTECthick
MonitorElement * MPVsTECthick
Definition: SiStripGainFromCalibTree.cc:221
SiStripGainFromCalibTree::Charge_Vs_PathlengthTOB
std::vector< MonitorElement * > Charge_Vs_PathlengthTOB
Definition: SiStripGainFromCalibTree.cc:180
DDAxes::x
SiStripGainFromCalibTree::MaxTrackingIteration
int MaxTrackingIteration
Definition: SiStripGainFromCalibTree.cc:144
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
SiStripGainFromCalibTree::trackp
const std::vector< float > * trackp
Definition: SiStripGainFromCalibTree.cc:268
SiStripGainFromCalibTree::MPVsTECP
MonitorElement * MPVsTECP
Definition: SiStripGainFromCalibTree.cc:218
APVGain::subdetectorPlane
int subdetectorPlane(uint32_t, const TrackerTopology *)
Definition: APVGainHelpers.cc:119
SiStripGainFromCalibTree::CalibrationLevel
int CalibrationLevel
Definition: SiStripGainFromCalibTree.cc:149
SiStripGainFromCalibTree::BAD
unsigned int BAD
Definition: SiStripGainFromCalibTree.cc:254
h
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
Definition: Activities.doc:4
SiStripGainFromCalibTree::MPVs
MonitorElement * MPVs
Definition: SiStripGainFromCalibTree.cc:209
SiStripGainFromCalibTree::dbe
DQMStore * dbe
Definition: SiStripGainFromCalibTree.cc:132
edm::Handle
Definition: AssociativeIterator.h:50
SiStripGainFromCalibTree::VInputFiles
vector< string > VInputFiles
Definition: SiStripGainFromCalibTree.cc:166
SiStripGainFromCalibTree::nstrips_token_
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
Definition: SiStripGainFromCalibTree.cc:295
edm::LogWarning
Log< level::Warning, false > LogWarning
Definition: MessageLogger.h:122
SiStripGainFromCalibTree::APVsCollOrdered
std::vector< stAPVGain * > APVsCollOrdered
Definition: SiStripGainFromCalibTree.cc:323
SiStripGainFromCalibTree::nstrips
const std::vector< unsigned short > * nstrips
Definition: SiStripGainFromCalibTree.cc:294
SiStripGainFromCalibTree::MaxMPVError
double MaxMPVError
Definition: SiStripGainFromCalibTree.cc:135
SiStripGainFromCalibTree::MPV_Vs_PhiTID
MonitorElement * MPV_Vs_PhiTID
Definition: SiStripGainFromCalibTree.cc:199
SiStripGainFromCalibTree::m_splitDQMstat
bool m_splitDQMstat
Definition: SiStripGainFromCalibTree.cc:154
SiStripGainFromCalibTree::charge_token_
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
Definition: SiStripGainFromCalibTree.cc:303
SiStripGainFromCalibTree::MakeCalibrationMap
void MakeCalibrationMap()
Definition: SiStripGainFromCalibTree.cc:1816
SiStripGainFromCalibTree::Charge_Vs_PathlengthTECP2
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP2
Definition: SiStripGainFromCalibTree.cc:184
stAPVGain::APVId
unsigned int APVId
Definition: APVGainStruct.h:11
DetId
Definition: DetId.h:17
SiStripGainFromCalibTree::GainVsPrevGainTOB
MonitorElement * GainVsPrevGainTOB
Definition: SiStripGainFromCalibTree.cc:240
SiStripGainFromCalibTree::path_token_
edm::EDGetTokenT< std::vector< double > > path_token_
Definition: SiStripGainFromCalibTree.cc:305
SiStripGainFromCalibTree::rawid_token_
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
Definition: SiStripGainFromCalibTree.cc:285
alignCSCRings.s
s
Definition: alignCSCRings.py:92
SiStripGainFromCalibTree::GainVsPrevGainTIB
MonitorElement * GainVsPrevGainTIB
Definition: SiStripGainFromCalibTree.cc:238
SiStripGainFromCalibTree::MPVErrorVsN
MonitorElement * MPVErrorVsN
Definition: SiStripGainFromCalibTree.cc:231
RandomServiceHelper.t1
t1
Definition: RandomServiceHelper.py:256
SiStripGainFromCalibTree::isBFieldConsistentWithMode
bool isBFieldConsistentWithMode(const edm::EventSetup &iSetup) const
Definition: SiStripGainFromCalibTree.cc:798
SiStripGainFromCalibTree::gainusedTick
const std::vector< double > * gainusedTick
Definition: SiStripGainFromCalibTree.cc:312
SiStripGainFromCalibTree::MPV_Vs_PhiTIB
MonitorElement * MPV_Vs_PhiTIB
Definition: SiStripGainFromCalibTree.cc:198
h
None
Definition: APVGainStruct.h:53
SiStripGainFromCalibTree::chargeoverpath_token_
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
Definition: SiStripGainFromCalibTree.cc:307
ConditionDBWriter< SiStripApvGain >
SiStripGainFromCalibTree::MPV_Vs_PhiTECthick
MonitorElement * MPV_Vs_PhiTECthick
Definition: SiStripGainFromCalibTree.cc:203
Exhume::I
const std::complex< double > I
Definition: I.h:8
SiStripGainFromCalibTree::CalibPrefix_
string CalibPrefix_
Definition: SiStripGainFromCalibTree.cc:319
SiStripGainFromCalibTree::MaxTrackMomentum
double MaxTrackMomentum
Definition: SiStripGainFromCalibTree.cc:138
funct::integral
Integral< F, X >::type integral(const F &f)
Definition: Integral.h:70
ntupleEnum.SubDet
SubDet
Definition: ntupleEnum.py:14
SiStripGainFromCalibTree::algoComputeMPVandGain
void algoComputeMPVandGain()
Definition: SiStripGainFromCalibTree.cc:1368
SiStripGainFromCalibTree::MPVsTOB
MonitorElement * MPVsTOB
Definition: SiStripGainFromCalibTree.cc:216
visualization-live-secondInstance_cfg.m
m
Definition: visualization-live-secondInstance_cfg.py:78
SiStripGainFromCalibTree::APVsColl
std::unordered_map< unsigned int, stAPVGain * > APVsColl
Definition: SiStripGainFromCalibTree.cc:324
SiStripGainFromCalibTree::MPVsTECM
MonitorElement * MPVsTECM
Definition: SiStripGainFromCalibTree.cc:219
dqm::impl::MonitorElement::Fill
void Fill(long long x)
Definition: MonitorElement.h:290
tfile
Definition: tfile.py:1
SiStripGainFromCalibTree::amplitude_token_
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
Definition: SiStripGainFromCalibTree.cc:309
DDAxes::z
SiStripGainFromCalibTree::EventSuffix_
string EventSuffix_
Definition: SiStripGainFromCalibTree.cc:316
SiStripGainFromCalibTree::GainVsPrevGainTEC
MonitorElement * GainVsPrevGainTEC
Definition: SiStripGainFromCalibTree.cc:241
SiStripGainFromCalibTree::tkGeomToken_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tkGeomToken_
Definition: SiStripGainFromCalibTree.cc:327
p2
double p2[4]
Definition: TauolaWrapper.h:90
SiStripGainFromCalibTree::trackalgo
const std::vector< int > * trackalgo
Definition: SiStripGainFromCalibTree.cc:278
SiStripGainFromCalibTree::MPVsTIDP
MonitorElement * MPVsTIDP
Definition: SiStripGainFromCalibTree.cc:214
PixelTopology::ncolumns
virtual int ncolumns() const =0
SiStripGainFromCalibTree::MPVErrorVsEta
MonitorElement * MPVErrorVsEta
Definition: SiStripGainFromCalibTree.cc:229
SiStripGainFromCalibTree::storeOnTree
void storeOnTree(TFileService *tfs)
Definition: SiStripGainFromCalibTree.cc:1605
dqm::implementation::DQMStore::setCurrentFolder
void setCurrentFolder(std::string const &fullpath) override
Definition: DQMStore.h:569
SiStripGainFromCalibTree::IsGoodLandauFit
bool IsGoodLandauFit(double *FitResults)
Definition: SiStripGainFromCalibTree.cc:1113
StripSubdetector::TIB
static constexpr auto TIB
Definition: StripSubdetector.h:16
SiStripGainFromCalibTree::MaxTrackChiOverNdf
double MaxTrackChiOverNdf
Definition: SiStripGainFromCalibTree.cc:143
edm::Event::getByToken
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
VtxSmearedParameters_cfi.Phi
Phi
Definition: VtxSmearedParameters_cfi.py:112
SiStripGainFromCalibTree::MinTrackEta
double MinTrackEta
Definition: SiStripGainFromCalibTree.cc:139
SiStripGainFromCalibTree::tfs
TFileService * tfs
Definition: SiStripGainFromCalibTree.cc:131
PixelTopology
Definition: PixelTopology.h:10
SiStripGainFromCalibTree::MPVsTECM1
MonitorElement * MPVsTECM1
Definition: SiStripGainFromCalibTree.cc:224
b
double b
Definition: hdecay.h:118
first
auto first
Definition: CAHitNtupletGeneratorKernelsImpl.h:125
SiStripGainFromCalibTree::NoMPVmasked
MonitorElement * NoMPVmasked
Definition: SiStripGainFromCalibTree.cc:205
SiStripGainFromCalibTree::Charge_Vs_PathlengthTECM2
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM2
Definition: SiStripGainFromCalibTree.cc:186
getGTfromDQMFile.obj
obj
Definition: getGTfromDQMFile.py:32
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
SiStripGainFromCalibTree::saveSummary
bool saveSummary
Definition: SiStripGainFromCalibTree.cc:151
SiStripGainFromCalibTree::MPVs320
MonitorElement * MPVs320
Definition: SiStripGainFromCalibTree.cc:210
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
SiStripGainFromCalibTree::trackpt
const std::vector< float > * trackpt
Definition: SiStripGainFromCalibTree.cc:270
SiStripGainFromCalibTree::algoAnalyzeTheTree
void algoAnalyzeTheTree()
Definition: SiStripGainFromCalibTree.cc:1312
SiStripGainFromCalibTree::connect
edm::Handle< T > connect(const T *&ptr, edm::EDGetTokenT< T > token, const edm::Event &evt)
Definition: SiStripGainFromCalibTree.cc:122
SiStripGainFromCalibTree::TrigTech_token_
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
Definition: SiStripGainFromCalibTree.cc:263
SiStripGainFromCalibTree::MPVErrorVsPhi
MonitorElement * MPVErrorVsPhi
Definition: SiStripGainFromCalibTree.cc:230
SiStripGainFromCalibTree::gainused
const std::vector< double > * gainused
Definition: SiStripGainFromCalibTree.cc:310
dqm::implementation::IBooker::book2DD
MonitorElement * book2DD(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
Definition: DQMStore.h:261
stAPVGain::Index
unsigned int Index
Definition: APVGainStruct.h:8
SiStripGainFromCalibTree::saturation
const std::vector< bool > * saturation
Definition: SiStripGainFromCalibTree.cc:296
SiStripGainFromCalibTree::NClusterPixel
unsigned int NClusterPixel
Definition: SiStripGainFromCalibTree.cc:248
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
SiStripGainFromCalibTree::localdiry_token_
edm::EDGetTokenT< std::vector< double > > localdiry_token_
Definition: SiStripGainFromCalibTree.cc:289
makeGlobalPositionRcd_cfg.tag
tag
Definition: makeGlobalPositionRcd_cfg.py:6
SiStripGainFromCalibTree::MaxTrackEta
double MaxTrackEta
Definition: SiStripGainFromCalibTree.cc:140
SiStripGainFromCalibTree::MaxNrStrips
unsigned int MaxNrStrips
Definition: SiStripGainFromCalibTree.cc:141
SiStripGainFromCalibTree::OldGainRemoving
bool OldGainRemoving
Definition: SiStripGainFromCalibTree.cc:148
mps_setup.stdout
stdout
Definition: mps_setup.py:250
SiStripGainFromCalibTree::localdiry
const std::vector< double > * localdiry
Definition: SiStripGainFromCalibTree.cc:288
SiStripGainFromCalibTree::tTopo_
const TrackerTopology * tTopo_
Definition: SiStripGainFromCalibTree.cc:331
beam_dqm_sourceclient-live_cfg.monitor
monitor
Definition: beam_dqm_sourceclient-live_cfg.py:244
APVGain::FetchMonitor
std::vector< MonitorElement * > FetchMonitor(std::vector< APVmon >, uint32_t, const TrackerTopology *topo=nullptr)
Definition: APVGainHelpers.cc:151
SiStripGainFromCalibTree::localdirx_token_
edm::EDGetTokenT< std::vector< double > > localdirx_token_
Definition: SiStripGainFromCalibTree.cc:287
SiStripGainFromCalibTree::GainVsPrevGainTID
MonitorElement * GainVsPrevGainTID
Definition: SiStripGainFromCalibTree.cc:239
SiStripGainFromCalibTree::ERun
unsigned int ERun
Definition: SiStripGainFromCalibTree.cc:252
SiStripGainFromCalibTree::MPV_Vs_PhiTOB
MonitorElement * MPV_Vs_PhiTOB
Definition: SiStripGainFromCalibTree.cc:200
SiStripGainFromCalibTree::EventPrefix_
string EventPrefix_
Definition: SiStripGainFromCalibTree.cc:315
SiStripGainFromCalibTree::farfromedge
const std::vector< bool > * farfromedge
Definition: SiStripGainFromCalibTree.cc:300
SiStripGainFromCalibTree::Charge_4
std::array< std::vector< APVGain::APVmon >, 7 > Charge_4
Definition: SiStripGainFromCalibTree.cc:177
sistrip::APV
Definition: ConstantsForGranularity.h:79
SiStripGainFromCalibTree::AllowSaturation
bool AllowSaturation
Definition: SiStripGainFromCalibTree.cc:145
SiStripGainFromCalibTree::Charge_Vs_PathlengthTECP1
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP1
Definition: SiStripGainFromCalibTree.cc:183
edm::Service
Definition: Service.h:30
createfilelist.int
int
Definition: createfilelist.py:10
iEvent
int iEvent
Definition: GenABIO.cc:224
SiStripGainFromCalibTree::MinTrackMomentum
double MinTrackMomentum
Definition: SiStripGainFromCalibTree.cc:137
SiStripGainFromCalibTree::trackpt_token_
edm::EDGetTokenT< std::vector< float > > trackpt_token_
Definition: SiStripGainFromCalibTree.cc:271
SiStripGainFromCalibTree::Charge_Vs_PathlengthTIDM
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDM
Definition: SiStripGainFromCalibTree.cc:182
SiStripGainFromCalibTree::runnumber
unsigned int runnumber
Definition: SiStripGainFromCalibTree.cc:261
edm::EventSetup::getHandle
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:155
SiStripGainFromCalibTree::m_calibrationPath
std::string m_calibrationPath
Definition: SiStripGainFromCalibTree.cc:157
p1
double p1[4]
Definition: TauolaWrapper.h:89
APVGain::thickness
int thickness(uint32_t)
Definition: APVGainHelpers.cc:76
SiStripGainFromCalibTree::runInfoToken_
edm::ESGetToken< RunInfo, RunInfoRcd > runInfoToken_
Definition: SiStripGainFromCalibTree.cc:328
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
TFileService::make
T * make(const Args &...args) const
make new ROOT object
Definition: TFileService.h:64
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
HcalObjRepresent::Fill
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
Definition: HcalObjRepresent.h:1053
SiStripGainFromCalibTree::Charge_1
std::array< std::vector< APVGain::APVmon >, 7 > Charge_1
Definition: SiStripGainFromCalibTree.cc:174
SiStripGainFromCalibTree::MinTrackHits
unsigned int MinTrackHits
Definition: SiStripGainFromCalibTree.cc:142
SiStripGainFromCalibTree::SRun
unsigned int SRun
Definition: SiStripGainFromCalibTree.cc:251
SiStripGainFromCalibTree::MPV_Vs_EtaTECthick
MonitorElement * MPV_Vs_EtaTECthick
Definition: SiStripGainFromCalibTree.cc:196
SiStripGainFromCalibTree::MinNrEntries
double MinNrEntries
Definition: SiStripGainFromCalibTree.cc:134
StripTopology::nstrips
virtual int nstrips() const =0
edm::EventSetup::getData
bool getData(T &iHolder) const
Definition: EventSetup.h:127
SiStripGainFromCalibTree::MPVsTID
MonitorElement * MPVsTID
Definition: SiStripGainFromCalibTree.cc:213
newFWLiteAna.bin
bin
Definition: newFWLiteAna.py:161
SiStripGainFromCalibTree::tracketa
const std::vector< double > * tracketa
Definition: SiStripGainFromCalibTree.cc:272
SiStripGainFromCalibTree::localdirz_token_
edm::EDGetTokenT< std::vector< double > > localdirz_token_
Definition: SiStripGainFromCalibTree.cc:291
SiStripGainFromCalibTree::FirstSetOfConstants
bool FirstSetOfConstants
Definition: SiStripGainFromCalibTree.cc:146
SiStripGainFromCalibTree::AlgoMode
std::string AlgoMode
Definition: SiStripGainFromCalibTree.cc:164
SiStripGainFromCalibTree::DiffWRTPrevGainTIB
MonitorElement * DiffWRTPrevGainTIB
Definition: SiStripGainFromCalibTree.cc:233
ConditionDBWriter< SiStripApvGain >::storeOnDbNow
void storeOnDbNow()
Definition: ConditionDBWriter.h:354
SiStripGainFromCalibTree::MagFieldCurrentTh
double MagFieldCurrentTh
Definition: SiStripGainFromCalibTree.cc:133
SiStripGainFromCalibTree::CalibSuffix_
string CalibSuffix_
Definition: SiStripGainFromCalibTree.cc:320
TtFullHadDaughter::B
static const std::string B
Definition: TtFullHadronicEvent.h:9
SiStripGainFromCalibTree::NoMPVfit
MonitorElement * NoMPVfit
Definition: SiStripGainFromCalibTree.cc:206
SiStripGainFromCalibTree::gainusedTick_token_
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
Definition: SiStripGainFromCalibTree.cc:313
SiStripGainFromCalibTree::charge
const std::vector< unsigned int > * charge
Definition: SiStripGainFromCalibTree.cc:302
SiStripGainFromCalibTree::processEvent
void processEvent()
Definition: SiStripGainFromCalibTree.cc:1121
DetId::rawId
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
SiStripGainFromCalibTree::path
const std::vector< double > * path
Definition: SiStripGainFromCalibTree.cc:304
SiStripGainFromCalibTree::bookDQMHistos
void bookDQMHistos(const char *dqm_dir, const char *tag)
Definition: SiStripGainFromCalibTree.cc:480
StripSubdetector::TEC
static constexpr auto TEC
Definition: StripSubdetector.h:19
SiStripGainFromCalibTree::DiffWRTPrevGainTEC
MonitorElement * DiffWRTPrevGainTEC
Definition: SiStripGainFromCalibTree.cc:236
SiStripGainFromCalibTree::VChargeHisto
std::vector< std::string > VChargeHisto
Definition: SiStripGainFromCalibTree.cc:159
SiStripGainFromCalibTree::GOOD
unsigned int GOOD
Definition: SiStripGainFromCalibTree.cc:253
SiStripApvGain::Range
std::pair< ContainerIterator, ContainerIterator > Range
Definition: SiStripApvGain.h:28
relativeConstraints.empty
bool empty
Definition: relativeConstraints.py:46
SiStripGainFromCalibTree::doChargeMonitorPerPlane
bool doChargeMonitorPerPlane
Definition: SiStripGainFromCalibTree.cc:155
SiStripGainFromCalibTree::MPVsTECthin
MonitorElement * MPVsTECthin
Definition: SiStripGainFromCalibTree.cc:220
SiStripGainFromCalibTree::MaxChi2OverNDF
double MaxChi2OverNDF
Definition: SiStripGainFromCalibTree.cc:136
SiStripGainFromCalibTree::MPVsTIDM
MonitorElement * MPVsTIDM
Definition: SiStripGainFromCalibTree.cc:215
StripSubdetector::TOB
static constexpr auto TOB
Definition: StripSubdetector.h:18
SiStripGainFromCalibTree::MPVErrorVsMPV
MonitorElement * MPVErrorVsMPV
Definition: SiStripGainFromCalibTree.cc:228
SiStripGainFromCalibTree::firststrip
const std::vector< unsigned short > * firststrip
Definition: SiStripGainFromCalibTree.cc:292
PixelTestBeamValidation_cfi.Charge
Charge
Definition: PixelTestBeamValidation_cfi.py:99
dqm::implementation::IGetter::get
virtual MonitorElement * get(std::string const &fullpath) const
Definition: DQMStore.cc:673
SiStripGainFromCalibTree::merge
void merge(TH2 *A, TH2 *B)
Definition: SiStripGainFromCalibTree.cc:348
SiStripGainFromCalibTree::MPV_Vs_EtaTEC
MonitorElement * MPV_Vs_EtaTEC
Definition: SiStripGainFromCalibTree.cc:194
SiStripGainFromCalibTree::MPVsTECP2
MonitorElement * MPVsTECP2
Definition: SiStripGainFromCalibTree.cc:223
or
The Signals That Services Can Subscribe To This is based on ActivityRegistry and is current per Services can connect to the signals distributed by the ActivityRegistry in order to monitor the activity of the application Each possible callback has some defined which we here list in angle e< void, edm::EventID const &, edm::Timestamp const & > We also list in braces which AR_WATCH_USING_METHOD_ is used for those or
Definition: Activities.doc:12
SiStripGainFromCalibTree::TrigTech
const std::vector< bool > * TrigTech
Definition: SiStripGainFromCalibTree.cc:262
submitPVValidationJobs.runInfo
dictionary runInfo
Definition: submitPVValidationJobs.py:1013
SiStripGainFromCalibTree::m_DQMdir
std::string m_DQMdir
Definition: SiStripGainFromCalibTree.cc:158
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
SiStripGainFromCalibTree::localdirx
const std::vector< double > * localdirx
Definition: SiStripGainFromCalibTree.cc:286
SiStripGainFromCalibTree::produceTagFilter
bool produceTagFilter()
Definition: SiStripGainFromCalibTree.cc:1734
SiStripGainFromCalibTree::overlapping_token_
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
Definition: SiStripGainFromCalibTree.cc:299
SiStripGainFromCalibTree::trackindex
const std::vector< int > * trackindex
Definition: SiStripGainFromCalibTree.cc:282
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
triggerMatcherToHLTDebug_cfi.tags
tags
Definition: triggerMatcherToHLTDebug_cfi.py:9
SiStripGainFromCalibTree::MPV_Vs_EtaTECthin
MonitorElement * MPV_Vs_EtaTECthin
Definition: SiStripGainFromCalibTree.cc:195
SiStripGainFromCalibTree::MPVsTIB
MonitorElement * MPVsTIB
Definition: SiStripGainFromCalibTree.cc:212
APVGain::monHnames
std::vector< std::pair< std::string, std::string > > monHnames(std::vector< std::string >, bool, const char *tag)
Definition: APVGainHelpers.cc:215
SiStripGainFromCalibTree::MPV_Vs_PhiTEC
MonitorElement * MPV_Vs_PhiTEC
Definition: SiStripGainFromCalibTree.cc:201
SiStripGainFromCalibTree::swapBFieldMode
void swapBFieldMode(void)
Definition: SiStripGainFromCalibTree.cc:808
SiStripGainFromCalibTree::Validation
bool Validation
Definition: SiStripGainFromCalibTree.cc:147
SiStripGainFromCalibTree::NPixelDets
int NPixelDets
Definition: SiStripGainFromCalibTree.cc:250
SiStripGainFromCalibTree::tTopoToken_
edm::ESGetToken< TrackerTopology, TrackerTopologyRcd > tTopoToken_
Definition: SiStripGainFromCalibTree.cc:326
SiStripGainFromCalibTree::MPV_Vs_EtaTIB
MonitorElement * MPV_Vs_EtaTIB
Definition: SiStripGainFromCalibTree.cc:191
beamvalidation.exit
def exit(msg="")
Definition: beamvalidation.py:52
GeometricSearchDet
Definition: GeometricSearchDet.h:17
SiStripGainFromCalibTree::tracketa_token_
edm::EDGetTokenT< std::vector< double > > tracketa_token_
Definition: SiStripGainFromCalibTree.cc:273
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
JetChargeProducer_cfi.exp
exp
Definition: JetChargeProducer_cfi.py:6
SiStripGainFromCalibTree::Charge_Vs_PathlengthTIB
std::vector< MonitorElement * > Charge_Vs_PathlengthTIB
Definition: SiStripGainFromCalibTree.cc:179
SiStripGainFromCalibTree::firststrip_token_
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
Definition: SiStripGainFromCalibTree.cc:293
PixelTopology::nrows
virtual int nrows() const =0
SiStripGainFromCalibTree::gainused_token_
edm::EDGetTokenT< std::vector< double > > gainused_token_
Definition: SiStripGainFromCalibTree.cc:311
SiStripGainFromCalibTree::trackhitsvalid
const std::vector< unsigned int > * trackhitsvalid
Definition: SiStripGainFromCalibTree.cc:276
SiStripGainFromCalibTree::localdirz
const std::vector< double > * localdirz
Definition: SiStripGainFromCalibTree.cc:290
A
dttmaxenums::R
Definition: DTTMax.h:29
StripTopology
Definition: StripTopology.h:11
SiStripGainFromCalibTree::NStripAPVs
int NStripAPVs
Definition: SiStripGainFromCalibTree.cc:249
SiStripGainFromCalibTree::MPVsTECP1
MonitorElement * MPVsTECP1
Definition: SiStripGainFromCalibTree.cc:222
label
const char * label
Definition: PFTauDecayModeTools.cc:11
SiStripGainFromCalibTree::TrackSuffix_
string TrackSuffix_
Definition: SiStripGainFromCalibTree.cc:318
StripSubdetector::TID
static constexpr auto TID
Definition: StripSubdetector.h:17
SiStripGainFromCalibTree::trackphi_token_
edm::EDGetTokenT< std::vector< double > > trackphi_token_
Definition: SiStripGainFromCalibTree.cc:275
APVGain::subdetectorId
int subdetectorId(uint32_t)
Definition: APVGainHelpers.cc:16
SiStripGainFromCalibTree::amplitude
const std::vector< unsigned char > * amplitude
Definition: SiStripGainFromCalibTree.cc:308
MillePedeFileConverter_cfg.e
e
Definition: MillePedeFileConverter_cfg.py:37
SiStripGainFromCalibTree::DiffWRTPrevGainTOB
MonitorElement * DiffWRTPrevGainTOB
Definition: SiStripGainFromCalibTree.cc:235
SiStripGainFromCalibTree::Charge_Vs_PathlengthTECM1
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM1
Definition: SiStripGainFromCalibTree.cc:185
unpackBuffers-CaloStage2.token
token
Definition: unpackBuffers-CaloStage2.py:316
SiStripGainFromCalibTree::Charge_2
std::array< std::vector< APVGain::APVmon >, 7 > Charge_2
Definition: SiStripGainFromCalibTree.cc:175