CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
DTRunConditionVar Class Reference

#include <DTRunConditionVar.h>

Inheritance diagram for DTRunConditionVar:
DQMEDAnalyzer edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >

Public Member Functions

void analyze (const edm::Event &event, const edm::EventSetup &eventSetup) override
 
void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
void dqmBeginRun (const edm::Run &, const edm::EventSetup &) override
 
 DTRunConditionVar (const edm::ParameterSet &pset)
 
 ~DTRunConditionVar () override
 
- Public Member Functions inherited from DQMEDAnalyzer
void accumulate (edm::Event const &event, edm::EventSetup const &setup) final
 
void beginLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void beginRun (edm::Run const &run, edm::EventSetup const &setup) final
 
void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer ()
 
void endLuminosityBlock (edm::LuminosityBlock const &lumi, edm::EventSetup const &setup) final
 
void endRun (edm::Run const &run, edm::EventSetup const &setup) final
 
virtual bool getCanSaveByLumi ()
 
- Public Member Functions inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 

Private Member Functions

void bookChamberHistos (DQMStore::IBooker &, const DTChamberId &dtCh, std::string histoType, int, float, float)
 

Private Attributes

std::map< uint32_t, std::map
< std::string, MonitorElement * > > 
chamberHistos
 
bool debug
 
edm::EDGetTokenT
< DTRecSegment4DCollection
dt4DSegmentsToken_
 
const DTGeometrydtGeom
 
double maxAnglePhiSegm
 
const DTMtimemTimeMap_
 
edm::ESGetToken< DTMtime,
DTMtimeRcd
mTimeToken_
 
edm::ESGetToken< DTGeometry,
MuonGeometryRecord
muonGeomToken_
 
int nMinHitsPhi
 
bool readLegacyVDriftDB
 
const DTRecoConditionsvDriftMap_
 
edm::ESGetToken
< DTRecoConditions,
DTRecoConditionsVdriftRcd
vDriftToken_
 

Additional Inherited Members

- Public Types inherited from DQMEDAnalyzer
typedef dqm::reco::DQMStore DQMStore
 
typedef dqm::reco::MonitorElement MonitorElement
 
- Public Types inherited from edm::stream::EDProducer< edm::GlobalCache< DQMEDAnalyzerGlobalCache >, edm::EndRunProducer, edm::EndLuminosityBlockProducer, edm::Accumulator >
using CacheTypes = CacheContexts< T...>
 
using GlobalCache = typename CacheTypes::GlobalCache
 
using HasAbility = AbilityChecker< T...>
 
using InputProcessBlockCache = typename CacheTypes::InputProcessBlockCache
 
using LuminosityBlockCache = typename CacheTypes::LuminosityBlockCache
 
using LuminosityBlockContext = LuminosityBlockContextT< LuminosityBlockCache, RunCache, GlobalCache >
 
using LuminosityBlockSummaryCache = typename CacheTypes::LuminosityBlockSummaryCache
 
using RunCache = typename CacheTypes::RunCache
 
using RunContext = RunContextT< RunCache, GlobalCache >
 
using RunSummaryCache = typename CacheTypes::RunSummaryCache
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static void globalEndJob (DQMEDAnalyzerGlobalCache const *)
 
static void globalEndLuminosityBlockProduce (edm::LuminosityBlock &lumi, edm::EventSetup const &setup, LuminosityBlockContext const *context)
 
static void globalEndRunProduce (edm::Run &run, edm::EventSetup const &setup, RunContext const *context)
 
static std::unique_ptr
< DQMEDAnalyzerGlobalCache
initializeGlobalCache (edm::ParameterSet const &)
 
- Protected Member Functions inherited from DQMEDAnalyzer
uint64_t meId () const
 
- Protected Attributes inherited from DQMEDAnalyzer
edm::EDPutTokenT< DQMTokenlumiToken_
 
edm::EDPutTokenT< DQMTokenrunToken_
 
unsigned int streamId_
 

Detailed Description

Description:

Author
: Paolo Bellan, Antonio Branca $date : 23/09/2011 15:42:04 CET $

Modification:

Definition at line 48 of file DTRunConditionVar.h.

Constructor & Destructor Documentation

DTRunConditionVar::DTRunConditionVar ( const edm::ParameterSet pset)

Definition at line 42 of file DTRunConditionVar.cc.

