CMS 3D CMS Logo

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

user includes More...

#include <SiStripGainsPCLWorker.h>

Inheritance diagram for SiStripGainsPCLWorker:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

 SiStripGainsPCLWorker (const edm::ParameterSet &)
 
- Public Member Functions inherited from DQMEDAnalyzer
void beginRun (edm::Run const &, edm::EventSetup const &) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
 ~EDAnalyzerBase () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
virtual ~EDConsumerBase () noexcept(false)
 

Static Public Member Functions

static void fillDescriptions (edm::ConfigurationDescriptions &descriptions)
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr< dqmDetails::NoCacheglobalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr< dqmDetails::NoCacheglobalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
virtual void beginJob ()
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
virtual void checkBookAPVColls (const edm::EventSetup &setup)
 
void dqmBeginRun (edm::Run const &, edm::EventSetup const &) override
 
virtual void endJob ()
 
void processEvent (const TrackerTopology *topo)
 
int statCollectionFromMode (const char *tag) const
 

Private Attributes

bool AllowSaturation
 
const std::vector< unsigned char > * amplitude = 0
 
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
 
std::unordered_map< unsigned int, std::shared_ptr< stAPVGain > > APVsColl
 
std::vector< std::shared_ptr< stAPVGain > > APVsCollOrdered
 
const TrackerGeometrybareTkGeomPtr_
 
std::string CalibPrefix_
 
std::string CalibSuffix_
 
const std::vector< unsigned int > * charge = 0
 
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 = 0
 
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
 
bool doChargeMonitorPerPlane
 
std::vector< std::string > dqm_tag_
 
unsigned int ERun
 
unsigned int eventnumber =0
 
std::string EventPrefix_
 
std::string EventSuffix_
 
const std::vector< bool > * farfromedge = 0
 
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
 
bool FirstSetOfConstants
 
const std::vector< unsigned short > * firststrip = 0
 
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
 
const std::vector< double > * gainused = 0
 
edm::EDGetTokenT< std::vector< double > > gainused_token_
 
const std::vector< double > * gainusedTick = 0
 
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
 
const std::vector< double > * localdirx = 0
 
edm::EDGetTokenT< std::vector< double > > localdirx_token_
 
const std::vector< double > * localdiry = 0
 
edm::EDGetTokenT< std::vector< double > > localdiry_token_
 
const std::vector< double > * localdirz = 0
 
edm::EDGetTokenT< std::vector< double > > localdirz_token_
 
std::string m_calibrationMode
 
std::string m_DQMdir
 
unsigned int MaxNrStrips
 
double MaxTrackChiOverNdf
 
double MaxTrackEta
 
int MaxTrackingIteration
 
double MaxTrackMomentum
 
double MinTrackEta
 
unsigned int MinTrackHits
 
double MinTrackMomentum
 
unsigned int NClusterPixel
 
unsigned int NClusterStrip
 
unsigned int NEvent
 
int NPixelDets
 
int NStripAPVs
 
const std::vector< unsigned short > * nstrips = 0
 
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
 
unsigned int NTrack
 
bool OldGainRemoving
 
const std::vector< bool > * overlapping = 0
 
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
 
const std::vector< double > * path = 0
 
edm::EDGetTokenT< std::vector< double > > path_token_
 
const std::vector< unsigned int > * rawid = 0
 
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
 
unsigned int runnumber =0
 
const std::vector< bool > * saturation = 0
 
edm::EDGetTokenT< std::vector< bool > > saturation_token_
 
unsigned int SRun
 
edm::ESHandle< TrackerGeometrytkGeom_
 
const std::vector< int > * trackalgo = 0
 
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
 
const std::vector< double > * trackchi2ndof = 0
 
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
 
const std::vector< double > * tracketa = 0
 
edm::EDGetTokenT< std::vector< double > > tracketa_token_
 
const std::vector< unsigned int > * trackhitsvalid = 0
 
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
 
const std::vector< int > * trackindex = 0
 
edm::EDGetTokenT< std::vector< int > > trackindex_token_
 
const std::vector< float > * trackp = 0
 
edm::EDGetTokenT< std::vector< float > > trackp_token_
 
const std::vector< double > * trackphi = 0
 
edm::EDGetTokenT< std::vector< double > > trackphi_token_
 
std::string TrackPrefix_
 
const std::vector< float > * trackpt = 0
 
edm::EDGetTokenT< std::vector< float > > trackpt_token_
 
std::string TrackSuffix_
 
const std::vector< bool > * TrigTech = 0
 
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
 
bool useCalibration
 
bool Validation
 
std::vector< std::string > VChargeHisto
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T... > CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T... > HasAbility
 
typedef CacheTypes::LuminosityBlockCache LuminosityBlockCache
 
typedef LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCacheLuminosityBlockContext
 
typedef CacheTypes::LuminosityBlockSummaryCache LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache, GlobalCacheRunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

user includes

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

Definition at line 75 of file SiStripGainsPCLWorker.h.

Constructor & Destructor Documentation

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

Definition at line 9 of file SiStripGainsPCLWorker.cc.

References AllowSaturation, amplitude_token_, CalibPrefix_, 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_, doChargeMonitorPerPlane, dqm_tag_, EventPrefix_, EventSuffix_, farfromedge_token_, FirstSetOfConstants, firststrip_token_, gainused_token_, gainusedTick_token_, edm::ParameterSet::getUntrackedParameter(), diffTwoXMLs::label, localdirx_token_, localdiry_token_, localdirz_token_, m_calibrationMode, m_DQMdir, MaxNrStrips, MaxTrackChiOverNdf, MaxTrackEta, MaxTrackingIteration, MaxTrackMomentum, MinTrackEta, MinTrackHits, MinTrackMomentum, nstrips_token_, OldGainRemoving, overlapping_token_, path_token_, rawid_token_, saturation_token_, AlCaHLTBitMon_QueryRunRegistry::string, trackalgo_token_, trackchi2ndof_token_, tracketa_token_, trackhitsvalid_token_, trackindex_token_, trackp_token_, trackphi_token_, TrackPrefix_, trackpt_token_, TrackSuffix_, TrigTech_token_, useCalibration, Validation, and VChargeHisto.

