23 , doTrackerSpecific_ ( conf_.getParameter<bool>(
"doTrackerSpecific") )
24 , doAllPlots_ ( conf_.getParameter<bool>(
"doAllPlots") )
25 , doBSPlots_ ( conf_.getParameter<bool>(
"doBeamSpotPlots") )
26 , doPVPlots_ ( conf_.getParameter<bool>(
"doPrimaryVertexPlots") )
27 , doDCAPlots_ ( conf_.getParameter<bool>(
"doDCAPlots") )
28 , doGeneralPropertiesPlots_ ( conf_.getParameter<bool>(
"doGeneralPropertiesPlots") )
29 , doMeasurementStatePlots_ ( conf_.getParameter<bool>(
"doMeasurementStatePlots") )
30 , doHitPropertiesPlots_ ( conf_.getParameter<bool>(
"doHitPropertiesPlots") )
31 , doRecHitVsPhiVsEtaPerTrack_ ( conf_.getParameter<bool>(
"doRecHitVsPhiVsEtaPerTrack") )
32 , doLayersVsPhiVsEtaPerTrack_ ( conf_.getParameter<bool>(
"doLayersVsPhiVsEtaPerTrack") )
33 , doRecHitsPerTrackProfile_ ( conf_.getParameter<bool>(
"doRecHitsPerTrackProfile") )
34 , doThetaPlots_ ( conf_.getParameter<bool>(
"doThetaPlots") )
35 , doTrackPxPyPlots_ ( conf_.getParameter<bool>(
"doTrackPxPyPlots") )
36 , doDCAwrtPVPlots_ ( conf_.getParameter<bool>(
"doDCAwrtPVPlots") )
37 , doDCAwrt000Plots_ ( conf_.getParameter<bool>(
"doDCAwrt000Plots") )
38 , doLumiAnalysis_ ( conf_.getParameter<bool>(
"doLumiAnalysis") )
39 , doTestPlots_ ( conf_.getParameter<bool>(
"doTestPlots") )
136 if (StateName ==
"All") {
141 StateName !=
"OuterSurface" &&
142 StateName !=
"InnerSurface" &&
143 StateName !=
"ImpactPoint" &&
144 StateName !=
"default"
163 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
208 histname =
"NumberOfRecHitsPerTrack_";
213 histname =
"NumberOfValidRecHitsPerTrack_";
218 histname =
"NumberOfLostRecHitsPerTrack_";
223 histname =
"NumberOfLayersPerTrack_";
231 histname =
"NumberOfRecHitVsPhiVsEtaPerTrack_";
233 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40.,
"");
240 histname =
"NumberOfLayersVsPhiVsEtaPerTrack_";
242 EtaBin, EtaMin, EtaMax, PhiBin, PhiMin, PhiMax, 0, 40.,
"");
270 Chi2->setAxisTitle(
"Track #chi^{2}" ,1);
271 Chi2->setAxisTitle(
"Number of Tracks",2);
284 histname =
"xPointOfClosestApproach_";
289 histname =
"yPointOfClosestApproach_";
294 histname =
"zPointOfClosestApproach_";
299 histname =
"xPointOfClosestApproachToPV_";
304 histname =
"yPointOfClosestApproachToPV_";
309 histname =
"zPointOfClosestApproachToPV_";
333 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
352 histname =
"NumberOfRecHitsPerTrack_lumiFlag_";
372 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
406 histname =
"DistanceOfClosestApproachToBS_";
411 histname =
"DistanceOfClosestApproachToBSVsPhi_";
417 histname =
"xPointOfClosestApproachVsZ0wrt000_";
422 histname =
"yPointOfClosestApproachVsZ0wrt000_";
427 histname =
"xPointOfClosestApproachVsZ0wrtBS_";
432 histname =
"yPointOfClosestApproachVsZ0wrtBS_";
437 histname =
"zPointOfClosestApproachVsPhi_";
467 histname =
"DistanceOfClosestApproachToPV_";
472 histname =
"DistanceOfClosestApproachToPVVsPhi_";
478 histname =
"xPointOfClosestApproachVsZ0wrtPV_";
483 histname =
"yPointOfClosestApproachVsZ0wrtPV_";
501 histname =
"TESTDistanceOfClosestApproachToBS_";
506 histname =
"TESTDistanceOfClosestApproachToBSVsPhi_";
540 histname =
"DistanceOfClosestApproachVsTheta_";
546 histname =
"DistanceOfClosestApproachVsEta_";
552 histname =
"DistanceOfClosestApproach_";
557 histname =
"DistanceOfClosestApproachVsPhi_";
578 double chi2 = track.
chi2();
579 double chi2prob = TMath::Prob(track.
chi2(),(int)track.
ndof());
652 if (recoPrimaryVerticesHandle->size() > 0) {
680 if (StateName ==
"All") {
685 StateName !=
"OuterSurface" &&
686 StateName !=
"InnerSurface" &&
687 StateName !=
"ImpactPoint" &&
688 StateName !=
"default"
711 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
798 std::string histTag = (sname ==
"default") ? CategoryName : sname +
"_" + CategoryName;
806 histname =
"Chi2oNDFVsTheta_" + histTag;
811 histname =
"Chi2oNDFVsPhi_" + histTag;
816 histname =
"Chi2oNDFVsEta_" + histTag;
821 histname =
"Chi2ProbVsPhi_" + histTag;
826 histname =
"Chi2ProbVsEta_" + histTag;
883 histname =
"TrackPErrOverP_" + histTag;
888 histname =
"TrackPtErrOverPt_" + histTag;
893 histname =
"TrackPtErrOverPtVsEta_" + histTag;
899 histname =
"TrackPxErrOverPx_" + histTag;
904 histname =
"TrackPyErrOverPy_" + histTag;
909 histname =
"TrackPzErrOverPz_" + histTag;
914 histname =
"TrackPhiErr_" + histTag;
919 histname =
"TrackEtaErr_" + histTag;
926 histname =
"NumberOfRecHitsPerTrackVsPhi_" + histTag;
932 histname =
"NumberOfRecHitsPerTrackVsTheta_" + histTag;
937 histname =
"NumberOfRecHitsPerTrackVsEta_" + histTag;
942 histname =
"NumberOfValidRecHitsPerTrackVsPhi_" + histTag;
948 histname =
"NumberOfValidRecHitsPerTrackVsEta_" + histTag;
954 histname =
"NumberOfLayersPerTrackVsPhi_" + histTag;
960 histname =
"NumberOfLayersPerTrackVsTheta_" + histTag;
965 histname =
"NumberOfLayersPerTrackVsEta_" + histTag;
971 histname =
"Chi2oNDFVsTheta_" + histTag;
977 histname =
"Chi2oNDFVsPhi_" + histTag;
982 histname =
"Chi2oNDFVsEta_" + histTag;
987 histname =
"Chi2ProbVsPhi_" + histTag;
992 histname =
"Chi2ProbVsEta_" + histTag;
1010 double pxerror, pyerror, pzerror, pterror, perror, phierror, etaerror;
1012 if (sname ==
"default") {
1020 theta = track.
theta();
1067 std::map<std::string, TkParameterMEs>::iterator iPos =
TkParameterMEMap.find(sname);
1121 double chi2prob = TMath::Prob(track.
chi2(),(int)track.
ndof());
1149 std::string CategoryName = QualName !=
"" ? AlgoName +
"_" + QualName : AlgoName;
1165 std::vector<std::string> subdetectors =
conf_.
getParameter<std::vector<std::string> >(
"subdetectors");
1168 for (
auto det : subdetectors ) {
1185 histname =
"NumberOfRecHitsPerTrack_" + det +
"_" + CategoryName;
1190 histname =
"NumberOfRecHitsPerTrackVsPhi_" + det +
"_" + CategoryName;
1195 histname =
"NumberOfRecHitsPerTrackVsEta_" + det +
"_" + CategoryName;
1200 histname =
"NumberOfLayersPerTrack_" + det +
"_" + CategoryName;
1205 histname =
"NumberOfLayersPerTrackVsPhi_" + det +
"_" + CategoryName;
1210 histname =
"NumberOfLayersPerTrackVsEta_" + det +
"_" + CategoryName;
1227 double phi = track.
phi();
1228 double eta = track.
eta();
1233 int nValidLayers = 0;
1234 int nValidRecHits = 0;
1235 int substr = it->second.detectorId;
1266 it->second.NumberOfRecHitsPerTrack ->
Fill(nValidRecHits);
1267 it->second.NumberOfRecHitsPerTrackVsPhi ->
Fill(phi, nValidRecHits);
1268 it->second.NumberOfRecHitsPerTrackVsEta ->
Fill(eta, nValidRecHits);
1270 it->second.NumberOfLayersPerTrack ->
Fill(nValidLayers);
1271 it->second.NumberOfLayersPerTrackVsPhi ->
Fill(phi, nValidLayers);
1272 it->second.NumberOfLayersPerTrackVsEta ->
Fill(eta, nValidLayers);
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
MonitorElement * Chi2ProbVsPhi
double p() const
momentum vector magnitude
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
MonitorElement * NumberOfLayersPerTrackVsPhi
int stripTOBLayersWithMeasurement() const
T getParameter(std::string const &) const
MonitorElement * DistanceOfClosestApproachToPVVsPhi
MonitorElement * NumberOfRecHitVsPhiVsEtaPerTrack
MonitorElement * TrackPErr
void fillHistosForTrackerSpecific(const reco::Track &track)
MonitorElement * NumberOfRecHitsPerTrackVsEta
TrackCharge charge() const
double d0() const
dxy parameter in perigee convention (d0 = - dxy)
MonitorElement * book1D(const char *name, const char *title, int nchX, double lowX, double highX)
Book 1D histogram.
MonitorElement * NumberOfValidRecHitsPerTrack
int stripTIBLayersWithMeasurement() const
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
MonitorElement * Chi2oNDF_lumiFlag
double theta() const
polar angle
MonitorElement * xPointOfClosestApproachToPV
const CurvilinearTrajectoryError & curvilinearError() const
MonitorElement * TrackEta
MonitorElement * TrackPtErr
Sin< T >::type sin(const T &t)
MonitorElement * NumberOfLostRecHitsPerTrack
MonitorElement * TrackPyErr
ROOT::Math::SMatrix< double, 6, 6, ROOT::Math::MatRepSym< double, 6 > > AlgebraicSymMatrix66
Geom::Phi< T > phi() const
const CartesianTrajectoryError cartesianError() const
void doReset(DQMStore *dqmStore_)
Geom::Theta< T > theta() const
bool doGeneralPropertiesPlots_
double etaError() const
error on eta
MonitorElement * Chi2oNDFVsPhi
MonitorElement * Chi2ProbVsPhi
MonitorElement * DistanceOfClosestApproachVsPhi
double phi() const
azimuthal angle of momentum vector
unsigned short numberOfLostHits() const
number of cases where track crossed a layer without getting a hit.
std::vector< Vertex > VertexCollection
collection of Vertex objects
std::map< std::string, TkParameterMEs > TkParameterMEMap
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * algorithm
const double EtaMax[kNumberCalorimeter]
double px() const
x coordinate of momentum vector
bool doHitPropertiesPlots_
MonitorElement * DistanceOfClosestApproach
bool doRecHitVsPhiVsEtaPerTrack_
MonitorElement * NumberOfLayersPerTrackVsTheta
const Point & referencePoint() const
Reference point on the track.
MonitorElement * NumberOfRecHitsPerTrack_lumiFlag
std::map< std::string, TkRecHitsPerSubDetMEs > TkRecHitsPerSubDetMEMap
const Point & position() const
position
int pixelEndcapLayersWithMeasurement() const
int numberOfValidStripTOBHits() const
bool doMeasurementStatePlots_
TrajectoryStateOnSurface innermostMeasurementState() const
MonitorElement * NumberOfRecHitsPerTrack
void bookHistosForTrackerSpecific(DQMStore *dqmStore_)
Geom::Theta< T > theta() const
TrackAlgorithm algo() const
void bookHistosForState(std::string sname, DQMStore *dqmStore_)
void disableSoftReset(MonitorElement *me)
MonitorElement * TESTDistanceOfClosestApproachToBSVsPhi
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
virtual void beginJob(DQMStore *dqmStore_)
MonitorElement * Chi2oNDFVsEta
MonitorElement * NumberOfRecHitsPerTrackVsPhi
MonitorElement * xPointOfClosestApproachVsZ0wrt000
double eta() const
pseudorapidity of momentum vector
void bookHistosForHitProperties(DQMStore *dqmStore_)
int numberOfValidPixelBarrelHits() const
MonitorElement * NumberOfRecHitsPerTrackVsTheta
MonitorElement * xPointOfClosestApproach
MonitorElement * Chi2oNDFVsTheta
double chi2() const
chi-squared of the fit
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
double ndof() const
number of degrees of freedom of the fit
int stripTIDLayersWithMeasurement() const
int trackerLayersWithMeasurement() const
MonitorElement * NumberOfValidRecHitsPerTrackVsEta
MonitorElement * NumberOfRecHitsPerTrackVsPhi
double pt() const
track transverse momentum
double ptError() const
error on Pt (set to 1000 TeV if charge==0 for safety)
MonitorElement * xPointOfClosestApproachVsZ0wrtBS
double phiError() const
error on phi
MonitorElement * NumberOfValidRecHitsPerTrackVsPhi
int numberOfValidStripTIDHits() const
MonitorElement * yPointOfClosestApproachToPV
const double EtaMin[kNumberCalorimeter]
MonitorElement * NumberOfRecHitsPerTrackVsEta
unsigned short numberOfValidHits() const
number of valid hits found
int numberOfValidStripTECHits() const
MonitorElement * bookProfile(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, const char *option="s")
void softReset(MonitorElement *me)
MonitorElement * Chi2oNDFVsTheta
TrajectoryStateOnSurface outermostMeasurementState() const
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
MonitorElement * TrackEtaErr
MonitorElement * TrackPxErr
MonitorElement * DistanceOfClosestApproachVsEta
MonitorElement * zPointOfClosestApproachVsPhi
const AlgebraicSymMatrix66 & matrix() const
double pz() const
z coordinate of momentum vector
MonitorElement * TrackPzErr
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...
MonitorElement * NumberOfLayersPerTrackVsEta
MonitorElement * NumberOfRecHitsPerTrack
MonitorElement * TrackPhiErr
double vz() const
z coordinate of the reference point on track
void fillHistosForState(const edm::EventSetup &iSetup, const reco::Track &track, std::string sname)
virtual void beginRun(DQMStore *dqmStore_)
TrajectoryStateOnSurface TSOS
MonitorElement * NumberOfLayersPerTrackVsEta
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
virtual void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const reco::Track &track)
MonitorElement * xPointOfClosestApproachVsZ0wrtPV
MonitorElement * yPointOfClosestApproachVsZ0wrtBS
MonitorElement * NumberOfLayersPerTrack
int stripLayersWithMeasurement() const
int pixelBarrelLayersWithMeasurement() const
MonitorElement * DistanceOfClosestApproachVsTheta
MonitorElement * Chi2ProbVsEta
int numberOfValidStripTIBHits() const
MonitorElement * TrackPhi
int numberOfValidPixelEndcapHits() const
MonitorElement * zPointOfClosestApproachToPV
MonitorElement * DistanceOfClosestApproachToPV
double vy() const
y coordinate of the reference point on track
const AlgebraicSymMatrix55 & matrix() const
GlobalVector globalMomentum() const
MonitorElement * NumberOfLayersPerTrack
MonitorElement * DistanceOfClosestApproachToBSVsPhi
bool doLayersVsPhiVsEtaPerTrack_
void doSoftReset(DQMStore *dqmStore_)
int stripTECLayersWithMeasurement() const
MonitorElement * yPointOfClosestApproachVsZ0wrt000
MonitorElement * TrackPtErrVsEta
MonitorElement * TESTDistanceOfClosestApproachToBS
MonitorElement * NumberOfRecHitsPerTrackVsEta
int charge() const
track electric charge
const Point & position() const
position
TrajectoryStateOnSurface impactPointState() const
MonitorElement * yPointOfClosestApproach
void Reset(std::vector< TH2F > &depth)
MonitorElement * NumberOfLayersVsPhiVsEtaPerTrack
MonitorElement * Chi2Prob
void bookHistosForBeamSpot(DQMStore *dqmStore_)
MonitorElement * yPointOfClosestApproachVsZ0wrtPV
double dxy() const
dxy parameter. (This is the transverse impact parameter w.r.t. to (0,0,0) ONLY if refPoint is close t...
MonitorElement * TrackTheta
MonitorElement * zPointOfClosestApproach
TrackAnalyzer(const edm::ParameterSet &)
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * Chi2ProbVsEta
MonitorElement * DistanceOfClosestApproachToBS
Power< A, B >::type pow(const A &a, const B &b)
MonitorElement * Chi2oNDF
void setCurrentFolder(const std::string &fullpath)
MonitorElement * Chi2oNDFVsEta
void bookHistosForLScertification(DQMStore *dqmStore_)
double py() const
y coordinate of momentum vector
double vx() const
x coordinate of the reference point on track
void undoSoftReset(DQMStore *dqmStore_)
MonitorElement * NumberOfLayersPerTrackVsPhi
edm::EDGetTokenT< reco::VertexCollection > pvToken_
MonitorElement * bookProfile2D(const char *name, const char *title, int nchX, double lowX, double highX, int nchY, double lowY, double highY, int nchZ, double lowZ, double highZ, const char *option="s")
MonitorElement * Chi2oNDFVsPhi