CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Types | Private Attributes | Static Private Attributes
AlignmentMonitorGeneric Class Reference

#include <AlignmentMonitorGeneric.h>

Inheritance diagram for AlignmentMonitorGeneric:
AlignmentMonitorBase

Public Member Functions

virtual void afterAlignment (const edm::EventSetup &)
 
 AlignmentMonitorGeneric (const edm::ParameterSet &)
 
virtual void book ()
 Book or retrieve histograms; MUST be reimplemented. More...
 
virtual void event (const edm::Event &, const edm::EventSetup &, const ConstTrajTrackPairCollection &)
 Called for each event (by "run()"): may be reimplemented. More...
 
- Public Member Functions inherited from AlignmentMonitorBase
 AlignmentMonitorBase (const edm::ParameterSet &cfg, std::string name)
 Constructor. More...
 
void beginOfJob (AlignableTracker *pTracker, AlignableMuon *pMuon, AlignmentParameterStore *pStore)
 Called at beginning of job: don't reimplement. More...
 
void duringLoop (const edm::Event &iEvent, const edm::EventSetup &iSetup, const ConstTrajTrackPairCollection &iTrajTracks)
 Called for each event: don't reimplement. More...
 
void endOfJob ()
 Called at end of processing: don't implement. More...
 
void endOfLoop (const edm::EventSetup &iSetup)
 Called at end of loop: don't reimplement. More...
 
void startingNewLoop ()
 Called at beginning of loop: don't reimplement. More...
 
virtual ~AlignmentMonitorBase ()
 Destructor. More...
 

Private Types

typedef std::vector< TH1F * > Hist1Ds
 

Private Attributes

std::map< const Alignable
*, Hist1Ds
m_resHists
 
Hist1Ds m_trkHists
 

Static Private Attributes

static const unsigned int nBin_ = 50
 

Additional Inherited Members

- Public Types inherited from AlignmentMonitorBase
typedef std::pair< const
Trajectory *, const
reco::Track * > 
ConstTrajTrackPair
 
typedef std::vector
< ConstTrajTrackPair
ConstTrajTrackPairCollection
 
- Protected Member Functions inherited from AlignmentMonitorBase
TH1F * book1D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
 
TH2F * book2D (std::string dir, std::string name, std::string title, int nchX, double lowX, double highX, int nchY, double lowY, double highY)
 
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")
 
TFileDirectorydirectory (std::string dir)
 
int iteration ()
 
AlignableMuonpMuon ()
 
AlignableNavigatorpNavigator ()
 
AlignmentParameterStorepStore ()
 
AlignableTrackerpTracker ()
 
- Protected Attributes inherited from AlignmentMonitorBase
const edm::InputTag m_beamSpotTag
 

Detailed Description

Definition at line 28 of file AlignmentMonitorGeneric.h.

Member Typedef Documentation

typedef std::vector<TH1F*> AlignmentMonitorGeneric::Hist1Ds
private

Definition at line 31 of file AlignmentMonitorGeneric.h.

Constructor & Destructor Documentation

AlignmentMonitorGeneric::AlignmentMonitorGeneric ( const edm::ParameterSet cfg)

Definition at line 11 of file AlignmentMonitorGeneric.cc.

11  :
12  AlignmentMonitorBase(cfg, "AlignmentMonitorGeneric")
13 {
14 }
AlignmentMonitorBase(const edm::ParameterSet &cfg, std::string name)
Constructor.

Member Function Documentation

virtual void AlignmentMonitorGeneric::afterAlignment ( const edm::EventSetup iSetup)
inlinevirtual

Called after updating AlignableTracker and AlignableMuon (by "endOfLoop()"): may be reimplemented

Reimplemented from AlignmentMonitorBase.

Definition at line 46 of file AlignmentMonitorGeneric.h.

48  {}
void AlignmentMonitorGeneric::book ( )
virtual

Book or retrieve histograms; MUST be reimplemented.

Implements AlignmentMonitorBase.

Definition at line 16 of file AlignmentMonitorGeneric.cc.

References Alignable::alignableObjectId(), AlignmentParameterStore::alignables(), AlignmentMonitorBase::book1D(), i, Alignable::id(), AlignableObjectId::idToString(), M_PI, m_resHists, m_trkHists, gen::n, mergeVDriftHistosByStation::name, nBin_, AlignmentMonitorBase::pStore(), and AlCaHLTBitMon_QueryRunRegistry::string.