9  :
10  NEvent(0),
11  NTrack(0),
12  NClusterStrip(0),
13  NClusterPixel(0),
14  NStripAPVs(0),
15  NPixelDets(0),
16  SRun(1<<31),
17  ERun(0),
18  bareTkGeomPtr_(nullptr)
19 {
20 
21  MinTrackMomentum = iConfig.getUntrackedParameter<double> ("minTrackMomentum" , 3.0);
22  MaxTrackMomentum = iConfig.getUntrackedParameter<double> ("maxTrackMomentum" , 99999.0);
23  MinTrackEta = iConfig.getUntrackedParameter<double> ("minTrackEta" , -5.0);
24  MaxTrackEta = iConfig.getUntrackedParameter<double> ("maxTrackEta" , 5.0);
25  MaxNrStrips = iConfig.getUntrackedParameter<unsigned>("maxNrStrips" , 2);
26  MinTrackHits = iConfig.getUntrackedParameter<unsigned>("MinTrackHits" , 8);
27  MaxTrackChiOverNdf = iConfig.getUntrackedParameter<double> ("MaxTrackChiOverNdf" , 3);
28  MaxTrackingIteration = iConfig.getUntrackedParameter<int> ("MaxTrackingIteration" , 7);
29  AllowSaturation = iConfig.getUntrackedParameter<bool> ("AllowSaturation" , false);
30  FirstSetOfConstants = iConfig.getUntrackedParameter<bool> ("FirstSetOfConstants" , true);
31  Validation = iConfig.getUntrackedParameter<bool> ("Validation" , false);
32  OldGainRemoving = iConfig.getUntrackedParameter<bool> ("OldGainRemoving" , false);
33  useCalibration = iConfig.getUntrackedParameter<bool> ("UseCalibration" , false);
34  doChargeMonitorPerPlane = iConfig.getUntrackedParameter<bool> ("doChargeMonitorPerPlane" , false);
35  m_DQMdir = iConfig.getUntrackedParameter<std::string> ("DQMdir" , "AlCaReco/SiStripGains");
36  m_calibrationMode = iConfig.getUntrackedParameter<std::string> ("calibrationMode" , "StdBunch");
37  VChargeHisto = iConfig.getUntrackedParameter<std::vector<std::string> > ("ChargeHisto");
38 
39  //Set the monitoring element tag and store
40  dqm_tag_.reserve(7);
41  dqm_tag_.clear();
42  dqm_tag_.push_back( "StdBunch" ); // statistic collection from Standard Collision Bunch @ 3.8 T
43  dqm_tag_.push_back( "StdBunch0T" ); // statistic collection from Standard Collision Bunch @ 0 T
44  dqm_tag_.push_back( "AagBunch" ); // statistic collection from First Collision After Abort Gap @ 3.8 T
45  dqm_tag_.push_back( "AagBunch0T" ); // statistic collection from First Collision After Abort Gap @ 0 T
46  dqm_tag_.push_back( "IsoMuon" ); // statistic collection from Isolated Muon @ 3.8 T
47  dqm_tag_.push_back( "IsoMuon0T" ); // statistic collection from Isolated Muon @ 0 T
48  dqm_tag_.push_back( "Harvest" ); // statistic collection: Harvest
49 
50  Charge_Vs_Index.insert( Charge_Vs_Index.begin(), dqm_tag_.size(), nullptr);
51  Charge_Vs_PathlengthTIB.insert( Charge_Vs_PathlengthTIB.begin(), dqm_tag_.size(), nullptr);
52  Charge_Vs_PathlengthTOB.insert( Charge_Vs_PathlengthTOB.begin(), dqm_tag_.size(), nullptr);
53  Charge_Vs_PathlengthTIDP.insert( Charge_Vs_PathlengthTIDP.begin(), dqm_tag_.size(), nullptr);
54  Charge_Vs_PathlengthTIDM.insert( Charge_Vs_PathlengthTIDM.begin(), dqm_tag_.size(), nullptr);
55  Charge_Vs_PathlengthTECP1.insert( Charge_Vs_PathlengthTECP1.begin(), dqm_tag_.size(), nullptr);
56  Charge_Vs_PathlengthTECP2.insert( Charge_Vs_PathlengthTECP2.begin(), dqm_tag_.size(), nullptr);
57  Charge_Vs_PathlengthTECM1.insert( Charge_Vs_PathlengthTECM1.begin(), dqm_tag_.size(), nullptr);
58  Charge_Vs_PathlengthTECM2.insert( Charge_Vs_PathlengthTECM2.begin(), dqm_tag_.size(), nullptr);
59 
60  // configure token for gathering the ntuple variables
61  edm::ParameterSet swhallowgain_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("gain");
62 
63  std::string label = swhallowgain_pset.getUntrackedParameter<std::string>("label");
64  CalibPrefix_ = swhallowgain_pset.getUntrackedParameter<std::string>("prefix");
65  CalibSuffix_ = swhallowgain_pset.getUntrackedParameter<std::string>("suffix");
66 
67  trackindex_token_ = consumes<std::vector<int> >(edm::InputTag(label, CalibPrefix_ + "trackindex" + CalibSuffix_));
68  rawid_token_ = consumes<std::vector<unsigned int> >(edm::InputTag(label, CalibPrefix_ + "rawid" + CalibSuffix_));
69  localdirx_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "localdirx" + CalibSuffix_));
70  localdiry_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "localdiry" + CalibSuffix_));
71  localdirz_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "localdirz" + CalibSuffix_));
72  firststrip_token_ = consumes<std::vector<unsigned short> >(edm::InputTag(label, CalibPrefix_ + "firststrip" + CalibSuffix_));
73  nstrips_token_ = consumes<std::vector<unsigned short> >(edm::InputTag(label, CalibPrefix_ + "nstrips" + CalibSuffix_));
74  saturation_token_ = consumes<std::vector<bool> >(edm::InputTag(label, CalibPrefix_ + "saturation" + CalibSuffix_));
75  overlapping_token_ = consumes<std::vector<bool> >(edm::InputTag(label, CalibPrefix_ + "overlapping" + CalibSuffix_));
76  farfromedge_token_ = consumes<std::vector<bool> >(edm::InputTag(label, CalibPrefix_ + "farfromedge" + CalibSuffix_));
77  charge_token_ = consumes<std::vector<unsigned int> >(edm::InputTag(label, CalibPrefix_ + "charge" + CalibSuffix_));
78  path_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "path" + CalibSuffix_));
79  chargeoverpath_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "chargeoverpath"+ CalibSuffix_));
80  amplitude_token_ = consumes<std::vector<unsigned char> >(edm::InputTag(label, CalibPrefix_ + "amplitude" + CalibSuffix_));
81  gainused_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "gainused" + CalibSuffix_));
82  gainusedTick_token_ = consumes<std::vector<double> >(edm::InputTag(label, CalibPrefix_ + "gainusedTick" + CalibSuffix_));
83 
84  edm::ParameterSet evtinfo_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("evtinfo");
85  label = evtinfo_pset.getUntrackedParameter<std::string>("label");
86  EventPrefix_ = evtinfo_pset.getUntrackedParameter<std::string>("prefix");
87  EventSuffix_ = evtinfo_pset.getUntrackedParameter<std::string>("suffix");
88  TrigTech_token_ = consumes<std::vector<bool> >(edm::InputTag(label, EventPrefix_ + "TrigTech" + EventSuffix_));
89 
90  edm::ParameterSet track_pset = iConfig.getUntrackedParameter<edm::ParameterSet>("tracks");
91  label = track_pset.getUntrackedParameter<std::string>("label");
92  TrackPrefix_ = track_pset.getUntrackedParameter<std::string>("prefix");
93  TrackSuffix_ = track_pset.getUntrackedParameter<std::string>("suffix");
94 
95  trackchi2ndof_token_ = consumes<std::vector<double> >(edm::InputTag(label, TrackPrefix_ + "chi2ndof" + TrackSuffix_));
96  trackp_token_ = consumes<std::vector<float> >(edm::InputTag(label, TrackPrefix_ + "momentum" + TrackSuffix_));
97  trackpt_token_ = consumes<std::vector<float> >(edm::InputTag(label, TrackPrefix_ + "pt" + TrackSuffix_));
98  tracketa_token_ = consumes<std::vector<double> >(edm::InputTag(label, TrackPrefix_ + "eta" + TrackSuffix_));
99  trackphi_token_ = consumes<std::vector<double> >(edm::InputTag(label, TrackPrefix_ + "phi" + TrackSuffix_));
100  trackhitsvalid_token_ = consumes<std::vector<unsigned int> >(edm::InputTag(label, TrackPrefix_ + "hitsvalid" + TrackSuffix_));
101  trackalgo_token_ = consumes<std::vector<int> >(edm::InputTag(label, TrackPrefix_ + "algo" + TrackSuffix_));
102 
103 }
std::vector< MonitorElement * > Charge_Vs_PathlengthTOB
edm::EDGetTokenT< std::vector< double > > gainused_token_
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< std::vector< double > > localdirz_token_
edm::EDGetTokenT< std::vector< bool > > saturation_token_
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
edm::EDGetTokenT< std::vector< float > > trackp_token_
const TrackerGeometry * bareTkGeomPtr_
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
std::vector< std::string > dqm_tag_
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
edm::EDGetTokenT< std::vector< double > > tracketa_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTIB
edm::EDGetTokenT< std::vector< int > > trackindex_token_
edm::EDGetTokenT< std::vector< double > > localdirx_token_
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP1
edm::EDGetTokenT< std::vector< double > > trackphi_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM2
edm::EDGetTokenT< std::vector< float > > trackpt_token_
std::vector< std::string > VChargeHisto
edm::EDGetTokenT< std::vector< double > > path_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM1
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP2
edm::EDGetTokenT< std::vector< double > > localdiry_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDP
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDM
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
std::vector< MonitorElement * > Charge_Vs_Index
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_

