|
|
Go to the documentation of this file.
124 t =
id.iChamberType();
147 m_muonCollectionTag(
cfg.getParameter<
edm::
InputTag>(
"muonCollectionTag")),
148 m_minTrackPt(
cfg.getParameter<double>(
"minTrackPt")),
149 m_maxTrackPt(
cfg.getParameter<double>(
"maxTrackPt")),
150 m_minTrackP(
cfg.getParameter<double>(
"minTrackP")),
151 m_maxTrackP(
cfg.getParameter<double>(
"maxTrackP")),
152 m_maxDxy(
cfg.getParameter<double>(
"maxDxy")),
153 m_minTrackerHits(
cfg.getParameter<
int>(
"minTrackerHits")),
154 m_maxTrackerRedChi2(
cfg.getParameter<double>(
"maxTrackerRedChi2")),
155 m_allowTIDTEC(
cfg.getParameter<
bool>(
"allowTIDTEC")),
156 m_minNCrossedChambers(
cfg.getParameter<
int>(
"minNCrossedChambers")),
157 m_minDT13Hits(
cfg.getParameter<
int>(
"minDT13Hits")),
158 m_minDT2Hits(
cfg.getParameter<
int>(
"minDT2Hits")),
159 m_minCSCHits(
cfg.getParameter<
int>(
"minCSCHits")),
160 m_doDT(
cfg.getParameter<
bool>(
"doDT")),
161 m_doCSC(
cfg.getParameter<
bool>(
"doCSC")),
162 m_useStubPosition(
cfg.getParameter<
bool>(
"useStubPosition")),
163 m_createNtuple(
cfg.getParameter<
bool>(
"createNtuple")) {
166 m_cscnt = fs->
make<TTree>(
"mualNtuple",
"mualNtuple");
177 sprintf(
tmp,
"%02d",
num);
182 std::string wheel_label[5] = {
"A",
"B",
"C",
"D",
"E"};
193 for (
int sector = 1; sector <= 14; sector++) {
196 "DTvsz_st" + s_station +
"sec" +
num02d(sector),
this, 60, -660., 660., do_y,
false);
204 "DTvsphi_st" + s_station +
"wh" + wheel_label[
wheel + 2],
this, 180, -
M_PI,
M_PI, do_y,
false);
217 "CSCvsr_me" + s_endcap + s_station +
"ch" +
num02d(
chamber),
this, 60, 100., 700.,
false,
false);
230 M_PI * (2. - 5. / 180.),
273 for (ConstTrajTrackPairCollection::const_iterator trajtrack = trajtracks.begin(); trajtrack != trajtracks.end();
296 if (!(
muon->isTrackerMuon() &&
muon->innerTrack().isNonnull()))
325 std::vector<DetId> chamberIds = mrft.
chamberIds();
326 for (
unsigned ch = 0; ch < chamberIds.size(); ch++)
338 for (std::vector<DetId>::const_iterator chamberId = chamberIds.begin(); chamberId != chamberIds.end(); ++chamberId) {
363 double phi = atan2(gpos.
y(), gpos.
x());
366 assert(1 <=
id.sector() &&
id.sector() <= 14);
384 phi = atan2(gpos.
y(), gpos.
x());
387 assert(1 <=
id.sector() &&
id.sector() <= 14);
408 double phi = atan2(gpos.
y(), gpos.
x());
411 assert(1 <=
id.sector() &&
id.sector() <= 14);
424 int ring =
id.ring();
433 double residual =
csc->global_residual();
434 double resslope =
csc->global_resslope();
440 gpos =
csc->global_stubpos();
442 gpos =
csc->global_trackpos();
443 double phi = atan2(gpos.
y(), gpos.
x());
449 int chamber =
id.chamber() - 1;
485 std::cout <<
"AlignmentMonitorMuonSystemMap1D counters:" << std::endl;
500 : m_name(
name), m_bins(
bins), m_xy(
xy), m_1d(add_1d) {
502 std::stringstream name_x_2d, name_y_2d, name_dxdz_2d, name_dydz_2d;
503 name_x_2d <<
m_name <<
"_x_2d";
504 name_y_2d <<
m_name <<
"_y_2d";
505 name_dxdz_2d <<
m_name <<
"_dxdz_2d";
506 name_dydz_2d <<
m_name <<
"_dydz_2d";
508 const int nbins = 200;
509 const double window = 100.;
520 std::stringstream name_x_1d;
521 name_x_1d <<
m_name <<
"_x_1d";
527 if (m_1d &&
chi2 > 0.) {
529 double residual = residx * 1000.;
530 m_x_1d->Fill(residual);
535 char charge,
double abscissa,
double residx,
double chi2,
int dof) {
537 double residual = residx * 10.;
539 m_x_2d->Fill(abscissa, residual);
544 char charge,
double abscissa,
double residy,
double chi2,
int dof) {
545 if (m_xy &&
chi2 > 0.) {
546 double residual = residy * 10.;
548 m_y_2d->Fill(abscissa, residual);
553 char charge,
double abscissa,
double slopex,
double chi2,
int dof) {
555 double residual = slopex * 1000.;
557 m_dxdz_2d->Fill(abscissa, residual);
562 char charge,
double abscissa,
double slopey,
double chi2,
int dof) {
563 if (m_xy &&
chi2 > 0.) {
564 double residual = slopey * 1000.;
566 m_dydz_2d->Fill(abscissa, residual);
std::vector< MuonSystemMapPlot1D * > m_plots
int m_minNCrossedChambers
MuonSystemMapPlot1D(std::string name, AlignmentMonitorMuonSystemMap1D *module, int bins, double low, double high, bool xy, bool add_1d)
long m_counter_cscnumhits
MuonChamberResidual * chamberResidual(DetId chamberId, int type)
void afterAlignment() override
int trackerNumHits() const
def window(xmin, xmax, ymin, ymax, x=0, y=0, width=100, height=100, xlogbase=None, ylogbase=None, minusInfinity=-1000, flipx=False, flipy=True)
void processMuonResidualsFromTrack(MuonResidualsFromTrack &mrft, const edm::Event &iEvent)
std::string num02d(int num)
align::GlobalPoint global_stubpos()
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()
MuonSystemMapPlot1D * m_CSCvsphi_me[2][4][3]
AlignmentMonitorMuonSystemMap1D(const edm::ParameterSet &cfg)
double global_residual() const
double pt() const
track transverse momentum
const reco::Track * getTrack()
void event(const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks) override
Called for each event (by "run()"): may be reimplemented.
const std::vector< DetId > chamberIds() const
long m_counter_trackmoment
int charge() const
track electric charge
double normalizedChi2() const
#define DEFINE_EDM_PLUGIN(factory, type, name)
void fill_x(char charge, double abscissa, double residx, double chi2, int dof)
edm::InputTag m_muonCollectionTag
MuonSystemMapPlot1D * m_CSCvsr_me[2][4][36]
void fill_dxdz(char charge, double abscissa, double slopex, double chi2, int dof)
bool contains_TIDTEC() const
const edm::InputTag m_beamSpotTag
align::GlobalPoint global_trackpos()
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
void fill_x_1d(double residx, double chi2, int dof)
double m_maxTrackerRedChi2
void fill_y(char charge, double abscissa, double residy, double chi2, int dof)
MuonSystemMapPlot1D * m_DTvsphi_station[4][5]
~AlignmentMonitorMuonSystemMap1D() override
void fill_dydz(char charge, double abscissa, double slopey, double chi2, int dof)
Power< A, B >::type pow(const A &a, const B &b)
double pz() const
z coordinate of momentum vector
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
MuonSystemMapPlot1D * m_DTvsz_station[4][14]
double global_resslope() const
T * make(const Args &... args) const
make new ROOT object
void book() override
Book or retrieve histograms; MUST be reimplemented.