References edm::BeginRun, DeDxTools::esConsumes(), mTimeToken_, readLegacyVDriftDB, and vDriftToken_.

43  : // Get the debug parameter for verbose output
44  debug(pSet.getUntrackedParameter<bool>("debug", false)),
45  nMinHitsPhi(pSet.getUntrackedParameter<int>("nMinHitsPhi")),
46  maxAnglePhiSegm(pSet.getUntrackedParameter<double>("maxAnglePhiSegm")),
47  dt4DSegmentsToken_(consumes<DTRecSegment4DCollection>(pSet.getParameter<InputTag>("recoSegments"))),
48  muonGeomToken_(esConsumes<edm::Transition::BeginRun>()),
49  readLegacyVDriftDB(pSet.getParameter<bool>("readLegacyVDriftDB")) {
50  if (readLegacyVDriftDB) {
52  } else {
54  }
55 }
edm::EDGetTokenT< DTRecSegment4DCollection > dt4DSegmentsToken_
edm::ESGetToken< DTRecoConditions, DTRecoConditionsVdriftRcd > vDriftToken_
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_
edm::ESGetToken< DTMtime, DTMtimeRcd > mTimeToken_
ESGetTokenH3DDVariant esConsumes(std::string const &Reccord, edm::ConsumesCollector &)
Definition: DeDxTools.cc:283
DTRunConditionVar::~DTRunConditionVar ( )
override

Definition at line 57 of file DTRunConditionVar.cc.

References LogTrace.

57  {
58  LogTrace("DTDQM|DTMonitorModule|DTRunConditionVar") << "DTRunConditionVar: destructor called";
59 
60  // free memory
61 }
#define LogTrace(id)

Member Function Documentation