Member Function Documentation

void SiStripGainsPCLWorker::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 147 of file SiStripGainsPCLWorker.cc.

References amplitude, amplitude_token_, charge, charge_token_, chargeoverpath, chargeoverpath_token_, connect(), edm::EventID::event(), eventnumber, farfromedge, farfromedge_token_, firststrip, firststrip_token_, gainused, gainused_token_, gainusedTick, gainusedTick_token_, edm::EventSetup::get(), edm::EventBase::id(), localdirx, localdirx_token_, localdiry, localdiry_token_, localdirz, localdirz_token_, nstrips, nstrips_token_, overlapping, overlapping_token_, path, path_token_, processEvent(), edm::ESHandle< T >::product(), rawid, rawid_token_, edm::EventID::run(), 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_.

148 {
149  using namespace edm;
150 
151  // this->checkBookAPVColls(iSetup); // check whether APV colls are booked and do so if not yet done
152 
153  eventnumber = iEvent.id().event();
154  runnumber = iEvent.id().run();
155 
156  auto handle01 = connect(TrigTech , TrigTech_token_ , iEvent);
157  auto handle02 = connect(trackchi2ndof , trackchi2ndof_token_ , iEvent);
158  auto handle03 = connect(trackp , trackp_token_ , iEvent);
159  auto handle04 = connect(trackpt , trackpt_token_ , iEvent);
160  auto handle05 = connect(tracketa , tracketa_token_ , iEvent);
161  auto handle06 = connect(trackphi , trackphi_token_ , iEvent);
162  auto handle07 = connect(trackhitsvalid, trackhitsvalid_token_, iEvent);
163  auto handle08 = connect(trackindex , trackindex_token_ , iEvent);
164  auto handle09 = connect(rawid , rawid_token_ , iEvent);
165  auto handle11 = connect(localdirx , localdirx_token_ , iEvent);
166  auto handle12 = connect(localdiry , localdiry_token_ , iEvent);
167  auto handle13 = connect(localdirz , localdirz_token_ , iEvent);
168  auto handle14 = connect(firststrip , firststrip_token_ , iEvent);
169  auto handle15 = connect(nstrips , nstrips_token_ , iEvent);
170  auto handle16 = connect(saturation , saturation_token_ , iEvent);
171  auto handle17 = connect(overlapping , overlapping_token_ , iEvent);
172  auto handle18 = connect(farfromedge , farfromedge_token_ , iEvent);
173  auto handle19 = connect(charge , charge_token_ , iEvent);
174  auto handle21 = connect(path , path_token_ , iEvent);
175  auto handle22 = connect(chargeoverpath, chargeoverpath_token_, iEvent);
176  auto handle23 = connect(amplitude , amplitude_token_ , iEvent);
177  auto handle24 = connect(gainused , gainused_token_ , iEvent);
178  auto handle25 = connect(gainusedTick , gainusedTick_token_ , iEvent);
179  auto handle26 = connect(trackalgo , trackalgo_token_ , iEvent);
180 
182  iSetup.get<TrackerTopologyRcd>().get( TopoHandle );
183  const TrackerTopology* topo = TopoHandle.product();
184 
185  processEvent(topo);
186 
187 }
RunNumber_t run() const
Definition: EventID.h:39
const std::vector< double > * chargeoverpath
edm::EDGetTokenT< std::vector< double > > gainused_token_
EventNumber_t event() const
Definition: EventID.h:41
const std::vector< int > * trackalgo
edm::EDGetTokenT< std::vector< double > > localdirz_token_
edm::EDGetTokenT< std::vector< bool > > saturation_token_
edm::EDGetTokenT< std::vector< double > > trackchi2ndof_token_
edm::EDGetTokenT< std::vector< double > > gainusedTick_token_
edm::EDGetTokenT< std::vector< float > > trackp_token_
const std::vector< bool > * TrigTech
const std::vector< int > * trackindex
const std::vector< float > * trackpt
const std::vector< unsigned int > * rawid
const std::vector< unsigned int > * charge
const std::vector< double > * path
const std::vector< bool > * farfromedge
edm::EDGetTokenT< std::vector< unsigned int > > trackhitsvalid_token_
edm::EDGetTokenT< std::vector< unsigned short > > firststrip_token_
edm::EDGetTokenT< std::vector< bool > > farfromedge_token_
edm::EDGetTokenT< std::vector< bool > > overlapping_token_
const std::vector< double > * gainusedTick
edm::EDGetTokenT< std::vector< unsigned short > > nstrips_token_
const std::vector< double > * tracketa
edm::EDGetTokenT< std::vector< double > > tracketa_token_
const std::vector< double > * localdiry
const std::vector< float > * trackp
const std::vector< bool > * saturation
const std::vector< double > * localdirz
const std::vector< double > * trackphi
const std::vector< bool > * overlapping
edm::EDGetTokenT< std::vector< int > > trackindex_token_
const std::vector< double > * localdirx
edm::EDGetTokenT< std::vector< double > > localdirx_token_
edm::EDGetTokenT< std::vector< unsigned int > > charge_token_
edm::EDGetTokenT< std::vector< double > > trackphi_token_
const std::vector< unsigned short > * firststrip
const std::vector< unsigned int > * trackhitsvalid
edm::EDGetTokenT< std::vector< float > > trackpt_token_
const T & get() const
Definition: EventSetup.h:55
edm::Handle< T > connect(const T *&ptr, edm::EDGetTokenT< T > token, const edm::Event &evt)
edm::EDGetTokenT< std::vector< double > > path_token_
edm::EventID id() const
Definition: EventBase.h:60
HLT enums.
const std::vector< unsigned char > * amplitude
void processEvent(const TrackerTopology *topo)
edm::EDGetTokenT< std::vector< double > > chargeoverpath_token_
const std::vector< double > * trackchi2ndof
edm::EDGetTokenT< std::vector< int > > trackalgo_token_
edm::EDGetTokenT< std::vector< double > > localdiry_token_
edm::EDGetTokenT< std::vector< unsigned char > > amplitude_token_
const std::vector< unsigned short > * nstrips
T const * product() const
Definition: ESHandle.h:86
const std::vector< double > * gainused
edm::EDGetTokenT< std::vector< unsigned int > > rawid_token_
edm::EDGetTokenT< std::vector< bool > > TrigTech_token_
void SiStripGainsPCLWorker::beginJob ( void  )
privatevirtual

Definition at line 356 of file SiStripGainsPCLWorker.cc.

357 {
358 }
void SiStripGainsPCLWorker::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  run,
edm::EventSetup const &  es 
)
overrideprivatevirtual

Implements DQMEDAnalyzer.

Definition at line 493 of file SiStripGainsPCLWorker.cc.

References a, b, DQMStore::IBooker::book1DD(), DQMStore::IBooker::book2S(), DQMStore::IBooker::cd(), 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, doChargeMonitorPerPlane, dqm_tag_, JetChargeProducer_cfi::exp, plotBeamSpotDB::first, mps_fire::i, cmsBatch::log, m_calibrationMode, m_DQMdir, APVGain::monHnames(), NStripAPVs, p1, p2, edm::second(), DQMStore::IBooker::setCurrentFolder(), statCollectionFromMode(), AlCaHLTBitMon_QueryRunRegistry::string, APVGain::subdetectorId(), APVGain::subdetectorPlane(), APVGain::subdetectorSide(), GlobalPosition_Frontier_DevDB_cff::tag, VChargeHisto, and y.

