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 Member Functions | Private Attributes
TestTrackHits Class Reference

#include <RecoTracker/TestTrackHits/src/TestTrackHits.cc>

Inheritance diagram for TestTrackHits:
edm::EDAnalyzer

Public Member Functions

 TestTrackHits (const edm::ParameterSet &)
 
 ~TestTrackHits ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginRun (edm::Run &run, const edm::EventSetup &)
 
template<unsigned int D>
double computeChi2Increment (MeasurementExtractor, TransientTrackingRecHit::ConstRecHitPointer)
 
double computeChi2Increment (MeasurementExtractor me, TransientTrackingRecHit::ConstRecHitPointer hit)
 
virtual void endJob ()
 
std::pair< LocalPoint,
LocalVector
projectHit (const PSimHit &, const StripGeomDetUnit *, const BoundPlane &)
 

Private Attributes

std::string builderName
 
const edm::ParameterSet conf_
 
TH1F * energyLossRatio
 
TFile * file
 
TH1F * goodbadmerged
 
std::map< std::string, TH1F * > hChi2BadHit
 
std::map< std::string, TH1F * > hChi2DeltaHit
 
std::map< std::string, TH1F * > hChi2GoodHit
 
std::map< std::string, TH1F * > hChi2Increment
 
std::map< std::string, TH1F * > hChi2Increment_mono
 
std::map< std::string, TH1F * > hChi2Increment_stereo
 
std::map< std::string, TH2F * > hChi2IncrementVsEta
 
std::map< std::string, TH1F * > hChi2NSharedHit
 
std::map< std::string, TH1F * > hChi2SharedHit
 
TH2F * hClsize_vs_Chi2
 
TH1F * hClusterSize
 
TH2F * hGoodHit_vs_Chi2
 
TrackerHitAssociatorhitAssociator
 
TH2F * hPixClsize_vs_Chi2
 
TH1F * hPixClusterSize
 
TH1F * hPixSimHitVecSize
 
TH2F * hPrjClsize_vs_Chi2
 
TH1F * hPrjClusterSize
 
TH1F * hPrjSimHitVecSize
 
TH2F * hProcess_vs_Chi2
 
std::map< std::string, TH1F * > hPullGM_X_ts
 
std::map< std::string, TH1F * > hPullGM_X_ts_mono
 
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
 
std::map< std::string, TH1F * > hPullGM_Y_ts
 
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
 
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
 
std::map< std::string, TH1F * > hPullGM_Z_ts
 
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
 
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
 
std::map< std::string, TH1F * > hPullGP_X_rs
 
std::map< std::string, TH1F * > hPullGP_X_rs_mono
 
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
 
std::map< std::string, TH1F * > hPullGP_X_tr
 
std::map< std::string, TH1F * > hPullGP_X_tr_mono
 
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
 
std::map< std::string, TH1F * > hPullGP_X_ts
 
std::map< std::string, TH1F * > hPullGP_X_ts_mono
 
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
 
std::map< std::string, TH1F * > hPullGP_Y_rs
 
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
 
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
 
std::map< std::string, TH1F * > hPullGP_Y_tr
 
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
 
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
 
std::map< std::string, TH1F * > hPullGP_Y_ts
 
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
 
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
 
std::map< std::string, TH1F * > hPullGP_Z_rs
 
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
 
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
 
std::map< std::string, TH1F * > hPullGP_Z_tr
 
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
 
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
 
std::map< std::string, TH1F * > hPullGP_Z_ts
 
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
 
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
 
TH1F * hSimHitVecSize
 
TH2F * hSt1Clsize_vs_Chi2
 
TH1F * hSt1ClusterSize
 
TH1F * hSt1SimHitVecSize
 
TH2F * hSt2Clsize_vs_Chi2
 
TH1F * hSt2ClusterSize
 
TH1F * hSt2SimHitVecSize
 
TH1F * hTotChi2BadHit
 
TH1F * hTotChi2DeltaHit
 
TH1F * hTotChi2GoodHit
 
TH1F * hTotChi2Increment
 
TH1F * hTotChi2NSharedHit
 
TH1F * hTotChi2SharedHit
 
TH1F * mergedPull
 
std::string out
 
TH1F * probXbad
 
TH1F * probXdelta
 
TH1F * probXgood
 
TH1F * probXnoshare
 
TH1F * probXshared
 
TH1F * probYbad
 
TH1F * probYdelta
 
TH1F * probYgood
 
TH1F * probYnoshare
 
TH1F * probYshared
 
std::string propagatorName
 
std::string srcName
 
edm::ESHandle
< TransientTrackingRecHitBuilder
theBuilder
 
edm::ESHandle< TrackerGeometrytheG
 
edm::ESHandle< MagneticFieldtheMF
 
edm::ESHandle< PropagatorthePropagator
 
edm::ESHandle
< TrajectoryStateUpdator
theUpdator
 
std::stringstream title
 
std::string tpName
 
edm::ESHandle
< TrackAssociatorBase
trackAssociator
 
edm::Handle< edm::View
< reco::Track > > 
trackCollectionHandle
 
edm::Handle
< TrackingParticleCollection
trackingParticleCollectionHandle
 
edm::Handle< std::vector
< Trajectory > > 
trajCollectionHandle
 
edm::Handle
< TrajTrackAssociationCollection
trajTrackAssociationCollectionHandle
 
std::string updatorName
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
typedef WorkerT< EDAnalyzerWorkerType
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
- Protected Member Functions inherited from edm::EDAnalyzer
CurrentProcessingContext const * currentContext () const
 

Detailed Description

Description: <one line="" class="" summary>="">

Implementation: <Notes on="" implementation>="">

Definition at line 55 of file TestTrackHits.h.

Constructor & Destructor Documentation

TestTrackHits::TestTrackHits ( const edm::ParameterSet iConfig)
explicit

Definition at line 23 of file TestTrackHits.cc.

References builderName, conf_, edm::ParameterSet::getParameter(), LogTrace, out, propagatorName, srcName, tpName, and updatorName.

23  :
24  conf_(iConfig) {
25  LogTrace("TestTrackHits") << conf_;
26  propagatorName = conf_.getParameter<std::string>("Propagator");
27  builderName = conf_.getParameter<std::string>("TTRHBuilder");
28  srcName = conf_.getParameter<std::string>("src");
29  tpName = conf_.getParameter<std::string>("tpname");
30  updatorName = conf_.getParameter<std::string>("updator");
31  out = conf_.getParameter<std::string>("out");
32 // ParameterSet cuts = conf_.getParameter<ParameterSet>("RecoTracksCuts");
33 // selectRecoTracks = RecoTrackSelector(cuts.getParameter<double>("ptMin"),
34 // cuts.getParameter<double>("minRapidity"),
35 // cuts.getParameter<double>("maxRapidity"),
36 // cuts.getParameter<double>("tip"),
37 // cuts.getParameter<double>("lip"),
38 // cuts.getParameter<int>("minHit"),
39 // cuts.getParameter<double>("maxChi2"));
40 }
std::string out
Definition: TestTrackHits.h:88
T getParameter(std::string const &) const
const edm::ParameterSet conf_
Definition: TestTrackHits.h:80
std::string srcName
Definition: TestTrackHits.h:85
std::string builderName
Definition: TestTrackHits.h:84
std::string tpName
Definition: TestTrackHits.h:86
#define LogTrace(id)
std::string propagatorName
Definition: TestTrackHits.h:83
std::string updatorName
Definition: TestTrackHits.h:87
TestTrackHits::~TestTrackHits ( )

Definition at line 42 of file TestTrackHits.cc.

42 {}

Member Function Documentation

void TestTrackHits::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
privatevirtual

Implements edm::EDAnalyzer.

Definition at line 255 of file TestTrackHits.cc.

References abs, anyDirection, TrackerHitAssociator::associateHit(), TrackerHitAssociator::associateHitId(), SiPixelRawToDigiRegional_cfi::beamSpot, TrajectoryStateOnSurface::cartesianError(), reco::TrackBase::chi2(), heavyFlavorValidationHarvestingSequence_cff::combiner, computeChi2Increment(), prof2calltree::count, GlobalErrorBase< T, ErrorWeightType >::cxx(), GlobalErrorBase< T, ErrorWeightType >::cyy(), GlobalErrorBase< T, ErrorWeightType >::czz(), delta, edm::AssociationMap< Tag >::end(), energyLossRatio, reco::TrackBase::eta(), spr::find(), edm::AssociationMap< Tag >::find(), first, edm::Event::getByLabel(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), goodbadmerged, hChi2BadHit, hChi2DeltaHit, hChi2GoodHit, hChi2Increment, hChi2Increment_mono, hChi2Increment_stereo, hChi2IncrementVsEta, hChi2NSharedHit, hChi2SharedHit, hClsize_vs_Chi2, hClusterSize, hGoodHit_vs_Chi2, hitAssociator, hPixClsize_vs_Chi2, hPixClusterSize, hPixSimHitVecSize, hPrjClsize_vs_Chi2, hPrjClusterSize, hPrjSimHitVecSize, hProcess_vs_Chi2, hPullGM_X_ts, hPullGM_X_ts_mono, hPullGM_X_ts_stereo, hPullGM_Y_ts, hPullGM_Y_ts_mono, hPullGM_Y_ts_stereo, hPullGM_Z_ts, hPullGM_Z_ts_mono, hPullGM_Z_ts_stereo, hPullGP_X_rs, hPullGP_X_rs_mono, hPullGP_X_rs_stereo, hPullGP_X_tr, hPullGP_X_tr_mono, hPullGP_X_tr_stereo, hPullGP_X_ts, hPullGP_X_ts_mono, hPullGP_X_ts_stereo, hPullGP_Y_rs, hPullGP_Y_rs_mono, hPullGP_Y_rs_stereo, hPullGP_Y_tr, hPullGP_Y_tr_mono, hPullGP_Y_tr_stereo, hPullGP_Y_ts, hPullGP_Y_ts_mono, hPullGP_Y_ts_stereo, hPullGP_Z_rs, hPullGP_Z_rs_mono, hPullGP_Z_rs_stereo, hPullGP_Z_tr, hPullGP_Z_tr_mono, hPullGP_Z_tr_stereo, hPullGP_Z_ts, hPullGP_Z_ts_mono, hPullGP_Z_ts_stereo, hSimHitVecSize, hSt1Clsize_vs_Chi2, hSt1ClusterSize, hSt1SimHitVecSize, hSt2Clsize_vs_Chi2, hSt2ClusterSize, hSt2SimHitVecSize, hTotChi2BadHit, hTotChi2DeltaHit, hTotChi2GoodHit, hTotChi2Increment, hTotChi2NSharedHit, hTotChi2SharedHit, i, errorMatrix2Lands_multiChannel::id, TrajectoryStateOnSurface::isValid(), j, findQualityFiles::jj, PSimHit::localPosition(), LogDebug, LogTrace, m, CartesianTrajectoryError::matrix(), mergedPull, PSimHit::momentumAtEntry(), reco::TrackBase::numberOfValidHits(), GloballyPositioned< T >::position(), CartesianTrajectoryError::position(), createTree::pp, SiPixelRecHit::probabilityX(), SiPixelRecHit::probabilityY(), probXbad, probXdelta, probXgood, probXnoshare, probXshared, probYbad, probYdelta, probYgood, probYnoshare, probYshared, PSimHit::processType(), edm::ESHandle< class >::product(), projectHit(), Propagator::propagate(), reco::TrackBase::pt(), alignCSCRings::s, python.multivaluedict::sort(), mathSSE::sqrt(), srcName, evf::utils::state, theBuilder, theMF, title, Surface::toGlobal(), tpName, trackAssociator, trackCollectionHandle, trackingParticleCollectionHandle, trajCollectionHandle, trajTrackAssociationCollectionHandle, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