17 {
18  std::vector<std::string> residNames; // names of residual histograms
19 
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");
24 
25  const std::vector<Alignable*>& alignables = pStore()->alignables();
26 
27  unsigned int nAlignable = alignables.size();
28  unsigned int nResidName = residNames.size();
29 
30  for (unsigned int i = 0; i < nAlignable; ++i)
31  {
32  const Alignable* ali = alignables[i];
33 
34  Hist1Ds& hists = m_resHists[ali];
35 
36  hists.resize(nResidName, 0);
37 
38  align::ID id = ali->id();
40 
41  for (unsigned int n = 0; n < nResidName; ++n)
42  {
43  const std::string& name = residNames[n];
44 
45  TString histName(name.c_str());
46  histName += Form("_%s_%d", AlignableObjectId::idToString(type), id);
47  histName.ReplaceAll(" ", "");
48 
49  TString histTitle(name.c_str());
50  histTitle += Form(" for %s with ID %d (subdet %d)",
52  id, DetId(id).subdetId());
53 
54  hists[n] = book1D(std::string("/iterN/") + std::string(name) + std::string("/"), std::string(histName), std::string(histTitle), nBin_, -5., 5.);
55  }
56  }
57 
58  m_trkHists.resize(6, 0);
59 
60  m_trkHists[0] = book1D("/iterN/", "pt" , "track p_{t} (GeV)" , nBin_, 0.0,100.0);
61  m_trkHists[1] = book1D("/iterN/", "eta" , "track #eta" , nBin_, - 3.0, 3.0);
62  m_trkHists[2] = book1D("/iterN/", "phi" , "track #phi" , nBin_, -M_PI, M_PI);
63  m_trkHists[3] = book1D("/iterN/", "d0" , "track d0 (cm)" , nBin_, -0.02, 0.02);
64  m_trkHists[4] = book1D("/iterN/", "dz" , "track dz (cm)" , nBin_, -20.0, 20.0);
65  m_trkHists[5] = book1D("/iterN/", "chi2", "track #chi^{2}/dof", nBin_, 0.0, 20.0);
66 
67 }
type
Definition: HCALResponse.h:21
align::ID id() const
Return the ID of Alignable, i.e. DetId of &#39;first&#39; component GeomDet(Unit).
Definition: Alignable.h:185
int i
Definition: DBlmapReader.cc:9
AlignmentParameterStore * pStore()
std::map< const Alignable *, Hist1Ds > m_resHists
uint32_t ID
Definition: Definitions.h:26
std::vector< TH1F * > Hist1Ds
virtual StructureType alignableObjectId() const =0
Return the alignable type identifier.
TH1F * book1D(std::string dir, std::string name, std::string title, int nchX, double lowX, double highX)
#define M_PI
Definition: DetId.h:18
static const char * idToString(align::StructureType type)
static const unsigned int nBin_
const align::Alignables & alignables(void) const
get all alignables
void AlignmentMonitorGeneric::event ( const edm::Event iEvent,
const edm::EventSetup iSetup,
const ConstTrajTrackPairCollection iTrajTracks 
)
virtual

Called for each event (by "run()"): may be reimplemented.

Reimplemented from AlignmentMonitorBase.

Definition at line 69 of file AlignmentMonitorGeneric.cc.

References AlignableNavigator::alignableFromDetId(), TrajectoryMeasurement::backwardPredictedState(), RecoTauCleanerPlugins::charge, reco::TrackBase::d0(), TrackingRecHit::det(), reco::TrackBase::dz(), reco::TrackBase::eta(), TrajectoryMeasurement::forwardPredictedState(), TrackingRecHit::geographicalId(), h, TrackingRecHit::isValid(), TrackerGeomDet::localAlignmentError(), TrajectoryStateOnSurface::localError(), TrajectoryStateOnSurface::localPosition(), TrackingRecHit::localPosition(), TrackingRecHit::localPositionError(), visualization-live-secondInstance_cfg::m, m_resHists, m_trkHists, Alignable::mother(), reco::TrackBase::normalizedChi2(), reco::TrackBase::phi(), AlignmentMonitorBase::pNavigator(), LocalTrajectoryError::positionError(), reco::TrackBase::pt(), TrajectoryMeasurement::recHit(), mathSSE::sqrt(), lumiQTWidget::t, LocalError::xx(), LocalError::xy(), and LocalError::yy().