493  {
494 
495  ibooker.cd();
496  std::string dqm_dir = m_DQMdir;
497  const char* tag = dqm_tag_[statCollectionFromMode(m_calibrationMode.c_str())].c_str();
498 
499  edm::LogInfo("SiStripGainsPCLWorker") << "Setting " << dqm_dir << "in DQM and booking histograms for tag "
500  << tag << std::endl;
501 
502  ibooker.setCurrentFolder(dqm_dir);
503 
504  std::string stag(tag);
505  if(!stag.empty() && stag[0]!='_') stag.insert(0,1,'_');
506 
507  std::string cvi = std::string("Charge_Vs_Index") + stag;
508  std::string cvpTIB = std::string("Charge_Vs_PathlengthTIB") + stag;
509  std::string cvpTOB = std::string("Charge_Vs_PathlengthTOB") + stag;
510  std::string cvpTIDP = std::string("Charge_Vs_PathlengthTIDP") + stag;
511  std::string cvpTIDM = std::string("Charge_Vs_PathlengthTIDM") + stag;
512  std::string cvpTECP1 = std::string("Charge_Vs_PathlengthTECP1") + stag;
513  std::string cvpTECP2 = std::string("Charge_Vs_PathlengthTECP2") + stag;
514  std::string cvpTECM1 = std::string("Charge_Vs_PathlengthTECM1") + stag;
515  std::string cvpTECM2 = std::string("Charge_Vs_PathlengthTECM2") + stag;
516 
517  int elepos = statCollectionFromMode(tag);
518 
519  // The cluster charge is stored by exploiting a non uniform binning in order
520  // reduce the histogram memory size. The bin width is relaxed with a falling
521  // exponential function and the bin boundaries are stored in the binYarray.
522  // The binXarray is used to provide as many bins as the APVs.
523  //
524  // More details about this implementations are here:
525  // https://indico.cern.ch/event/649344/contributions/2672267/attachments/1498323/2332518/OptimizeChHisto.pdf
526 
527  std::vector<float> binXarray;
528  binXarray.reserve( NStripAPVs+1 );
529  for(int a=0;a<=NStripAPVs;a++){
530  binXarray.push_back( (float)a );
531  }
532 
533 
534  std::array<float,688> binYarray;
535  double p0 = 5.445;
536  double p1 = 0.002113;
537  double p2 = 69.01576;
538  double y = 0.;
539  for(int b=0;b<687;b++) {
540  binYarray[b] = y;
541  if(y<=902.) y = y + 2.;
542  else y = ( p0 - log(exp(p0-p1*y) - p2*p1)) / p1;
543  }
544  binYarray[687] = 4000.;
545 
546  Charge_Vs_Index[elepos] = ibooker.book2S(cvi.c_str() , cvi.c_str() , NStripAPVs, &binXarray[0], 687, binYarray.data());
547  Charge_Vs_PathlengthTIB[elepos] = ibooker.book2S(cvpTIB.c_str() , cvpTIB.c_str() , 20 , 0.3 , 1.3 , 250,0,2000);
548  Charge_Vs_PathlengthTOB[elepos] = ibooker.book2S(cvpTOB.c_str() , cvpTOB.c_str() , 20 , 0.3 , 1.3 , 250,0,2000);
549  Charge_Vs_PathlengthTIDP[elepos] = ibooker.book2S(cvpTIDP.c_str() , cvpTIDP.c_str() , 20 , 0.3 , 1.3 , 250,0,2000);
550  Charge_Vs_PathlengthTIDM[elepos] = ibooker.book2S(cvpTIDM.c_str() , cvpTIDM.c_str() , 20 , 0.3 , 1.3 , 250,0,2000);
551  Charge_Vs_PathlengthTECP1[elepos] = ibooker.book2S(cvpTECP1.c_str(), cvpTECP1.c_str(), 20 , 0.3 , 1.3 , 250,0,2000);
552  Charge_Vs_PathlengthTECP2[elepos] = ibooker.book2S(cvpTECP2.c_str(), cvpTECP2.c_str(), 20 , 0.3 , 1.3 , 250,0,2000);
553  Charge_Vs_PathlengthTECM1[elepos] = ibooker.book2S(cvpTECM1.c_str(), cvpTECM1.c_str(), 20 , 0.3 , 1.3 , 250,0,2000);
554  Charge_Vs_PathlengthTECM2[elepos] = ibooker.book2S(cvpTECM2.c_str(), cvpTECM2.c_str(), 20 , 0.3 , 1.3 , 250,0,2000);
555 
556  std::vector<std::pair<std::string,std::string>> hnames = APVGain::monHnames(VChargeHisto,doChargeMonitorPerPlane,"");
557  for (unsigned int i=0;i<hnames.size();i++){
558  std::string htag = (hnames[i]).first + stag;
559  MonitorElement* monitor = ibooker.book1DD( htag.c_str(), (hnames[i]).second.c_str(), 100 , 0. , 1000. );
560  int id = APVGain::subdetectorId((hnames[i]).first);
561  int side = APVGain::subdetectorSide((hnames[i]).first);
562  int plane = APVGain::subdetectorPlane((hnames[i]).first);
563  Charge_1[elepos].push_back( APVGain::APVmon(id,side,plane,monitor) );
564  }
565 
567  for (unsigned int i=0;i<hnames.size();i++){
568  std::string htag = (hnames[i]).first + stag;
569  MonitorElement* monitor = ibooker.book1DD( htag.c_str(), (hnames[i]).second.c_str(), 100 , 0. , 1000. );
570  int id = APVGain::subdetectorId((hnames[i]).first);
571  int side = APVGain::subdetectorSide((hnames[i]).first);
572  int plane = APVGain::subdetectorPlane((hnames[i]).first);
573  Charge_2[elepos].push_back( APVGain::APVmon(id,side,plane,monitor) );
574  }
575 
577  for (unsigned int i=0;i<hnames.size();i++){
578  std::string htag = (hnames[i]).first + stag;
579  MonitorElement* monitor = ibooker.book1DD( htag.c_str(), (hnames[i]).second.c_str(), 100 , 0. , 1000. );
580  int id = APVGain::subdetectorId((hnames[i]).first);
581  int side = APVGain::subdetectorSide((hnames[i]).first);
582  int plane = APVGain::subdetectorPlane((hnames[i]).first);
583  Charge_3[elepos].push_back( APVGain::APVmon(id,side,plane,monitor) );
584  }
585 
587  for (unsigned int i=0;i<hnames.size();i++){
588  std::string htag = (hnames[i]).first + stag;
589  MonitorElement* monitor = ibooker.book1DD( htag.c_str(), (hnames[i]).second.c_str(), 100 , 0. , 1000. );
590  int id = APVGain::subdetectorId((hnames[i]).first);
591  int side = APVGain::subdetectorSide((hnames[i]).first);
592  int plane = APVGain::subdetectorPlane((hnames[i]).first);
593  Charge_4[elepos].push_back( APVGain::APVmon(id,side,plane,monitor) );
594  }
595 }
std::vector< MonitorElement * > Charge_Vs_PathlengthTOB
std::array< std::vector< APVGain::APVmon >, 7 > Charge_1
void cd(void)
Definition: DQMStore.cc:269
int subdetectorPlane(uint32_t, const TrackerTopology *)
std::vector< std::string > dqm_tag_
U second(std::pair< T, U > const &p)
MonitorElement * book2S(Args &&...args)
Definition: DQMStore.h:139
std::vector< MonitorElement * > Charge_Vs_PathlengthTIB
std::array< std::vector< APVGain::APVmon >, 7 > Charge_4
double p2[4]
Definition: TauolaWrapper.h:90
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP1
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:277
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM2
std::array< std::vector< APVGain::APVmon >, 7 > Charge_2
int subdetectorSide(uint32_t, const TrackerTopology *)
double b
Definition: hdecay.h:120
std::vector< std::string > VChargeHisto
double p1[4]
Definition: TauolaWrapper.h:89
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM1
double a
Definition: hdecay.h:121
std::array< std::vector< APVGain::APVmon >, 7 > Charge_3
int statCollectionFromMode(const char *tag) const
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP2
std::vector< std::pair< std::string, std::string > > monHnames(std::vector< std::string >, bool, const char *tag)
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDP
MonitorElement * book1DD(Args &&...args)
Definition: DQMStore.h:127
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDM
int subdetectorId(uint32_t)
std::vector< MonitorElement * > Charge_Vs_Index
void SiStripGainsPCLWorker::checkBookAPVColls ( const edm::EventSetup setup)
privatevirtual

