18 std::vector<std::string> residNames;
20 residNames.push_back(
"x hit residuals pos track");
21 residNames.push_back(
"x hit residuals neg track");
22 residNames.push_back(
"y hit residuals pos track");
23 residNames.push_back(
"y hit residuals neg track");
26 auto alignableObjectId =
31 unsigned int nAlignable = alignables.size();
32 unsigned int nResidName = residNames.size();
34 for (
unsigned int i = 0;
i < nAlignable; ++
i)
40 hists.resize(nResidName,
nullptr);
45 for (
unsigned int n = 0;
n < nResidName; ++
n)
49 TString histName(name.c_str());
50 histName += Form(
"_%s_%d", alignableObjectId.idToString(type),
id);
51 histName.ReplaceAll(
" ",
"");
53 TString histTitle(name.c_str());
54 histTitle += Form(
" for %s with ID %d (subdet %d)",
55 alignableObjectId.idToString(type),
79 for (
unsigned int t = 0;
t < tracks.size(); ++
t)
83 float charge = tracks[
t].second->charge();
85 const std::vector<TrajectoryMeasurement>& meass
86 = tracks[
t].first->measurements();
88 for (
unsigned int m = 0;
m < meass.size(); ++
m)
98 std::map<const Alignable*, Hist1Ds>::iterator
h =
m_resHists.find(ali);
110 if (localAPE.valid()) {
112 err2.
xy() - localAPE.xy(),
113 err2.
yy() - localAPE.yy());
119 h->second[charge > 0 ? 0 : 1]->Fill(res.x() /
errX);
120 h->second[charge > 0 ? 2 : 3]->Fill(res.y() /
errY);
align::ID id() const
Return the ID of Alignable, i.e. DetId of 'first' component GeomDet(Unit).
AlignableNavigator * pNavigator()
AlignmentParameterStore * pStore()
ConstRecHitPointer const & recHit() const
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
std::map< const Alignable *, Hist1Ds > m_resHists
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
static AlignableObjectId commonObjectIdProvider(const AlignableObjectId &, const AlignableObjectId &)
LocalPoint localPosition() const
double phi() const
azimuthal angle of momentum vector
AlignableTracker * pTracker()
void event(const edm::Event &, const edm::EventSetup &, const ConstTrajTrackPairCollection &) override
Called for each event (by "run()"): may be reimplemented.
LocalError positionError() const
void book() override
Book or retrieve histograms; MUST be reimplemented.
std::vector< TH1F * > Hist1Ds
double eta() const
pseudorapidity of momentum vector
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
const GeomDet * det() const
double pt() const
track transverse momentum
AlignmentMonitorGeneric(const edm::ParameterSet &)
const LocalTrajectoryError & localError() const
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
virtual LocalPoint localPosition() const =0
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
TrajectoryStateOnSurface const & forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
double dz() const
dz parameter (= dsz/cos(lambda)). This is the track z0 w.r.t (0,0,0) only if the refPoint is close to...
#define DEFINE_EDM_PLUGIN(factory, type, name)
DetId geographicalId() const
virtual LocalError localPositionError() const =0
static const unsigned int nBin_
AlignableDetOrUnitPtr alignableFromDetId(const DetId &detid)
Returns AlignableDetOrUnitPtr corresponding to given DetId.
Alignable * mother() const
Return pointer to container alignable (if any)
LocalError const & localAlignmentError() const
Return local alligment error.
const align::Alignables & alignables(void) const
get all alignables
TrajectoryStateOnSurface const & backwardPredictedState() const
Access to backward predicted state (from smoother)