256 {
257  LogDebug("TestTrackHits") << "new event" ;
263  iEvent.getByLabel("offlineBeamSpot",beamSpot);
264 
265  LogTrace("TestTrackHits") << "Tr collection size=" << trackCollectionHandle->size();
266  LogTrace("TestTrackHits") << "TP collection size=" << trackingParticleCollectionHandle->size();
267 
268  hitAssociator = new TrackerHitAssociator(iEvent);
269 
270  reco::RecoToSimCollection recSimColl=trackAssociator->associateRecoToSim(trackCollectionHandle,
272  &iEvent);
273 
275 
276  int evtHits = 0;
277  int i=0;
278  int yy=0;
279  int yyy=0;
280  for(std::vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it!=trajCollectionHandle->end();it++){
281 
282  LogTrace("TestTrackHits") << "\n*****************new trajectory********************" ;
283  double tchi2 = 0;
284 
285  std::vector<TrajectoryMeasurement> tmColl = it->measurements();
286 
288  reco::TrackRef tmptrack = (*trajTrackAssociationCollectionHandle.product())[traj];
289  edm::RefToBase<reco::Track> track(tmptrack);
290  // if ( !selectRecoTracks( *track,beamSpot.product() ) ) {
291  // LogTrace("TestTrackHits") << "track does not pass quality cuts: skippingtrack #" << ++yyy;
292  // i++;
293  // continue;
294  // }
295 
296  std::vector<std::pair<TrackingParticleRef, double> > tP;
297  if(recSimColl.find(track) != recSimColl.end()){
298  tP = recSimColl[track];
299  if (tP.size()!=0) {
300  edm::LogVerbatim("TestTrackHits") << "reco::Track #" << ++yyy << " with pt=" << track->pt()
301  << " associated with quality:" << tP.begin()->second <<" good track #" << ++yy << " has hits:" << track->numberOfValidHits() << "\n";
302  }
303  }else{
304  edm::LogVerbatim("TestTrackHits") << "reco::Track #" << ++yyy << " with pt=" << track->pt()
305  << " NOT associated to any TrackingParticle" << "\n";
306  i++;
307  continue;
308  }
309  // if(recSimColl.find(track) != recSimColl.end()) {
310  // tP = recSimColl[track];
311  // } else {
312  // LogTrace("TestTrackHits") << "fake track: skipping track " << ++yyy;
313  // continue;//skip fake tracks
314  // }
315  // if (tP.size()==0) {
316  // LogTrace("TestTrackHits") << "fake track: skipping track " << ++yyy;
317  // continue;
318  // }
319  TrackingParticleRef tp = tP.begin()->first;
320  LogTrace("TestTrackHits") << "a tp is associated with fraction=" << tP.begin()->second;
321  //LogTrace("TestTrackHits") << "last tp is associated with fraction=" << (tP.end()-1)->second;
322  std::vector<unsigned int> tpids;
323  for (TrackingParticle::g4t_iterator g4T=tp->g4Track_begin(); g4T!=tp->g4Track_end(); ++g4T) {
324  LogTrace("TestTrackHits") << "tp id=" << g4T->trackId();
325  tpids.push_back(g4T->trackId());
326  }
327 
328  //LogTrace("TestTrackHits") << "Analyzing hits of track number " << ++yyy << " good track number " << ++yy;
329  int pp = 0;
330  for (std::vector<TrajectoryMeasurement>::iterator tm=tmColl.begin();tm!=tmColl.end();++tm){
331 
332  tchi2+=tm->estimate();
333 
334  LogTrace("TestTrackHits") << "+++++++++++++++++new hit+++++++++++++++++" ;
335  CTTRHp rhit = tm->recHit();
336  //TSOS state = tm->backwardPredictedState();
337  //TSOS state = tm->forwardPredictedState();
338  TSOS state = combiner(tm->backwardPredictedState(), tm->forwardPredictedState());
339 
340  if (rhit->isValid()==0 && rhit->det()!=0) continue;
341  evtHits++;
342  LogTrace("TestTrackHits") << "valid hit #" << ++pp << "of hits=" << track->numberOfValidHits();
343 
344  int subdetId = rhit->det()->geographicalId().subdetId();
345  int layerId = 0;
346  DetId id = rhit->det()->geographicalId();
347  if (id.subdetId()==3) layerId = ((TIBDetId)(id)).layer();
348  if (id.subdetId()==5) layerId = ((TOBDetId)(id)).layer();
349  if (id.subdetId()==1) layerId = ((PXBDetId)(id)).layer();
350  if (id.subdetId()==4) layerId = ((TIDDetId)(id)).wheel();
351  if (id.subdetId()==6) layerId = ((TECDetId)(id)).wheel();
352  if (id.subdetId()==2) layerId = ((PXFDetId)(id)).disk();
353  LogTrace("TestTrackHits") << "subdetId=" << subdetId << " layerId=" << layerId ;
354 
355  const Surface * surf = rhit->surface();
356  if (surf==0) continue;
357 
358  double energyLoss_ = 0.;
359  unsigned int monoId = 0;
360  std::vector<double> energyLossM;
361  std::vector<double> energyLossS;
362  std::vector<PSimHit> assSimHits = hitAssociator->associateHit(*(rhit)->hit());
363  unsigned int simhitvecsize = assSimHits.size();
364  if (simhitvecsize==0) continue;
365  PSimHit shit;
366  std::vector<unsigned int> trackIds;
367  energyLossS.clear();
368  energyLossM.clear();
369  for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++){
370  unsigned int tId = m->trackId();
371  if (find(trackIds.begin(),trackIds.end(),tId)==trackIds.end()) trackIds.push_back(tId);
372  if (m->energyLoss()>energyLoss_) {
373  shit=*m;
374  energyLoss_ = m->energyLoss();
375  }
376  if (dynamic_cast<const SiStripMatchedRecHit2D*>(rhit->hit())) {
377  if (monoId==0) monoId = m->detUnitId();
378  if (monoId == m->detUnitId()){
379  energyLossM.push_back(m->energyLoss());
380  }
381  else {
382  energyLossS.push_back(m->energyLoss());
383  }
384  //std::cout << "detUnitId=" << m->detUnitId() << " trackId=" << m->trackId() << " energyLoss=" << m->energyLoss() << std::endl;
385  } else {
386  energyLossM.push_back(m->energyLoss());
387  }
388  }
389  //double delta = 99999;
390  //LocalPoint rhitLPv = rhit->localPosition();
391  //vector<PSimHit> assSimHits = hitAssociator->associateHit(*(rhit)->hit());
392  //unsigned int simhitvecsize = assSimHits.size();
393  //if (simhitvecsize==0) continue;
394  //PSimHit shit;
395  //for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++){
396  // if ((m->localPosition()-rhitLPv).mag()<delta) {
397  // shit=*m;
398  // delta = (m->localPosition()-rhitLPv).mag();
399  // }
400  //}
401 
402  //plot chi2 increment
403  double chi2increment = tm->estimate();
404  LogTrace("TestTrackHits") << "tm->estimate()=" << tm->estimate();
405  title.str("");
406  title << "Chi2Increment_" << subdetId << "-" << layerId;
407  hChi2Increment[title.str()]->Fill( chi2increment );
408  title.str("");
409  title << "Chi2IncrementVsEta_" << subdetId << "-" << layerId;
410  hChi2IncrementVsEta[title.str()]->Fill( track->eta(), chi2increment );
411  hTotChi2Increment->Fill( chi2increment );
412  hProcess_vs_Chi2->Fill( chi2increment, shit.processType() );
413 
414  int clustersize = 0;
415  bool mergedhit = false;
416  if (dynamic_cast<const SiPixelRecHit*>(rhit->hit())){
417  clustersize = ((const SiPixelRecHit*)(rhit->hit()))->cluster()->size() ;
418  hPixClsize_vs_Chi2->Fill(chi2increment, clustersize);
419  hPixClusterSize->Fill(clustersize);
420  hPixSimHitVecSize->Fill(simhitvecsize);
421  if (simhitvecsize>1) mergedhit = true;
422  }
423  else if (dynamic_cast<const SiStripRecHit2D*>(rhit->hit())){
424  clustersize = ((const SiStripRecHit2D*)(rhit->hit()))->cluster()->amplitudes().size() ;
425  hSt1Clsize_vs_Chi2->Fill(chi2increment, clustersize);
426  hSt1ClusterSize->Fill(clustersize);
427  hSt1SimHitVecSize->Fill(simhitvecsize);
428  if (simhitvecsize>1) mergedhit = true;
429  }
430  else if (dynamic_cast<const SiStripMatchedRecHit2D*>(rhit->hit())){
431  int clsize1 = ((const SiStripMatchedRecHit2D*)(rhit->hit()))->monoCluster().amplitudes().size();
432  int clsize2 = ((const SiStripMatchedRecHit2D*)(rhit->hit()))->stereoCluster().amplitudes().size();
433  if (clsize1>clsize2) clustersize = clsize1;
434  else clustersize = clsize2;
435  hSt2Clsize_vs_Chi2->Fill(chi2increment, clustersize);
436  hSt2ClusterSize->Fill(clustersize);
437  hSt2SimHitVecSize->Fill(simhitvecsize);
438  if (simhitvecsize>2) mergedhit = true;
439  }
440  else if (dynamic_cast<const ProjectedSiStripRecHit2D*>(rhit->hit())){
441  clustersize = ((const ProjectedSiStripRecHit2D*)(rhit->hit()))->originalHit().cluster()->amplitudes().size();
442  hPrjClsize_vs_Chi2->Fill(chi2increment, clustersize);
443  hPrjClusterSize->Fill(clustersize);
444  hPrjSimHitVecSize->Fill(simhitvecsize);
445  if (simhitvecsize>1) mergedhit = true;
446  }
447  hClsize_vs_Chi2->Fill( chi2increment, clustersize);
448  hClusterSize->Fill(clustersize);
449  hSimHitVecSize->Fill(simhitvecsize);
450 
451  // if (dynamic_cast<const SiPixelRecHit*>(rhit->hit()))
452  // hClsize_vs_Chi2->Fill( chi2increment, ((const SiPixelRecHit*)(rhit->hit()))->cluster()->size() );
453  // if (dynamic_cast<const SiStripRecHit2D*>(rhit->hit()))
454  // hClsize_vs_Chi2->Fill( chi2increment, ((const SiStripRecHit2D*)(rhit->hit()))->cluster()->amplitudes().size() );
455 
456  std::vector<SimHitIdpr> simTrackIds = hitAssociator->associateHitId(*(rhit)->hit());
457  bool goodhit = false;
458  for(size_t j=0; j<simTrackIds.size(); j++){
459  LogTrace("TestTrackHits") << "hit id=" << simTrackIds[j].first;
460  for (size_t jj=0; jj<tpids.size(); jj++){
461  if (simTrackIds[j].first == tpids[jj]) goodhit = true;
462  break;
463  }
464  }
465  bool shared = true;
466  bool ioniOnly = true;
467  const SiPixelRecHit* pix = dynamic_cast<const SiPixelRecHit*>(rhit->hit());
468  if (goodhit) {
469  if (energyLossM.size()>1&&energyLossS.size()<=1) {
470  sort(energyLossM.begin(),energyLossM.end(),greater<double>());
471  energyLossRatio->Fill(energyLossM[1]/energyLossM[0]);
472  }
473  else if (energyLossS.size()>1&&energyLossM.size()<=1) {
474  sort(energyLossS.begin(),energyLossS.end(),greater<double>());
475  energyLossRatio->Fill(energyLossS[1]/energyLossS[0]);
476  }
477  else if (energyLossS.size()>1&&energyLossM.size()>1) {
478  sort(energyLossM.begin(),energyLossM.end(),greater<double>());
479  sort(energyLossS.begin(),energyLossS.end(),greater<double>());
480  energyLossM[1]/energyLossM[0] > energyLossS[1]/energyLossS[0]
481  ? energyLossRatio->Fill(energyLossM[1]/energyLossM[0])
482  : energyLossRatio->Fill(energyLossS[1]/energyLossS[0]);
483  }
484  if ( mergedhit ) {
485  //not optimized for matched hits
486  LogVerbatim("TestTrackHits") << "MERGED HIT" << std::endl;
487  unsigned int idc = 0;
488  for (size_t jj=0; jj<tpids.size(); jj++){
489  idc += std::count(trackIds.begin(),trackIds.end(),tpids[jj]);
490  }
491  if (idc==trackIds.size()) {
492  shared = false;
493  }
494  for(std::vector<PSimHit>::const_iterator m=assSimHits.begin()+1; m<assSimHits.end(); m++){
495  if ((m->processType()!=7&&m->processType()!=8&&m->processType()!=9)&&abs(m->particleType())!=11){
496  ioniOnly = false;
497  break;
498  }
499  }
500  if (ioniOnly&&!shared) {
501  title.str("");
502  title << "Chi2DeltaHit_" << subdetId << "-" << layerId;
503  hChi2DeltaHit[title.str()]->Fill( chi2increment );
504  hTotChi2DeltaHit->Fill( chi2increment );
505  if (pix) {
506  probXdelta->Fill(pix->probabilityX());
507  probYdelta->Fill(pix->probabilityY());
508  }
509  } else if(!ioniOnly&&!shared) {
510  title.str("");
511  title << "Chi2NSharedHit_" << subdetId << "-" << layerId;
512  hChi2NSharedHit[title.str()]->Fill( chi2increment );
513  hTotChi2NSharedHit->Fill( chi2increment );
514  if (pix) {
515  probXnoshare->Fill(pix->probabilityX());
516  probYnoshare->Fill(pix->probabilityY());
517  }
518  } else {
519  title.str("");
520  title << "Chi2SharedHit_" << subdetId << "-" << layerId;
521  hChi2SharedHit[title.str()]->Fill( chi2increment );
522  hTotChi2SharedHit->Fill( chi2increment );
523  if (pix) {
524  probXshared->Fill(pix->probabilityX());
525  probYshared->Fill(pix->probabilityY());
526  }
527  }
528 
529  for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++) {
530  unsigned int tId = m->trackId();
531  LogVerbatim("TestTrackHits") << "component with id=" << tId << " eLoss=" << m->energyLoss() << " pType=" << m->processType();
532  if (find(tpids.begin(),tpids.end(),tId)==tpids.end()) continue;
533  if (m->processType()==2) {
534  GlobalPoint gpr = rhit->globalPosition();
535  AlgebraicSymMatrix33 ger = rhit->globalPositionError().matrix();
536  GlobalPoint gps = surf->toGlobal(m->localPosition());
537  LogVerbatim("TestTrackHits") << gpr << " " << gps << " " << ger;
538  ROOT::Math::SVector<double,3> delta;
539  delta[0]=gpr.x()-gps.x();
540  delta[1]=gpr.y()-gps.y();
541  delta[2]=gpr.z()-gps.z();
542  LogVerbatim("TestTrackHits") << delta << " " << ger ;
543  double mpull = sqrt(delta[0]*delta[0]/ger[0][0]+delta[1]*delta[1]/ger[1][1]+delta[2]*delta[2]/ger[2][2]);
544  LogVerbatim("TestTrackHits") << "hit pull=" << mpull;//ger.similarity(delta);
545  mergedPull->Fill(mpull);
546  break;
547  }
548  }
549  } else {
550  LogVerbatim("TestTrackHits") << "good hit" ;
551  title.str("");
552  title << "Chi2GoodHit_" << subdetId << "-" << layerId;
553  hChi2GoodHit[title.str()]->Fill( chi2increment );
554  hTotChi2GoodHit->Fill( chi2increment );
555  if (pix) {
556  probXgood->Fill(pix->probabilityX());
557  probYgood->Fill(pix->probabilityY());
558  }
559  }
560  } else {
561  LogVerbatim("TestTrackHits") << "bad hit" ;
562  title.str("");
563  title << "Chi2BadHit_" << subdetId << "-" << layerId;
564  hChi2BadHit[title.str()]->Fill( chi2increment );
565  hTotChi2BadHit->Fill( chi2increment );
566  goodbadmerged->Fill(2);
567  if (pix) {
568  probXbad->Fill(pix->probabilityX());
569  probYbad->Fill(pix->probabilityY());
570  }
571  }
572  hGoodHit_vs_Chi2->Fill(chi2increment,goodhit);
573 
574  LocalVector shitLMom;
575  LocalPoint shitLPos;
576  if (dynamic_cast<const SiStripMatchedRecHit2D*>(rhit->hit())) {
577  if (simhitvecsize>2 && goodhit) {
578  if (ioniOnly&&!shared) goodbadmerged->Fill(3);
579  else if(!ioniOnly&&!shared) goodbadmerged->Fill(4);
580  else goodbadmerged->Fill(5);
581  }
582  else if (goodhit) goodbadmerged->Fill(1);
583  double rechitmatchedx = rhit->localPosition().x();
584  double rechitmatchedy = rhit->localPosition().y();
585  double mindist = 999999;
586  float distx, disty;
587  std::pair<LocalPoint,LocalVector> closestPair;
588  const StripGeomDetUnit* stripDet =(StripGeomDetUnit*) ((const GluedGeomDet *)(rhit)->det())->stereoDet();
589  const BoundPlane& plane = (rhit)->det()->surface();
590  for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++){
591  //project simhit;
592  std::pair<LocalPoint,LocalVector> hitPair = projectHit((*m),stripDet,plane);
593  distx = fabs(rechitmatchedx - hitPair.first.x());
594  disty = fabs(rechitmatchedy - hitPair.first.y());
595  double dist = distx*distx+disty*disty;
596  if(sqrt(dist)<mindist){
597  mindist = dist;
598  closestPair = hitPair;
599  }
600  }
601  shitLPos = closestPair.first;
602  shitLMom = closestPair.second;
603  } else {
604  if (simhitvecsize>1 && goodhit) {
605  if (ioniOnly&&!shared) goodbadmerged->Fill(3);
606  else if(!ioniOnly&&!shared) goodbadmerged->Fill(4);
607  else goodbadmerged->Fill(5);
608  }
609  else if (goodhit) goodbadmerged->Fill(1);
610  shitLPos = shit.localPosition();
611  shitLMom = shit.momentumAtEntry();
612  }
613  GlobalVector shitGMom = surf->toGlobal(shitLMom);
614  GlobalPoint shitGPos = surf->toGlobal(shitLPos);
615 
616  GlobalVector tsosGMom = state.globalMomentum();
617  GlobalError tsosGMEr(state.cartesianError().matrix().Sub<AlgebraicSymMatrix33>(3,3));
618  GlobalPoint tsosGPos = state.globalPosition();
619  GlobalError tsosGPEr = state.cartesianError().position();
620 
621  GlobalPoint rhitGPos = (rhit)->globalPosition();
622  GlobalError rhitGPEr = (rhit)->globalPositionError();
623 
624  LogVerbatim("TestTrackHits") << "assSimHits.size()=" << assSimHits.size() ;
625  LogVerbatim("TestTrackHits") << "tsos globalPos =" << tsosGPos ;
626  LogVerbatim("TestTrackHits") << "sim hit globalPos=" << shitGPos ;
627  LogVerbatim("TestTrackHits") << "rec hit globalPos=" << rhitGPos ;
628  LogVerbatim("TestTrackHits") << "geographicalId =" << rhit->det()->geographicalId().rawId() ;
629  LogVerbatim("TestTrackHits") << "surface position =" << surf->position() ;
630 
631 # if 0
632  if (rhit->detUnit()) LogTrace("TestTrackHits") << "rhit->detUnit()->geographicalId()="
633  << rhit->detUnit()->geographicalId().rawId() ;
634  LogTrace("TestTrackHits") << "rhit->det()->surface().position()="
635  << rhit->det()->surface().position() ;
636  if (rhit->detUnit()) LogTrace("TestTrackHits") << "rhit->detUnit()->surface().position()="
637  << rhit->detUnit()->surface().position() ;
638  LogTrace("TestTrackHits") << "rhit->det()->position()=" << rhit->det()->position() ;
639  if (rhit->detUnit()) LogTrace("TestTrackHits") << "rhit->detUnit()->position()="
640  << rhit->detUnit()->position() ;
641  LogTrace("TestTrackHits") << "rhit->det()->surface().bounds().length()="
642  << rhit->det()->surface().bounds().length() ;
643  if (rhit->detUnit()) LogTrace("TestTrackHits") << "rhit->detUnit()->surface().bounds().length()="
644  << rhit->detUnit()->surface().bounds().length() ;
645  LogTrace("TestTrackHits") << "rhit->det()->surface().bounds().width()="
646  << rhit->det()->surface().bounds().width() ;
647  if (rhit->detUnit()) LogTrace("TestTrackHits") << "rhit->detUnit()->surface().bounds().width()="
648  << rhit->detUnit()->surface().bounds().width() ;
649  LogTrace("TestTrackHits") << "rhit->det()->surface().bounds().thickness()="
650  << rhit->det()->surface().bounds().thickness() ;
651  if (rhit->detUnit()) LogTrace("TestTrackHits") << "rhit->detUnit()->surface().bounds().thickness()="
652  << rhit->detUnit()->surface().bounds().thickness() ;
653 #endif
654 
655  double pullGPX_rs = (rhitGPos.x()-shitGPos.x())/sqrt(rhitGPEr.cxx());
656  double pullGPY_rs = (rhitGPos.y()-shitGPos.y())/sqrt(rhitGPEr.cyy());
657  double pullGPZ_rs = (rhitGPos.z()-shitGPos.z())/sqrt(rhitGPEr.czz());
658  //double pullGPX_rs = (rhitGPos.x()-shitGPos.x());
659  //double pullGPY_rs = (rhitGPos.y()-shitGPos.y());
660  //double pullGPZ_rs = (rhitGPos.z()-shitGPos.z());
661 
662  LogTrace("TestTrackHits") << "rs" ;
663 
664  title.str("");
665  title << "PullGP_X_" << subdetId << "-" << layerId << "_rs";
666  hPullGP_X_rs[title.str()]->Fill( pullGPX_rs );
667  title.str("");
668  title << "PullGP_Y_" << subdetId << "-" << layerId << "_rs";
669  hPullGP_Y_rs[title.str()]->Fill( pullGPY_rs );
670  title.str("");
671  title << "PullGP_Z_" << subdetId << "-" << layerId << "_rs";
672  hPullGP_Z_rs[title.str()]->Fill( pullGPZ_rs );
673 
674  double pullGPX_tr = (tsosGPos.x()-rhitGPos.x())/sqrt(tsosGPEr.cxx()+rhitGPEr.cxx());
675  double pullGPY_tr = (tsosGPos.y()-rhitGPos.y())/sqrt(tsosGPEr.cyy()+rhitGPEr.cyy());
676  double pullGPZ_tr = (tsosGPos.z()-rhitGPos.z())/sqrt(tsosGPEr.czz()+rhitGPEr.czz());
677  //double pullGPX_tr = (tsosGPos.x()-rhitGPos.x());
678  //double pullGPY_tr = (tsosGPos.y()-rhitGPos.y());
679  //double pullGPZ_tr = (tsosGPos.z()-rhitGPos.z());
680 
681  LogTrace("TestTrackHits") << "tr" ;
682 
683  title.str("");
684  title << "PullGP_X_" << subdetId << "-" << layerId << "_tr";
685  hPullGP_X_tr[title.str()]->Fill( pullGPX_tr );
686  title.str("");
687  title << "PullGP_Y_" << subdetId << "-" << layerId << "_tr";
688  hPullGP_Y_tr[title.str()]->Fill( pullGPY_tr );
689  title.str("");
690  title << "PullGP_Z_" << subdetId << "-" << layerId << "_tr";
691  hPullGP_Z_tr[title.str()]->Fill( pullGPZ_tr );
692 
693  double pullGPX_ts = (tsosGPos.x()-shitGPos.x())/sqrt(tsosGPEr.cxx());
694  double pullGPY_ts = (tsosGPos.y()-shitGPos.y())/sqrt(tsosGPEr.cyy());
695  double pullGPZ_ts = (tsosGPos.z()-shitGPos.z())/sqrt(tsosGPEr.czz());
696  //double pullGPX_ts = (tsosGPos.x()-shitGPos.x());
697  //double pullGPY_ts = (tsosGPos.y()-shitGPos.y());
698  //double pullGPZ_ts = (tsosGPos.z()-shitGPos.z());
699 
700  LogTrace("TestTrackHits") << "ts1" ;
701 
702  title.str("");
703  title << "PullGP_X_" << subdetId << "-" << layerId << "_ts";
704  hPullGP_X_ts[title.str()]->Fill( pullGPX_ts );
705  title.str("");
706  title << "PullGP_Y_" << subdetId << "-" << layerId << "_ts";
707  hPullGP_Y_ts[title.str()]->Fill( pullGPY_ts );
708  title.str("");
709  title << "PullGP_Z_" << subdetId << "-" << layerId << "_ts";
710  hPullGP_Z_ts[title.str()]->Fill( pullGPZ_ts );
711 
712  double pullGMX_ts = (tsosGMom.x()-shitGMom.x())/sqrt(tsosGMEr.cxx());
713  double pullGMY_ts = (tsosGMom.y()-shitGMom.y())/sqrt(tsosGMEr.cyy());
714  double pullGMZ_ts = (tsosGMom.z()-shitGMom.z())/sqrt(tsosGMEr.czz());
715  //double pullGMX_ts = (tsosGMom.x()-shitGMom.x());
716  //double pullGMY_ts = (tsosGMom.y()-shitGMom.y());
717  //double pullGMZ_ts = (tsosGMom.z()-shitGMom.z());
718 
719  LogTrace("TestTrackHits") << "ts2" ;
720 
721  title.str("");
722  title << "PullGM_X_" << subdetId << "-" << layerId << "_ts";
723  hPullGM_X_ts[title.str()]->Fill( pullGMX_ts );
724  title.str("");
725  title << "PullGM_Y_" << subdetId << "-" << layerId << "_ts";
726  hPullGM_Y_ts[title.str()]->Fill( pullGMY_ts );
727  title.str("");
728  title << "PullGM_Z_" << subdetId << "-" << layerId << "_ts";
729  hPullGM_Z_ts[title.str()]->Fill( pullGMZ_ts );
730  if (dynamic_cast<const SiStripMatchedRecHit2D*>(rhit->hit())) {
731  Propagator* thePropagatorAnyDir = new PropagatorWithMaterial(anyDirection,0.105,theMF.product(),1.6);
732  //mono
733  LogTrace("TestTrackHits") << "MONO HIT" ;
734  auto m = dynamic_cast<const SiStripMatchedRecHit2D*>(rhit->hit())->monoHit();
735  CTTRHp tMonoHit = theBuilder->build(&m);
736  if (tMonoHit==0) continue;
737  vector<PSimHit> assMonoSimHits = hitAssociator->associateHit(*tMonoHit->hit());
738  if (assMonoSimHits.size()==0) continue;
739  const PSimHit sMonoHit = *(assMonoSimHits.begin());
740  const Surface * monoSurf = &( tMonoHit->det()->surface() );
741  if (monoSurf==0) continue;
742  TSOS monoState = thePropagatorAnyDir->propagate(state,*monoSurf);
743  if (monoState.isValid()==0) continue;
744 
745  LocalVector monoShitLMom = sMonoHit.momentumAtEntry();
746  GlobalVector monoShitGMom = monoSurf->toGlobal(monoShitLMom);
747  LocalPoint monoShitLPos = sMonoHit.localPosition();
748  GlobalPoint monoShitGPos = monoSurf->toGlobal(monoShitLPos);
749 
750  //LogTrace("TestTrackHits") << "assMonoSimHits.size()=" << assMonoSimHits.size() ;
751  //LogTrace("TestTrackHits") << "mono shit=" << monoShitGPos ;
752 
753  GlobalVector monoTsosGMom = monoState.globalMomentum();
754  GlobalError monoTsosGMEr(monoState.cartesianError().matrix().Sub<AlgebraicSymMatrix33>(3,3));
755  GlobalPoint monoTsosGPos = monoState.globalPosition();
756  GlobalError monoTsosGPEr = monoState.cartesianError().position();
757 
758  GlobalPoint monoRhitGPos = tMonoHit->globalPosition();
759  GlobalError monoRhitGPEr = tMonoHit->globalPositionError();
760 
761  double pullGPX_rs_mono = (monoRhitGPos.x()-monoShitGPos.x())/sqrt(monoRhitGPEr.cxx());
762  double pullGPY_rs_mono = (monoRhitGPos.y()-monoShitGPos.y())/sqrt(monoRhitGPEr.cyy());
763  double pullGPZ_rs_mono = (monoRhitGPos.z()-monoShitGPos.z())/sqrt(monoRhitGPEr.czz());
764  //double pullGPX_rs_mono = (monoRhitGPos.x()-monoShitGPos.x());
765  //double pullGPY_rs_mono = (monoRhitGPos.y()-monoShitGPos.y());
766  //double pullGPZ_rs_mono = (monoRhitGPos.z()-monoShitGPos.z());
767 
768  MeasurementExtractor meMo(monoState);
769  double chi2mono = computeChi2Increment(meMo,tMonoHit);
770 
771  title.str("");
772  title << "Chi2Increment_mono_" << subdetId << "-" << layerId ;
773  hChi2Increment_mono[title.str()]->Fill(chi2mono);
774 
775  title.str("");
776  title << "PullGP_X_" << subdetId << "-" << layerId << "_rs_mono";
777  hPullGP_X_rs_mono[title.str()]->Fill( pullGPX_rs_mono );
778  title.str("");
779  title << "PullGP_Y_" << subdetId << "-" << layerId << "_rs_mono";
780  hPullGP_Y_rs_mono[title.str()]->Fill( pullGPY_rs_mono );
781  title.str("");
782  title << "PullGP_Z_" << subdetId << "-" << layerId << "_rs_mono";
783  hPullGP_Z_rs_mono[title.str()]->Fill( pullGPZ_rs_mono );
784 
785  double pullGPX_tr_mono = (monoTsosGPos.x()-monoRhitGPos.x())/sqrt(monoTsosGPEr.cxx()+monoRhitGPEr.cxx());
786  double pullGPY_tr_mono = (monoTsosGPos.y()-monoRhitGPos.y())/sqrt(monoTsosGPEr.cyy()+monoRhitGPEr.cyy());
787  double pullGPZ_tr_mono = (monoTsosGPos.z()-monoRhitGPos.z())/sqrt(monoTsosGPEr.czz()+monoRhitGPEr.czz());
788  //double pullGPX_tr_mono = (monoTsosGPos.x()-monoRhitGPos.x());
789  //double pullGPY_tr_mono = (monoTsosGPos.y()-monoRhitGPos.y());
790  //double pullGPZ_tr_mono = (monoTsosGPos.z()-monoRhitGPos.z());
791 
792  title.str("");
793  title << "PullGP_X_" << subdetId << "-" << layerId << "_tr_mono";
794  hPullGP_X_tr_mono[title.str()]->Fill( pullGPX_tr_mono );
795  title.str("");
796  title << "PullGP_Y_" << subdetId << "-" << layerId << "_tr_mono";
797  hPullGP_Y_tr_mono[title.str()]->Fill( pullGPY_tr_mono );
798  title.str("");
799  title << "PullGP_Z_" << subdetId << "-" << layerId << "_tr_mono";
800  hPullGP_Z_tr_mono[title.str()]->Fill( pullGPZ_tr_mono );
801 
802  double pullGPX_ts_mono = (monoTsosGPos.x()-monoShitGPos.x())/sqrt(monoTsosGPEr.cxx());
803  double pullGPY_ts_mono = (monoTsosGPos.y()-monoShitGPos.y())/sqrt(monoTsosGPEr.cyy());
804  double pullGPZ_ts_mono = (monoTsosGPos.z()-monoShitGPos.z())/sqrt(monoTsosGPEr.czz());
805  //double pullGPX_ts_mono = (monoTsosGPos.x()-monoShitGPos.x());
806  //double pullGPY_ts_mono = (monoTsosGPos.y()-monoShitGPos.y());
807  //double pullGPZ_ts_mono = (monoTsosGPos.z()-monoShitGPos.z());
808 
809  title.str("");
810  title << "PullGP_X_" << subdetId << "-" << layerId << "_ts_mono";
811  hPullGP_X_ts_mono[title.str()]->Fill( pullGPX_ts_mono );
812  title.str("");
813  title << "PullGP_Y_" << subdetId << "-" << layerId << "_ts_mono";
814  hPullGP_Y_ts_mono[title.str()]->Fill( pullGPY_ts_mono );
815  title.str("");
816  title << "PullGP_Z_" << subdetId << "-" << layerId << "_ts_mono";
817  hPullGP_Z_ts_mono[title.str()]->Fill( pullGPZ_ts_mono );
818 
819  double pullGMX_ts_mono = (monoTsosGMom.x()-monoShitGMom.x())/sqrt(monoTsosGMEr.cxx());
820  double pullGMY_ts_mono = (monoTsosGMom.y()-monoShitGMom.y())/sqrt(monoTsosGMEr.cyy());
821  double pullGMZ_ts_mono = (monoTsosGMom.z()-monoShitGMom.z())/sqrt(monoTsosGMEr.czz());
822  //double pullGMX_ts_mono = (monoTsosGMom.x()-monoShitGMom.x());
823  //double pullGMY_ts_mono = (monoTsosGMom.y()-monoShitGMom.y());
824  //double pullGMZ_ts_mono = (monoTsosGMom.z()-monoShitGMom.z());
825 
826  title.str("");
827  title << "PullGM_X_" << subdetId << "-" << layerId << "_ts_mono";
828  hPullGM_X_ts_mono[title.str()]->Fill( pullGMX_ts_mono );
829  title.str("");
830  title << "PullGM_Y_" << subdetId << "-" << layerId << "_ts_mono";
831  hPullGM_Y_ts_mono[title.str()]->Fill( pullGMY_ts_mono );
832  title.str("");
833  title << "PullGM_Z_" << subdetId << "-" << layerId << "_ts_mono";
834  hPullGM_Z_ts_mono[title.str()]->Fill( pullGMZ_ts_mono );
835 
836  //stereo
837  LogTrace("TestTrackHits") << "STEREO HIT" ;
838  auto s = dynamic_cast<const SiStripMatchedRecHit2D*>(rhit->hit())->stereoHit();
839  CTTRHp tStereoHit = theBuilder->build(&s);
840  if (tStereoHit==0) continue;
841  vector<PSimHit> assStereoSimHits = hitAssociator->associateHit(*tStereoHit->hit());
842  if (assStereoSimHits.size()==0) continue;
843  const PSimHit sStereoHit = *(assStereoSimHits.begin());
844  const Surface * stereoSurf = &( tStereoHit->det()->surface() );
845  if (stereoSurf==0) continue;
846  TSOS stereoState = thePropagatorAnyDir->propagate(state,*stereoSurf);
847  if (stereoState.isValid()==0) continue;
848 
849  LocalVector stereoShitLMom = sStereoHit.momentumAtEntry();
850  GlobalVector stereoShitGMom = stereoSurf->toGlobal(stereoShitLMom);
851  LocalPoint stereoShitLPos = sStereoHit.localPosition();
852  GlobalPoint stereoShitGPos = stereoSurf->toGlobal(stereoShitLPos);
853 
854  //LogTrace("TestTrackHits") << "assStereoSimHits.size()=" << assStereoSimHits.size() ;
855  //LogTrace("TestTrackHits") << "stereo shit=" << stereoShitGPos ;
856 
857  GlobalVector stereoTsosGMom = stereoState.globalMomentum();
858  GlobalError stereoTsosGMEr(stereoState.cartesianError().matrix().Sub<AlgebraicSymMatrix33>(3,3));
859  GlobalPoint stereoTsosGPos = stereoState.globalPosition();
860  GlobalError stereoTsosGPEr = stereoState.cartesianError().position();
861 
862  GlobalPoint stereoRhitGPos = tStereoHit->globalPosition();
863  GlobalError stereoRhitGPEr = tStereoHit->globalPositionError();
864 
865  MeasurementExtractor meSt(stereoState);
866  double chi2stereo = computeChi2Increment(meSt,tStereoHit);
867 
868  title.str("");
869  title << "Chi2Increment_stereo_" << subdetId << "-" << layerId ;
870  hChi2Increment_stereo[title.str()]->Fill(chi2stereo);
871 
872  double pullGPX_rs_stereo = (stereoRhitGPos.x()-stereoShitGPos.x())/sqrt(stereoRhitGPEr.cxx());
873  double pullGPY_rs_stereo = (stereoRhitGPos.y()-stereoShitGPos.y())/sqrt(stereoRhitGPEr.cyy());
874  double pullGPZ_rs_stereo = (stereoRhitGPos.z()-stereoShitGPos.z())/sqrt(stereoRhitGPEr.czz());
875  // double pullGPX_rs_stereo = (stereoRhitGPos.x()-stereoShitGPos.x())/*/sqrt(stereoRhitGPEr.cxx())*/;
876  // double pullGPY_rs_stereo = (stereoRhitGPos.y()-stereoShitGPos.y())/*/sqrt(stereoRhitGPEr.cyy())*/;
877  // double pullGPZ_rs_stereo = (stereoRhitGPos.z()-stereoShitGPos.z())/*/sqrt(stereoRhitGPEr.czz())*/;
878 
879  title.str("");
880  title << "PullGP_X_" << subdetId << "-" << layerId << "_rs_stereo";
881  hPullGP_X_rs_stereo[title.str()]->Fill( pullGPX_rs_stereo );
882  title.str("");
883  title << "PullGP_Y_" << subdetId << "-" << layerId << "_rs_stereo";
884  hPullGP_Y_rs_stereo[title.str()]->Fill( pullGPY_rs_stereo );
885  title.str("");
886  title << "PullGP_Z_" << subdetId << "-" << layerId << "_rs_stereo";
887  hPullGP_Z_rs_stereo[title.str()]->Fill( pullGPZ_rs_stereo );
888 
889  double pullGPX_tr_stereo = (stereoTsosGPos.x()-stereoRhitGPos.x())/sqrt(stereoTsosGPEr.cxx()+stereoRhitGPEr.cxx());
890  double pullGPY_tr_stereo = (stereoTsosGPos.y()-stereoRhitGPos.y())/sqrt(stereoTsosGPEr.cyy()+stereoRhitGPEr.cyy());
891  double pullGPZ_tr_stereo = (stereoTsosGPos.z()-stereoRhitGPos.z())/sqrt(stereoTsosGPEr.czz()+stereoRhitGPEr.czz());
892  //double pullGPX_tr_stereo = (stereoTsosGPos.x()-stereoRhitGPos.x());
893  //double pullGPY_tr_stereo = (stereoTsosGPos.y()-stereoRhitGPos.y());
894  //double pullGPZ_tr_stereo = (stereoTsosGPos.z()-stereoRhitGPos.z());
895 
896  title.str("");
897  title << "PullGP_X_" << subdetId << "-" << layerId << "_tr_stereo";
898  hPullGP_X_tr_stereo[title.str()]->Fill( pullGPX_tr_stereo );
899  title.str("");
900  title << "PullGP_Y_" << subdetId << "-" << layerId << "_tr_stereo";
901  hPullGP_Y_tr_stereo[title.str()]->Fill( pullGPY_tr_stereo );
902  title.str("");
903  title << "PullGP_Z_" << subdetId << "-" << layerId << "_tr_stereo";
904  hPullGP_Z_tr_stereo[title.str()]->Fill( pullGPZ_tr_stereo );
905 
906  double pullGPX_ts_stereo = (stereoTsosGPos.x()-stereoShitGPos.x())/sqrt(stereoTsosGPEr.cxx());
907  double pullGPY_ts_stereo = (stereoTsosGPos.y()-stereoShitGPos.y())/sqrt(stereoTsosGPEr.cyy());
908  double pullGPZ_ts_stereo = (stereoTsosGPos.z()-stereoShitGPos.z())/sqrt(stereoTsosGPEr.czz());
909  //double pullGPX_ts_stereo = (stereoTsosGPos.x()-stereoShitGPos.x());
910  //double pullGPY_ts_stereo = (stereoTsosGPos.y()-stereoShitGPos.y());
911  //double pullGPZ_ts_stereo = (stereoTsosGPos.z()-stereoShitGPos.z());
912 
913  title.str("");
914  title << "PullGP_X_" << subdetId << "-" << layerId << "_ts_stereo";
915  hPullGP_X_ts_stereo[title.str()]->Fill( pullGPX_ts_stereo );
916  title.str("");
917  title << "PullGP_Y_" << subdetId << "-" << layerId << "_ts_stereo";
918  hPullGP_Y_ts_stereo[title.str()]->Fill( pullGPY_ts_stereo );
919  title.str("");
920  title << "PullGP_Z_" << subdetId << "-" << layerId << "_ts_stereo";
921  hPullGP_Z_ts_stereo[title.str()]->Fill( pullGPZ_ts_stereo );
922 
923  double pullGMX_ts_stereo = (stereoTsosGMom.x()-stereoShitGMom.x())/sqrt(stereoTsosGMEr.cxx());
924  double pullGMY_ts_stereo = (stereoTsosGMom.y()-stereoShitGMom.y())/sqrt(stereoTsosGMEr.cyy());
925  double pullGMZ_ts_stereo = (stereoTsosGMom.z()-stereoShitGMom.z())/sqrt(stereoTsosGMEr.czz());
926  //double pullGMX_ts_stereo = (stereoTsosGMom.x()-stereoShitGMom.x());
927  //double pullGMY_ts_stereo = (stereoTsosGMom.y()-stereoShitGMom.y());
928  //double pullGMZ_ts_stereo = (stereoTsosGMom.z()-stereoShitGMom.z());
929 
930  title.str("");
931  title << "PullGM_X_" << subdetId << "-" << layerId << "_ts_stereo";
932  hPullGM_X_ts_stereo[title.str()]->Fill( pullGMX_ts_stereo );
933  title.str("");
934  title << "PullGM_Y_" << subdetId << "-" << layerId << "_ts_stereo";
935  hPullGM_Y_ts_stereo[title.str()]->Fill( pullGMY_ts_stereo );
936  title.str("");
937  title << "PullGM_Z_" << subdetId << "-" << layerId << "_ts_stereo";
938  hPullGM_Z_ts_stereo[title.str()]->Fill( pullGMZ_ts_stereo );
939  }
940  }
941  LogTrace("TestTrackHits") << "traj chi2=" << tchi2 ;
942  LogTrace("TestTrackHits") << "track chi2=" << track->chi2() ;
943  i++;
944  }
945  LogTrace("TestTrackHits") << "end of event: processd hits=" << evtHits ;
946  delete hitAssociator;
947 }
#define LogDebug(id)
dbl * delta
Definition: mlp_gen.cc:36
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
TH1F * hPixSimHitVecSize
std::map< std::string, TH1F * > hPullGP_X_ts_mono
TH1F * probXnoshare
int i
Definition: DBlmapReader.cc:9
TH2F * hPrjClsize_vs_Chi2
TH1F * hSt2ClusterSize
std::map< std::string, TH1F * > hPullGM_X_ts_mono
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
TH1F * hTotChi2GoodHit
tuple pp
Definition: createTree.py:15
const_iterator end() const
last iterator over the map (read only)
LocalVector momentumAtEntry() const
The momentum of the track that produced the hit, at entry point.
Definition: PSimHit.h:47
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
TH2F * hSt2Clsize_vs_Chi2
TrackerHitAssociator * hitAssociator
Definition: TestTrackHits.h:81
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
TH1F * probYnoshare
const_iterator find(const key_type &k) const
find element with specified reference key
std::map< std::string, TH1F * > hPullGP_Y_rs
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
edm::Handle< std::vector< Trajectory > > trajCollectionHandle
Definition: TestTrackHits.h:95
const CartesianTrajectoryError cartesianError() const
T y() const
Definition: PV3DBase.h:62
std::map< std::string, TH1F * > hChi2Increment
#define abs(x)
Definition: mlp_lapack.h:159
std::map< std::string, TH1F * > hChi2BadHit
TH2F * hSt1Clsize_vs_Chi2
TH2F * hGoodHit_vs_Chi2
GlobalPoint globalPosition() const
std::map< std::string, TH1F * > hChi2SharedHit
std::map< std::string, TH1F * > hChi2Increment_mono
std::map< std::string, TH1F * > hPullGP_Y_ts
std::map< std::string, TH1F * > hPullGP_X_rs
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
TH1F * hSimHitVecSize
void find(edm::Handle< EcalRecHitCollection > &hits, DetId thisDet, std::vector< EcalRecHitCollection::const_iterator > &hit, bool debug=false)
Definition: FindCaloHit.cc:7
std::vector< SimHitIdpr > associateHitId(const TrackingRecHit &thit)
std::map< std::string, TH1F * > hPullGP_Y_tr
std::map< std::string, TH1F * > hChi2DeltaHit
TH2F * hPixClsize_vs_Chi2
std::stringstream title
TH1F * energyLossRatio
TH1F * probYshared
edm::Handle< edm::View< reco::Track > > trackCollectionHandle
Definition: TestTrackHits.h:96
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_Z_ts
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
edm::ESHandle< MagneticField > theMF
Definition: TestTrackHits.h:90
Local3DPoint localPosition() const
Definition: PSimHit.h:44
std::map< std::string, TH1F * > hPullGP_X_ts
TH2F * hProcess_vs_Chi2
std::map< std::string, TH1F * > hPullGP_Z_rs
T sqrt(T t)
Definition: SSEVec.h:46
TH1F * hClusterSize
std::map< std::string, TH1F * > hChi2Increment_stereo
std::map< std::string, TH1F * > hChi2GoodHit
T z() const
Definition: PV3DBase.h:63
std::string srcName
Definition: TestTrackHits.h:85
std::map< std::string, TH1F * > hPullGM_Z_ts
TH1F * hTotChi2SharedHit
std::map< std::string, TH1F * > hPullGP_Z_tr
int j
Definition: DBlmapReader.cc:9
TH1F * goodbadmerged
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
float probabilityY() const
Definition: SiPixelRecHit.h:81
TH1F * hPrjSimHitVecSize
bool first
Definition: L1TdeRCT.cc:94
std::string tpName
Definition: TestTrackHits.h:86
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
TH1F * hSt2SimHitVecSize
#define LogTrace(id)
const AlgebraicSymMatrix66 & matrix() const
virtual TrajectoryStateOnSurface propagate(const FreeTrajectoryState &, const Surface &) const
Definition: Propagator.cc:12
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
Definition: TestTrackHits.h:92
std::vector< SimTrack >::const_iterator g4t_iterator
edm::Handle< TrackingParticleCollection > trackingParticleCollectionHandle
Definition: TestTrackHits.h:98
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
Definition: DetId.h:20
TH1F * hTotChi2NSharedHit
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
TH2F * hClsize_vs_Chi2
const GlobalError position() const
Position error submatrix.
TH1F * hTotChi2Increment
std::map< std::string, TH1F * > hPullGP_X_rs_mono
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
edm::ESHandle< TrackAssociatorBase > trackAssociator
Definition: TestTrackHits.h:94
T const * product() const
Definition: ESHandle.h:62
TH1F * hSt1SimHitVecSize
std::map< std::string, TH1F * > hPullGP_X_tr
TH1F * hSt1ClusterSize
std::map< std::string, TH1F * > hPullGP_X_tr_mono
unsigned short processType() const
Definition: PSimHit.h:118
char state
Definition: procUtils.cc:75
TH1F * probXshared
std::map< std::string, TH1F * > hChi2NSharedHit
GlobalVector globalMomentum() const
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &, const StripGeomDetUnit *, const BoundPlane &)
std::map< std::string, TH1F * > hPullGM_X_ts
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
edm::Handle< TrajTrackAssociationCollection > trajTrackAssociationCollectionHandle
Definition: TestTrackHits.h:97
TH1F * hPrjClusterSize
TH1F * hTotChi2BadHit
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
TH1F * hPixClusterSize
float probabilityX() const
Definition: SiPixelRecHit.h:78
double computeChi2Increment(MeasurementExtractor, TransientTrackingRecHit::ConstRecHitPointer)
std::map< std::string, TH2F * > hChi2IncrementVsEta
T x() const
Definition: PV3DBase.h:61
const PositionType & position() const
TH1F * hTotChi2DeltaHit
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
std::map< std::string, TH1F * > hPullGM_Y_ts
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
Our base class.
Definition: SiPixelRecHit.h:22
void TestTrackHits::beginRun ( edm::Run run,
const edm::EventSetup iSetup 
)
privatevirtual