Definition at line 363 of file SiStripGainsPCLWorker.cc.

References sistrip::APV, APVsColl, APVsCollOrdered, bareTkGeomPtr_, TrackerGeometry::dets(), edm::EventSetup::get(), mps_fire::i, PixelTopology::ncolumns(), NPixelDets, PixelTopology::nrows(), NStripAPVs, StripTopology::nstrips(), PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, DetId::rawId(), ntupleEnum::SubDet, DetId::subdetId(), StripSubdetector::TEC, StripSubdetector::TIB, StripSubdetector::TID, tkGeom_, and StripSubdetector::TOB.

Referenced by dqmBeginRun().

363  {
364 
365  es.get<TrackerDigiGeometryRecord>().get( tkGeom_ );
366  const TrackerGeometry *newBareTkGeomPtr = &(*tkGeom_);
367  if (newBareTkGeomPtr == bareTkGeomPtr_) return; // already filled APVColls, nothing changed
368 
369  if (!bareTkGeomPtr_) { // pointer not yet set: called the first time => fill the APVColls
370  auto const & Det = newBareTkGeomPtr->dets();
371 
372  edm::LogInfo("SiStripGainsPCLWorker")
373  <<" Resetting APV struct"<<std::endl;
374 
375  unsigned int Index=0;
376 
377  for(unsigned int i=0;i<Det.size();i++){
378 
379  DetId Detid = Det[i]->geographicalId();
380  int SubDet = Detid.subdetId();
381 
382  if( SubDet == StripSubdetector::TIB || SubDet == StripSubdetector::TID ||
383  SubDet == StripSubdetector::TOB || SubDet == StripSubdetector::TEC ){
384 
385  auto DetUnit = dynamic_cast<const StripGeomDetUnit*> (Det[i]);
386  if(!DetUnit)continue;
387 
388  const StripTopology& Topo = DetUnit->specificTopology();
389  unsigned int NAPV = Topo.nstrips()/128;
390 
391  for(unsigned int j=0;j<NAPV;j++){
392  auto APV = std::make_shared<stAPVGain>();
393  APV->Index = Index;
394  APV->Bin = -1;
395  APV->DetId = Detid.rawId();
396  APV->APVId = j;
397  APV->SubDet = SubDet;
398  APV->FitMPV = -1;
399  APV->FitMPVErr = -1;
400  APV->FitWidth = -1;
401  APV->FitWidthErr = -1;
402  APV->FitChi2 = -1;
403  APV->FitNorm = -1;
404  APV->Gain = -1;
405  APV->PreviousGain = 1;
406  APV->PreviousGainTick = 1;
407  APV->x = DetUnit->position().basicVector().x();
408  APV->y = DetUnit->position().basicVector().y();
409  APV->z = DetUnit->position().basicVector().z();
410  APV->Eta = DetUnit->position().basicVector().eta();
411  APV->Phi = DetUnit->position().basicVector().phi();
412  APV->R = DetUnit->position().basicVector().transverse();
413  APV->Thickness = DetUnit->surface().bounds().thickness();
414  APV->NEntries = 0;
415  APV->isMasked = false;
416 
417  APVsCollOrdered.push_back(APV);
418  APVsColl[(APV->DetId<<4) | APV->APVId] = APV;
419  Index++;
420  NStripAPVs++;
421  } // loop on APVs
422  } // if is Strips
423  } // loop on dets
424 
425  for(unsigned int i=0;i<Det.size();i++){ //Make two loop such that the Pixel information is added at the end --> make transition simpler
426  DetId Detid = Det[i]->geographicalId();
427  int SubDet = Detid.subdetId();
429  auto DetUnit = dynamic_cast<const PixelGeomDetUnit*> (Det[i]);
430  if(!DetUnit) continue;
431 
432  const PixelTopology& Topo = DetUnit->specificTopology();
433  unsigned int NROCRow = Topo.nrows()/(80.);
434  unsigned int NROCCol = Topo.ncolumns()/(52.);
435 
436  for(unsigned int j=0;j<NROCRow;j++){
437  for(unsigned int i=0;i<NROCCol;i++){
438 
439  auto APV = std::make_shared<stAPVGain>();
440  APV->Index = Index;
441  APV->Bin = -1;
442  APV->DetId = Detid.rawId();
443  APV->APVId = (j<<3 | i);
444  APV->SubDet = SubDet;
445  APV->FitMPV = -1;
446  APV->FitMPVErr = -1;
447  APV->FitWidth = -1;
448  APV->FitWidthErr = -1;
449  APV->FitChi2 = -1;
450  APV->Gain = -1;
451  APV->PreviousGain = 1;
452  APV->PreviousGainTick = 1;
453  APV->x = DetUnit->position().basicVector().x();
454  APV->y = DetUnit->position().basicVector().y();
455  APV->z = DetUnit->position().basicVector().z();
456  APV->Eta = DetUnit->position().basicVector().eta();
457  APV->Phi = DetUnit->position().basicVector().phi();
458  APV->R = DetUnit->position().basicVector().transverse();
459  APV->Thickness = DetUnit->surface().bounds().thickness();
460  APV->isMasked = false; //SiPixelQuality_->IsModuleBad(Detid.rawId());
461  APV->NEntries = 0;
462 
463  APVsCollOrdered.push_back(APV);
464  APVsColl[(APV->DetId<<4) | APV->APVId] = APV;
465  Index++;
466  NPixelDets++;
467 
468  } // loop on ROC cols
469  } // loop on ROC rows
470  } // if Pixel
471  } // loop on Dets
472  } //if (!bareTkGeomPtr_) ...
473  bareTkGeomPtr_ = newBareTkGeomPtr;
474 }
virtual int nrows() const =0
const TrackerGeometry * bareTkGeomPtr_
std::vector< std::shared_ptr< stAPVGain > > APVsCollOrdered
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
edm::ESHandle< TrackerGeometry > tkGeom_
std::unordered_map< unsigned int, std::shared_ptr< stAPVGain > > APVsColl
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
Definition: DetId.h:18
virtual int nstrips() const =0
virtual int ncolumns() const =0
void SiStripGainsPCLWorker::dqmBeginRun ( edm::Run const &  ,
edm::EventSetup const &   
)
overrideprivatevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 107 of file SiStripGainsPCLWorker.cc.

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