72 {
73  TrajectoryStateCombiner tsoscomb;
74 
75  for (unsigned int t = 0; t < tracks.size(); ++t)
76  {
77  const reco::Track* track = tracks[t].second;
78 
79  float charge = tracks[t].second->charge();
80 
81  const std::vector<TrajectoryMeasurement>& meass
82  = tracks[t].first->measurements();
83 
84  for (unsigned int m = 0; m < meass.size(); ++m)
85  {
86  const TrajectoryMeasurement& meas = meass[m];
87  const TransientTrackingRecHit& hit = *meas.recHit();
88 
89  if ( hit.isValid() )
90  {
91  const Alignable* ali = pNavigator()->alignableFromDetId( hit.geographicalId() );
92 
93  while (ali) {
94  std::map<const Alignable*, Hist1Ds>::iterator h = m_resHists.find(ali);
95  if ( h != m_resHists.end() )
96  {
98 
99  align::LocalVector res = tsos.localPosition() - hit.localPosition();
100  LocalError err1 = tsos.localError().positionError();
101  LocalError err2 = hit.localPositionError(); // CPE+APE
102 
103  // subtract APEs from err2 (if existing) from covariance matrix
104  auto det = static_cast<const TrackerGeomDet*>(hit.det());
105  const auto localAPE = det->localAlignmentError();
106  if (localAPE.valid()) {
107  err2 = LocalError(err2.xx() - localAPE.xx(),
108  err2.xy() - localAPE.xy(),
109  err2.yy() - localAPE.yy());
110  }
111 
112  float errX = std::sqrt( err1.xx() + err2.xx() );
113  float errY = std::sqrt( err1.yy() + err2.yy() );
114 
115  h->second[charge > 0 ? 0 : 1]->Fill(res.x() / errX);
116  h->second[charge > 0 ? 2 : 3]->Fill(res.y() / errY);
117  }
118  ali = ali->mother();
119  }
120  }
121  }
122 
123  m_trkHists[0]->Fill( track->pt() );
124  m_trkHists[1]->Fill( track->eta() );
125  m_trkHists[2]->Fill( track->phi() );
126  m_trkHists[3]->Fill( track->d0() );
127  m_trkHists[4]->Fill( track->dz() );
128  m_trkHists[5]->Fill( track->normalizedChi2() );
129  }
130 }
float xx() const
Definition: LocalError.h:24
AlignableNavigator * pNavigator()
ConstRecHitPointer const & recHit() const
double d0() const
dxy parameter in perigee convention (d0 = -dxy)
Definition: TrackBase.h:592
FWCore Framework interface EventSetupRecordImplementation h
Helper function to determine trigger accepts.
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)
Definition: TrackBase.h:556
double phi() const
azimuthal angle of momentum vector
Definition: TrackBase.h:640
LocalError positionError() const
float xy() const
Definition: LocalError.h:25
double eta() const
pseudorapidity of momentum vector
Definition: TrackBase.h:646
float yy() const
Definition: LocalError.h:26
const GeomDet * det() const
T sqrt(T t)
Definition: SSEVec.h:18
double pt() const
track transverse momentum
Definition: TrackBase.h:616
const LocalTrajectoryError & localError() const
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...
Definition: TrackBase.h:604
tuple tracks
Definition: testEve_cfg.py:39
virtual LocalError localPositionError() const =0
bool isValid() const
DetId geographicalId() const
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)
Definition: Alignable.h:90
LocalError const & localAlignmentError() const
Return local alligment error.
TrajectoryStateOnSurface const & backwardPredictedState() const
Access to backward predicted state (from smoother)

Member Data Documentation

std::map<const Alignable*, Hist1Ds> AlignmentMonitorGeneric::m_resHists
private

Definition at line 56 of file AlignmentMonitorGeneric.h.

Referenced by book(), and event().

Hist1Ds AlignmentMonitorGeneric::m_trkHists
private

Definition at line 54 of file AlignmentMonitorGeneric.h.

Referenced by book(), and event().

const unsigned int AlignmentMonitorGeneric::nBin_ = 50
staticprivate

Definition at line 52 of file AlignmentMonitorGeneric.h.

Referenced by book().