Definition at line 44 of file TestTrackHits.cc.

References builderName, energyLossRatio, file, edm::EventSetup::get(), goodbadmerged, hChi2BadHit, hChi2DeltaHit, hChi2GoodHit, hChi2Increment, hChi2Increment_mono, hChi2Increment_stereo, hChi2IncrementVsEta, hChi2NSharedHit, hChi2SharedHit, hClsize_vs_Chi2, hClusterSize, hGoodHit_vs_Chi2, hPixClsize_vs_Chi2, hPixClusterSize, hPixSimHitVecSize, hPrjClsize_vs_Chi2, hPrjClusterSize, hPrjSimHitVecSize, hProcess_vs_Chi2, hPullGM_X_ts, hPullGM_X_ts_mono, hPullGM_X_ts_stereo, hPullGM_Y_ts, hPullGM_Y_ts_mono, hPullGM_Y_ts_stereo, hPullGM_Z_ts, hPullGM_Z_ts_mono, hPullGM_Z_ts_stereo, hPullGP_X_rs, hPullGP_X_rs_mono, hPullGP_X_rs_stereo, hPullGP_X_tr, hPullGP_X_tr_mono, hPullGP_X_tr_stereo, hPullGP_X_ts, hPullGP_X_ts_mono, hPullGP_X_ts_stereo, hPullGP_Y_rs, hPullGP_Y_rs_mono, hPullGP_Y_rs_stereo, hPullGP_Y_tr, hPullGP_Y_tr_mono, hPullGP_Y_tr_stereo, hPullGP_Y_ts, hPullGP_Y_ts_mono, hPullGP_Y_ts_stereo, hPullGP_Z_rs, hPullGP_Z_rs_mono, hPullGP_Z_rs_stereo, hPullGP_Z_tr, hPullGP_Z_tr_mono, hPullGP_Z_tr_stereo, hPullGP_Z_ts, hPullGP_Z_ts_mono, hPullGP_Z_ts_stereo, hSimHitVecSize, hSt1Clsize_vs_Chi2, hSt1ClusterSize, hSt1SimHitVecSize, hSt2Clsize_vs_Chi2, hSt2ClusterSize, hSt2SimHitVecSize, hTotChi2BadHit, hTotChi2DeltaHit, hTotChi2GoodHit, hTotChi2Increment, hTotChi2NSharedHit, hTotChi2SharedHit, i, j, mergedPull, out, probXbad, probXdelta, probXgood, probXnoshare, probXshared, probYbad, probYdelta, probYgood, probYnoshare, probYshared, propagatorName, theBuilder, theG, theMF, thePropagator, theUpdator, title, trackAssociator, and updatorName.

