31 , NumberOfRecHitsPerSeed(
NULL)
32 , NumberOfRecHitsPerSeedVsPhiProfile(
NULL)
33 , NumberOfRecHitsPerSeedVsEtaProfile(
NULL)
34 , stoppingSource(
NULL)
35 , stoppingSourceVSeta(
NULL)
36 , stoppingSourceVSphi(
NULL)
131 if (doAllSeedPlots || doPT) {
132 histname =
"SeedPt_"+seedProducer.label() +
"_";
138 if (doAllSeedPlots || doETA) {
139 histname =
"SeedEta_"+seedProducer.label() +
"_";
145 if (doAllSeedPlots || doPHI) {
146 histname =
"SeedPhi_"+seedProducer.label() +
"_";
152 if (doAllSeedPlots || doPHIVsETA) {
153 histname =
"SeedPhiVsEta_"+seedProducer.label() +
"_";
159 if (doAllSeedPlots || doTheta){
160 histname =
"SeedTheta_"+seedProducer.label() +
"_";
166 if (doAllSeedPlots || doQ){
167 histname =
"SeedQ_"+seedProducer.label() +
"_";
173 if (doAllSeedPlots || doDxy){
174 histname =
"SeedDxy_"+seedProducer.label() +
"_";
180 if (doAllSeedPlots || doDz){
181 histname =
"SeedDz_"+seedProducer.label() +
"_";
187 if (doAllSeedPlots || doNRecHits){
188 histname =
"NumberOfRecHitsPerSeed_"+seedProducer.label() +
"_";
194 if (doAllSeedPlots || doProfPHI){
195 histname =
"NumberOfRecHitsPerSeedVsPhiProfile_"+seedProducer.label() +
"_";
201 if (doAllSeedPlots || doProfETA){
202 histname =
"NumberOfRecHitsPerSeedVsEtaProfile_"+seedProducer.label() +
"_";
208 if (doAllTCPlots || doStopSource) {
210 std::vector<std::string> StopReasonName = {
"UNINITIALIZED",
"MAX_HITS",
"MAX_LOST_HITS",
"MAX_CONSECUTIVE_LOST_HITS",
"LOST_HIT_FRACTION",
"MIN_PT",
"CHARGE_SIGNIFICANCE",
"LOOPER",
"MAX_CCC_LOST_HITS",
"NO_SEGMENTS_FOR_VALID_LAYERS",
"NOT_STOPPED" };
212 histname =
"StoppingSource_"+seedProducer.label() +
"_";
215 StopReasonName.size(),
216 0., double(StopReasonName.size()));
220 histname =
"StoppingSourceVSeta_"+seedProducer.label() +
"_";
226 StopReasonName.size(),
227 0., double(StopReasonName.size()));
231 histname =
"StoppingSourceVSphi_"+seedProducer.label() +
"_";
237 StopReasonName.size(),
238 0., double(StopReasonName.size()));
242 for (
size_t ibin=0; ibin<StopReasonName.size(); ibin++) {
258 histname =
"TrackCandPt_"+tcProducer.label() +
"_";
263 histname =
"TrackCandEta_"+tcProducer.label() +
"_";
268 histname =
"TrackCandPhi_"+tcProducer.label() +
"_";
274 histname =
"TrackCandTheta_"+tcProducer.label() +
"_";
281 histname =
"TrackCandQ_"+tcProducer.label() +
"_";
286 histname =
"TrackCandDxy_"+tcProducer.label() +
"_";
291 histname =
"TrackCandDz_"+tcProducer.label() +
"_";
296 histname =
"NumberOfRecHitsPerTrackCand_"+tcProducer.label() +
"_";
301 histname =
"NumberOfRecHitsPerTrackCandVsPhiProfile_"+tcProducer.label() +
"_";
306 histname =
"NumberOfRecHitsPerTrackCandVsEtaProfile_"+tcProducer.label() +
"_";
312 histname =
"TrackCandPhiVsEta_"+tcProducer.label() +
"_";
339 if(!(tsAtClosestApproachSeed.isValid())) {
340 edm::LogVerbatim(
"TrackBuilding") <<
"TrajectoryStateClosestToBeamLine not valid";
343 GlobalPoint v0 = tsAtClosestApproachSeed.trackStateAtPCA().position();
344 GlobalVector p = tsAtClosestApproachSeed.trackStateAtPCA().momentum();
356 double numberOfHits = candidate.
recHits().second-candidate.
recHits().first;
358 double dz =
v.z() - (
v.x()*p.
x()+
v.y()*p.
y())/p.
perp() * p.
z()/p.
perp();
361 if (doAllSeedPlots || doQ)SeedQ->Fill( state.
charge() );
362 if (doAllSeedPlots || doPT) SeedPt->Fill( pt );
363 if (doAllSeedPlots || doETA) SeedEta->Fill( eta );
364 if (doAllSeedPlots || doPHI) SeedPhi->Fill( phi );
365 if (doAllSeedPlots || doPHIVsETA) SeedPhiVsEta->Fill( eta, phi);
366 if (doAllSeedPlots || doTheta) SeedTheta->Fill( theta );
367 if (doAllSeedPlots || doDxy) SeedDxy->Fill( dxy );
368 if (doAllSeedPlots || doDz) SeedDz->Fill( dz );
369 if (doAllSeedPlots || doNRecHits) NumberOfRecHitsPerSeed->Fill( numberOfHits );
370 if (doAllSeedPlots || doProfETA) NumberOfRecHitsPerSeedVsEtaProfile->Fill( eta, numberOfHits );
371 if (doAllSeedPlots || doProfPHI) NumberOfRecHitsPerSeedVsPhiProfile->Fill( phi, numberOfHits );
394 if(!(tsAtClosestApproachTrackCand.isValid())) {
395 edm::LogVerbatim(
"TrackBuilding") <<
"TrajectoryStateClosestToBeamLine not valid";
398 GlobalPoint v0 = tsAtClosestApproachTrackCand.trackStateAtPCA().position();
399 GlobalVector p = tsAtClosestApproachTrackCand.trackStateAtPCA().momentum();
411 double numberOfHits = candidate.
recHits().second-candidate.
recHits().first;
414 double dz =
v.z() - (
v.x()*p.
x()+
v.y()*p.
y())/p.
perp() * p.
z()/p.
perp();
418 int max = stoppingSource->getNbinsX();
419 double stop = candidate.
stopReason() > max ? double(max-1) :
static_cast<double>(candidate.
stopReason());
420 stoppingSource ->Fill(stop);
421 stoppingSourceVSeta ->Fill(eta,stop);
422 stoppingSourceVSphi ->Fill(phi,stop);
427 if (doAllTCPlots) TrackCandQ->Fill( state.
charge() );
428 TrackCandPt->Fill( pt );
429 TrackCandEta->Fill( eta );
430 TrackCandPhi->Fill( phi );
431 TrackCandPhiVsEta->Fill( eta, phi );
432 if (doTheta) TrackCandTheta->Fill( theta );
433 if (doAllTCPlots) TrackCandDxy->Fill( dxy );
434 if (doAllTCPlots) TrackCandDz->Fill( dz );
435 if (doAllTCPlots) NumberOfRecHitsPerTrackCand->Fill( numberOfHits );
436 if (doAllTCPlots) NumberOfRecHitsPerTrackCandVsEtaProfile->Fill( eta, numberOfHits );
437 if (doAllTCPlots) NumberOfRecHitsPerTrackCandVsPhiProfile->Fill( phi, numberOfHits );
MonitorElement * NumberOfRecHitsPerTrackCandVsPhiProfile
MonitorElement * TrackCandPt
T getParameter(std::string const &) const
double z0() const
z coordinate
virtual ~TrackBuildingAnalyzer()
TrackCharge charge() const
MonitorElement * bookProfile(Args &&...args)
MonitorElement * TrackCandDz
Sin< T >::type sin(const T &t)
Geom::Phi< T > phi() const
Geom::Theta< T > theta() const
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
MonitorElement * stoppingSourceVSphi
GlobalPoint globalPosition() const
MonitorElement * TrackCandPhi
MonitorElement * TrackCandPhiVsEta
MonitorElement * SeedTheta
Geom::Theta< T > theta() const
MonitorElement * NumberOfRecHitsPerTrackCandVsEtaProfile
MonitorElement * stoppingSource
PTrajectoryStateOnDet const & trajectoryStateOnDet() const
MonitorElement * NumberOfRecHitsPerSeed
virtual void analyze(const edm::Event &iEvent, const edm::EventSetup &iSetup, const TrajectorySeed &seed, const reco::BeamSpot &bs, const edm::ESHandle< MagneticField > &theMF, const edm::ESHandle< TransientTrackingRecHitBuilder > &theTTRHBuilder)
MonitorElement * NumberOfRecHitsPerSeedVsPhiProfile
MonitorElement * TrackCandDxy
FreeTrajectoryState const * freeState(bool withErrors=true) const
virtual void initHisto(DQMStore::IBooker &ibooker)
Cos< T >::type cos(const T &t)
MonitorElement * TrackCandEta
MonitorElement * book1D(Args &&...args)
const double EtaMin[kNumberCalorimeter]
TrackBuildingAnalyzer(const edm::ParameterSet &)
PTrajectoryStateOnDet const & startingState() const
MonitorElement * stoppingSourceVSeta
void setCurrentFolder(const std::string &fullpath)
MonitorElement * book2D(Args &&...args)
T const * product() const
MonitorElement * TrackCandTheta
MonitorElement * TrackCandQ
MonitorElement * SeedPhiVsEta
Geom::Phi< T > phi() const
GlobalVector globalMomentum() const
double y0() const
y coordinate
MonitorElement * NumberOfRecHitsPerSeedVsEtaProfile
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
MonitorElement * NumberOfRecHitsPerTrackCand
uint8_t stopReason() const
double x0() const
x coordinate