107  {
108 
109  using namespace edm;
110 
111  this->checkBookAPVColls(iSetup); // check whether APV colls are booked and do so if not yet done
112 
113  edm::ESHandle<SiStripGain> gainHandle;
114  iSetup.get<SiStripGainRcd>().get(gainHandle);
115  if(!gainHandle.isValid()){edm::LogError("SiStripGainPCLWorker")<< "gainHandle is not valid\n"; exit(0);}
116 
117  edm::ESHandle<SiStripQuality> SiStripQuality_;
118  iSetup.get<SiStripQualityRcd>().get(SiStripQuality_);
119 
120  for(unsigned int a=0;a<APVsCollOrdered.size();a++){
121 
122  std::shared_ptr<stAPVGain> APV = APVsCollOrdered[a];
123 
124  if(APV->SubDet==PixelSubdetector::PixelBarrel || APV->SubDet==PixelSubdetector::PixelEndcap) continue;
125 
126  APV->isMasked = SiStripQuality_->IsApvBad(APV->DetId,APV->APVId);
127 
128  if(gainHandle->getNumberOfTags()!=2){edm::LogError("SiStripGainPCLWorker")<< "NUMBER OF GAIN TAG IS EXPECTED TO BE 2\n";fflush(stdout);exit(0);};
129  float newPreviousGain = gainHandle->getApvGain(APV->APVId,gainHandle->getRange(APV->DetId, 1),1);
130  if(APV->PreviousGain!=1 and newPreviousGain!=APV->PreviousGain)edm::LogWarning("SiStripGainPCLWorker")<< "WARNING: ParticleGain in the global tag changed\n";
131  APV->PreviousGain = newPreviousGain;
132 
133  float newPreviousGainTick = gainHandle->getApvGain(APV->APVId,gainHandle->getRange(APV->DetId, 0),0);
134  if(APV->PreviousGainTick!=1 and newPreviousGainTick!=APV->PreviousGainTick){
135  edm::LogWarning("SiStripGainPCLWorker")<< "WARNING: TickMarkGain in the global tag changed\n"<< std::endl
136  <<" APV->SubDet: "<< APV->SubDet << " APV->APVId:" << APV->APVId << std::endl
137  <<" APV->PreviousGainTick: "<<APV->PreviousGainTick<<" newPreviousGainTick: "<<newPreviousGainTick<<std::endl;
138  }
139  APV->PreviousGainTick = newPreviousGainTick;
140  }
141 
142 }
bool IsApvBad(const uint32_t &detid, const short &apvNb) const
virtual void checkBookAPVColls(const edm::EventSetup &setup)
size_t getNumberOfTags() const
Definition: SiStripGain.h:91
std::vector< std::shared_ptr< stAPVGain > > APVsCollOrdered
static float getApvGain(const uint16_t &apv, const SiStripApvGain::Range &range)
Definition: SiStripGain.h:73
HLT enums.
double a
Definition: hdecay.h:121
bool isValid() const
Definition: ESHandle.h:47
const SiStripApvGain::Range getRange(uint32_t detID) const
Definition: SiStripGain.h:70
void SiStripGainsPCLWorker::endJob ( void  )
privatevirtual

Definition at line 479 of file SiStripGainsPCLWorker.cc.

Referenced by o2olib.O2ORunMgr::executeJob().

480 {
481 }
void SiStripGainsPCLWorker::fillDescriptions ( edm::ConfigurationDescriptions descriptions)
static
void SiStripGainsPCLWorker::processEvent ( const TrackerTopology topo)
private

Definition at line 190 of file SiStripGainsPCLWorker.cc.

References AllowSaturation, sistrip::APV, APVsColl, 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, funct::false, farfromedge, APVGain::FetchMonitor(), HcalObjRepresent::Fill(), FirstSetOfConstants, firststrip, mps_fire::i, createfilelist::int, LogDebug, funct::m, m_calibrationMode, MaxNrStrips, MaxTrackChiOverNdf, MaxTrackEta, MaxTrackingIteration, MaxTrackMomentum, MinTrackEta, MinTrackHits, MinTrackMomentum, NClusterPixel, NClusterStrip, NEvent, NPixelDets, NStripAPVs, 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, funct::true, useCalibration, and Validation.

Referenced by analyze().

