15 std::vector<std::string> residNames;
17 residNames.push_back(
"x hit residuals pos track");
18 residNames.push_back(
"x hit residuals neg track");
19 residNames.push_back(
"y hit residuals pos track");
20 residNames.push_back(
"y hit residuals neg track");
26 unsigned int nAlignable = alignables.size();
27 unsigned int nResidName = residNames.size();
29 for (
unsigned int i = 0;
i < nAlignable; ++
i) {
34 hists.resize(nResidName,
nullptr);
39 for (
unsigned int n = 0;
n < nResidName; ++
n) {
42 TString histName(name.c_str());
43 histName += Form(
"_%s_%d", alignableObjectId.idToString(type),
id);
44 histName.ReplaceAll(
" ",
"");
46 TString histTitle(name.c_str());
47 histTitle += Form(
" for %s with ID %d (subdet %d)", alignableObjectId.idToString(type),
id,
DetId(
id).
subdetId());
73 for (
unsigned int t = 0;
t < tracks.size(); ++
t) {
76 float charge = tracks[
t].second->charge();
78 const std::vector<TrajectoryMeasurement>& meass = tracks[
t].first->measurements();
80 for (
unsigned int m = 0;
m < meass.size(); ++
m) {
88 std::map<const Alignable*, Hist1Ds>::iterator
h =
m_resHists.find(ali);
99 if (localAPE.valid()) {
100 err2 =
LocalError(err2.
xx() - localAPE.xx(), err2.
xy() - localAPE.xy(), err2.
yy() - localAPE.yy());
106 h->second[charge > 0 ? 0 : 1]->Fill(res.x() / errX);
107 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)
uint16_t *__restrict__ id
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
AlignmentMonitorGeneric(const edm::ParameterSet &, edm::ConsumesCollector iC)
AlignableTracker * pTracker()
auto const & tracks
cannot be loose
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
const GeomDet * det() const
double pt() const
track transverse momentum
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
const LocalTrajectoryError & localError() const
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
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...
virtual LocalError localPositionError() const =0
#define DEFINE_EDM_PLUGIN(factory, type, name)
DetId geographicalId() const
static const unsigned int nBin_
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
virtual LocalPoint localPosition() const =0
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)