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
TestHits Class Reference

#include <RecoTracker/DebugTools/src/TestHits.cc>

Inheritance diagram for TestHits:
edm::EDAnalyzer

Public Member Functions

 TestHits (const edm::ParameterSet &)
 
 ~TestHits ()
 
- 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 &)
 
virtual void endJob ()
 
std::pair< LocalPoint,
LocalVector
projectHit (const PSimHit &, const StripGeomDetUnit *, const BoundPlane &)
 

Private Attributes

std::string builderName
 
const edm::ParameterSet conf_
 
TFile * file
 
edm::ESHandle< TrajectoryFitterfit
 
std::string fname
 
std::map< std::string, TH1F * > hChi2Increment
 
TH2F * hClsize_vs_Chi2
 
TrackerHitAssociatorhitAssociator
 
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 * hTotChi2Increment
 
double maxeta
 
double mineta
 
std::string propagatorName
 
std::string srcName
 
edm::ESHandle
< TransientTrackingRecHitBuilder
theBuilder
 
edm::ESHandle< TrackerGeometrytheG
 
edm::ESHandle< MagneticFieldtheMF
 
edm::ESHandle< PropagatorthePropagator
 
edm::Handle
< TrackCandidateCollection
theTCCollection
 
std::stringstream title
 

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)
 
- 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 50 of file TestHits.h.

Constructor & Destructor Documentation

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

Definition at line 28 of file TestHits.cc.

References builderName, conf_, fname, edm::ParameterSet::getParameter(), LogTrace, maxeta, mineta, propagatorName, and srcName.

28  :
29  conf_(iConfig){
30  LogTrace("TestHits") << conf_<< std::endl;
31  propagatorName = conf_.getParameter<std::string>("Propagator");
32  builderName = conf_.getParameter<std::string>("TTRHBuilder");
33  srcName = conf_.getParameter<std::string>("src");
34  fname = conf_.getParameter<std::string>("Fitter");
35  mineta = conf_.getParameter<double>("mineta");
36  maxeta = conf_.getParameter<double>("maxeta");
37 }
T getParameter(std::string const &) const
std::string builderName
Definition: TestHits.h:68
double mineta
Definition: TestHits.h:65
std::string propagatorName
Definition: TestHits.h:67
#define LogTrace(id)
const edm::ParameterSet conf_
Definition: TestHits.h:62
std::string fname
Definition: TestHits.h:70
std::string srcName
Definition: TestHits.h:69
double maxeta
Definition: TestHits.h:65
TestHits::~TestHits ( )

Definition at line 39 of file TestHits.cc.

39 {}

Member Function Documentation

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

Implements edm::EDAnalyzer.

Definition at line 192 of file TestHits.cc.

