19 std::vector<std::string> residNames;
21 residNames.push_back(
"x hit residuals pos track");
22 residNames.push_back(
"x hit residuals neg track");
23 residNames.push_back(
"y hit residuals pos track");
24 residNames.push_back(
"y hit residuals neg track");
28 unsigned int nAlignable = alignables.size();
29 unsigned int nResidName = residNames.size();
31 for (
unsigned int i = 0;
i < nAlignable; ++
i)
37 hists.resize(nResidName, 0);
42 for (
unsigned int n = 0;
n < nResidName; ++
n)
44 const std::string&
name = residNames[
n];
46 TString histName(name.c_str());
47 histName += Form(
"_%s_%d", idMap.
typeToName(type).c_str(),
id);
48 histName.ReplaceAll(
" ",
"");
50 TString histTitle(name.c_str());
51 histTitle += Form(
" for %s with ID %d (subdet %d)",
55 hists[
n] =
book1D(std::string(
"/iterN/") + std::string(name) + std::string(
"/"), std::string(histName), std::string(histTitle),
nBin_, -5., 5.);
76 for (
unsigned int t = 0;
t < tracks.size(); ++
t)
80 float charge = tracks[
t].second->charge();
82 const std::vector<TrajectoryMeasurement>& meass
83 = tracks[
t].first->measurements();
85 for (
unsigned int m = 0;
m < meass.size(); ++
m)
95 std::map<const Alignable*, Hist1Ds>::iterator
h =
m_resHists.find(ali);
107 h->second[charge > 0 ? 0 : 1]->Fill(res.x() / errX);
108 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()
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)
TrajectoryStateOnSurface forwardPredictedState() const
Access to forward predicted state (from fitter or builder)
LocalPoint localPosition() const
double phi() const
azimuthal angle of momentum vector
ConstRecHitPointer recHit() const
const std::string & typeToName(align::StructureType type) const
Convert type to name.
LocalError positionError() const
std::vector< TH1F * > Hist1Ds
double eta() const
pseudorapidity of momentum vector
double pt() const
track transverse momentum
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
Allows conversion between type and name, and vice-versa.
AlignmentMonitorGeneric(const edm::ParameterSet &)
const LocalTrajectoryError & localError() const
std::vector< ConstTrajTrackPair > ConstTrajTrackPairCollection
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)
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 void event(const edm::Event &, const edm::EventSetup &, const ConstTrajTrackPairCollection &)
Called for each event (by "run()"): may be reimplemented.
The Signals That Services Can Subscribe To This is based on ActivityRegistry h
Helper function to determine trigger accepts.
virtual LocalError localPositionError() const =0
virtual void book()
Book or retrieve histograms; MUST be reimplemented.
#define DEFINE_EDM_PLUGIN(factory, type, name)
DetId geographicalId() const
static const unsigned int nBin_
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)
TrajectoryStateOnSurface backwardPredictedState() const
Access to backward predicted state (from smoother)
const align::Alignables & alignables(void) const
get all alignables