190  {
191 
192  edm::LogInfo("SiStripGainsPCLWorker") << "Processing run " << runnumber
193  << " and event " << eventnumber
194  << std::endl;
195 
198 
199  NEvent++;
200  NTrack+=(*trackp).size();
201 
202  edm::LogInfo("SiStripGainsPCLWorker")
203  <<"for mode"<< m_calibrationMode
204  <<" Nevent:"<<NEvent
205  <<" NTrack:"<<NTrack
206  <<" NClusterStrip:"<<NClusterStrip
207  <<" NClusterPixel:"<<NClusterPixel
208  <<" NStripAPVs:"<<NStripAPVs
209  <<" NPixelDets:"<<NPixelDets
210  <<std::endl;
211 
212  int elepos = statCollectionFromMode(m_calibrationMode.c_str());
213 
214  unsigned int FirstAmplitude=0;
215  for(unsigned int i=0;i<(*chargeoverpath).size();i++){
216 
217  FirstAmplitude+=(*nstrips)[i];
218  int TI = (*trackindex)[i];
219 
220  if((*tracketa )[TI] < MinTrackEta )continue;
221  if((*tracketa )[TI] > MaxTrackEta )continue;
222  if((*trackp )[TI] < MinTrackMomentum )continue;
223  if((*trackp )[TI] > MaxTrackMomentum )continue;
224  if((*trackhitsvalid)[TI] < MinTrackHits )continue;
225  if((*trackchi2ndof )[TI] > MaxTrackChiOverNdf )continue;
226  if((*trackalgo )[TI] > MaxTrackingIteration )continue;
227 
228  std::shared_ptr<stAPVGain> APV = APVsColl[((*rawid)[i]<<4) | ((*firststrip)[i]/128)]; //works for both strip and pixel thanks to firstStrip encoding for pixel in the calibTree
229 
230  if(APV->SubDet>2 && (*farfromedge)[i] == false )continue;
231  if(APV->SubDet>2 && (*overlapping)[i] == true )continue;
232  if(APV->SubDet>2 && (*saturation )[i] && !AllowSaturation)continue;
233  if(APV->SubDet>2 && (*nstrips )[i] > MaxNrStrips )continue;
234 
235  if(APV->SubDet>2){
236  NClusterStrip++;
237  } else {
238  NClusterPixel++;
239  }
240 
241  int Charge = 0;
242  if(APV->SubDet>2 && (useCalibration || !FirstSetOfConstants)){
243  bool Saturation = false;
244  for(unsigned int s=0;s<(*nstrips)[i];s++){
245  int StripCharge = (*amplitude)[FirstAmplitude-(*nstrips)[i]+s];
246  if(useCalibration && !FirstSetOfConstants){ StripCharge=(int)(StripCharge*(APV->PreviousGain/APV->CalibGain));
247  }else if(useCalibration){ StripCharge=(int)(StripCharge/APV->CalibGain);
248  }else if(!FirstSetOfConstants){ StripCharge=(int)(StripCharge*APV->PreviousGain);}
249  if(StripCharge>1024){
250  StripCharge = 255;
251  Saturation = true;
252  }else if(StripCharge>254){
253  StripCharge = 254;
254  Saturation = true;
255  }
256  Charge += StripCharge;
257  }
258  if(Saturation && !AllowSaturation)continue;
259  }else if(APV->SubDet>2){
260  Charge = (*charge)[i];
261  }else{
262  Charge = (*charge)[i]/265.0; //expected scale factor between pixel and strip charge
263  }
264 
265  double ClusterChargeOverPath = ( (double) Charge )/(*path)[i] ;
266  if(APV->SubDet>2){
267  if(Validation) {ClusterChargeOverPath/=(*gainused)[i];}
268  if(OldGainRemoving){ClusterChargeOverPath*=(*gainused)[i];}
269  }
270 
271  // keep processing of pixel cluster charge until here
272  if(APV->SubDet<=2) continue;
273 
274  // real histogram for calibration
275  (Charge_Vs_Index[elepos])->Fill(APV->Index,ClusterChargeOverPath);
276 
277  LogDebug("SiStripGainsPCLWorker") <<" for mode "<< m_calibrationMode << "\n"
278  <<" i "<< i
279  <<" NClusterStrip "<< NClusterStrip
280  <<" useCalibration "<< useCalibration
281  <<" FirstSetOfConstants "<< FirstSetOfConstants
282  <<" APV->DetId "<< APV->DetId
283  <<" APV->Index "<< APV->Index
284  <<" Charge "<< Charge
285  <<" ClusterChargeOverPath "<< ClusterChargeOverPath
286  <<std::endl;
287 
288  // Fill monitoring histograms
289  int mCharge1 = 0;
290  int mCharge2 = 0;
291  int mCharge3 = 0;
292  int mCharge4 = 0;
293  if(APV->SubDet>2) {
294  for(unsigned int s=0;s<(*nstrips)[i];s++){
295  int StripCharge = (*amplitude)[FirstAmplitude-(*nstrips)[i]+s];
296  if(StripCharge>1024) StripCharge = 255;
297  else if(StripCharge>254) StripCharge = 254;
298  mCharge1 += StripCharge;
299  mCharge2 += StripCharge;
300  mCharge3 += StripCharge;
301  mCharge4 += StripCharge;
302  }
303  // Revome gains for monitoring
304  mCharge2 *= (*gainused)[i]; // remove G2
305  mCharge3 *= (*gainusedTick)[i]; // remove G1
306  mCharge4 *= ( (*gainused)[i] * (*gainusedTick)[i]); // remove G1 and G2
307  }
308  std::vector<APVGain::APVmon>& v1 = Charge_1[elepos];
309  std::vector<MonitorElement*> cmon1 = APVGain::FetchMonitor(v1, (*rawid)[i], topo);
310  for(unsigned int m=0; m<cmon1.size(); m++) cmon1[m]->Fill(( (double) mCharge1 )/(*path)[i]);
311 
312  std::vector<APVGain::APVmon>& v2 = Charge_2[elepos];
313  std::vector<MonitorElement*> cmon2 = APVGain::FetchMonitor(v2, (*rawid)[i], topo);
314  for(unsigned int m=0; m<cmon2.size(); m++) cmon2[m]->Fill(( (double) mCharge2 )/(*path)[i]);
315 
316  std::vector<APVGain::APVmon>& v3 = Charge_3[elepos];
317  std::vector<MonitorElement*> cmon3 = APVGain::FetchMonitor(v3, (*rawid)[i], topo);
318  for(unsigned int m=0; m<cmon3.size(); m++) cmon3[m]->Fill(( (double) mCharge3 )/(*path)[i]);
319 
320  std::vector<APVGain::APVmon>& v4 = Charge_4[elepos];
321  std::vector<MonitorElement*> cmon4 = APVGain::FetchMonitor(v4, (*rawid)[i], topo);
322  for(unsigned int m=0; m<cmon4.size(); m++) cmon4[m]->Fill(( (double) mCharge4 )/(*path)[i]);
323 
324 
325  if(APV->SubDet==StripSubdetector::TIB){
326  (Charge_Vs_PathlengthTIB[elepos])->Fill((*path)[i],Charge); // TIB
327 
328  }else if(APV->SubDet==StripSubdetector::TOB){
329  (Charge_Vs_PathlengthTOB[elepos])->Fill((*path)[i],Charge); // TOB
330 
331  }else if(APV->SubDet==StripSubdetector::TID){
332  if(APV->Eta<0) { (Charge_Vs_PathlengthTIDM[elepos])->Fill((*path)[i],Charge); } // TID minus
333  else if(APV->Eta>0){ (Charge_Vs_PathlengthTIDP[elepos])->Fill((*path)[i],Charge); } // TID plus
334 
335  }else if(APV->SubDet==StripSubdetector::TEC){
336  if(APV->Eta<0){
337  if(APV->Thickness<0.04) { (Charge_Vs_PathlengthTECM1[elepos])->Fill((*path)[i],Charge); } // TEC minus, type 1
338  else if(APV->Thickness>0.04){ (Charge_Vs_PathlengthTECM2[elepos])->Fill((*path)[i],Charge); } // TEC minus, type 2
339  } else if(APV->Eta>0){
340  if(APV->Thickness<0.04) { (Charge_Vs_PathlengthTECP1[elepos])->Fill((*path)[i],Charge); } // TEC plus, type 1
341  else if(APV->Thickness>0.04){ (Charge_Vs_PathlengthTECP2[elepos])->Fill((*path)[i],Charge); } // TEC plus, type 2
342  }
343  }
344 
345  }// END OF ON-CLUSTER LOOP
346 
347  LogDebug("SiStripGainsPCLWorker")<<" for mode"<< m_calibrationMode
348  <<" entries in histogram:"<< (Charge_Vs_Index[elepos])->getTH2S()->GetEntries()
349  <<std::endl;
350 
351 }//END OF processEvent()
#define LogDebug(id)
std::vector< MonitorElement * > Charge_Vs_PathlengthTOB
const std::vector< int > * trackalgo
std::vector< MonitorElement * > FetchMonitor(std::vector< APVmon >, uint32_t, const TrackerTopology *topo=nullptr)
std::array< std::vector< APVGain::APVmon >, 7 > Charge_1
const std::vector< unsigned int > * rawid
const std::vector< double > * path
const std::vector< bool > * farfromedge
const std::vector< double > * tracketa
const std::vector< float > * trackp
const std::vector< bool > * saturation
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
std::unordered_map< unsigned int, std::shared_ptr< stAPVGain > > APVsColl
std::vector< MonitorElement * > Charge_Vs_PathlengthTIB
std::array< std::vector< APVGain::APVmon >, 7 > Charge_4
const std::vector< bool > * overlapping
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP1
const std::vector< unsigned short > * firststrip
const std::vector< unsigned int > * trackhitsvalid
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM2
std::array< std::vector< APVGain::APVmon >, 7 > Charge_2
std::vector< MonitorElement * > Charge_Vs_PathlengthTECM1
std::array< std::vector< APVGain::APVmon >, 7 > Charge_3
int statCollectionFromMode(const char *tag) const
const std::vector< double > * trackchi2ndof
std::vector< MonitorElement * > Charge_Vs_PathlengthTECP2
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDP
const std::vector< unsigned short > * nstrips
std::vector< MonitorElement * > Charge_Vs_PathlengthTIDM
std::vector< MonitorElement * > Charge_Vs_Index
int SiStripGainsPCLWorker::statCollectionFromMode ( const char *  tag) const
inlineprivate

Definition at line 190 of file SiStripGainsPCLWorker.h.

References dqm_tag_, None, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by bookHistograms(), and processEvent().

191 {
192  std::vector<std::string>::const_iterator it=dqm_tag_.begin();
193  while(it!=dqm_tag_.end()) {
194  if(*it==std::string(tag)) return it-dqm_tag_.begin();
195  it++;
196  }
197 
198  if (std::string(tag)=="") return 0; // return StdBunch calibration mode for backward compatibility
199 
200  return None;
201 }
std::vector< std::string > dqm_tag_

Member Data Documentation

bool SiStripGainsPCLWorker::AllowSaturation
private

Definition at line 129 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

const std::vector<unsigned char>* SiStripGainsPCLWorker::amplitude = 0
private

Definition at line 173 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 173 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

std::unordered_map<unsigned int, std::shared_ptr<stAPVGain> > SiStripGainsPCLWorker::APVsColl
private

Definition at line 185 of file SiStripGainsPCLWorker.h.

Referenced by checkBookAPVColls(), and processEvent().

std::vector<std::shared_ptr<stAPVGain> > SiStripGainsPCLWorker::APVsCollOrdered
private

Definition at line 184 of file SiStripGainsPCLWorker.h.

Referenced by checkBookAPVColls(), and dqmBeginRun().

const TrackerGeometry* SiStripGainsPCLWorker::bareTkGeomPtr_
private