References TrackerHitAssociator::associateHit(), TrajectoryStateOnSurface::cartesianError(), heavyFlavorValidationHarvestingSequence_cff::combiner, GlobalErrorBase< T, ErrorWeightType >::cxx(), GlobalErrorBase< T, ErrorWeightType >::cyy(), GlobalErrorBase< T, ErrorWeightType >::czz(), delta, PTrajectoryStateOnDet::detId(), fit, edm::Event::getByLabel(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), hChi2Increment, hClsize_vs_Chi2, hitAssociator, 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, hTotChi2Increment, i, ExpressReco_HICollisions_FallBack::id, TrajectoryStateOnSurface::isValid(), PSimHit::localPosition(), LogTrace, m, mag(), CartesianTrajectoryError::matrix(), maxeta, mineta, PSimHit::momentumAtEntry(), GloballyPositioned< T >::position(), CartesianTrajectoryError::position(), PSimHit::processType(), edm::ESHandle< class >::product(), projectHit(), TrackCandidate::recHits(), query::result, TrackCandidate::seed(), mathSSE::sqrt(), srcName, evf::utils::state, theBuilder, theG, theMF, thePropagator, theTCCollection, title, Surface::toGlobal(), TrackCandidate::trajectoryStateOnDet(), TrajectoryStateTransform::transientState(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

193 {
194  LogTrace("TestHits") << "\nnew event";
195 
197  hitAssociator = new TrackerHitAssociator(iEvent);
198 
200 
201  for (TrackCandidateCollection::const_iterator i=theTCCollection->begin(); i!=theTCCollection->end();i++){
202 
203  LogTrace("TestHits") << "\n*****************new candidate*****************" << std::endl;
204 
205  const TrackCandidate * theTC = &(*i);
207  const TrackCandidate::range& recHitVec=theTC->recHits();
208 
209  //convert PTrajectoryStateOnDet to TrajectoryStateOnSurface
210  TrajectoryStateTransform transformer;
211 
212  DetId detId(state.detId());
213  TrajectoryStateOnSurface theTSOS=
214  transformer.transientState(state, &(theG->idToDet(detId)->surface()),theMF.product());
215 
216  if (theTSOS.globalMomentum().eta()>maxeta || theTSOS.globalMomentum().eta()<mineta) continue;
217 
218  //convert the TrackingRecHit vector to a TransientTrackingRecHit vector
220 
222  i!=recHitVec.second; i++){
223  hits.push_back(theBuilder->build(&(*i) ));
224  }
225 
226  //call the fitter
227  std::vector<Trajectory> result = fit->fit(theTC->seed(), hits, theTSOS);
228  if (result.size()==0) continue;
229  std::vector<TrajectoryMeasurement> vtm = result[0].measurements();
230  double tchi2 = 0;
231 
232  TSOS lastState = theTSOS;
233  for (std::vector<TrajectoryMeasurement>::iterator tm=vtm.begin(); tm!=vtm.end();tm++){
234 
236  if ((rhit)->isValid()==0&&rhit->det()!=0) continue;
237  LogTrace("TestHits") << "*****************new hit*****************" ;
238 
239  int subdetId = rhit->det()->geographicalId().subdetId();
240  int layerId = 0;
241  DetId id = rhit->det()->geographicalId();
242  if (id.subdetId()==3) layerId = ((TIBDetId)(id)).layer();
243  if (id.subdetId()==5) layerId = ((TOBDetId)(id)).layer();
244  if (id.subdetId()==1) layerId = ((PXBDetId)(id)).layer();
245  if (id.subdetId()==4) layerId = ((TIDDetId)(id)).wheel();
246  if (id.subdetId()==6) layerId = ((TECDetId)(id)).wheel();
247  if (id.subdetId()==2) layerId = ((PXFDetId)(id)).disk();
248  LogTrace("TestHits") << "subdetId=" << subdetId << " layerId=" << layerId ;
249 
250  double delta = 99999;
251  LocalPoint rhitLPv = rhit->localPosition();
252 
253  std::vector<PSimHit> assSimHits = hitAssociator->associateHit(*(rhit->hit()));
254  if (assSimHits.size()==0) continue;
255  PSimHit shit;
256  for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++){
257  if ((m->localPosition()-rhitLPv).mag()<delta) {
258  shit=*m;
259  delta = (m->localPosition()-rhitLPv).mag();
260  }
261  }
262 
263  TSOS currentState = tm->forwardPredictedState();
264  if (tm->backwardPredictedState().isValid())
265  currentState = combiner(tm->backwardPredictedState(), tm->forwardPredictedState());
266  TSOS updatedState = tm->updatedState();
267  tchi2+=tm->estimate();
268 
269  //plot chi2 increment
270  double chi2increment = tm->estimate();
271  LogTrace("TestHits") << "tm->estimate()=" << tm->estimate();
272  title.str("");
273  title << "Chi2Increment_" << subdetId << "-" << layerId;
274  hChi2Increment[title.str()]->Fill( chi2increment );
275  hTotChi2Increment->Fill( chi2increment );
276  hProcess_vs_Chi2->Fill( chi2increment, shit.processType() );
277  if (dynamic_cast<const SiPixelRecHit*>(rhit->hit()))
278  hClsize_vs_Chi2->Fill( chi2increment, ((const SiPixelRecHit*)(rhit->hit()))->cluster()->size() );
279  if (dynamic_cast<const SiStripRecHit2D*>(rhit->hit()))
280  hClsize_vs_Chi2->Fill( chi2increment, ((const SiStripRecHit2D*)(rhit->hit()))->cluster()->amplitudes().size() );
281 
282  //test hits
283  const Surface * surf = &( (rhit)->det()->surface() );
284  LocalVector shitLMom;
285  LocalPoint shitLPos;
286  if (dynamic_cast<const SiStripMatchedRecHit2D*>((rhit)->hit())) {
287  double rechitmatchedx = rhit->localPosition().x();
288  double rechitmatchedy = rhit->localPosition().y();
289  double mindist = 999999;
290  double distx, disty;
291  std::pair<LocalPoint,LocalVector> closestPair;
292  const StripGeomDetUnit* stripDet =(StripGeomDetUnit*) ((const GluedGeomDet *)(rhit)->det())->stereoDet();
293  const BoundPlane& plane = (rhit)->det()->surface();
294  for(std::vector<PSimHit>::const_iterator m=assSimHits.begin(); m<assSimHits.end(); m++) {
295  //project simhit;
296  std::pair<LocalPoint,LocalVector> hitPair = projectHit((*m),stripDet,plane);
297  distx = fabs(rechitmatchedx - hitPair.first.x());
298  disty = fabs(rechitmatchedy - hitPair.first.y());
299  double dist = distx*distx+disty*disty;
300  if(sqrt(dist)<mindist){
301  mindist = dist;
302  closestPair = hitPair;
303  }
304  }
305  shitLPos = closestPair.first;
306  shitLMom = closestPair.second;
307  } else {
308  shitLPos = shit.localPosition();
309  shitLMom = shit.momentumAtEntry();
310  }
311  GlobalVector shitGMom = surf->toGlobal(shitLMom);
312  GlobalPoint shitGPos = surf->toGlobal(shitLPos);
313 
314  GlobalVector tsosGMom = currentState.globalMomentum();
315  GlobalError tsosGMEr(currentState.cartesianError().matrix().Sub<AlgebraicSymMatrix33>(3,3));
316  GlobalPoint tsosGPos = currentState.globalPosition();
317  GlobalError tsosGPEr = currentState.cartesianError().position();
318 
319  GlobalPoint rhitGPos = (rhit)->globalPosition();
320  GlobalError rhitGPEr = (rhit)->globalPositionError();
321 
322  double pullGPX_rs = (rhitGPos.x()-shitGPos.x())/sqrt(rhitGPEr.cxx());
323  double pullGPY_rs = (rhitGPos.y()-shitGPos.y())/sqrt(rhitGPEr.cyy());
324  double pullGPZ_rs = (rhitGPos.z()-shitGPos.z())/sqrt(rhitGPEr.czz());
325  //double pullGPX_rs = (rhitGPos.x()-shitGPos.x());
326  //double pullGPY_rs = (rhitGPos.y()-shitGPos.y());
327  //double pullGPZ_rs = (rhitGPos.z()-shitGPos.z());
328 
329  LogTrace("TestHits") << "rs" << std::endl;
330  LogVerbatim("TestHits") << "assSimHits.size()=" << assSimHits.size() ;
331  LogVerbatim("TestHits") << "tsos globalPos =" << tsosGPos ;
332  LogVerbatim("TestHits") << "sim hit globalPos=" << shitGPos ;
333  LogVerbatim("TestHits") << "rec hit globalPos=" << rhitGPos ;
334  LogVerbatim("TestHits") << "geographicalId =" << rhit->det()->geographicalId().rawId() ;
335  LogVerbatim("TestHits") << "surface position =" << surf->position() ;
336 
337  title.str("");
338  title << "PullGP_X_" << subdetId << "-" << layerId << "_rs";
339  hPullGP_X_rs[title.str()]->Fill( pullGPX_rs );
340  title.str("");
341  title << "PullGP_Y_" << subdetId << "-" << layerId << "_rs";
342  hPullGP_Y_rs[title.str()]->Fill( pullGPY_rs );
343  title.str("");
344  title << "PullGP_Z_" << subdetId << "-" << layerId << "_rs";
345  hPullGP_Z_rs[title.str()]->Fill( pullGPZ_rs );
346 
347  double pullGPX_tr = (tsosGPos.x()-rhitGPos.x())/sqrt(tsosGPEr.cxx()+rhitGPEr.cxx());
348  double pullGPY_tr = (tsosGPos.y()-rhitGPos.y())/sqrt(tsosGPEr.cyy()+rhitGPEr.cyy());
349  double pullGPZ_tr = (tsosGPos.z()-rhitGPos.z())/sqrt(tsosGPEr.czz()+rhitGPEr.czz());
350  //double pullGPX_tr = (tsosGPos.x()-rhitGPos.x());
351  //double pullGPY_tr = (tsosGPos.y()-rhitGPos.y());
352  //double pullGPZ_tr = (tsosGPos.z()-rhitGPos.z());
353 
354  LogTrace("TestHits") << "tr" << std::endl;
355 
356  title.str("");
357  title << "PullGP_X_" << subdetId << "-" << layerId << "_tr";
358  hPullGP_X_tr[title.str()]->Fill( pullGPX_tr );
359  title.str("");
360  title << "PullGP_Y_" << subdetId << "-" << layerId << "_tr";
361  hPullGP_Y_tr[title.str()]->Fill( pullGPY_tr );
362  title.str("");
363  title << "PullGP_Z_" << subdetId << "-" << layerId << "_tr";
364  hPullGP_Z_tr[title.str()]->Fill( pullGPZ_tr );
365 
366  double pullGPX_ts = (tsosGPos.x()-shitGPos.x())/sqrt(tsosGPEr.cxx());
367  double pullGPY_ts = (tsosGPos.y()-shitGPos.y())/sqrt(tsosGPEr.cyy());
368  double pullGPZ_ts = (tsosGPos.z()-shitGPos.z())/sqrt(tsosGPEr.czz());
369  //double pullGPX_ts = (tsosGPos.x()-shitGPos.x());
370  //double pullGPY_ts = (tsosGPos.y()-shitGPos.y());
371  //double pullGPZ_ts = (tsosGPos.z()-shitGPos.z());
372 
373  LogTrace("TestHits") << "ts1" << std::endl;
374 
375  title.str("");
376  title << "PullGP_X_" << subdetId << "-" << layerId << "_ts";
377  hPullGP_X_ts[title.str()]->Fill( pullGPX_ts );
378  title.str("");
379  title << "PullGP_Y_" << subdetId << "-" << layerId << "_ts";
380  hPullGP_Y_ts[title.str()]->Fill( pullGPY_ts );
381  title.str("");
382  title << "PullGP_Z_" << subdetId << "-" << layerId << "_ts";
383  hPullGP_Z_ts[title.str()]->Fill( pullGPZ_ts );
384 
385  double pullGMX_ts = (tsosGMom.x()-shitGMom.x())/sqrt(tsosGMEr.cxx());
386  double pullGMY_ts = (tsosGMom.y()-shitGMom.y())/sqrt(tsosGMEr.cyy());
387  double pullGMZ_ts = (tsosGMom.z()-shitGMom.z())/sqrt(tsosGMEr.czz());
388  //double pullGMX_ts = (tsosGMom.x()-shitGMom.x());
389  //double pullGMY_ts = (tsosGMom.y()-shitGMom.y());
390  //double pullGMZ_ts = (tsosGMom.z()-shitGMom.z());
391 
392  LogTrace("TestHits") << "ts2" << std::endl;
393 
394  title.str("");
395  title << "PullGM_X_" << subdetId << "-" << layerId << "_ts";
396  hPullGM_X_ts[title.str()]->Fill( pullGMX_ts );
397  title.str("");
398  title << "PullGM_Y_" << subdetId << "-" << layerId << "_ts";
399  hPullGM_Y_ts[title.str()]->Fill( pullGMY_ts );
400  title.str("");
401  title << "PullGM_Z_" << subdetId << "-" << layerId << "_ts";
402  hPullGM_Z_ts[title.str()]->Fill( pullGMZ_ts );
403 
404  if (dynamic_cast<const SiStripMatchedRecHit2D*>((rhit)->hit())) {
405  //mono
406  LogTrace("TestHits") << "MONO HIT" << std::endl;
407  CTTRHp tMonoHit =
408  theBuilder->build(dynamic_cast<const SiStripMatchedRecHit2D*>((rhit)->hit())->monoHit());
409  if (tMonoHit==0) continue;
410  vector<PSimHit> assMonoSimHits = hitAssociator->associateHit(*tMonoHit->hit());
411  if (assMonoSimHits.size()==0) continue;
412  const PSimHit sMonoHit = *(assSimHits.begin());
413  const Surface * monoSurf = &( tMonoHit->det()->surface() );
414  if (monoSurf==0) continue;
415  TSOS monoState = thePropagator->propagate(lastState,*monoSurf);
416  if (monoState.isValid()==0) continue;
417 
418  LocalVector monoShitLMom = sMonoHit.momentumAtEntry();
419  GlobalVector monoShitGMom = monoSurf->toGlobal(monoShitLMom);
420  LocalPoint monoShitLPos = sMonoHit.localPosition();
421  GlobalPoint monoShitGPos = monoSurf->toGlobal(monoShitLPos);
422 
423  GlobalVector monoTsosGMom = monoState.globalMomentum();
424  GlobalError monoTsosGMEr(monoState.cartesianError().matrix().Sub<AlgebraicSymMatrix33>(3,3));
425  GlobalPoint monoTsosGPos = monoState.globalPosition();
426  GlobalError monoTsosGPEr = monoState.cartesianError().position();
427 
428  GlobalPoint monoRhitGPos = tMonoHit->globalPosition();
429  GlobalError monoRhitGPEr = tMonoHit->globalPositionError();
430 
431  double pullGPX_rs_mono = (monoRhitGPos.x()-monoShitGPos.x())/sqrt(monoRhitGPEr.cxx());
432  double pullGPY_rs_mono = (monoRhitGPos.y()-monoShitGPos.y())/sqrt(monoRhitGPEr.cyy());
433  double pullGPZ_rs_mono = (monoRhitGPos.z()-monoShitGPos.z())/sqrt(monoRhitGPEr.czz());
434  //double pullGPX_rs_mono = (monoRhitGPos.x()-monoShitGPos.x());
435  //double pullGPY_rs_mono = (monoRhitGPos.y()-monoShitGPos.y());
436  //double pullGPZ_rs_mono = (monoRhitGPos.z()-monoShitGPos.z());
437 
438  title.str("");
439  title << "PullGP_X_" << subdetId << "-" << layerId << "_rs_mono";
440  hPullGP_X_rs_mono[title.str()]->Fill( pullGPX_rs_mono );
441  title.str("");
442  title << "PullGP_Y_" << subdetId << "-" << layerId << "_rs_mono";
443  hPullGP_Y_rs_mono[title.str()]->Fill( pullGPY_rs_mono );
444  title.str("");
445  title << "PullGP_Z_" << subdetId << "-" << layerId << "_rs_mono";
446  hPullGP_Z_rs_mono[title.str()]->Fill( pullGPZ_rs_mono );
447 
448  double pullGPX_tr_mono = (monoTsosGPos.x()-monoRhitGPos.x())/sqrt(monoTsosGPEr.cxx()+monoRhitGPEr.cxx());
449  double pullGPY_tr_mono = (monoTsosGPos.y()-monoRhitGPos.y())/sqrt(monoTsosGPEr.cyy()+monoRhitGPEr.cyy());
450  double pullGPZ_tr_mono = (monoTsosGPos.z()-monoRhitGPos.z())/sqrt(monoTsosGPEr.czz()+monoRhitGPEr.czz());
451  //double pullGPX_tr_mono = (monoTsosGPos.x()-monoRhitGPos.x());
452  //double pullGPY_tr_mono = (monoTsosGPos.y()-monoRhitGPos.y());
453  //double pullGPZ_tr_mono = (monoTsosGPos.z()-monoRhitGPos.z());
454 
455  title.str("");
456  title << "PullGP_X_" << subdetId << "-" << layerId << "_tr_mono";
457  hPullGP_X_tr_mono[title.str()]->Fill( pullGPX_tr_mono );
458  title.str("");
459  title << "PullGP_Y_" << subdetId << "-" << layerId << "_tr_mono";
460  hPullGP_Y_tr_mono[title.str()]->Fill( pullGPY_tr_mono );
461  title.str("");
462  title << "PullGP_Z_" << subdetId << "-" << layerId << "_tr_mono";
463  hPullGP_Z_tr_mono[title.str()]->Fill( pullGPZ_tr_mono );
464 
465  double pullGPX_ts_mono = (monoTsosGPos.x()-monoShitGPos.x())/sqrt(monoTsosGPEr.cxx());
466  double pullGPY_ts_mono = (monoTsosGPos.y()-monoShitGPos.y())/sqrt(monoTsosGPEr.cyy());
467  double pullGPZ_ts_mono = (monoTsosGPos.z()-monoShitGPos.z())/sqrt(monoTsosGPEr.czz());
468  //double pullGPX_ts_mono = (monoTsosGPos.x()-monoShitGPos.x());
469  //double pullGPY_ts_mono = (monoTsosGPos.y()-monoShitGPos.y());
470  //double pullGPZ_ts_mono = (monoTsosGPos.z()-monoShitGPos.z());
471 
472  title.str("");
473  title << "PullGP_X_" << subdetId << "-" << layerId << "_ts_mono";
474  hPullGP_X_ts_mono[title.str()]->Fill( pullGPX_ts_mono );
475  title.str("");
476  title << "PullGP_Y_" << subdetId << "-" << layerId << "_ts_mono";
477  hPullGP_Y_ts_mono[title.str()]->Fill( pullGPY_ts_mono );
478  title.str("");
479  title << "PullGP_Z_" << subdetId << "-" << layerId << "_ts_mono";
480  hPullGP_Z_ts_mono[title.str()]->Fill( pullGPZ_ts_mono );
481 
482  double pullGMX_ts_mono = (monoTsosGMom.x()-monoShitGMom.x())/sqrt(monoTsosGMEr.cxx());
483  double pullGMY_ts_mono = (monoTsosGMom.y()-monoShitGMom.y())/sqrt(monoTsosGMEr.cyy());
484  double pullGMZ_ts_mono = (monoTsosGMom.z()-monoShitGMom.z())/sqrt(monoTsosGMEr.czz());
485  //double pullGMX_ts_mono = (monoTsosGMom.x()-monoShitGMom.x());
486  //double pullGMY_ts_mono = (monoTsosGMom.y()-monoShitGMom.y());
487  //double pullGMZ_ts_mono = (monoTsosGMom.z()-monoShitGMom.z());
488 
489  title.str("");
490  title << "PullGM_X_" << subdetId << "-" << layerId << "_ts_mono";
491  hPullGM_X_ts_mono[title.str()]->Fill( pullGMX_ts_mono );
492  title.str("");
493  title << "PullGM_Y_" << subdetId << "-" << layerId << "_ts_mono";
494  hPullGM_Y_ts_mono[title.str()]->Fill( pullGMY_ts_mono );
495  title.str("");
496  title << "PullGM_Z_" << subdetId << "-" << layerId << "_ts_mono";
497  hPullGM_Z_ts_mono[title.str()]->Fill( pullGMZ_ts_mono );
498 
499  //stereo
500  LogTrace("TestHits") << "STEREO HIT" << std::endl;
501  CTTRHp tStereoHit =
502  theBuilder->build(dynamic_cast<const SiStripMatchedRecHit2D*>((rhit)->hit())->stereoHit());
503  if (tStereoHit==0) continue;
504  vector<PSimHit> assStereoSimHits = hitAssociator->associateHit(*tStereoHit->hit());
505  if (assStereoSimHits.size()==0) continue;
506  const PSimHit sStereoHit = *(assSimHits.begin());
507  const Surface * stereoSurf = &( tStereoHit->det()->surface() );
508  if (stereoSurf==0) continue;
509  TSOS stereoState = thePropagator->propagate(lastState,*stereoSurf);
510  if (stereoState.isValid()==0) continue;
511 
512  LocalVector stereoShitLMom = sStereoHit.momentumAtEntry();
513  GlobalVector stereoShitGMom = stereoSurf->toGlobal(stereoShitLMom);
514  LocalPoint stereoShitLPos = sStereoHit.localPosition();
515  GlobalPoint stereoShitGPos = stereoSurf->toGlobal(stereoShitLPos);
516 
517  GlobalVector stereoTsosGMom = stereoState.globalMomentum();
518  GlobalError stereoTsosGMEr(stereoState.cartesianError().matrix().Sub<AlgebraicSymMatrix33>(3,3));
519  GlobalPoint stereoTsosGPos = stereoState.globalPosition();
520  GlobalError stereoTsosGPEr = stereoState.cartesianError().position();
521 
522  GlobalPoint stereoRhitGPos = tStereoHit->globalPosition();
523  GlobalError stereoRhitGPEr = tStereoHit->globalPositionError();
524 
525  double pullGPX_rs_stereo = (stereoRhitGPos.x()-stereoShitGPos.x())/sqrt(stereoRhitGPEr.cxx());
526  double pullGPY_rs_stereo = (stereoRhitGPos.y()-stereoShitGPos.y())/sqrt(stereoRhitGPEr.cyy());
527  double pullGPZ_rs_stereo = (stereoRhitGPos.z()-stereoShitGPos.z())/sqrt(stereoRhitGPEr.czz());
528  //double pullGPX_rs_stereo = (stereoRhitGPos.x()-stereoShitGPos.x());
529  //double pullGPY_rs_stereo = (stereoRhitGPos.y()-stereoShitGPos.y());
530  //double pullGPZ_rs_stereo = (stereoRhitGPos.z()-stereoShitGPos.z());
531 
532  title.str("");
533  title << "PullGP_X_" << subdetId << "-" << layerId << "_rs_stereo";
534  hPullGP_X_rs_stereo[title.str()]->Fill( pullGPX_rs_stereo );
535  title.str("");
536  title << "PullGP_Y_" << subdetId << "-" << layerId << "_rs_stereo";
537  hPullGP_Y_rs_stereo[title.str()]->Fill( pullGPY_rs_stereo );
538  title.str("");
539  title << "PullGP_Z_" << subdetId << "-" << layerId << "_rs_stereo";
540  hPullGP_Z_rs_stereo[title.str()]->Fill( pullGPZ_rs_stereo );
541 
542  double pullGPX_tr_stereo = (stereoTsosGPos.x()-stereoRhitGPos.x())/sqrt(stereoTsosGPEr.cxx()+stereoRhitGPEr.cxx());
543  double pullGPY_tr_stereo = (stereoTsosGPos.y()-stereoRhitGPos.y())/sqrt(stereoTsosGPEr.cyy()+stereoRhitGPEr.cyy());
544  double pullGPZ_tr_stereo = (stereoTsosGPos.z()-stereoRhitGPos.z())/sqrt(stereoTsosGPEr.czz()+stereoRhitGPEr.czz());
545  //double pullGPX_tr_stereo = (stereoTsosGPos.x()-stereoRhitGPos.x());
546  //double pullGPY_tr_stereo = (stereoTsosGPos.y()-stereoRhitGPos.y());
547  //double pullGPZ_tr_stereo = (stereoTsosGPos.z()-stereoRhitGPos.z());
548 
549  title.str("");
550  title << "PullGP_X_" << subdetId << "-" << layerId << "_tr_stereo";
551  hPullGP_X_tr_stereo[title.str()]->Fill( pullGPX_tr_stereo );
552  title.str("");
553  title << "PullGP_Y_" << subdetId << "-" << layerId << "_tr_stereo";
554  hPullGP_Y_tr_stereo[title.str()]->Fill( pullGPY_tr_stereo );
555  title.str("");
556  title << "PullGP_Z_" << subdetId << "-" << layerId << "_tr_stereo";
557  hPullGP_Z_tr_stereo[title.str()]->Fill( pullGPZ_tr_stereo );
558 
559  double pullGPX_ts_stereo = (stereoTsosGPos.x()-stereoShitGPos.x())/sqrt(stereoTsosGPEr.cxx());
560  double pullGPY_ts_stereo = (stereoTsosGPos.y()-stereoShitGPos.y())/sqrt(stereoTsosGPEr.cyy());
561  double pullGPZ_ts_stereo = (stereoTsosGPos.z()-stereoShitGPos.z())/sqrt(stereoTsosGPEr.czz());
562  //double pullGPX_ts_stereo = (stereoTsosGPos.x()-stereoShitGPos.x());
563  //double pullGPY_ts_stereo = (stereoTsosGPos.y()-stereoShitGPos.y());
564  //double pullGPZ_ts_stereo = (stereoTsosGPos.z()-stereoShitGPos.z());
565 
566  title.str("");
567  title << "PullGP_X_" << subdetId << "-" << layerId << "_ts_stereo";
568  hPullGP_X_ts_stereo[title.str()]->Fill( pullGPX_ts_stereo );
569  title.str("");
570  title << "PullGP_Y_" << subdetId << "-" << layerId << "_ts_stereo";
571  hPullGP_Y_ts_stereo[title.str()]->Fill( pullGPY_ts_stereo );
572  title.str("");
573  title << "PullGP_Z_" << subdetId << "-" << layerId << "_ts_stereo";
574  hPullGP_Z_ts_stereo[title.str()]->Fill( pullGPZ_ts_stereo );
575 
576  double pullGMX_ts_stereo = (stereoTsosGMom.x()-stereoShitGMom.x())/sqrt(stereoTsosGMEr.cxx());
577  double pullGMY_ts_stereo = (stereoTsosGMom.y()-stereoShitGMom.y())/sqrt(stereoTsosGMEr.cyy());
578  double pullGMZ_ts_stereo = (stereoTsosGMom.z()-stereoShitGMom.z())/sqrt(stereoTsosGMEr.czz());
579  //double pullGMX_ts_stereo = (stereoTsosGMom.x()-stereoShitGMom.x());
580  //double pullGMY_ts_stereo = (stereoTsosGMom.y()-stereoShitGMom.y());
581  //double pullGMZ_ts_stereo = (stereoTsosGMom.z()-stereoShitGMom.z());
582 
583  title.str("");
584  title << "PullGM_X_" << subdetId << "-" << layerId << "_ts_stereo";
585  hPullGM_X_ts_stereo[title.str()]->Fill( pullGMX_ts_stereo );
586  title.str("");
587  title << "PullGM_Y_" << subdetId << "-" << layerId << "_ts_stereo";
588  hPullGM_Y_ts_stereo[title.str()]->Fill( pullGMY_ts_stereo );
589  title.str("");
590  title << "PullGM_Z_" << subdetId << "-" << layerId << "_ts_stereo";
591  hPullGM_Z_ts_stereo[title.str()]->Fill( pullGMZ_ts_stereo );
592  }
593  lastState = updatedState;
594  }
595  LogTrace("TestHits") << "traj chi2=" << tchi2 ;
596  LogTrace("TestHits") << "track chi2=" << result[0].chiSquared() ;
597  }
598  delete hitAssociator;
599  LogTrace("TestHits") << "end of event" << std::endl;
600 }
edm::Handle< TrackCandidateCollection > theTCCollection
Definition: TestHits.h:77
dbl * delta
Definition: mlp_gen.cc:36
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
int i
Definition: DBlmapReader.cc:9
std::pair< LocalPoint, LocalVector > projectHit(const PSimHit &, const StripGeomDetUnit *, const BoundPlane &)
Definition: TestHits.cc:1187
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
Definition: TestHits.h:107
std::map< std::string, TH1F * > hPullGP_X_rs_mono
Definition: TestHits.h:103
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
Definition: TestHits.h:121
TH1F * hTotChi2Increment
Definition: TestHits.h:94
range recHits() const
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
Definition: TestHits.h:75
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
Definition: TestHits.h:99
LocalVector momentumAtEntry() const
The momentum of the track that produced the hit, at entry point.
Definition: PSimHit.h:47
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
Definition: TestHits.h:113
std::map< std::string, TH1F * > hPullGM_X_ts_mono
Definition: TestHits.h:100
double mineta
Definition: TestHits.h:65
TrajectorySeed const & seed() const
T y() const
Definition: PV3DBase.h:57
GlobalPoint globalPosition() const
std::map< std::string, TH1F * > hPullGP_Y_ts
Definition: TestHits.h:82
std::map< std::string, TH1F * > hChi2Increment
Definition: TestHits.h:93
std::pair< const_iterator, const_iterator > range
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
Definition: TestHits.h:111
std::map< std::string, TH1F * > hPullGP_Z_rs
Definition: TestHits.h:89
edm::ESHandle< Propagator > thePropagator
Definition: TestHits.h:74
std::map< std::string, TH1F * > hPullGP_Y_rs
Definition: TestHits.h:88
std::vector< ConstRecHitPointer > RecHitContainer
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
Definition: TestHits.h:119
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
Definition: TestHits.h:118
PTrajectoryStateOnDet const & trajectoryStateOnDet() const
TrackerHitAssociator * hitAssociator
Definition: TestHits.h:63
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
ROOT::Math::SMatrix< double, 3, 3, ROOT::Math::MatRepSym< double, 3 > > AlgebraicSymMatrix33
std::map< std::string, TH1F * > hPullGP_Y_tr
Definition: TestHits.h:91
Local3DPoint localPosition() const
Definition: PSimHit.h:44
const CartesianTrajectoryError & cartesianError() const
T sqrt(T t)
Definition: SSEVec.h:28
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
Definition: TestHits.h:116
T z() const
Definition: PV3DBase.h:58
tuple result
Definition: query.py:137
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
Definition: TestHits.h:120
TrajectoryStateOnSurface transientState(const PTrajectoryStateOnDet &ts, const Surface *surface, const MagneticField *field) const
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
Definition: TestHits.h:104
std::map< std::string, TH1F * > hPullGM_Z_ts
Definition: TestHits.h:86
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
Definition: TestHits.h:101
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
Definition: TestHits.h:105
#define LogTrace(id)
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
Definition: TestHits.h:110
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
Definition: TestHits.h:117
const AlgebraicSymMatrix66 & matrix() const
GlobalError position() const
Position error submatrix.
edm::ESHandle< TrackerGeometry > theG
Definition: TestHits.h:72
edm::ESHandle< TrajectoryFitter > fit
Definition: TestHits.h:76
Definition: DetId.h:20
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
Definition: TestHits.h:115
TH2F * hProcess_vs_Chi2
Definition: TestHits.h:95
const unsigned int detId() const
T const * product() const
Definition: ESHandle.h:62
std::map< std::string, TH1F * > hPullGP_Z_tr
Definition: TestHits.h:92
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
Definition: TestHits.h:98
unsigned short processType() const
Definition: PSimHit.h:118
char state
Definition: procUtils.cc:75
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
Definition: TestHits.h:114
edm::ESHandle< MagneticField > theMF
Definition: TestHits.h:73
std::map< std::string, TH1F * > hPullGP_X_tr_mono
Definition: TestHits.h:106
TH2F * hClsize_vs_Chi2
Definition: TestHits.h:95
GlobalVector globalMomentum() const
std::map< std::string, TH1F * > hPullGM_X_ts
Definition: TestHits.h:84
std::map< std::string, TH1F * > hPullGP_X_ts
Definition: TestHits.h:81
std::vector< PSimHit > associateHit(const TrackingRecHit &thit)
std::string srcName
Definition: TestHits.h:69
std::map< std::string, TH1F * > hPullGP_Z_ts
Definition: TestHits.h:83
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
Definition: TestHits.h:108
std::map< std::string, TH1F * > hPullGP_X_ts_mono
Definition: TestHits.h:97
T x() const
Definition: PV3DBase.h:56
const PositionType & position() const
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
Definition: TestHits.h:102
std::map< std::string, TH1F * > hPullGM_Y_ts
Definition: TestHits.h:85
std::map< std::string, TH1F * > hPullGP_X_tr
Definition: TestHits.h:90
std::stringstream title
Definition: TestHits.h:80
Our base class.
Definition: SiPixelRecHit.h:27
double maxeta
Definition: TestHits.h:65
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
Definition: TestHits.h:112
std::map< std::string, TH1F * > hPullGP_X_rs
Definition: TestHits.h:87
void TestHits::beginRun ( edm::Run run,
const edm::EventSetup iSetup 
)
privatevirtual

