|
|
|
| AlignmentMonitorMuonVsCurvature (const edm::ParameterSet &cfg, edm::ConsumesCollector iC) |
|
void | book () override |
| Book or retrieve histograms; MUST be reimplemented. More...
|
|
void | event (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks) override |
| Called for each event (by "run()"): may be reimplemented. More...
|
|
void | processMuonResidualsFromTrack (MuonResidualsFromTrack &mrft, const Trajectory *traj=nullptr) |
|
| ~AlignmentMonitorMuonVsCurvature () override |
|
virtual void | afterAlignment () |
|
| AlignmentMonitorBase (const AlignmentMonitorBase &)=delete |
|
| AlignmentMonitorBase (const edm::ParameterSet &cfg, const edm::ConsumesCollector &iC, std::string name) |
| Constructor. More...
|
|
void | beginOfJob (AlignableTracker *pTracker, AlignableMuon *pMuon, AlignmentParameterStore *pStore) |
| Called at beginning of job: don't reimplement. More...
|
|
void | duringLoop (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks) |
| Called for each event: don't reimplement. More...
|
|
void | endOfJob () |
| Called at end of processing: don't implement. More...
|
|
void | endOfLoop () |
| Called at end of loop: don't reimplement. More...
|
|
const AlignmentMonitorBase & | operator= (const AlignmentMonitorBase &)=delete |
|
void | startingNewLoop () |
| Called at beginning of loop: don't reimplement. More...
|
|
virtual | ~AlignmentMonitorBase () |
| Destructor. More...
|
|
|
typedef std::pair< const Trajectory *, const reco::Track * > | ConstTrajTrackPair |
|
typedef std::vector< ConstTrajTrackPair > | ConstTrajTrackPairCollection |
|
TH1F * | book1D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX) |
|
TH2F * | book2D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY) |
|
TProfile * | bookProfile (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY=1, double lowY=0., double highY=0., const char *option="s") |
|
TFileDirectory * | directory (std::string dir) |
|
int | iteration () |
|
AlignableMuon * | pMuon () |
|
AlignableNavigator * | pNavigator () |
|
AlignmentParameterStore * | pStore () |
|
AlignableTracker * | pTracker () |
|
const edm::InputTag | m_beamSpotTag |
|
◆ anonymous enum
◆ AlignmentMonitorMuonVsCurvature()
◆ ~AlignmentMonitorMuonVsCurvature()
AlignmentMonitorMuonVsCurvature::~AlignmentMonitorMuonVsCurvature |
( |
| ) |
|
|
inlineoverride |
◆ book()
void AlignmentMonitorMuonVsCurvature::book |
( |
| ) |
|
|
overridevirtual |
Book or retrieve histograms; MUST be reimplemented.
Implements AlignmentMonitorBase.
Definition at line 107 of file AlignmentMonitorMuonVsCurvature.cc.
109 std::string wheelname[5] = {
"wheelm2_",
"wheelm1_",
"wheelz_",
"wheelp1_",
"wheelp2_"};
113 for (
int sector = 1; sector <= 14; sector++) {
114 if (
station != 4 && sector > 12)
117 char stationname[20];
118 sprintf(stationname,
"st%d_",
station);
121 sprintf(sectorname,
"sector%02d_", sector);
123 for (
int component = 0; component <
kNumComponents; component++) {
124 std::stringstream th2f_name, tprofile_name;
125 th2f_name <<
"th2f_" << wheelname[
wheel + 2] << stationname << sectorname;
126 tprofile_name <<
"tprofile_" << wheelname[
wheel + 2] << stationname << sectorname;
128 double yminmax = 50., xminmax = 0.05;
133 th2f_name <<
"deltax";
134 tprofile_name <<
"deltax";
136 th2f_name <<
"deltadxdz";
137 tprofile_name <<
"deltadxdz";
141 book2D(
"/iterN/", th2f_name.str(),
"", 30, -xminmax, xminmax, ynbins, -yminmax, yminmax);
143 bookProfile(
"/iterN/", tprofile_name.str(),
"", 30, -xminmax, xminmax);
148 std::string stname[8] = {
"Ep_S1_",
"Ep_S2_",
"Ep_S3_",
"Ep_S4_",
"Em_S1_",
"Em_S2_",
"Em_S3_",
"Em_S4_"};
154 if (st > 1 &&
ring > 2)
160 sprintf(ringname,
"R%d_",
ring);
163 sprintf(chname,
"C%02d_",
chamber);
165 for (
int component = 0; component <
kNumComponents; component++) {
166 std::stringstream componentname;
167 double yminmax = 50., xminmax = 0.05;
173 componentname <<
"deltax";
175 componentname <<
"deltadxdz";
178 std::stringstream th2f_name, tprofile_name;
179 th2f_name <<
"th2f_" << stname[
station] << ringname << chname << componentname.str();
180 tprofile_name <<
"tprofile_" << stname[
station] << ringname << chname << componentname.str();
183 book2D(
"/iterN/", th2f_name.str(),
"", 30, -xminmax, xminmax, 100, -yminmax, yminmax);
185 bookProfile(
"/iterN/", tprofile_name.str(),
"", 30, -xminmax, xminmax);
191 book1D(
"/iterN/",
"trackerRedChi2Diff",
"Fit-minus-refit tracker reduced chi^2", 100, -5., 5.);
References AlignmentMonitorBase::book1D(), AlignmentMonitorBase::book2D(), AlignmentMonitorBase::bookProfile(), relativeConstraints::chamber, kDeltaDxDz, kDeltaX, kNumComponents, m_doCSC, m_doDT, m_minTrackPt, relativeConstraints::ring, relativeConstraints::station, AlCaHLTBitMon_QueryRunRegistry::string, th1f_trackerRedChi2, th1f_trackerRedChi2Diff, th2f_st_ring_chamber, th2f_wheel_st_sector, tprofile_st_ring_chamber, tprofile_wheel_st_sector, and makeMuonMisalignmentScenario::wheel.
◆ event()
Called for each event (by "run()"): may be reimplemented.
Reimplemented from AlignmentMonitorBase.
Definition at line 194 of file AlignmentMonitorMuonVsCurvature.cc.
207 for (ConstTrajTrackPairCollection::const_iterator trajtrack = trajtracks.begin(); trajtrack != trajtracks.end();
223 if (!(
muon->isTrackerMuon() &&
muon->innerTrack().isNonnull()))
References pwdgSkimBPark_cfi::beamSpot, edm::EventSetup::getData(), iEvent, edm::InputTag::label(), AlignmentMonitorBase::m_beamSpotTag, m_esTokenDetId, m_esTokenGBTGeom, m_esTokenMF, m_esTokenProp, m_maxDxy, m_minTrackP, m_minTrackPt, m_muonCollectionTag, HLT_FULL_cff::magneticField, HLT_FULL_cff::muon, PDWG_BPHSkim_cff::muons, AlignmentMonitorBase::pNavigator(), processMuonResidualsFromTrack(), DiDispStaMuonMonitor_cfi::pt, and HLT_FULL_cff::track.
Referenced by Types.EventID::cppID().
◆ processMuonResidualsFromTrack()
Definition at line 235 of file AlignmentMonitorMuonVsCurvature.cc.
243 std::vector<DetId> chamberIds = mrft.
chamberIds();
244 for (
unsigned ch = 0; ch < chamberIds.size(); ch++)
261 for (std::vector<DetId>::const_iterator chamberId = chamberIds.begin(); chamberId != chamberIds.end(); ++chamberId) {
270 int wheel = dtid.wheel() + 2;
271 int station = dtid.station() - 1;
272 int sector = dtid.sector() - 1;
274 double resid_x = 10. * dt13->global_residual();
275 double resid_dxdz = 1000. * dt13->global_resslope();
277 if (fabs(resid_x) < 100. && fabs(resid_dxdz) < 100.) {
291 int station = 4 * cscid.endcap() + cscid.station() - 5;
292 int ring = cscid.ring() - 1;
293 if (cscid.station() == 1 && cscid.ring() == 4)
295 int chamber = cscid.chamber() - 1;
297 double resid_x = 10. *
csc->global_residual();
298 double resid_dxdz = 1000. *
csc->global_resslope();
300 if (fabs(resid_x) < 100. && fabs(resid_dxdz) < 100.) {
References relativeConstraints::chamber, MuonResidualsFromTrack::chamberIds(), MuonResidualsFromTrack::chamberResidual(), reco::TrackBase::charge(), MuonResidualsFromTrack::contains_TIDTEC(), MuonSubdetId::CSC, MuonSubdetId::DT, MuonResidualsFromTrack::getTrack(), MuonChamberResidual::kCSC, kDeltaDxDz, kDeltaX, MuonChamberResidual::kDT13, m_allowTIDTEC, m_doCSC, m_doDT, m_maxTrackerRedChi2, m_minCSCHits, m_minDT13Hits, m_minNCrossedChambers, m_minTrackerHits, DetId::Muon, MuonResidualsFromTrack::normalizedChi2(), reco::TrackBase::normalizedChi2(), reco::TrackBase::pt(), reco::TrackBase::pz(), relativeConstraints::ring, relativeConstraints::station, th1f_trackerRedChi2, th1f_trackerRedChi2Diff, th2f_st_ring_chamber, th2f_wheel_st_sector, tprofile_st_ring_chamber, tprofile_wheel_st_sector, MuonResidualsFromTrack::trackerNumHits(), MuonResidualsFromTrack::trackerRedChi2(), and makeMuonMisalignmentScenario::wheel.
Referenced by event().
◆ m_allowTIDTEC
bool AlignmentMonitorMuonVsCurvature::m_allowTIDTEC |
|
private |
◆ m_doCSC
bool AlignmentMonitorMuonVsCurvature::m_doCSC |
|
private |
◆ m_doDT
bool AlignmentMonitorMuonVsCurvature::m_doDT |
|
private |
◆ m_esTokenDetId
◆ m_esTokenGBTGeom
◆ m_esTokenMF
◆ m_esTokenProp
◆ m_layer
int AlignmentMonitorMuonVsCurvature::m_layer |
|
private |
◆ m_maxDxy
double AlignmentMonitorMuonVsCurvature::m_maxDxy |
|
private |
◆ m_maxTrackerRedChi2
double AlignmentMonitorMuonVsCurvature::m_maxTrackerRedChi2 |
|
private |
◆ m_minCSCHits
int AlignmentMonitorMuonVsCurvature::m_minCSCHits |
|
private |
◆ m_minDT13Hits
int AlignmentMonitorMuonVsCurvature::m_minDT13Hits |
|
private |
◆ m_minDT2Hits
int AlignmentMonitorMuonVsCurvature::m_minDT2Hits |
|
private |
◆ m_minNCrossedChambers
bool AlignmentMonitorMuonVsCurvature::m_minNCrossedChambers |
|
private |
◆ m_minTrackerHits
int AlignmentMonitorMuonVsCurvature::m_minTrackerHits |
|
private |
◆ m_minTrackP
double AlignmentMonitorMuonVsCurvature::m_minTrackP |
|
private |
◆ m_minTrackPt
double AlignmentMonitorMuonVsCurvature::m_minTrackPt |
|
private |
◆ m_muonCollectionTag
edm::InputTag AlignmentMonitorMuonVsCurvature::m_muonCollectionTag |
|
private |
◆ m_propagator
std::string AlignmentMonitorMuonVsCurvature::m_propagator |
|
private |
◆ th1f_trackerRedChi2
TH1F* AlignmentMonitorMuonVsCurvature::th1f_trackerRedChi2 |
|
private |
◆ th1f_trackerRedChi2Diff
TH1F* AlignmentMonitorMuonVsCurvature::th1f_trackerRedChi2Diff |
|
private |
◆ th2f_st_ring_chamber
TH2F* AlignmentMonitorMuonVsCurvature::th2f_st_ring_chamber[8][3][36][kNumComponents] |
|
private |
◆ th2f_wheel_st_sector
TH2F* AlignmentMonitorMuonVsCurvature::th2f_wheel_st_sector[5][4][14][kNumComponents] |
|
private |
◆ tprofile_st_ring_chamber
TProfile* AlignmentMonitorMuonVsCurvature::tprofile_st_ring_chamber[8][3][36][kNumComponents] |
|
private |
◆ tprofile_wheel_st_sector
TProfile* AlignmentMonitorMuonVsCurvature::tprofile_wheel_st_sector[5][4][14][kNumComponents] |
|
private |
double trackerRedChi2() const
TProfile * tprofile_wheel_st_sector[5][4][14][kNumComponents]
TH1F * th1f_trackerRedChi2Diff
TH2F * th2f_st_ring_chamber[8][3][36][kNumComponents]
MuonChamberResidual * chamberResidual(DetId chamberId, int type)
int trackerNumHits() const
TH2F * th2f_wheel_st_sector[5][4][14][kNumComponents]
TH2F * book2D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
AlignableNavigator * pNavigator()
double pt() const
track transverse momentum
const edm::ESGetToken< MagneticField, IdealMagneticFieldRecord > m_esTokenMF
double m_maxTrackerRedChi2
TH1F * th1f_trackerRedChi2
const reco::Track * getTrack()
edm::InputTag m_muonCollectionTag
const std::vector< DetId > chamberIds() const
int charge() const
track electric charge
double normalizedChi2() const
void processMuonResidualsFromTrack(MuonResidualsFromTrack &mrft, const Trajectory *traj=nullptr)
TProfile * bookProfile(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY=1, double lowY=0., double highY=0., const char *option="s")
const edm::ESGetToken< GlobalTrackingGeometry, GlobalTrackingGeometryRecord > m_esTokenGBTGeom
bool contains_TIDTEC() const
const edm::InputTag m_beamSpotTag
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
bool getData(T &iHolder) const
const edm::ESGetToken< DetIdAssociator, DetIdAssociatorRecord > m_esTokenDetId
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
TProfile * tprofile_st_ring_chamber[8][3][36][kNumComponents]
const edm::ESGetToken< Propagator, TrackingComponentsRecord > m_esTokenProp
double pz() const
z coordinate of momentum vector
bool m_minNCrossedChambers
AlignmentMonitorBase(const edm::ParameterSet &cfg, const edm::ConsumesCollector &iC, std::string name)
Constructor.