void DTRunConditionVar::analyze ( const edm::Event event,
const edm::EventSetup eventSetup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 86 of file DTRunConditionVar.cc.

References chamberHistos, DTVelocityUnits::cm_per_ns, dt4DSegmentsToken_, DTChamberId, Exception, HcalObjRepresent::Fill(), DTRecoConditions::get(), DTMtime::get(), edm::EventSetup::getData(), LogTrace, maxAnglePhiSegm, mTimeMap_, mTimeToken_, nMinHitsPhi, Pi, DetId::rawId(), readLegacyVDriftDB, vDriftMap_, vDriftToken_, DTRecoConditions::version(), relval_steps::version, and xdir.

86  {
87  LogTrace("DTDQM|DTMonitorModule|DTRunConditionVar")
88  << "--- [DTRunConditionVar] Event analysed #Run: " << event.id().run() << " #Event: " << event.id().event()
89  << endl;
90 
91  // Get the map of vdrift from the setup
92  if (readLegacyVDriftDB) {
93  mTimeMap_ = &eventSetup.getData(mTimeToken_);
94  vDriftMap_ = nullptr;
95  } else {
96  vDriftMap_ = &eventSetup.getData(vDriftToken_);
97  mTimeMap_ = nullptr;
98  // Consistency check: no parametrization is implemented for the time being
99  int version = vDriftMap_->version();
100  if (version != 1) {
101  throw cms::Exception("Configuration") << "only version 1 is presently supported for VDriftDB";
102  }
103  }
104 
105  // Get the segment collection from the event
106  Handle<DTRecSegment4DCollection> all4DSegments;
107  event.getByToken(dt4DSegmentsToken_, all4DSegments);
108 
109  // Loop over the segments
110  for (DTRecSegment4DCollection::const_iterator segment = all4DSegments->begin(); segment != all4DSegments->end();
111  ++segment) {
112  // Get the chamber from the setup
113  DTChamberId DTid = (DTChamberId)segment->chamberId();
114  uint32_t indexCh = DTid.rawId();
115 
116  // Fill v-drift values
117  if ((*segment).hasPhi()) {
118  int nHitsPhi = (*segment).phiSegment()->degreesOfFreedom() + 2;
119  double xdir = (*segment).phiSegment()->localDirection().x();
120  double zdir = (*segment).phiSegment()->localDirection().z();
121 
122  double anglePhiSegm = fabs(atan(xdir / zdir)) * 180. / TMath::Pi();
123 
124  if (nHitsPhi >= nMinHitsPhi && anglePhiSegm <= maxAnglePhiSegm) {
125  double segmentVDrift = segment->phiSegment()->vDrift();
126 
127  DTSuperLayerId indexSLPhi1(DTid, 1);
128  DTSuperLayerId indexSLPhi2(DTid, 3);
129 
130  float vDriftPhi1(0.), vDriftPhi2(0.);
131  float ResPhi1(0.), ResPhi2(0.);
132  if (readLegacyVDriftDB) { // Legacy format
133  int status1 = mTimeMap_->get(indexSLPhi1, vDriftPhi1, ResPhi1, DTVelocityUnits::cm_per_ns);
134  int status2 = mTimeMap_->get(indexSLPhi2, vDriftPhi2, ResPhi2, DTVelocityUnits::cm_per_ns);
135 
136  if (status1 != 0 || status2 != 0) {
137  DTSuperLayerId sl = (status1 != 0) ? indexSLPhi1 : indexSLPhi2;
138  throw cms::Exception("DTRunConditionVarClient") << "Could not find vDrift entry in DB for" << sl << endl;
139  }
140  } else {
141  vDriftPhi1 = vDriftMap_->get(DTWireId(indexSLPhi1.rawId()));
142  vDriftPhi2 = vDriftMap_->get(DTWireId(indexSLPhi2.rawId()));
143  }
144 
145  float vDriftMed = (vDriftPhi1 + vDriftPhi2) / 2.;
146 
147  segmentVDrift = vDriftMed * (1. - segmentVDrift);
148 
149  double segmentT0 = segment->phiSegment()->t0();
150 
151  if (segment->phiSegment()->ist0Valid())
152  (chamberHistos[indexCh])["T0_FromSegm"]->Fill(segmentT0);
153  if (segmentVDrift != vDriftMed)
154  (chamberHistos[indexCh])["VDrift_FromSegm"]->Fill(segmentVDrift);
155  }
156  }
157 
158  } //end loop on segment
159 
160 } //end analyze
const double Pi
edm::EDGetTokenT< DTRecSegment4DCollection > dt4DSegmentsToken_
int version() const
Version numer specifying the structure of the payload. See .cc file for details.
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
edm::ESGetToken< DTRecoConditions, DTRecoConditionsVdriftRcd > vDriftToken_
#define LogTrace(id)
const DTMtime * mTimeMap_
bool getData(T &iHolder) const
Definition: EventSetup.h:128
C::const_iterator const_iterator
constant access iterator type
Definition: RangeMap.h:43
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
const DTRecoConditions * vDriftMap_
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
float get(const DTWireId &wireid, double *x=nullptr) const
Get the value correspoding to the given WireId, / using x[] as parameters of the parametrization whe...
int get(int wheelId, int stationId, int sectorId, int slId, float &mTime, float &mTrms, DTTimeUnits::type unit) const
Definition: DTMtime.cc:56
edm::ESGetToken< DTMtime, DTMtimeRcd > mTimeToken_
void DTRunConditionVar::bookChamberHistos ( DQMStore::IBooker ,
const DTChamberId dtCh,
std::string  histoType,
int  ,
float  ,
float   
)
private

Definition at line 162 of file DTRunConditionVar.cc.

References dqm::implementation::IBooker::book1D(), chamberHistos, LogTrace, DetId::rawId(), DTChamberId::sector(), dqm::implementation::NavigatorBase::setCurrentFolder(), DTChamberId::station(), relativeConstraints::station, and DTChamberId::wheel().

Referenced by bookHistograms().

163  {
164  int wh = dtCh.wheel();
165  int sc = dtCh.sector();
166  int st = dtCh.station();
167  stringstream wheel;
168  wheel << wh;
169  stringstream station;
170  station << st;
171  stringstream sector;
172  sector << sc;
173 
174  string bookingFolder = "DT/02-Segments/Wheel" + wheel.str() + "/Sector" + sector.str() + "/Station" + station.str();
175  string histoTag = "_W" + wheel.str() + "_Sec" + sector.str() + "_St" + station.str();
176 
177  ibooker.setCurrentFolder(bookingFolder);
178 
179  LogTrace("DTDQM|DTMonitorModule|DTRunConditionVar")
180  << "[DTRunConditionVar]: booking histos in " << bookingFolder << endl;
181 
182  string histoName = histoType + histoTag;
183  const string& histoLabel = histoType;
184 
185  (chamberHistos[dtCh.rawId()])[histoType] = ibooker.book1D(histoName, histoLabel, nbins, min, max);
186 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:57
#define LogTrace(id)
T min(T a, T b)
Definition: MathUtil.h:58
std::map< uint32_t, std::map< std::string, MonitorElement * > > chamberHistos
int sector() const
Definition: DTChamberId.h:49
int station() const
Return the station number.
Definition: DTChamberId.h:42
int wheel() const
Return the wheel number.
Definition: DTChamberId.h:39
void DTRunConditionVar::bookHistograms ( DQMStore::IBooker ibooker,
edm::Run const &  iRun,
edm::EventSetup const &   
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 63 of file DTRunConditionVar.cc.

References bookChamberHistos(), DTChamberId, LogTrace, and edm_modernize_messagelogger::stat.

65  {
66  LogTrace("DTDQM|DTMonitorModule|DTRunConditionVar") << "DTRunConditionVar: bookHistograms";
67 
68  for (int wheel = -2; wheel <= 2; wheel++) {
69  for (int sec = 1; sec <= 14; sec++) {
70  for (int stat = 1; stat <= 4; stat++) {
71  bookChamberHistos(ibooker, DTChamberId(wheel, stat, sec), "VDrift_FromSegm", 100, 0.0043, 0.0065);
72  bookChamberHistos(ibooker, DTChamberId(wheel, stat, sec), "T0_FromSegm", 100, -25., 25.);
73  }
74  }
75  }
76 
77  return;
78 }
#define LogTrace(id)
void bookChamberHistos(DQMStore::IBooker &, const DTChamberId &dtCh, std::string histoType, int, float, float)
void DTRunConditionVar::dqmBeginRun ( const edm::Run run,
const edm::EventSetup setup 
)
overridevirtual

Reimplemented from DQMEDAnalyzer.

Definition at line 80 of file DTRunConditionVar.cc.

References dtGeom, edm::EventSetup::getData(), and muonGeomToken_.

80  {
81  // Get the DT Geometry
82  dtGeom = &setup.getData(muonGeomToken_);
83  return;
84 }
bool getData(T &iHolder) const
Definition: EventSetup.h:128
edm::ESGetToken< DTGeometry, MuonGeometryRecord > muonGeomToken_
const DTGeometry * dtGeom

Member Data Documentation

std::map<uint32_t, std::map<std::string, MonitorElement*> > DTRunConditionVar::chamberHistos
private

Definition at line 82 of file DTRunConditionVar.h.

Referenced by analyze(), and bookChamberHistos().

bool DTRunConditionVar::debug
private
edm::EDGetTokenT<DTRecSegment4DCollection> DTRunConditionVar::dt4DSegmentsToken_
private

Definition at line 70 of file DTRunConditionVar.h.

Referenced by analyze().

const DTGeometry* DTRunConditionVar::dtGeom
private

Definition at line 73 of file DTRunConditionVar.h.

Referenced by dqmBeginRun().

double DTRunConditionVar::maxAnglePhiSegm
private

Definition at line 68 of file DTRunConditionVar.h.

Referenced by analyze().

const DTMtime* DTRunConditionVar::mTimeMap_
private

Definition at line 76 of file DTRunConditionVar.h.

Referenced by analyze().

edm::ESGetToken<DTMtime, DTMtimeRcd> DTRunConditionVar::mTimeToken_
private

Definition at line 75 of file DTRunConditionVar.h.

Referenced by analyze(), and DTRunConditionVar().

edm::ESGetToken<DTGeometry, MuonGeometryRecord> DTRunConditionVar::muonGeomToken_
private

Definition at line 72 of file DTRunConditionVar.h.

Referenced by dqmBeginRun().

int DTRunConditionVar::nMinHitsPhi
private

Definition at line 67 of file DTRunConditionVar.h.

Referenced by analyze().

bool DTRunConditionVar::readLegacyVDriftDB
private

Definition at line 80 of file DTRunConditionVar.h.

Referenced by analyze(), and DTRunConditionVar().

const DTRecoConditions* DTRunConditionVar::vDriftMap_
private

Definition at line 79 of file DTRunConditionVar.h.

Referenced by analyze().

edm::ESGetToken<DTRecoConditions, DTRecoConditionsVdriftRcd> DTRunConditionVar::vDriftToken_
private

Definition at line 78 of file DTRunConditionVar.h.

Referenced by analyze(), and DTRunConditionVar().