Definition at line 41 of file TestHits.cc.

References builderName, file, fit, fname, edm::EventSetup::get(), hChi2Increment, hClsize_vs_Chi2, 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, hTotChi2Increment, i, j, propagatorName, theBuilder, theG, theMF, thePropagator, and title.

42 {
43 
44  iSetup.get<TrackerDigiGeometryRecord>().get(theG);
45  iSetup.get<IdealMagneticFieldRecord>().get(theMF);
48  iSetup.get<TrajectoryFitter::Record>().get(fname, fit);
49 
50  file = new TFile("testhits.root","recreate");
51  for (int i=0; i!=6; i++)
52  for (int j=0; j!=9; j++){
53  if (i==0 && j>2) break;
54  if (i==1 && j>1) break;
55  if (i==2 && j>3) break;
56  if (i==3 && j>2) break;
57  if (i==4 && j>5) break;
58  if (i==5 && j>8) break;
59  title.str("");
60  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts";
61  hPullGP_X_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
62  title.str("");
63  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts";
64  hPullGP_Y_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
65  title.str("");
66  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts";
67  hPullGP_Z_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
68  title.str("");
69  title << "Chi2Increment_" << i+1 << "-" << j+1;
70  hChi2Increment[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,0,100);
71 
72  title.str("");
73  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts";
74  hPullGM_X_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
75  title.str("");
76  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts";
77  hPullGM_Y_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
78  title.str("");
79  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts";
80  hPullGM_Z_ts[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
81 
82  title.str("");
83  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr";
84  hPullGP_X_tr[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
85  title.str("");
86  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr";
87  hPullGP_Y_tr[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
88  title.str("");
89  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr";
90  hPullGP_Z_tr[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
91 
92  title.str("");
93  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs";
94  hPullGP_X_rs[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
95  title.str("");
96  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs";
97  hPullGP_Y_rs[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
98  title.str("");
99  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs";
100  hPullGP_Z_rs[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
101 
102  if ( ((i==2||i==4)&&(j==0||j==1)) || (i==3||i==5) ){
103  //mono
104  title.str("");
105  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_mono";
106  hPullGP_X_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
107  title.str("");
108  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_mono";
109  hPullGP_Y_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
110  title.str("");
111  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_mono";
112  hPullGP_Z_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
113 
114  title.str("");
115  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_mono";
116  hPullGM_X_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
117  title.str("");
118  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_mono";
119  hPullGM_Y_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
120  title.str("");
121  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_mono";
122  hPullGM_Z_ts_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
123 
124  title.str("");
125  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_mono";
126  hPullGP_X_tr_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
127  title.str("");
128  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_mono";
129  hPullGP_Y_tr_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
130  title.str("");
131  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_mono";
132  hPullGP_Z_tr_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
133 
134  title.str("");
135  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_mono";
136  hPullGP_X_rs_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
137  title.str("");
138  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_mono";
139  hPullGP_Y_rs_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
140  title.str("");
141  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_mono";
142  hPullGP_Z_rs_mono[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
143 
144  //stereo
145  title.str("");
146  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_stereo";
147  hPullGP_X_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
148  title.str("");
149  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
150  hPullGP_Y_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
151  title.str("");
152  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
153  hPullGP_Z_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
154 
155  title.str("");
156  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_stereo";
157  hPullGM_X_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
158  title.str("");
159  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
160  hPullGM_Y_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
161  title.str("");
162  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
163  hPullGM_Z_ts_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
164 
165  title.str("");
166  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_stereo";
167  hPullGP_X_tr_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
168  title.str("");
169  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_stereo";
170  hPullGP_Y_tr_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
171  title.str("");
172  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_stereo";
173  hPullGP_Z_tr_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
174 
175  title.str("");
176  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_stereo";
177  hPullGP_X_rs_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
178  title.str("");
179  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_stereo";
180  hPullGP_Y_rs_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
181  title.str("");
182  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_stereo";
183  hPullGP_Z_rs_stereo[title.str()] = new TH1F(title.str().c_str(),title.str().c_str(),1000,-50,50);
184  }
185  }
186  hTotChi2Increment = new TH1F("TotChi2Increment","TotChi2Increment",1000,0,100);
187  hProcess_vs_Chi2 = new TH2F("Process_vs_Chi2","Process_vs_Chi2",1000,0,100,17,-0.5,16.5);
188  hClsize_vs_Chi2 = new TH2F("Clsize_vs_Chi2","Clsize_vs_Chi2",1000,0,100,17,-0.5,16.5);
189 }
int i
Definition: DBlmapReader.cc:9
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
Definition: TestHits.h:107
std::map< std::string, TH1F * > hPullGP_X_rs_mono
Definition: TestHits.h:103
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
Definition: TestHits.h:121
TH1F * hTotChi2Increment
Definition: TestHits.h:94
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
Definition: TestHits.h:75
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
Definition: TestHits.h:99
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
Definition: TestHits.h:113
std::map< std::string, TH1F * > hPullGM_X_ts_mono
Definition: TestHits.h:100
std::string builderName
Definition: TestHits.h:68
std::map< std::string, TH1F * > hPullGP_Y_ts
Definition: TestHits.h:82
std::map< std::string, TH1F * > hChi2Increment
Definition: TestHits.h:93
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
Definition: TestHits.h:111
std::map< std::string, TH1F * > hPullGP_Z_rs
Definition: TestHits.h:89
edm::ESHandle< Propagator > thePropagator
Definition: TestHits.h:74
std::map< std::string, TH1F * > hPullGP_Y_rs
Definition: TestHits.h:88
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
Definition: TestHits.h:119
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
Definition: TestHits.h:118
std::map< std::string, TH1F * > hPullGP_Y_tr
Definition: TestHits.h:91
std::string propagatorName
Definition: TestHits.h:67
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
Definition: TestHits.h:116
int j
Definition: DBlmapReader.cc:9
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
Definition: TestHits.h:120
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
Definition: TestHits.h:104
std::map< std::string, TH1F * > hPullGM_Z_ts
Definition: TestHits.h:86
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
Definition: TestHits.h:101
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
Definition: TestHits.h:105
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
Definition: TestHits.h:110
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
Definition: TestHits.h:117
edm::ESHandle< TrackerGeometry > theG
Definition: TestHits.h:72
edm::ESHandle< TrajectoryFitter > fit
Definition: TestHits.h:76
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
Definition: TestHits.h:115
TH2F * hProcess_vs_Chi2
Definition: TestHits.h:95
const T & get() const
Definition: EventSetup.h:55
std::map< std::string, TH1F * > hPullGP_Z_tr
Definition: TestHits.h:92
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
Definition: TestHits.h:98
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
Definition: TestHits.h:114
edm::ESHandle< MagneticField > theMF
Definition: TestHits.h:73
std::map< std::string, TH1F * > hPullGP_X_tr_mono
Definition: TestHits.h:106
TH2F * hClsize_vs_Chi2
Definition: TestHits.h:95
TFile * file
Definition: TestHits.h:79
std::map< std::string, TH1F * > hPullGM_X_ts
Definition: TestHits.h:84
std::map< std::string, TH1F * > hPullGP_X_ts
Definition: TestHits.h:81
std::string fname
Definition: TestHits.h:70
std::map< std::string, TH1F * > hPullGP_Z_ts
Definition: TestHits.h:83
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
Definition: TestHits.h:108
std::map< std::string, TH1F * > hPullGP_X_ts_mono
Definition: TestHits.h:97
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
Definition: TestHits.h:102
std::map< std::string, TH1F * > hPullGM_Y_ts
Definition: TestHits.h:85
std::map< std::string, TH1F * > hPullGP_X_tr
Definition: TestHits.h:90
std::stringstream title
Definition: TestHits.h:80
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
Definition: TestHits.h:112
std::map< std::string, TH1F * > hPullGP_X_rs
Definition: TestHits.h:87
void TestHits::endJob ( void  )
privatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 943 of file TestHits.cc.

References file, hChi2Increment, hClsize_vs_Chi2, 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, hTotChi2Increment, i, j, and title.

943  {
944  //file->Write();
945  TDirectory * chi2i = file->mkdir("Chi2_Increment");
946 
947  TDirectory * gp_ts = file->mkdir("GP_TSOS-SimHit");
948  TDirectory * gm_ts = file->mkdir("GM_TSOS-SimHit");
949  TDirectory * gp_tr = file->mkdir("GP_TSOS-RecHit");
950  TDirectory * gp_rs = file->mkdir("GP_RecHit-SimHit");
951 
952  TDirectory * gp_tsx = gp_ts->mkdir("X");
953  TDirectory * gp_tsy = gp_ts->mkdir("Y");
954  TDirectory * gp_tsz = gp_ts->mkdir("Z");
955  TDirectory * gm_tsx = gm_ts->mkdir("X");
956  TDirectory * gm_tsy = gm_ts->mkdir("Y");
957  TDirectory * gm_tsz = gm_ts->mkdir("Z");
958  TDirectory * gp_trx = gp_tr->mkdir("X");
959  TDirectory * gp_try = gp_tr->mkdir("Y");
960  TDirectory * gp_trz = gp_tr->mkdir("Z");
961  TDirectory * gp_rsx = gp_rs->mkdir("X");
962  TDirectory * gp_rsy = gp_rs->mkdir("Y");
963  TDirectory * gp_rsz = gp_rs->mkdir("Z");
964 
965  TDirectory * gp_tsx_mono = gp_ts->mkdir("MONOX");
966  TDirectory * gp_tsy_mono = gp_ts->mkdir("MONOY");
967  TDirectory * gp_tsz_mono = gp_ts->mkdir("MONOZ");
968  TDirectory * gm_tsx_mono = gm_ts->mkdir("MONOX");
969  TDirectory * gm_tsy_mono = gm_ts->mkdir("MONOY");
970  TDirectory * gm_tsz_mono = gm_ts->mkdir("MONOZ");
971  TDirectory * gp_trx_mono = gp_tr->mkdir("MONOX");
972  TDirectory * gp_try_mono = gp_tr->mkdir("MONOY");
973  TDirectory * gp_trz_mono = gp_tr->mkdir("MONOZ");
974  TDirectory * gp_rsx_mono = gp_rs->mkdir("MONOX");
975  TDirectory * gp_rsy_mono = gp_rs->mkdir("MONOY");
976  TDirectory * gp_rsz_mono = gp_rs->mkdir("MONOZ");
977 
978  TDirectory * gp_tsx_stereo = gp_ts->mkdir("STEREOX");
979  TDirectory * gp_tsy_stereo = gp_ts->mkdir("STEREOY");
980  TDirectory * gp_tsz_stereo = gp_ts->mkdir("STEREOZ");
981  TDirectory * gm_tsx_stereo = gm_ts->mkdir("STEREOX");
982  TDirectory * gm_tsy_stereo = gm_ts->mkdir("STEREOY");
983  TDirectory * gm_tsz_stereo = gm_ts->mkdir("STEREOZ");
984  TDirectory * gp_trx_stereo = gp_tr->mkdir("STEREOX");
985  TDirectory * gp_try_stereo = gp_tr->mkdir("STEREOY");
986  TDirectory * gp_trz_stereo = gp_tr->mkdir("STEREOZ");
987  TDirectory * gp_rsx_stereo = gp_rs->mkdir("STEREOX");
988  TDirectory * gp_rsy_stereo = gp_rs->mkdir("STEREOY");
989  TDirectory * gp_rsz_stereo = gp_rs->mkdir("STEREOZ");
990 
991  chi2i->cd();
992  hTotChi2Increment->Write();
993  hProcess_vs_Chi2->Write();
994  hClsize_vs_Chi2->Write();
995  for (int i=0; i!=6; i++)
996  for (int j=0; j!=9; j++){
997  if (i==0 && j>2) break;
998  if (i==1 && j>1) break;
999  if (i==2 && j>3) break;
1000  if (i==3 && j>2) break;
1001  if (i==4 && j>5) break;
1002  if (i==5 && j>8) break;
1003  chi2i->cd();
1004  title.str("");
1005  title << "Chi2Increment_" << i+1 << "-" << j+1;
1006  hChi2Increment[title.str()]->Write();
1007 
1008  gp_ts->cd();
1009  gp_tsx->cd();
1010  title.str("");
1011  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts";
1012  hPullGP_X_ts[title.str()]->Write();
1013  gp_tsy->cd();
1014  title.str("");
1015  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts";
1016  hPullGP_Y_ts[title.str()]->Write();
1017  gp_tsz->cd();
1018  title.str("");
1019  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts";
1020  hPullGP_Z_ts[title.str()]->Write();
1021 
1022  gm_ts->cd();
1023  gm_tsx->cd();
1024  title.str("");
1025  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts";
1026  hPullGM_X_ts[title.str()]->Write();
1027  gm_tsy->cd();
1028  title.str("");
1029  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts";
1030  hPullGM_Y_ts[title.str()]->Write();
1031  gm_tsz->cd();
1032  title.str("");
1033  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts";
1034  hPullGM_Z_ts[title.str()]->Write();
1035 
1036  gp_tr->cd();
1037  gp_trx->cd();
1038  title.str("");
1039  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr";
1040  hPullGP_X_tr[title.str()]->Write();
1041  gp_try->cd();
1042  title.str("");
1043  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr";
1044  hPullGP_Y_tr[title.str()]->Write();
1045  gp_trz->cd();
1046  title.str("");
1047  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr";
1048  hPullGP_Z_tr[title.str()]->Write();
1049 
1050  gp_rs->cd();
1051  gp_rsx->cd();
1052  title.str("");
1053  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs";
1054  hPullGP_X_rs[title.str()]->Write();
1055  gp_rsy->cd();
1056  title.str("");
1057  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs";
1058  hPullGP_Y_rs[title.str()]->Write();
1059  gp_rsz->cd();
1060  title.str("");
1061  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs";
1062  hPullGP_Z_rs[title.str()]->Write();
1063 
1064  if ( ((i==2||i==4)&&(j==0||j==1)) || (i==3||i==5) ){
1065  //mono
1066  gp_ts->cd();
1067  gp_tsx_mono->cd();
1068  title.str("");
1069  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_mono";
1070  hPullGP_X_ts_mono[title.str()]->Write();
1071  gp_tsy_mono->cd();
1072  title.str("");
1073  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_mono";
1074  hPullGP_Y_ts_mono[title.str()]->Write();
1075  gp_tsz_mono->cd();
1076  title.str("");
1077  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_mono";
1078  hPullGP_Z_ts_mono[title.str()]->Write();
1079 
1080  gm_ts->cd();
1081  gm_tsx_mono->cd();
1082  title.str("");
1083  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_mono";
1084  hPullGM_X_ts_mono[title.str()]->Write();
1085  gm_tsy_mono->cd();
1086  title.str("");
1087  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_mono";
1088  hPullGM_Y_ts_mono[title.str()]->Write();
1089  gm_tsz_mono->cd();
1090  title.str("");
1091  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_mono";
1092  hPullGM_Z_ts_mono[title.str()]->Write();
1093 
1094  gp_tr->cd();
1095  gp_trx_mono->cd();
1096  title.str("");
1097  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_mono";
1098  hPullGP_X_tr_mono[title.str()]->Write();
1099  gp_try_mono->cd();
1100  title.str("");
1101  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_mono";
1102  hPullGP_Y_tr_mono[title.str()]->Write();
1103  gp_trz_mono->cd();
1104  title.str("");
1105  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_mono";
1106  hPullGP_Z_tr_mono[title.str()]->Write();
1107 
1108  gp_rs->cd();
1109  gp_rsx_mono->cd();
1110  title.str("");
1111  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_mono";
1112  hPullGP_X_rs_mono[title.str()]->Write();
1113  gp_rsy_mono->cd();
1114  title.str("");
1115  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_mono";
1116  hPullGP_Y_rs_mono[title.str()]->Write();
1117  gp_rsz_mono->cd();
1118  title.str("");
1119  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_mono";
1120  hPullGP_Z_rs_mono[title.str()]->Write();
1121 
1122  //stereo
1123  gp_ts->cd();
1124  gp_tsx_stereo->cd();
1125  title.str("");
1126  title << "PullGP_X_" << i+1 << "-" << j+1 << "_ts_stereo";
1127  hPullGP_X_ts_stereo[title.str()]->Write();
1128  gp_tsy_stereo->cd();
1129  title.str("");
1130  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
1131  hPullGP_Y_ts_stereo[title.str()]->Write();
1132  gp_tsz_stereo->cd();
1133  title.str("");
1134  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
1135  hPullGP_Z_ts_stereo[title.str()]->Write();
1136 
1137  gm_ts->cd();
1138  gm_tsx_stereo->cd();
1139  title.str("");
1140  title << "PullGM_X_" << i+1 << "-" << j+1 << "_ts_stereo";
1141  hPullGM_X_ts_stereo[title.str()]->Write();
1142  gm_tsy_stereo->cd();
1143  title.str("");
1144  title << "PullGM_Y_" << i+1 << "-" << j+1 << "_ts_stereo";
1145  hPullGM_Y_ts_stereo[title.str()]->Write();
1146  gm_tsz_stereo->cd();
1147  title.str("");
1148  title << "PullGM_Z_" << i+1 << "-" << j+1 << "_ts_stereo";
1149  hPullGM_Z_ts_stereo[title.str()]->Write();
1150 
1151  gp_tr->cd();
1152  gp_trx_stereo->cd();
1153  title.str("");
1154  title << "PullGP_X_" << i+1 << "-" << j+1 << "_tr_stereo";
1155  hPullGP_X_tr_stereo[title.str()]->Write();
1156  gp_try_stereo->cd();
1157  title.str("");
1158  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_tr_stereo";
1159  hPullGP_Y_tr_stereo[title.str()]->Write();
1160  gp_trz_stereo->cd();
1161  title.str("");
1162  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_tr_stereo";
1163  hPullGP_Z_tr_stereo[title.str()]->Write();
1164 
1165  gp_rs->cd();
1166  gp_rsx_stereo->cd();
1167  title.str("");
1168  title << "PullGP_X_" << i+1 << "-" << j+1 << "_rs_stereo";
1169  hPullGP_X_rs_stereo[title.str()]->Write();
1170  gp_rsy_stereo->cd();
1171  title.str("");
1172  title << "PullGP_Y_" << i+1 << "-" << j+1 << "_rs_stereo";
1173  hPullGP_Y_rs_stereo[title.str()]->Write();
1174  gp_rsz_stereo->cd();
1175  title.str("");
1176  title << "PullGP_Z_" << i+1 << "-" << j+1 << "_rs_stereo";
1177  hPullGP_Z_rs_stereo[title.str()]->Write();
1178  }
1179  }
1180 
1181  file->Close();
1182 }
int i
Definition: DBlmapReader.cc:9
std::map< std::string, TH1F * > hPullGP_Y_tr_mono
Definition: TestHits.h:107
std::map< std::string, TH1F * > hPullGP_X_rs_mono
Definition: TestHits.h:103
std::map< std::string, TH1F * > hPullGP_Z_tr_stereo
Definition: TestHits.h:121
TH1F * hTotChi2Increment
Definition: TestHits.h:94
std::map< std::string, TH1F * > hPullGP_Z_ts_mono
Definition: TestHits.h:99
std::map< std::string, TH1F * > hPullGM_X_ts_stereo
Definition: TestHits.h:113
std::map< std::string, TH1F * > hPullGM_X_ts_mono
Definition: TestHits.h:100
std::map< std::string, TH1F * > hPullGP_Y_ts
Definition: TestHits.h:82
std::map< std::string, TH1F * > hChi2Increment
Definition: TestHits.h:93
std::map< std::string, TH1F * > hPullGP_Y_ts_stereo
Definition: TestHits.h:111
std::map< std::string, TH1F * > hPullGP_Z_rs
Definition: TestHits.h:89
std::map< std::string, TH1F * > hPullGP_Y_rs
Definition: TestHits.h:88
std::map< std::string, TH1F * > hPullGP_X_tr_stereo
Definition: TestHits.h:119
std::map< std::string, TH1F * > hPullGP_Z_rs_stereo
Definition: TestHits.h:118
std::map< std::string, TH1F * > hPullGP_Y_tr
Definition: TestHits.h:91
std::map< std::string, TH1F * > hPullGP_X_rs_stereo
Definition: TestHits.h:116
int j
Definition: DBlmapReader.cc:9
std::map< std::string, TH1F * > hPullGP_Y_tr_stereo
Definition: TestHits.h:120
std::map< std::string, TH1F * > hPullGP_Y_rs_mono
Definition: TestHits.h:104
std::map< std::string, TH1F * > hPullGM_Z_ts
Definition: TestHits.h:86
std::map< std::string, TH1F * > hPullGM_Y_ts_mono
Definition: TestHits.h:101
std::map< std::string, TH1F * > hPullGP_Z_rs_mono
Definition: TestHits.h:105
std::map< std::string, TH1F * > hPullGP_X_ts_stereo
Definition: TestHits.h:110
std::map< std::string, TH1F * > hPullGP_Y_rs_stereo
Definition: TestHits.h:117
std::map< std::string, TH1F * > hPullGM_Z_ts_stereo
Definition: TestHits.h:115
TH2F * hProcess_vs_Chi2
Definition: TestHits.h:95
std::map< std::string, TH1F * > hPullGP_Z_tr
Definition: TestHits.h:92
std::map< std::string, TH1F * > hPullGP_Y_ts_mono
Definition: TestHits.h:98
std::map< std::string, TH1F * > hPullGM_Y_ts_stereo
Definition: TestHits.h:114
std::map< std::string, TH1F * > hPullGP_X_tr_mono
Definition: TestHits.h:106
TH2F * hClsize_vs_Chi2
Definition: TestHits.h:95
TFile * file
Definition: TestHits.h:79
std::map< std::string, TH1F * > hPullGM_X_ts
Definition: TestHits.h:84
std::map< std::string, TH1F * > hPullGP_X_ts
Definition: TestHits.h:81
std::map< std::string, TH1F * > hPullGP_Z_ts
Definition: TestHits.h:83
std::map< std::string, TH1F * > hPullGP_Z_tr_mono
Definition: TestHits.h:108
std::map< std::string, TH1F * > hPullGP_X_ts_mono
Definition: TestHits.h:97
std::map< std::string, TH1F * > hPullGM_Z_ts_mono
Definition: TestHits.h:102
std::map< std::string, TH1F * > hPullGM_Y_ts
Definition: TestHits.h:85
std::map< std::string, TH1F * > hPullGP_X_tr
Definition: TestHits.h:90
std::stringstream title
Definition: TestHits.h:80
std::map< std::string, TH1F * > hPullGP_Z_ts_stereo
Definition: TestHits.h:112
std::map< std::string, TH1F * > hPullGP_X_rs
Definition: TestHits.h:87
std::pair< LocalPoint, LocalVector > TestHits::projectHit ( const PSimHit hit,
const StripGeomDetUnit stripDet,
const BoundPlane plane 
)
private

Definition at line 1187 of file TestHits.cc.

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

Referenced by analyze().

1188 {
1189  const StripTopology& topol = stripDet->specificTopology();
1190  GlobalPoint globalpos= stripDet->surface().toGlobal(hit.localPosition());
1191  LocalPoint localHit = plane.toLocal(globalpos);
1192  //track direction
1193  LocalVector locdir=hit.localDirection();
1194  //rotate track in new frame
1195 
1196  GlobalVector globaldir= stripDet->surface().toGlobal(locdir);
1197  LocalVector dir=plane.toLocal(globaldir);
1198  float scale = -localHit.z() / dir.z();
1199 
1200  LocalPoint projectedPos = localHit + scale*dir;
1201 
1202  float selfAngle = topol.stripAngle( topol.strip( hit.localPosition()));
1203 
1204  LocalVector stripDir( sin(selfAngle), cos(selfAngle), 0); // vector along strip in hit frame
1205 
1206  LocalVector localStripDir( plane.toLocal(stripDet->surface().toGlobal( stripDir)));
1207 
1208  return std::pair<LocalPoint,LocalVector>( projectedPos, localStripDir);
1209 }
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:58
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
dbl *** dir
Definition: mlp_gen.cc:35
virtual const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37

Member Data Documentation

std::string TestHits::builderName
private

Definition at line 68 of file TestHits.h.

Referenced by beginRun(), and TestHits().

const edm::ParameterSet TestHits::conf_
private

Definition at line 62 of file TestHits.h.

Referenced by TestHits().

TFile* TestHits::file
private

Definition at line 79 of file TestHits.h.

Referenced by beginRun(), and endJob().

edm::ESHandle<TrajectoryFitter> TestHits::fit
private

Definition at line 76 of file TestHits.h.

Referenced by analyze(), and beginRun().

std::string TestHits::fname
private

Definition at line 70 of file TestHits.h.

Referenced by beginRun(), and TestHits().

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

Definition at line 93 of file TestHits.h.

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

TH2F * TestHits::hClsize_vs_Chi2
private

Definition at line 95 of file TestHits.h.

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

TrackerHitAssociator* TestHits::hitAssociator
private

Definition at line 63 of file TestHits.h.

Referenced by analyze().

TH2F* TestHits::hProcess_vs_Chi2
private

Definition at line 95 of file TestHits.h.

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

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

Definition at line 84 of file TestHits.h.

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

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

Definition at line 100 of file TestHits.h.

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

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

Definition at line 113 of file TestHits.h.

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

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

Definition at line 85 of file TestHits.h.

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

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

Definition at line 101 of file TestHits.h.

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

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

Definition at line 114 of file TestHits.h.

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

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

Definition at line 86 of file TestHits.h.

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

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

Definition at line 102 of file TestHits.h.

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

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

Definition at line 115 of file TestHits.h.

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

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

Definition at line 87 of file TestHits.h.

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

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

Definition at line 103 of file TestHits.h.

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

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

Definition at line 116 of file TestHits.h.

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

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

Definition at line 90 of file TestHits.h.

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

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

Definition at line 106 of file TestHits.h.

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

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

Definition at line 119 of file TestHits.h.

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

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

Definition at line 81 of file TestHits.h.

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

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

Definition at line 97 of file TestHits.h.

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

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

Definition at line 110 of file TestHits.h.

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

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

Definition at line 88 of file TestHits.h.

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

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

Definition at line 104 of file TestHits.h.

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

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

Definition at line 117 of file TestHits.h.

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

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

Definition at line 91 of file TestHits.h.

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

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

Definition at line 107 of file TestHits.h.

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

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

Definition at line 120 of file TestHits.h.

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

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

Definition at line 82 of file TestHits.h.

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

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

Definition at line 98 of file TestHits.h.

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

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

Definition at line 111 of file TestHits.h.

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

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

Definition at line 89 of file TestHits.h.

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

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

Definition at line 105 of file TestHits.h.

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

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

Definition at line 118 of file TestHits.h.

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

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

Definition at line 92 of file TestHits.h.

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

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

Definition at line 108 of file TestHits.h.

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

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

Definition at line 121 of file TestHits.h.

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

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

Definition at line 83 of file TestHits.h.

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

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

Definition at line 99 of file TestHits.h.

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

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

Definition at line 112 of file TestHits.h.

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

TH1F* TestHits::hTotChi2Increment
private

Definition at line 94 of file TestHits.h.

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

double TestHits::maxeta
private

Definition at line 65 of file TestHits.h.

Referenced by analyze(), and TestHits().

double TestHits::mineta
private

Definition at line 65 of file TestHits.h.

Referenced by analyze(), and TestHits().

std::string TestHits::propagatorName
private

Definition at line 67 of file TestHits.h.

Referenced by beginRun(), and TestHits().

std::string TestHits::srcName
private

Definition at line 69 of file TestHits.h.

Referenced by analyze(), and TestHits().

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

Definition at line 75 of file TestHits.h.

Referenced by analyze(), and beginRun().

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

Definition at line 72 of file TestHits.h.

Referenced by analyze(), and beginRun().

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

Definition at line 73 of file TestHits.h.

Referenced by analyze(), and beginRun().

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

Definition at line 74 of file TestHits.h.

Referenced by analyze(), and beginRun().

edm::Handle<TrackCandidateCollection> TestHits::theTCCollection
private

Definition at line 77 of file TestHits.h.

Referenced by analyze().

std::stringstream TestHits::title
private