|
|
#include <DTChamberEfficiency.h>
Description:
This class provides the histograms for the calculation of the efficiency of muons reconstruction in the DTs. It is applicable both in presence or absence of a magnetic field. Histos are 2D Sector vs Chamber plots for each wheel
- Author
- : Mario Pelliccioni - INFN Torino pelli.nosp@m.cci@.nosp@m.cern..nosp@m.ch $date : 05/12/2008 16:51:04 CET $
Modification:
Definition at line 49 of file DTChamberEfficiency.h.
◆ DTChamberEfficiency()
◆ ~DTChamberEfficiency()
DTChamberEfficiency::~DTChamberEfficiency |
( |
| ) |
|
|
override |
◆ analyze()
Reimplemented from DQMEDAnalyzer.
Definition at line 119 of file DTChamberEfficiency.cc.
120 LogTrace(
"DTDQM|DTMonitorModule|DTChamberEfficiency")
121 <<
"--- [DTChamberEfficiency] Event analysed #Run: " <<
event.id().run() <<
" #Event: " <<
event.id().event()
139 const int recHitsize = (
int)trans_track.recHitsSize();
145 LogTrace(
"DTDQM|DTMonitorModule|DTChamberEfficiency") <<
"--- New track" << endl;
146 set<DTChamberId> chAlrUsed;
148 DetId rHitid = (*rHit)->geographicalId();
152 if (chAlrUsed.find(wId) != chAlrUsed.end())
154 chAlrUsed.insert(wId);
155 LogTrace(
"DTDQM|DTMonitorModule|DTChamberEfficiency") <<
" " << wId << endl;
160 DetId id = trans_track.track().innerDetId();
167 vector<const DetLayer*> layer_list =
169 vector<const DetLayer*> layer_list_2 =
172 layer_list.insert(layer_list.end(), layer_list_2.begin(), layer_list_2.end());
174 set<DTChamberId> alreadyCheckedCh;
177 for (
int i = 0;
i < (
int)layer_list.size();
i++) {
191 const DetId idDetLay = detWithState.first->geographicalId();
200 if (alreadyCheckedCh.find(DTid) != alreadyCheckedCh.end())
202 alreadyCheckedCh.insert(DTid);
207 LogTrace(
"DTDQM|DTMonitorModule|DTChamberEfficiency")
208 <<
" chamber: " << DTid <<
" has: " << detMeasurements_initial.size() <<
" comp. meas." << endl;
217 if (!detMeasurements_initial.empty())
219 if (!detMeasurements.empty())
225 LogInfo(
"DTDQM|DTMonitorModule|DTChamberEfficiency")
226 <<
"[DTChamberEfficiency] Collection: " <<
theTracksLabel_ <<
" is not valid!" << endl;
References alongMomentum, debug, DetId::det(), MuonSubdetId::DT, edmPickEvents::event, HcalObjRepresent::Fill(), TrajectoryStateOnSurface::freeState(), combine::histos, mps_fire::i, reco::Track::innerDetId(), reco::TransientTrack::innermostMeasurementState(), createfilelist::int, TrajectoryStateOnSurface::isValid(), LogTrace, HLT_FULL_cff::magneticField, DetId::Muon, oppositeToMomentum, TrackCandidateProducer_cfi::propagator, DetId::rawId(), reco::TransientTrack::recHitsBegin(), reco::TransientTrack::recHitsEnd(), reco::TransientTrack::recHitsSize(), DTChamberId::sector(), DTChamberId::station(), DetId::subdetId(), TrajectoryStateOnSurface::surface(), dtChamberEfficiency_cfi::theMinNrec, reco::TransientTrack::track(), HLT_FULL_cff::track, tracks, and DTChamberId::wheel().
◆ bookHistograms()
Implements DQMEDAnalyzer.
Definition at line 92 of file DTChamberEfficiency.cc.
93 LogTrace(
"DTDQM|DTMonitorModule|DTChamberEfficiency") <<
"DTChamberEfficiency: booking histos";
99 vector<MonitorElement*>
histos;
101 stringstream wheel_str;
105 "hCountSectVsChamb_All_W" + wheel_str.str(),
"Countings for wheel " + wheel_str.str(), 14, 1., 15., 4, 1., 5.));
108 "hCountSectVsChamb_Qual_W" + wheel_str.str(),
"Countings for wheel " + wheel_str.str(), 14, 1., 15., 4, 1., 5.));
111 "hExtrapSectVsChamb_W" + wheel_str.str(),
"Extrapolations for wheel " + wheel_str.str(), 14, 1., 15., 4, 1., 5.));
References dqm::implementation::IBooker::book2D(), combine::histos, LogTrace, dqm::implementation::NavigatorBase::setCurrentFolder(), and makeMuonMisalignmentScenario::wheel.
◆ chamberSelection()
◆ compatibleLayers()
◆ dqmBeginRun()
◆ propagator()
◆ segQualityCut()
Definition at line 243 of file DTChamberEfficiency.cc.
246 for (MeasurementContainer::const_iterator mescont_Itr = seg_list.begin(); mescont_Itr != seg_list.end();
253 for (TransientTrackingRecHit::ConstRecHitContainer::const_iterator recList_Itr = recHit_list.begin();
254 recList_Itr != recHit_list.end();
256 nhit_seg += (
int)(*recList_Itr)->transientHits().size();
261 if (tmpId.
station() < 4 && nhit_seg >= 12)
262 result.push_back(*mescont_Itr);
263 if (tmpId.
station() == 4 && nhit_seg >= 8)
264 result.push_back(*mescont_Itr);
References createfilelist::int, mps_fire::result, and DTChamberId::station().
◆ debug
bool DTChamberEfficiency::debug |
|
private |
◆ histosPerW
std::vector<std::vector<MonitorElement*> > DTChamberEfficiency::histosPerW |
|
private |
◆ labelRPCRecHits
◆ thecscSegments
◆ thedt4DSegments
◆ theEstimator
◆ theMaxChi2
double DTChamberEfficiency::theMaxChi2 |
|
private |
◆ theMeasurementExtractor
◆ theMinNrec
int DTChamberEfficiency::theMinNrec |
|
private |
◆ theNavigationType
std::string DTChamberEfficiency::theNavigationType |
|
private |
◆ theNSigma
double DTChamberEfficiency::theNSigma |
|
private |
◆ theService
◆ theTracksLabel_
◆ theTracksToken_
bool chamberSelection(const DetId &idDetLay, reco::TransientTrack &trans_track) const
Chi2MeasurementEstimator * theEstimator
constexpr Detector det() const
get the detector field from this detid
virtual void setCurrentFolder(std::string const &fullpath)
Log< level::Info, false > LogInfo
edm::InputTag thedt4DSegments
std::vector< TrajectoryMeasurement > MeasurementContainer
void setEvent(const edm::Event &)
set event
FreeTrajectoryState const * freeState(bool withErrors=true) const
size_t recHitsSize() const
number of RecHits
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
MuonDetLayerMeasurements * theMeasurementExtractor
const uint32_t *__restrict__ const HitContainer *__restrict__ TkSoA *__restrict__ tracks
std::vector< ConstRecHitPointer > ConstRecHitContainer
TrackingRecHitRef recHit(size_t i) const
get n-th recHit
MuonServiceProxy * theService
edm::ESHandle< Propagator > propagator() const
TrajectoryStateOnSurface propagate(STA const &state, SUR const &surface) const
std::pair< const GeomDet *, TrajectoryStateOnSurface > DetWithState
Log< level::Error, false > LogError
std::string theNavigationType
std::vector< const DetLayer * > compatibleLayers(const DetLayer &detLayer, Args &&... args) const
Returns all layers compatible.
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
edm::InputTag labelRPCRecHits
constexpr uint32_t rawId() const
get the raw id
Log< level::Info, true > LogVerbatim
MonitorElement * book2D(TString const &name, TString const &title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, FUNC onbooking=NOOP())
edm::InputTag theTracksLabel_
T getParameter(std::string const &) const
MeasurementContainer measurements(const DetLayer *layer, const GeomDet *det, const TrajectoryStateOnSurface &stateOnDet, const MeasurementEstimator &est, const edm::Event &iEvent)
edm::EDGetTokenT< reco::TrackCollection > theTracksToken_
MeasurementContainer segQualityCut(const MeasurementContainer &seg_list) const
int wheel() const
Return the wheel number.
std::vector< const DetLayer * > compatibleLayers(const NavigationSchool &navigationSchool, const DetLayer *initialLayer, const FreeTrajectoryState &fts, PropagationDirection propDir)
int station() const
Return the station number.
edm::InputTag thecscSegments
std::vector< std::vector< MonitorElement * > > histosPerW