Definition at line 141 of file SiStripGainsPCLWorker.h.

Referenced by checkBookAPVColls().

std::string SiStripGainsPCLWorker::CalibPrefix_
private

Definition at line 181 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

std::string SiStripGainsPCLWorker::CalibSuffix_
private

Definition at line 182 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

const std::vector<unsigned int>* SiStripGainsPCLWorker::charge = 0
private
std::array< std::vector<APVGain::APVmon>,7 > SiStripGainsPCLWorker::Charge_1
private

Charge per cm per layer / wheel

Definition at line 96 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and processEvent().

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

Charge per cm per layer / wheel without G2

Definition at line 97 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and processEvent().

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

Charge per cm per layer / wheel without G1

Definition at line 98 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and processEvent().

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

Charge per cm per layer / wheel without G1 and G1

Definition at line 99 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and processEvent().

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

Definition at line 170 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

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

Charge per cm for each detector id

Definition at line 95 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TECP thin

Definition at line 107 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TECP thick

Definition at line 108 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TECP thin

Definition at line 105 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TECP thick

Definition at line 106 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TIB

Definition at line 101 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TIDM

Definition at line 104 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TIDP

Definition at line 103 of file SiStripGainsPCLWorker.h.

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

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

Charge vs pathlength in TOB

Definition at line 102 of file SiStripGainsPCLWorker.h.

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

const std::vector<double>* SiStripGainsPCLWorker::chargeoverpath = 0
private

Definition at line 172 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 172 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

bool SiStripGainsPCLWorker::doChargeMonitorPerPlane
private

Charge monitor per detector plane

Definition at line 134 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

std::vector<std::string> SiStripGainsPCLWorker::dqm_tag_
private
unsigned int SiStripGainsPCLWorker::ERun
private

Definition at line 119 of file SiStripGainsPCLWorker.h.

Referenced by processEvent().

unsigned int SiStripGainsPCLWorker::eventnumber =0
private

Definition at line 146 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

std::string SiStripGainsPCLWorker::EventPrefix_
private

Definition at line 177 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

std::string SiStripGainsPCLWorker::EventSuffix_
private

Definition at line 178 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

const std::vector<bool>* SiStripGainsPCLWorker::farfromedge = 0
private

Definition at line 169 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 169 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

bool SiStripGainsPCLWorker::FirstSetOfConstants
private

Definition at line 130 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

const std::vector<unsigned short>* SiStripGainsPCLWorker::firststrip = 0
private

Definition at line 165 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 165 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::gainused = 0
private

Definition at line 174 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 174 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::gainusedTick = 0
private

Definition at line 175 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 175 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::localdirx = 0
private

Definition at line 162 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 162 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::localdiry = 0
private

Definition at line 163 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 163 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::localdirz = 0
private

Definition at line 164 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 164 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

std::string SiStripGainsPCLWorker::m_calibrationMode
private

Type of statistics for the calibration

Definition at line 137 of file SiStripGainsPCLWorker.h.

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

std::string SiStripGainsPCLWorker::m_DQMdir
private

DQM folder hosting the charge statistics and the monitor plots

Definition at line 136 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().

unsigned int SiStripGainsPCLWorker::MaxNrStrips
private

Definition at line 125 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

double SiStripGainsPCLWorker::MaxTrackChiOverNdf
private

Definition at line 127 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

double SiStripGainsPCLWorker::MaxTrackEta
private

Definition at line 124 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

int SiStripGainsPCLWorker::MaxTrackingIteration
private

Definition at line 128 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

double SiStripGainsPCLWorker::MaxTrackMomentum
private

Definition at line 122 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

double SiStripGainsPCLWorker::MinTrackEta
private

Definition at line 123 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

unsigned int SiStripGainsPCLWorker::MinTrackHits
private

Definition at line 126 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

double SiStripGainsPCLWorker::MinTrackMomentum
private

Definition at line 121 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

unsigned int SiStripGainsPCLWorker::NClusterPixel
private

Definition at line 115 of file SiStripGainsPCLWorker.h.

Referenced by processEvent().

unsigned int SiStripGainsPCLWorker::NClusterStrip
private

Definition at line 114 of file SiStripGainsPCLWorker.h.

Referenced by processEvent().

unsigned int SiStripGainsPCLWorker::NEvent
private

Definition at line 112 of file SiStripGainsPCLWorker.h.

Referenced by processEvent().

int SiStripGainsPCLWorker::NPixelDets
private

Definition at line 117 of file SiStripGainsPCLWorker.h.

Referenced by checkBookAPVColls(), and processEvent().

int SiStripGainsPCLWorker::NStripAPVs
private

Definition at line 116 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), checkBookAPVColls(), and processEvent().

const std::vector<unsigned short>* SiStripGainsPCLWorker::nstrips = 0
private

Definition at line 166 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 166 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

unsigned int SiStripGainsPCLWorker::NTrack
private

Definition at line 113 of file SiStripGainsPCLWorker.h.

Referenced by processEvent().

bool SiStripGainsPCLWorker::OldGainRemoving
private

Definition at line 132 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

const std::vector<bool>* SiStripGainsPCLWorker::overlapping = 0
private

Definition at line 168 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 168 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::path = 0
private
edm::EDGetTokenT<std::vector<double> > SiStripGainsPCLWorker::path_token_
private

Definition at line 171 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<unsigned int>* SiStripGainsPCLWorker::rawid = 0
private

Definition at line 161 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 161 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

unsigned int SiStripGainsPCLWorker::runnumber =0
private

Definition at line 147 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

const std::vector<bool>* SiStripGainsPCLWorker::saturation = 0
private

Definition at line 167 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 167 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

unsigned int SiStripGainsPCLWorker::SRun
private

Definition at line 118 of file SiStripGainsPCLWorker.h.

Referenced by processEvent().

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

Definition at line 140 of file SiStripGainsPCLWorker.h.

Referenced by checkBookAPVColls().

const std::vector<int>* SiStripGainsPCLWorker::trackalgo = 0
private

Definition at line 157 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 157 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::trackchi2ndof = 0
private

Definition at line 151 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 151 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::tracketa = 0
private

Definition at line 154 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 154 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<unsigned int>* SiStripGainsPCLWorker::trackhitsvalid = 0
private

Definition at line 156 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 156 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<int>* SiStripGainsPCLWorker::trackindex = 0
private

Definition at line 160 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 160 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<float>* SiStripGainsPCLWorker::trackp = 0
private

Definition at line 152 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and processEvent().

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

Definition at line 152 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

const std::vector<double>* SiStripGainsPCLWorker::trackphi = 0
private

Definition at line 155 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 155 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

std::string SiStripGainsPCLWorker::TrackPrefix_
private

Definition at line 179 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

const std::vector<float>* SiStripGainsPCLWorker::trackpt = 0
private

Definition at line 153 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 153 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

std::string SiStripGainsPCLWorker::TrackSuffix_
private

Definition at line 180 of file SiStripGainsPCLWorker.h.

Referenced by SiStripGainsPCLWorker().

const std::vector<bool>* SiStripGainsPCLWorker::TrigTech = 0
private

Definition at line 148 of file SiStripGainsPCLWorker.h.

Referenced by analyze().

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

Definition at line 148 of file SiStripGainsPCLWorker.h.

Referenced by analyze(), and SiStripGainsPCLWorker().

bool SiStripGainsPCLWorker::useCalibration
private

Definition at line 133 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

bool SiStripGainsPCLWorker::Validation
private

Definition at line 131 of file SiStripGainsPCLWorker.h.

Referenced by processEvent(), and SiStripGainsPCLWorker().

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

Charge monitor plots to be output

Definition at line 138 of file SiStripGainsPCLWorker.h.

Referenced by bookHistograms(), and SiStripGainsPCLWorker().