45 {
46  iSetup.get<TrackerDigiGeometryRecord>().get(theG);
47  iSetup.get<IdealMagneticFieldRecord>().get(theMF);
51  iSetup.get<TrackAssociatorRecord>().get("TrackAssociatorByHits",trackAssociator);
52 
53  file = new TFile(out.c_str(),"recreate");
54  for (int i=0; i!=6; i++)
55  for (int j=0; j!=9; j++){
56  if (i==0 && j>2) break;
57  if (i==1 && j>1) break;
58  if (i==2 && j>3) break;
59  if (i==3 && j>2) break;
60  if (i==4 && j>5) break;
61  if (i==5 && j>8) break;
62 
63  title.str("");
64  title << "Chi2Increment_" << i+1 << "-" << j+1 ;
65  hChi2Increment[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
66  title.str("");
67  title << "Chi2IncrementVsEta_" << i+1 << "-" << j+1 ;
68  hChi2IncrementVsEta[title.str()] = new TH2F(title.str().c_str(),title.str().c_str(),50,-2.5,2.5,1000,0,100);
69  title.str("");
70  title << "Chi2GoodHit_" << i+1 << "-" << j+1 ;
71  hChi2GoodHit[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
72  title.str("");
73  title << "Chi2BadHit_" << i+1 << "-" << j+1 ;
74  hChi2BadHit[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
75  title.str("");
76  title << "Chi2DeltaHit_" << i+1 << "-" << j+1 ;
77  hChi2DeltaHit[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
78  title.str("");
79  title << "Chi2NSharedHit_" << i+1 << "-" << j+1 ;
80  hChi2NSharedHit[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
81  title.str("");
82  title << "Chi2SharedHit_" << i+1 << "-" << j+1 ;
83  hChi2SharedHit[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
84 
85  title.str("");
86  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts";
87  hPullGP_X_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
88  title.str("");
89  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts";
90  hPullGP_Y_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
91  title.str("");
92  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts";
93  hPullGP_Z_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
94 
95  title.str("");
96  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts";
97  hPullGM_X_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
98  title.str("");
99  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts";
100  hPullGM_Y_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
101  title.str("");
102  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts";
103  hPullGM_Z_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
104 
105  title.str("");
106  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr";
107  hPullGP_X_tr[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
108  title.str("");
109  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr";
110  hPullGP_Y_tr[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
111  title.str("");
112  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr";
113  hPullGP_Z_tr[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
114 
115  title.str("");
116  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs";
117  hPullGP_X_rs[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
118  title.str("");
119  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs";
120  hPullGP_Y_rs[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
121  title.str("");
122  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs";
123  hPullGP_Z_rs[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
124 
125  if ( ((i==2||i==4)&&(j==0||j==1)) || (i==3||i==5) ){
126  //mono
127  title.str("");
128  title << "Chi2Increment_mono_" << i+1 << "-" << j+1 ;
129  hChi2Increment_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
130 
131  title.str("");
132  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_mono";
133  hPullGP_X_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
134  title.str("");
135  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_mono";
136  hPullGP_Y_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
137  title.str("");
138  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_mono";
139  hPullGP_Z_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
140 
141  title.str("");
142  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_mono";
143  hPullGM_X_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
144  title.str("");
145  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_mono";
146  hPullGM_Y_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
147  title.str("");
148  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_mono";
149  hPullGM_Z_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
150 
151  title.str("");
152  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_mono";
153  hPullGP_X_tr_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
154  title.str("");
155  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_mono";
156  hPullGP_Y_tr_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
157  title.str("");
158  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_mono";
159  hPullGP_Z_tr_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
160 
161  title.str("");
162  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_mono";
163  hPullGP_X_rs_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
164  title.str("");
165  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_mono";
166  hPullGP_Y_rs_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
167  title.str("");
168  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_mono";
169  hPullGP_Z_rs_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
170 
171  //stereo
172  title.str("");
173  title << "Chi2Increment_stereo_" << i+1 << "-" << j+1 ;
174  hChi2Increment_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
175 
176  title.str("");
177  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_stereo";
178  hPullGP_X_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
179  title.str("");
180  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
181  hPullGP_Y_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
182  title.str("");
183  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
184  hPullGP_Z_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
185 
186  title.str("");
187  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_stereo";
188  hPullGM_X_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
189  title.str("");
190  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
191  hPullGM_Y_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
192  title.str("");
193  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
194  hPullGM_Z_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
195 
196  title.str("");
197  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_stereo";
198  hPullGP_X_tr_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
199  title.str("");
200  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_stereo";
201  hPullGP_Y_tr_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
202  title.str("");
203  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_stereo";
204  hPullGP_Z_tr_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
205 
206  title.str("");
207  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_stereo";
208  hPullGP_X_rs_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
209  title.str("");
210  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_stereo";
211  hPullGP_Y_rs_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
212  title.str("");
213  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_stereo";
214  hPullGP_Z_rs_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
215  }
216  }
217  hTotChi2Increment = new TH1F("TotChi2Increment","TotChi2Increment",1000,0,100);
218  hTotChi2GoodHit = new TH1F("TotChi2GoodHit","TotChi2GoodHit",1000,0,100);
219  hTotChi2BadHit = new TH1F("TotChi2BadHit","TotChi2BadHit",1000,0,100);
220  hTotChi2DeltaHit = new TH1F("TotChi2DeltaHit","TotChi2DeltaHit",1000,0,100);
221  hTotChi2NSharedHit = new TH1F("TotChi2NSharedHit","TotChi2NSharedHit",1000,0,100);
222  hTotChi2SharedHit = new TH1F("TotChi2SharedHit","TotChi2SharedHit",1000,0,100);
223  hProcess_vs_Chi2 = new TH2F("Process_vs_Chi2","Process_vs_Chi2",1000,0,100,17,-0.5,16.5);
224  hClsize_vs_Chi2 = new TH2F("Clsize_vs_Chi2","Clsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
225  hPixClsize_vs_Chi2= new TH2F("PixClsize_vs_Chi2","PixClsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
226  hPrjClsize_vs_Chi2= new TH2F("PrjClsize_vs_Chi2","PrjClsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
227  hSt1Clsize_vs_Chi2= new TH2F("St1Clsize_vs_Chi2","St1Clsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
228  hSt2Clsize_vs_Chi2= new TH2F("St2Clsize_vs_Chi2","St2Clsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
229  hGoodHit_vs_Chi2 = new TH2F("GoodHit_vs_Chi2","GoodHit_vs_Chi2",10000,0,1000,2,-0.5,1.5);
230  hClusterSize = new TH1F("ClusterSize","ClusterSize",40,-0.5,39.5);
231  hPixClusterSize = new TH1F("PixClusterSize","PixClusterSize",40,-0.5,39.5);
232  hPrjClusterSize = new TH1F("PrjClusterSize","PrjClusterSize",40,-0.5,39.5);
233  hSt1ClusterSize = new TH1F("St1ClusterSize","St1ClusterSize",40,-0.5,39.5);
234  hSt2ClusterSize = new TH1F("St2ClusterSize","St2ClusterSize",40,-0.5,39.5);
235  hSimHitVecSize = new TH1F("hSimHitVecSize","hSimHitVecSize",40,-0.5,39.5);
236  hPixSimHitVecSize = new TH1F("PixSimHitVecSize","PixSimHitVecSize",40,-0.5,39.5);
237  hPrjSimHitVecSize = new TH1F("PrjSimHitVecSize","PrjSimHitVecSize",40,-0.5,39.5);
238  hSt1SimHitVecSize = new TH1F("St1SimHitVecSize","St1SimHitVecSize",40,-0.5,39.5);
239  hSt2SimHitVecSize = new TH1F("St2SimHitVecSize","St2SimHitVecSize",40,-0.5,39.5);
240  goodbadmerged = new TH1F("goodbadmerged","goodbadmerged",5,0.5,5.5);
241  energyLossRatio = new TH1F("energyLossRatio","energyLossRatio",100,0,1);
242  mergedPull = new TH1F("mergedPull","mergedPull",200,0,20);
243  probXgood = new TH1F("probXgood","probXgood",110,0,1.1);
244  probXbad = new TH1F("probXbad","probXbad",110,0,1.1);
245  probXdelta = new TH1F("probXdelta","probXdelta",110,0,1.1);
246  probXshared = new TH1F("probXshared","probXshared",110,0,1.1);
247  probXnoshare = new TH1F("probXnoshare","probXnoshare",110,0,1.1);
248  probYgood = new TH1F("probYgood","probYgood",110,0,1.1);
249  probYbad = new TH1F("probYbad","probYbad",110,0,1.1);
250  probYdelta = new TH1F("probYdelta","probYdelta",110,0,1.1);
251  probYshared = new TH1F("probYshared","probYshared",110,0,1.1);
252  probYnoshare = new TH1F("probYnoshare","probYnoshare",110,0,1.1);
253 }
std::string out
Definition: TestTrackHits.h:88
TH1F * hPixSimHitVecSize
std::map< std::string, TH1F * > hPullGP_X_ts_mono
TH1F * probXnoshare
int i
Definition: DBlmapReader.cc:9
TH2F * hPrjClsize_vs_Chi2
TH1F * hSt2ClusterSize
std::map< std::string, TH1F * > hPullGM_X_ts_mono
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
TH1F * hTotChi2GoodHit
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
TH2F * hSt2Clsize_vs_Chi2
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
TH1F * probYnoshare
std::map< std::string, TH1F * > hPullGP_Y_rs
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
std::map< std::string, TH1F * > hChi2Increment
std::map< std::string, TH1F * > hChi2BadHit
TH2F * hSt1Clsize_vs_Chi2
TH2F * hGoodHit_vs_Chi2
std::map< std::string, TH1F * > hChi2SharedHit
std::map< std::string, TH1F * > hChi2Increment_mono
std::map< std::string, TH1F * > hPullGP_Y_ts
std::map< std::string, TH1F * > hPullGP_X_rs
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
TH1F * hSimHitVecSize
std::map< std::string, TH1F * > hPullGP_Y_tr
std::map< std::string, TH1F * > hChi2DeltaHit
TH2F * hPixClsize_vs_Chi2
std::stringstream title
TH1F * energyLossRatio
TH1F * probYshared
edm::ESHandle< Propagator > thePropagator
Definition: TestTrackHits.h:91
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_Z_ts
edm::ESHandle< MagneticField > theMF
Definition: TestTrackHits.h:90
std::map< std::string, TH1F * > hPullGP_X_ts
TH2F * hProcess_vs_Chi2
std::map< std::string, TH1F * > hPullGP_Z_rs
edm::ESHandle< TrajectoryStateUpdator > theUpdator
Definition: TestTrackHits.h:93
TH1F * hClusterSize
std::map< std::string, TH1F * > hChi2Increment_stereo
std::map< std::string, TH1F * > hChi2GoodHit
std::map< std::string, TH1F * > hPullGM_Z_ts
TH1F * hTotChi2SharedHit
std::map< std::string, TH1F * > hPullGP_Z_tr
int j
Definition: DBlmapReader.cc:9
TH1F * goodbadmerged
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
TH1F * hPrjSimHitVecSize
std::string builderName
Definition: TestTrackHits.h:84
TH1F * hSt2SimHitVecSize
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
Definition: TestTrackHits.h:92
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
TH1F * hTotChi2NSharedHit
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
TH2F * hClsize_vs_Chi2
TH1F * hTotChi2Increment
std::map< std::string, TH1F * > hPullGP_X_rs_mono
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
const T & get() const
Definition: EventSetup.h:55
edm::ESHandle< TrackAssociatorBase > trackAssociator
Definition: TestTrackHits.h:94
TH1F * hSt1SimHitVecSize
std::map< std::string, TH1F * > hPullGP_X_tr
TH1F * hSt1ClusterSize
std::map< std::string, TH1F * > hPullGP_X_tr_mono
edm::ESHandle< TrackerGeometry > theG
Definition: TestTrackHits.h:89
TH1F * probXshared
std::map< std::string, TH1F * > hChi2NSharedHit
std::map< std::string, TH1F * > hPullGM_X_ts
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
TH1F * hPrjClusterSize
TH1F * hTotChi2BadHit
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
TH1F * hPixClusterSize
std::map< std::string, TH2F * > hChi2IncrementVsEta
TH1F * hTotChi2DeltaHit
std::string propagatorName
Definition: TestTrackHits.h:83
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
std::string updatorName
Definition: TestTrackHits.h:87
std::map< std::string, TH1F * > hPullGM_Y_ts
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
template<unsigned int D>
double TestTrackHits::computeChi2Increment ( MeasurementExtractor  me,
TransientTrackingRecHit::ConstRecHitPointer  rhit 
)
private

Definition at line 1277 of file TestTrackHits.cc.

References MeasurementExtractor::measuredError(), MeasurementExtractor::measuredParameters(), dttmaxenums::R, and alignCSCRings::r.

Referenced by analyze().

1278  {
1279  typedef typename AlgebraicROOTObject<D>::Vector VecD;
1280  typedef typename AlgebraicROOTObject<D,D>::SymMatrix SMatDD;
1281  VecD r = asSVector<D>(rhit->parameters()) - me.measuredParameters<D>(*rhit);
1282 
1283  SMatDD R = asSMatrix<D>(rhit->parametersError()) + me.measuredError<D>(*rhit);
1284  R.Invert();
1285  return ROOT::Math::Similarity(r,R) ;
1286 }
AlgebraicSymMatrix measuredError(const TransientTrackingRecHit &)
ROOT::Math::SMatrix< double, D1, D1, ROOT::Math::MatRepSym< double, D1 > > SymMatrix
ROOT::Math::SVector< double, D1 > Vector
DecomposeProduct< arg, typename Div::arg > D
Definition: Factorize.h:150
AlgebraicVector measuredParameters(const TransientTrackingRecHit &)
double TestTrackHits::computeChi2Increment ( MeasurementExtractor  me,
TransientTrackingRecHit::ConstRecHitPointer  hit 
)
inlineprivate

Definition at line 69 of file TestTrackHits.h.

References edm::hlt::Exception.

69  {
70  switch (hit->dimension()) {
71  case 1: return computeChi2Increment<1>(me,hit);
72  case 2: return computeChi2Increment<2>(me,hit);
73  case 3: return computeChi2Increment<3>(me,hit);
74  case 4: return computeChi2Increment<4>(me,hit);
75  case 5: return computeChi2Increment<5>(me,hit);
76  }
77  throw cms::Exception("CkfDebugger error: rechit of dimension not 1,2,3,4,5");
78  }
void TestTrackHits::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 949 of file TestTrackHits.cc.

References energyLossRatio, file, goodbadmerged, hChi2BadHit, hChi2DeltaHit, hChi2GoodHit, hChi2Increment, hChi2Increment_mono, hChi2Increment_stereo, hChi2IncrementVsEta, hChi2NSharedHit, hChi2SharedHit, hClsize_vs_Chi2, hClusterSize, hGoodHit_vs_Chi2, hPixClsize_vs_Chi2, hPixClusterSize, hPixSimHitVecSize, hPrjClsize_vs_Chi2, hPrjClusterSize, hPrjSimHitVecSize, hProcess_vs_Chi2, hPullGM_X_ts, hPullGM_X_ts_mono, hPullGM_X_ts_stereo, hPullGM_Y_ts, hPullGM_Y_ts_mono, hPullGM_Y_ts_stereo, hPullGM_Z_ts, hPullGM_Z_ts_mono, hPullGM_Z_ts_stereo, hPullGP_X_rs, hPullGP_X_rs_mono, hPullGP_X_rs_stereo, hPullGP_X_tr, hPullGP_X_tr_mono, hPullGP_X_tr_stereo, hPullGP_X_ts, hPullGP_X_ts_mono, hPullGP_X_ts_stereo, hPullGP_Y_rs, hPullGP_Y_rs_mono, hPullGP_Y_rs_stereo, hPullGP_Y_tr, hPullGP_Y_tr_mono, hPullGP_Y_tr_stereo, hPullGP_Y_ts, hPullGP_Y_ts_mono, hPullGP_Y_ts_stereo, hPullGP_Z_rs, hPullGP_Z_rs_mono, hPullGP_Z_rs_stereo, hPullGP_Z_tr, hPullGP_Z_tr_mono, hPullGP_Z_tr_stereo, hPullGP_Z_ts, hPullGP_Z_ts_mono, hPullGP_Z_ts_stereo, hSimHitVecSize, hSt1Clsize_vs_Chi2, hSt1ClusterSize, hSt1SimHitVecSize, hSt2Clsize_vs_Chi2, hSt2ClusterSize, hSt2SimHitVecSize, hTotChi2BadHit, hTotChi2DeltaHit, hTotChi2GoodHit, hTotChi2Increment, hTotChi2NSharedHit, hTotChi2SharedHit, i, j, mergedPull, probXbad, probXdelta, probXgood, probXnoshare, probXshared, probYbad, probYdelta, probYgood, probYnoshare, probYshared, and title.

949  {
950  //file->Write();
951  TDirectory * chi2d = file->mkdir("Chi2Increment");
952 
953  TDirectory * gp_ts = file->mkdir("GP_TSOS-SimHit");
954  TDirectory * gm_ts = file->mkdir("GM_TSOS-SimHit");
955  TDirectory * gp_tr = file->mkdir("GP_TSOS-RecHit");
956  TDirectory * gp_rs = file->mkdir("GP_RecHit-SimHit");
957 
958  TDirectory * gp_tsx = gp_ts->mkdir("X");
959  TDirectory * gp_tsy = gp_ts->mkdir("Y");
960  TDirectory * gp_tsz = gp_ts->mkdir("Z");
961  TDirectory * gm_tsx = gm_ts->mkdir("X");
962  TDirectory * gm_tsy = gm_ts->mkdir("Y");
963  TDirectory * gm_tsz = gm_ts->mkdir("Z");
964  TDirectory * gp_trx = gp_tr->mkdir("X");
965  TDirectory * gp_try = gp_tr->mkdir("Y");
966  TDirectory * gp_trz = gp_tr->mkdir("Z");
967  TDirectory * gp_rsx = gp_rs->mkdir("X");
968  TDirectory * gp_rsy = gp_rs->mkdir("Y");
969  TDirectory * gp_rsz = gp_rs->mkdir("Z");
970 
971  TDirectory * gp_tsx_mono = gp_ts->mkdir("MONOX");
972  TDirectory * gp_tsy_mono = gp_ts->mkdir("MONOY");
973  TDirectory * gp_tsz_mono = gp_ts->mkdir("MONOZ");
974  TDirectory * gm_tsx_mono = gm_ts->mkdir("MONOX");
975  TDirectory * gm_tsy_mono = gm_ts->mkdir("MONOY");
976  TDirectory * gm_tsz_mono = gm_ts->mkdir("MONOZ");
977  TDirectory * gp_trx_mono = gp_tr->mkdir("MONOX");
978  TDirectory * gp_try_mono = gp_tr->mkdir("MONOY");
979  TDirectory * gp_trz_mono = gp_tr->mkdir("MONOZ");
980  TDirectory * gp_rsx_mono = gp_rs->mkdir("MONOX");
981  TDirectory * gp_rsy_mono = gp_rs->mkdir("MONOY");
982  TDirectory * gp_rsz_mono = gp_rs->mkdir("MONOZ");
983 
984  TDirectory * gp_tsx_stereo = gp_ts->mkdir("STEREOX");
985  TDirectory * gp_tsy_stereo = gp_ts->mkdir("STEREOY");
986  TDirectory * gp_tsz_stereo = gp_ts->mkdir("STEREOZ");
987  TDirectory * gm_tsx_stereo = gm_ts->mkdir("STEREOX");
988  TDirectory * gm_tsy_stereo = gm_ts->mkdir("STEREOY");
989  TDirectory * gm_tsz_stereo = gm_ts->mkdir("STEREOZ");
990  TDirectory * gp_trx_stereo = gp_tr->mkdir("STEREOX");
991  TDirectory * gp_try_stereo = gp_tr->mkdir("STEREOY");
992  TDirectory * gp_trz_stereo = gp_tr->mkdir("STEREOZ");
993  TDirectory * gp_rsx_stereo = gp_rs->mkdir("STEREOX");
994  TDirectory * gp_rsy_stereo = gp_rs->mkdir("STEREOY");
995  TDirectory * gp_rsz_stereo = gp_rs->mkdir("STEREOZ");
996 
997  chi2d->cd();
998  hTotChi2Increment->Write();
999  hTotChi2GoodHit->Write();
1000  hTotChi2BadHit->Write();
1001  hTotChi2DeltaHit->Write();
1002  hTotChi2NSharedHit->Write();
1003  hTotChi2SharedHit->Write();
1004  hProcess_vs_Chi2->Write();
1005  hClsize_vs_Chi2->Write();
1006  hPixClsize_vs_Chi2->Write();
1007  hPrjClsize_vs_Chi2->Write();
1008  hSt1Clsize_vs_Chi2->Write();
1009  hSt2Clsize_vs_Chi2->Write();
1010  hGoodHit_vs_Chi2->Write();
1011  hClusterSize->Write();
1012  hPixClusterSize->Write();
1013  hPrjClusterSize->Write();
1014  hSt1ClusterSize->Write();
1015  hSt2ClusterSize->Write();
1016  hSimHitVecSize->Write();
1017  hPixSimHitVecSize->Write();
1018  hPrjSimHitVecSize->Write();
1019  hSt1SimHitVecSize->Write();
1020  hSt2SimHitVecSize->Write();
1021  goodbadmerged->Write();
1022  energyLossRatio->Write();
1023  mergedPull->Write();
1024  probXgood->Write();
1025  probXbad->Write();
1026  probXdelta->Write();
1027  probXshared->Write();
1028  probXnoshare->Write();
1029  probYgood->Write();
1030  probYbad->Write();
1031  probYdelta->Write();
1032  probYshared->Write();
1033  probYnoshare->Write();
1034  for (int i=0; i!=6; i++)
1035  for (int j=0; j!=9; j++){
1036  if (i==0 && j>2) break;
1037  if (i==1 && j>1) break;
1038  if (i==2 && j>3) break;
1039  if (i==3 && j>2) break;
1040  if (i==4 && j>5) break;
1041  if (i==5 && j>8) break;
1042  chi2d->cd();
1043  title.str("");
1044  title << "Chi2Increment_" << i+1 << "-" << j+1 ;
1045  hChi2Increment[title.str()]->Write();
1046  title.str("");
1047  title << "Chi2IncrementVsEta_" << i+1 << "-" << j+1 ;
1048  hChi2IncrementVsEta[title.str()]->Write();
1049  title.str("");
1050  title << "Chi2GoodHit_" << i+1 << "-" << j+1 ;
1051  hChi2GoodHit[title.str()]->Write();
1052  title.str("");
1053  title << "Chi2BadHit_" << i+1 << "-" << j+1 ;
1054  hChi2BadHit[title.str()]->Write();
1055  title.str("");
1056  title << "Chi2DeltaHit_" << i+1 << "-" << j+1 ;
1057  hChi2DeltaHit[title.str()]->Write();
1058  title.str("");
1059  title << "Chi2NSharedHit_" << i+1 << "-" << j+1 ;
1060  hChi2NSharedHit[title.str()]->Write();
1061  title.str("");
1062  title << "Chi2SharedHit_" << i+1 << "-" << j+1 ;
1063  hChi2SharedHit[title.str()]->Write();
1064 
1065  gp_ts->cd();
1066  gp_tsx->cd();
1067  title.str("");
1068  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts";
1069  hPullGP_X_ts[title.str()]->Write();
1070  gp_tsy->cd();
1071  title.str("");
1072  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts";
1073  hPullGP_Y_ts[title.str()]->Write();
1074  gp_tsz->cd();
1075  title.str("");
1076  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts";
1077  hPullGP_Z_ts[title.str()]->Write();
1078 
1079  gm_ts->cd();
1080  gm_tsx->cd();
1081  title.str("");
1082  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts";
1083  hPullGM_X_ts[title.str()]->Write();
1084  gm_tsy->cd();
1085  title.str("");
1086  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts";
1087  hPullGM_Y_ts[title.str()]->Write();
1088  gm_tsz->cd();
1089  title.str("");
1090  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts";
1091  hPullGM_Z_ts[title.str()]->Write();
1092 
1093  gp_tr->cd();
1094  gp_trx->cd();
1095  title.str("");
1096  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr";
1097  hPullGP_X_tr[title.str()]->Write();
1098  gp_try->cd();
1099  title.str("");
1100  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr";
1101  hPullGP_Y_tr[title.str()]->Write();
1102  gp_trz->cd();
1103  title.str("");
1104  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr";
1105  hPullGP_Z_tr[title.str()]->Write();
1106 
1107  gp_rs->cd();
1108  gp_rsx->cd();
1109  title.str("");
1110  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs";
1111  hPullGP_X_rs[title.str()]->Write();
1112  gp_rsy->cd();
1113  title.str("");
1114  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs";
1115  hPullGP_Y_rs[title.str()]->Write();
1116  gp_rsz->cd();
1117  title.str("");
1118  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs";
1119  hPullGP_Z_rs[title.str()]->Write();
1120 
1121  if ( ((i==2||i==4)&&(j==0||j==1)) || (i==3||i==5) ){
1122  chi2d->cd();
1123  title.str("");
1124  title << "Chi2Increment_mono_" << i+1 << "-" << j+1 ;
1125  hChi2Increment_mono[title.str()]->Write();
1126  title.str("");
1127  title << "Chi2Increment_stereo_" << i+1 << "-" << j+1 ;
1128  hChi2Increment_stereo[title.str()]->Write();
1129  //mono
1130  gp_ts->cd();
1131  gp_tsx_mono->cd();
1132  title.str("");
1133  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_mono";
1134  hPullGP_X_ts_mono[title.str()]->Write();
1135  gp_tsy_mono->cd();
1136  title.str("");
1137  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_mono";
1138  hPullGP_Y_ts_mono[title.str()]->Write();
1139  gp_tsz_mono->cd();
1140  title.str("");
1141  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_mono";
1142  hPullGP_Z_ts_mono[title.str()]->Write();
1143 
1144  gm_ts->cd();
1145  gm_tsx_mono->cd();
1146  title.str("");
1147  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_mono";
1148  hPullGM_X_ts_mono[title.str()]->Write();
1149  gm_tsy_mono->cd();
1150  title.str("");
1151  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_mono";
1152  hPullGM_Y_ts_mono[title.str()]->Write();
1153  gm_tsz_mono->cd();
1154  title.str("");
1155  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_mono";
1156  hPullGM_Z_ts_mono[title.str()]->Write();
1157 
1158  gp_tr->cd();
1159  gp_trx_mono->cd();
1160  title.str("");
1161  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_mono";
1162  hPullGP_X_tr_mono[title.str()]->Write();
1163  gp_try_mono->cd();
1164  title.str("");
1165  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_mono";
1166  hPullGP_Y_tr_mono[title.str()]->Write();
1167  gp_trz_mono->cd();
1168  title.str("");
1169  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_mono";
1170  hPullGP_Z_tr_mono[title.str()]->Write();
1171 
1172  gp_rs->cd();
1173  gp_rsx_mono->cd();
1174  title.str("");
1175  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_mono";
1176  hPullGP_X_rs_mono[title.str()]->Write();
1177  gp_rsy_mono->cd();
1178  title.str("");
1179  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_mono";
1180  hPullGP_Y_rs_mono[title.str()]->Write();
1181  gp_rsz_mono->cd();
1182  title.str("");
1183  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_mono";
1184  hPullGP_Z_rs_mono[title.str()]->Write();
1185 
1186  //stereo
1187  gp_ts->cd();
1188  gp_tsx_stereo->cd();
1189  title.str("");
1190  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_stereo";
1191  hPullGP_X_ts_stereo[title.str()]->Write();
1192  gp_tsy_stereo->cd();
1193  title.str("");
1194  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
1195  hPullGP_Y_ts_stereo[title.str()]->Write();
1196  gp_tsz_stereo->cd();
1197  title.str("");
1198  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
1199  hPullGP_Z_ts_stereo[title.str()]->Write();
1200 
1201  gm_ts->cd();
1202  gm_tsx_stereo->cd();
1203  title.str("");
1204  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_stereo";
1205  hPullGM_X_ts_stereo[title.str()]->Write();
1206  gm_tsy_stereo->cd();
1207  title.str("");
1208  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
1209  hPullGM_Y_ts_stereo[title.str()]->Write();
1210  gm_tsz_stereo->cd();
1211  title.str("");
1212  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
1213  hPullGM_Z_ts_stereo[title.str()]->Write();
1214 
1215  gp_tr->cd();
1216  gp_trx_stereo->cd();
1217  title.str("");
1218  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_stereo";
1219  hPullGP_X_tr_stereo[title.str()]->Write();
1220  gp_try_stereo->cd();
1221  title.str("");
1222  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_stereo";
1223  hPullGP_Y_tr_stereo[title.str()]->Write();
1224  gp_trz_stereo->cd();
1225  title.str("");
1226  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_stereo";
1227  hPullGP_Z_tr_stereo[title.str()]->Write();
1228 
1229  gp_rs->cd();
1230  gp_rsx_stereo->cd();
1231  title.str("");
1232  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_stereo";
1233  hPullGP_X_rs_stereo[title.str()]->Write();
1234  gp_rsy_stereo->cd();
1235  title.str("");
1236  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_stereo";
1237  hPullGP_Y_rs_stereo[title.str()]->Write();
1238  gp_rsz_stereo->cd();
1239  title.str("");
1240  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_stereo";
1241  hPullGP_Z_rs_stereo[title.str()]->Write();
1242  }
1243  }
1244 
1245  file->Close();
1246 }
TH1F * hPixSimHitVecSize
std::map< std::string, TH1F * > hPullGP_X_ts_mono
TH1F * probXnoshare
int i
Definition: DBlmapReader.cc:9
TH2F * hPrjClsize_vs_Chi2
TH1F * hSt2ClusterSize
std::map< std::string, TH1F * > hPullGM_X_ts_mono
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
TH1F * hTotChi2GoodHit
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
TH2F * hSt2Clsize_vs_Chi2
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
TH1F * probYnoshare
std::map< std::string, TH1F * > hPullGP_Y_rs
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
std::map< std::string, TH1F * > hChi2Increment
std::map< std::string, TH1F * > hChi2BadHit
TH2F * hSt1Clsize_vs_Chi2
TH2F * hGoodHit_vs_Chi2
std::map< std::string, TH1F * > hChi2SharedHit
std::map< std::string, TH1F * > hChi2Increment_mono
std::map< std::string, TH1F * > hPullGP_Y_ts
std::map< std::string, TH1F * > hPullGP_X_rs
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
TH1F * hSimHitVecSize
std::map< std::string, TH1F * > hPullGP_Y_tr
std::map< std::string, TH1F * > hChi2DeltaHit
TH2F * hPixClsize_vs_Chi2
std::stringstream title
TH1F * energyLossRatio
TH1F * probYshared
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_Z_ts
std::map< std::string, TH1F * > hPullGP_X_ts
TH2F * hProcess_vs_Chi2
std::map< std::string, TH1F * > hPullGP_Z_rs
TH1F * hClusterSize
std::map< std::string, TH1F * > hChi2Increment_stereo
std::map< std::string, TH1F * > hChi2GoodHit
std::map< std::string, TH1F * > hPullGM_Z_ts
TH1F * hTotChi2SharedHit
std::map< std::string, TH1F * > hPullGP_Z_tr
int j
Definition: DBlmapReader.cc:9
TH1F * goodbadmerged
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
TH1F * hPrjSimHitVecSize
TH1F * hSt2SimHitVecSize
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
TH1F * hTotChi2NSharedHit
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
TH2F * hClsize_vs_Chi2
TH1F * hTotChi2Increment
std::map< std::string, TH1F * > hPullGP_X_rs_mono
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
TH1F * hSt1SimHitVecSize
std::map< std::string, TH1F * > hPullGP_X_tr
TH1F * hSt1ClusterSize
std::map< std::string, TH1F * > hPullGP_X_tr_mono
TH1F * probXshared
std::map< std::string, TH1F * > hChi2NSharedHit
std::map< std::string, TH1F * > hPullGM_X_ts
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
TH1F * hPrjClusterSize
TH1F * hTotChi2BadHit
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
TH1F * hPixClusterSize
std::map< std::string, TH2F * > hChi2IncrementVsEta
TH1F * hTotChi2DeltaHit
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
std::map< std::string, TH1F * > hPullGM_Y_ts
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
std::pair< LocalPoint, LocalVector > TestTrackHits::projectHit ( const PSimHit hit,
const StripGeomDetUnit stripDet,
const BoundPlane plane 
)
private

Definition at line 1252 of file TestTrackHits.cc.

References funct::cos(), dir, PSimHit::localDirection(), PSimHit::localPosition(), pileupReCalc_HLTpaths::scale, funct::sin(), StripGeomDetUnit::specificTopology(), StripTopology::strip(), StripTopology::stripAngle(), GeomDet::surface(), Surface::toGlobal(), GloballyPositioned< T >::toLocal(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by analyze().

1253 {
1254  const StripTopology& topol = stripDet->specificTopology();
1255  GlobalPoint globalpos= stripDet->surface().toGlobal(hit.localPosition());
1256  LocalPoint localHit = plane.toLocal(globalpos);
1257  //track direction
1258  LocalVector locdir=hit.localDirection();
1259  //rotate track in new frame
1260 
1261  GlobalVector globaldir= stripDet->surface().toGlobal(locdir);
1262  LocalVector dir=plane.toLocal(globaldir);
1263  float scale = -localHit.z() / dir.z();
1264 
1265  LocalPoint projectedPos = localHit + scale*dir;
1266 
1267  float selfAngle = topol.stripAngle( topol.strip( hit.localPosition()));
1268 
1269  LocalVector stripDir( sin(selfAngle), cos(selfAngle), 0); // vector along strip in hit frame
1270 
1271  LocalVector localStripDir( plane.toLocal(stripDet->surface().toGlobal( stripDir)));
1272 
1273  return std::pair<LocalPoint,LocalVector>( projectedPos, localStripDir);
1274 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
virtual float stripAngle(float strip) const =0
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
virtual float strip(const LocalPoint &) const =0
Local3DPoint localPosition() const
Definition: PSimHit.h:44
LocalPoint toLocal(const GlobalPoint &gp) const
T z() const
Definition: PV3DBase.h:63
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
LocalVector localDirection() const
Obsolete. Same as momentumAtEntry().unit(), for backward compatibility.
Definition: PSimHit.h:52
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
dbl *** dir
Definition: mlp_gen.cc:35

Member Data Documentation

std::string TestTrackHits::builderName
private

Definition at line 84 of file TestTrackHits.h.

Referenced by beginRun(), and TestTrackHits().

const edm::ParameterSet TestTrackHits::conf_
private

Definition at line 80 of file TestTrackHits.h.

Referenced by TestTrackHits().

TH1F * TestTrackHits::energyLossRatio
private

Definition at line 129 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TFile* TestTrackHits::file
private

Definition at line 101 of file TestTrackHits.h.

Referenced by beginRun(), and endJob().

TH1F* TestTrackHits::goodbadmerged
private

Definition at line 129 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2BadHit
private

Definition at line 120 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2DeltaHit
private

Definition at line 121 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2GoodHit
private

Definition at line 119 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2Increment
private

Definition at line 115 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2Increment_mono
private

Definition at line 116 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2Increment_stereo
private

Definition at line 117 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH2F*> TestTrackHits::hChi2IncrementVsEta
private

Definition at line 118 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2NSharedHit
private

Definition at line 122 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hChi2SharedHit
private

Definition at line 123 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH2F * TestTrackHits::hClsize_vs_Chi2
private

Definition at line 125 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F* TestTrackHits::hClusterSize
private

Definition at line 127 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH2F * TestTrackHits::hGoodHit_vs_Chi2
private

Definition at line 125 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TrackerHitAssociator* TestTrackHits::hitAssociator
private

Definition at line 81 of file TestTrackHits.h.

Referenced by analyze().

TH2F* TestTrackHits::hPixClsize_vs_Chi2
private

Definition at line 126 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hPixClusterSize
private

Definition at line 127 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hPixSimHitVecSize
private

Definition at line 128 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH2F * TestTrackHits::hPrjClsize_vs_Chi2
private

Definition at line 126 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hPrjClusterSize
private

Definition at line 127 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hPrjSimHitVecSize
private

Definition at line 128 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH2F* TestTrackHits::hProcess_vs_Chi2
private

Definition at line 125 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_X_ts
private

Definition at line 106 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_X_ts_mono
private

Definition at line 136 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_X_ts_stereo
private

Definition at line 149 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_Y_ts
private

Definition at line 107 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_Y_ts_mono
private

Definition at line 137 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_Y_ts_stereo
private

Definition at line 150 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_Z_ts
private

Definition at line 108 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_Z_ts_mono
private

Definition at line 138 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGM_Z_ts_stereo
private

Definition at line 151 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_rs
private

Definition at line 109 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_rs_mono
private

Definition at line 139 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_rs_stereo
private

Definition at line 152 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_tr
private

Definition at line 112 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_tr_mono
private

Definition at line 142 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_tr_stereo
private

Definition at line 155 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_ts
private

Definition at line 103 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_ts_mono
private

Definition at line 133 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_X_ts_stereo
private

Definition at line 146 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_rs
private

Definition at line 110 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_rs_mono
private

Definition at line 140 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_rs_stereo
private

Definition at line 153 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_tr
private

Definition at line 113 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_tr_mono
private

Definition at line 143 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_tr_stereo
private

Definition at line 156 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_ts
private

Definition at line 104 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_ts_mono
private

Definition at line 134 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Y_ts_stereo
private

Definition at line 147 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_rs
private

Definition at line 111 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_rs_mono
private

Definition at line 141 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_rs_stereo
private

Definition at line 154 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_tr
private

Definition at line 114 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_tr_mono
private

Definition at line 144 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_tr_stereo
private

Definition at line 157 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_ts
private

Definition at line 105 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_ts_mono
private

Definition at line 135 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::map<std::string,TH1F*> TestTrackHits::hPullGP_Z_ts_stereo
private

Definition at line 148 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F* TestTrackHits::hSimHitVecSize
private

Definition at line 128 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH2F * TestTrackHits::hSt1Clsize_vs_Chi2
private

Definition at line 126 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hSt1ClusterSize
private

Definition at line 127 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hSt1SimHitVecSize
private

Definition at line 128 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH2F * TestTrackHits::hSt2Clsize_vs_Chi2
private

Definition at line 126 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hSt2ClusterSize
private

Definition at line 127 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hSt2SimHitVecSize
private

Definition at line 128 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hTotChi2BadHit
private

Definition at line 124 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hTotChi2DeltaHit
private

Definition at line 124 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hTotChi2GoodHit
private

Definition at line 124 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F* TestTrackHits::hTotChi2Increment
private

Definition at line 124 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hTotChi2NSharedHit
private

Definition at line 124 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::hTotChi2SharedHit
private

Definition at line 124 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::mergedPull
private

Definition at line 129 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::string TestTrackHits::out
private

Definition at line 88 of file TestTrackHits.h.

Referenced by beginRun(), and TestTrackHits().

TH1F * TestTrackHits::probXbad
private

Definition at line 130 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probXdelta
private

Definition at line 130 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F* TestTrackHits::probXgood
private

Definition at line 130 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probXnoshare
private

Definition at line 130 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probXshared
private

Definition at line 130 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probYbad
private

Definition at line 131 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probYdelta
private

Definition at line 131 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F* TestTrackHits::probYgood
private

Definition at line 131 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probYnoshare
private

Definition at line 131 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

TH1F * TestTrackHits::probYshared
private

Definition at line 131 of file TestTrackHits.h.

Referenced by analyze(), beginRun(), and endJob().

std::string TestTrackHits::propagatorName
private

Definition at line 83 of file TestTrackHits.h.

Referenced by beginRun(), and TestTrackHits().

std::string TestTrackHits::srcName
private

Definition at line 85 of file TestTrackHits.h.

Referenced by analyze(), and TestTrackHits().

edm::ESHandle<TransientTrackingRecHitBuilder> TestTrackHits::theBuilder
private

Definition at line 92 of file TestTrackHits.h.

Referenced by analyze(), and beginRun().

edm::ESHandle<TrackerGeometry> TestTrackHits::theG
private

Definition at line 89 of file TestTrackHits.h.

Referenced by beginRun().

edm::ESHandle<MagneticField> TestTrackHits::theMF
private

Definition at line 90 of file TestTrackHits.h.

Referenced by analyze(), and beginRun().

edm::ESHandle<Propagator> TestTrackHits::thePropagator
private

Definition at line 91 of file TestTrackHits.h.

Referenced by beginRun().

edm::ESHandle<TrajectoryStateUpdator> TestTrackHits::theUpdator
private

Definition at line 93 of file TestTrackHits.h.

Referenced by beginRun().

std::stringstream TestTrackHits::title
private
std::string TestTrackHits::tpName
private

Definition at line 86 of file TestTrackHits.h.

Referenced by analyze(), and TestTrackHits().

edm::ESHandle<TrackAssociatorBase> TestTrackHits::trackAssociator
private

Definition at line 94 of file TestTrackHits.h.

Referenced by analyze(), and beginRun().

edm::Handle<edm::View<reco::Track> > TestTrackHits::trackCollectionHandle
private

Definition at line 96 of file TestTrackHits.h.

Referenced by analyze().

edm::Handle<TrackingParticleCollection> TestTrackHits::trackingParticleCollectionHandle
private

Definition at line 98 of file TestTrackHits.h.

Referenced by analyze().

edm::Handle<std::vector<Trajectory> > TestTrackHits::trajCollectionHandle
private

Definition at line 95 of file TestTrackHits.h.

Referenced by analyze().

edm::Handle<TrajTrackAssociationCollection> TestTrackHits::trajTrackAssociationCollectionHandle
private

Definition at line 97 of file TestTrackHits.h.

Referenced by analyze().

std::string TestTrackHits::updatorName
private

Definition at line 87 of file TestTrackHits.h.

Referenced by beginRun(), and TestTrackHits().