86 , m_muonCollectionTag(cfg.getParameter<edm::
InputTag>(
"muonCollectionTag"))
87 , m_minTrackPt(cfg.getParameter<double>(
"minTrackPt"))
88 , m_minTrackP(cfg.getParameter<double>(
"minTrackP"))
89 , m_minTrackerHits(cfg.getParameter<int>(
"minTrackerHits"))
90 , m_maxTrackerRedChi2(cfg.getParameter<double>(
"maxTrackerRedChi2"))
91 , m_allowTIDTEC(cfg.getParameter<bool>(
"allowTIDTEC"))
92 , m_minNCrossedChambers(cfg.getParameter<int>(
"minNCrossedChambers"))
93 , m_maxDxy(cfg.getParameter<double>(
"maxDxy"))
94 , m_minDT13Hits(cfg.getParameter<int>(
"minDT13Hits"))
95 , m_minDT2Hits(cfg.getParameter<int>(
"minDT2Hits"))
96 , m_minCSCHits(cfg.getParameter<int>(
"minCSCHits"))
97 , m_layer(cfg.getParameter<int>(
"layer"))
98 , m_propagator(cfg.getParameter<std::
string>(
"propagator"))
99 , m_doDT(cfg.getParameter<bool>(
"doDT"))
100 , m_doCSC(cfg.getParameter<bool>(
"doCSC"))
107 std::string wheelname[5] = {
"wheelm2_",
"wheelm1_",
"wheelz_",
"wheelp1_",
"wheelp2_"};
109 for (
int wheel = -2; wheel <=2 ; wheel++)
111 for (
int sector = 1; sector <= 14; sector++)
113 if (
station != 4 && sector > 12)
continue;
115 char stationname[20];
116 sprintf(stationname,
"st%d_",
station);
119 sprintf(sectorname,
"sector%02d_", sector);
123 std::stringstream th2f_name, tprofile_name;
124 th2f_name <<
"th2f_" << wheelname[wheel+2] <<stationname<< sectorname;
125 tprofile_name <<
"tprofile_" << wheelname[wheel+2] <<stationname<< sectorname;
127 double yminmax = 50., xminmax = 0.05;
131 th2f_name <<
"deltax";
132 tprofile_name <<
"deltax";
135 th2f_name <<
"deltadxdz";
136 tprofile_name <<
"deltadxdz";
140 book2D(
"/iterN/", th2f_name.str().c_str(),
"", 30, -xminmax, xminmax, ynbins, -yminmax, yminmax);
142 bookProfile(
"/iterN/", tprofile_name.str().c_str(),
"", 30, -xminmax, xminmax);
147 std::string stname[8] = {
"Ep_S1_",
"Ep_S2_",
"Ep_S3_",
"Ep_S4_",
"Em_S1_",
"Em_S2_",
"Em_S3_",
"Em_S4_"};
151 for (
int chamber = 1; chamber <= 36; chamber++)
154 if (st > 1 &&
ring > 2)
continue;
155 if (st > 1 &&
ring == 1 && chamber > 18)
continue;
158 sprintf(ringname,
"R%d_",
ring);
161 sprintf(chname,
"C%02d_", chamber);
165 std::stringstream componentname;
166 double yminmax = 50., xminmax = 0.05;
168 if (
ring == 1) xminmax *= 0.5;
170 componentname <<
"deltax";
173 componentname <<
"deltadxdz";
176 std::stringstream th2f_name, tprofile_name;
177 th2f_name <<
"th2f_" << stname[
station] << ringname << chname << componentname.str();
178 tprofile_name <<
"tprofile_" << stname[
station] << ringname << chname << componentname.str();
181 book2D(
"/iterN/", th2f_name.str().c_str(),
"", 30, -xminmax, xminmax, 100, -yminmax, yminmax);
183 bookProfile(
"/iterN/", tprofile_name.str().c_str(),
"", 30, -xminmax, xminmax);
211 for (ConstTrajTrackPairCollection::const_iterator trajtrack = trajtracks.begin(); trajtrack != trajtracks.end(); ++trajtrack)
228 for (reco::MuonCollection::const_iterator
muon = muons->begin();
muon != muons->end(); ++
muon)
230 if ( !(
muon->isTrackerMuon() &&
muon->innerTrack().isNonnull() ) )
continue;
248 std::vector<DetId> chamberIds = mrft.
chamberIds();
249 for (
unsigned ch=0; ch < chamberIds.size(); ch++)
if (chamberIds[ch].det() ==
DetId::Muon) nMuChambers++;
261 for (std::vector<DetId>::const_iterator chamberId = chamberIds.begin(); chamberId != chamberIds.end(); ++chamberId)
272 int wheel = dtid.wheel() + 2;
273 int station = dtid.station() -1;
274 int sector = dtid.sector() - 1;
276 double resid_x = 10. * dt13->global_residual();
277 double resid_dxdz = 1000. * dt13->global_resslope();
279 if (fabs(resid_x) < 100. && fabs(resid_dxdz) < 100.)
296 int station = 4*cscid.endcap() + cscid.station() - 5;
297 int ring = cscid.ring() - 1;
298 if (cscid.station()==1 && cscid.ring()==4) ring = 0;
299 int chamber = cscid.chamber() - 1;
301 double resid_x = 10. * csc->global_residual();
302 double resid_dxdz = 1000. * csc->global_resslope();
304 if (fabs(resid_x) < 100. && fabs(resid_dxdz) < 100.)
double p() const
momentum vector magnitude
void afterAlignment(const edm::EventSetup &iSetup) override
AlignableNavigator * pNavigator()
bool m_minNCrossedChambers
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
TH2F * book2D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
double m_maxTrackerRedChi2
TH2F * th2f_st_ring_chamber[8][3][36][kNumComponents]
int trackerNumHits() const
TProfile * tprofile_st_ring_chamber[8][3][36][kNumComponents]
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")
TH1F * th1f_trackerRedChi2Diff
AlignmentMonitorMuonVsCurvature(const edm::ParameterSet &cfg)
const std::vector< DetId > chamberIds() const
void event(const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks) override
Called for each event (by "run()"): may be reimplemented.
double pt() const
track transverse momentum
const reco::Track * getTrack()
virtual ~AlignmentMonitorMuonVsCurvature()
void book() override
Book or retrieve histograms; MUST be reimplemented.
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
const edm::InputTag m_beamSpotTag
TProfile * tprofile_wheel_st_sector[5][4][14][kNumComponents]
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
double pz() const
z coordinate of momentum vector
double normalizedChi2() const
double trackerRedChi2() const
TH1F * th1f_trackerRedChi2
void processMuonResidualsFromTrack(MuonResidualsFromTrack &mrft, const Trajectory *traj=NULL)
int charge() const
track electric charge
#define DEFINE_EDM_PLUGIN(factory, type, name)
TH2F * th2f_wheel_st_sector[5][4][14][kNumComponents]
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
edm::InputTag m_muonCollectionTag
bool contains_TIDTEC() const
MuonChamberResidual * chamberResidual(DetId chamberId, int type)