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 Attributes | Static Private Attributes
SiPixelErrorEstimation Class Reference

#include <SiPixelErrorEstimation.h>

Inheritance diagram for SiPixelErrorEstimation:
edm::EDAnalyzer

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void beginJob ()
 
void computeAnglesFromDetPosition (const SiPixelCluster &cl, const GeomDetUnit &det, float &alpha, float &beta)
 
virtual void endJob ()
 
 SiPixelErrorEstimation (const edm::ParameterSet &)
 
virtual ~SiPixelErrorEstimation ()
 
- Public Member Functions inherited from edm::EDAnalyzer
 EDAnalyzer ()
 
std::string workerType () const
 
virtual ~EDAnalyzer ()
 

Private Attributes

float all_alpha
 
float all_beta
 
int all_bigx
 
int all_bigy
 
int all_blade
 
float all_clust_alpha
 
float all_clust_beta
 
float all_clust_col
 
int all_clust_geoid
 
int all_clust_maxpixcol
 
int all_clust_maxpixrow
 
int all_clust_minpixcol
 
int all_clust_minpixrow
 
float all_clust_q
 
float all_clust_row
 
float all_clust_x
 
float all_clust_y
 
float all_col1
 
float all_col2
 
int all_cols
 
int all_disk
 
int all_edgex
 
int all_edgey
 
float all_eloss
 
int all_flipped
 
float all_gx1
 
float all_gx2
 
float all_gy1
 
float all_gy2
 
float all_gz1
 
float all_gz2
 
int all_half
 
float all_hit_cprob0
 
float all_hit_cprob1
 
float all_hit_cprob2
 
float all_hit_probx
 
float all_hit_proby
 
int all_ladder
 
int all_layer
 
int all_mod
 
int all_npix
 
int all_nsimhit
 
int all_nxpix
 
int all_nypix
 
int all_panel
 
int all_pidhit
 
float all_pixadc [maxpix]
 
float all_pixcol [maxpix]
 
float all_pixgx [maxpix]
 
float all_pixgy [maxpix]
 
float all_pixgz [maxpix]
 
float all_pixrow [maxpix]
 
float all_pixx [maxpix]
 
float all_pixy [maxpix]
 
int all_plaq
 
float all_rechiterrx
 
float all_rechiterry
 
float all_rechitpullx
 
float all_rechitpully
 
float all_rechitresx
 
float all_rechitresy
 
float all_rechitx
 
float all_rechity
 
float all_rechitz
 
float all_row1
 
float all_row2
 
int all_rows
 
int all_side
 
float all_simhitx
 
float all_simhity
 
float all_simphi
 
int all_simproc
 
float all_simpx
 
float all_simpy
 
float all_simpz
 
float all_simtheta
 
float all_simtrketa
 
float all_simtrkphi
 
int all_subdetid
 
int all_trkid
 
float all_vtxr
 
float all_vtxz
 
float all_x1
 
float all_x2
 
float all_y1
 
float all_y2
 
float all_z1
 
float all_z2
 
float alpha
 
float beta
 
int bigx
 
int bigy
 
int blade
 
float charge
 
bool checkType_
 
edm::ParameterSet conf_
 
int disk
 
int edgex
 
int edgey
 
float eta
 
int evt
 
int flipped
 
int genType_
 
int half
 
float hit_cprob0
 
float hit_cprob1
 
float hit_cprob2
 
float hit_probx
 
float hit_proby
 
bool include_trk_hits_
 
int ladder
 
int layer
 
int mod
 
int npix
 
int nsimhit
 
int nxpix
 
int nypix
 
std::string outputFile_
 
int panel
 
float phi
 
int pidhit
 
int plaq
 
float rechiterrx
 
float rechiterry
 
float rechitpullx
 
float rechitpully
 
float rechitresx
 
float rechitresy
 
float rechitx
 
float rechity
 
float rechitz
 
int run
 
int side
 
float simhitx
 
float simhity
 
int simproc
 
std::string src_
 
int subdetId
 
TFile * tfile_
 
float trk_alpha
 
float trk_beta
 
TTree * ttree_all_hits_
 
TTree * ttree_track_hits_
 

Static Private Attributes

static const int maxpix = 10000
 

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

Definition at line 60 of file SiPixelErrorEstimation.h.

Constructor & Destructor Documentation

SiPixelErrorEstimation::SiPixelErrorEstimation ( const edm::ParameterSet ps)
explicit

Definition at line 30 of file SiPixelErrorEstimation.cc.

References checkType_, genType_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), include_trk_hits_, outputFile_, and src_.

31 {
32  //Read config file
33  outputFile_ = ps.getUntrackedParameter<string>( "outputFile", "SiPixelErrorEstimation_Ntuple.root" );
34 
35  // Replace "ctfWithMaterialTracks" with "generalTracks"
36  //src_ = ps.getUntrackedParameter<std::string>( "src", "ctfWithMaterialTracks" );
37  src_ = ps.getUntrackedParameter<std::string>( "src", "generalTracks" );
38 
39  checkType_ = ps.getParameter<bool>( "checkType" );
40  genType_ = ps.getParameter<int>( "genType" );
41  include_trk_hits_ = ps.getParameter<bool>( "include_trk_hits" );
42 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
SiPixelErrorEstimation::~SiPixelErrorEstimation ( )
virtual

Definition at line 44 of file SiPixelErrorEstimation.cc.

45 {}

Member Function Documentation

void SiPixelErrorEstimation::analyze ( const edm::Event e,
const edm::EventSetup es 
)
virtual

Implements edm::EDAnalyzer.

Definition at line 261 of file SiPixelErrorEstimation.cc.

References abs, SiPixelCluster::Pixel::adc, all_alpha, all_beta, all_bigx, all_bigy, all_blade, all_clust_alpha, all_clust_beta, all_clust_col, all_clust_geoid, all_clust_maxpixcol, all_clust_maxpixrow, all_clust_minpixcol, all_clust_minpixrow, all_clust_q, all_clust_row, all_clust_x, all_clust_y, all_col1, all_col2, all_cols, all_disk, all_edgex, all_edgey, all_eloss, all_flipped, all_gx1, all_gx2, all_gy1, all_gy2, all_gz1, all_gz2, all_half, all_hit_cprob0, all_hit_cprob1, all_hit_cprob2, all_hit_probx, all_hit_proby, all_ladder, all_layer, all_mod, all_npix, all_nsimhit, all_nxpix, all_nypix, all_panel, all_pidhit, all_pixadc, all_pixcol, all_pixgx, all_pixgy, all_pixgz, all_pixrow, all_pixx, all_pixy, all_plaq, all_rechiterrx, all_rechiterry, all_rechitpullx, all_rechitpully, all_rechitresx, all_rechitresy, all_rechitx, all_rechity, all_rechitz, all_row1, all_row2, all_rows, all_side, all_simhitx, all_simhity, all_simphi, all_simproc, all_simpx, all_simpy, all_simpz, all_simtheta, all_simtrketa, all_simtrkphi, all_subdetid, all_trkid, all_vtxr, all_vtxz, all_x1, all_x2, all_y1, all_y2, all_z1, all_z2, alpha, TrackerHitAssociator::associateHit(), edmNew::DetSet< T >::begin(), beta, bigx, bigy, PXFDetId::blade(), blade, charge, checkType_, PixelTopology::containsBigPixelInX(), PixelTopology::containsBigPixelInY(), gather_cfg::cout, PXFDetId::disk(), disk, edgex, edgey, edmNew::DetSet< T >::end(), error, eta, edm::EventID::event(), evt, flipped, genType_, edm::EventSetup::get(), edm::Event::getByLabel(), half, hit_cprob0, hit_cprob1, hit_cprob2, hit_probx, hit_proby, i, edm::EventBase::id(), include_trk_hits_, PixelTopology::isItEdgePixelInX(), PixelTopology::isItEdgePixelInY(), PXBDetId::ladder(), ladder, PXBDetId::layer(), layer, asciidump::le, Topology::localPosition(), m, math_pi, Topology::measurementPosition(), mod, PXBDetId::module(), PXFDetId::module(), PixelTopology::ncolumns(), npix, PixelTopology::nrows(), nsimhit, nxpix, nypix, PXFDetId::panel(), panel, PV3DBase< T, PVType, FrameType >::perp(), phi, evf::utils::pid, pidhit, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, plaq, GloballyPositioned< T >::position(), position, edm::Handle< T >::product(), rechiterrx, rechiterry, rechitpullx, rechitpully, rechitresx, rechitresy, rechitx, rechity, rechitz, edm::EventID::run(), run, PXFDetId::side(), side, simhitx, simhity, simproc, PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), src_, DetId::subdetId(), subdetId, GeomDet::surface(), Surface::toGlobal(), patCandidatesForDimuonsSequences_cff::tracker, testEve_cfg::tracks, trk_alpha, trk_beta, ttree_all_hits_, ttree_track_hits_, SiPixelCluster::Pixel::x, PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::x(), LocalError::xx(), SiPixelCluster::Pixel::y, PV2DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::y(), LocalError::yy(), and PV3DBase< T, PVType, FrameType >::z().

262 {
263  using namespace edm;
264 
265  run = e.id().run();
266  evt = e.id().event();
267 
268  if ( evt%1000 == 0 )
269  cout << "evt = " << evt << endl;
270 
271  float math_pi = 3.14159265;
272  float radtodeg = 180.0 / math_pi;
273 
274  DetId detId;
275 
278  float mindist = 999999.9;
279 
280  std::vector<PSimHit> matched;
281  TrackerHitAssociator associate(e);
282 
284  es.get<TrackerDigiGeometryRecord> ().get (pDD);
285  const TrackerGeometry* tracker = &(* pDD);
286 
287  // --------------------------------------- all hits -----------------------------------------------------------
289  e.getByLabel( "siPixelRecHits", recHitColl);
290 
292  e.getByLabel("g4SimHits", simtracks);
293 
294  //-----Iterate over detunits
295  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
296  {
297  DetId detId = ((*it)->geographicalId());
298 
299  SiPixelRecHitCollection::const_iterator dsmatch = recHitColl->find(detId);
300  if (dsmatch == recHitColl->end()) continue;
301 
302  SiPixelRecHitCollection::DetSet pixelrechitRange = *dsmatch;
303  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
304  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
305  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
306  std::vector<PSimHit> matched;
307 
308  //----Loop over rechits for this detId
309  for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
310  {
311  matched.clear();
312  matched = associate.associateHit(*pixeliter);
313  // only consider rechits that have associated simhit
314  // otherwise cannot determine residiual
315  if ( matched.empty() )
316  {
317  cout << "SiPixelErrorEstimation::analyze: rechits without associated simhit !!!!!!!"
318  << endl;
319  continue;
320  }
321 
322  all_subdetid = -9999;
323 
324  all_layer = -9999;
325  all_ladder = -9999;
326  all_mod = -9999;
327 
328  all_side = -9999;
329  all_disk = -9999;
330  all_blade = -9999;
331  all_panel = -9999;
332  all_plaq = -9999;
333 
334  all_half = -9999;
335  all_flipped = -9999;
336 
337  all_cols = -9999;
338  all_rows = -9999;
339 
340  all_rechitx = -9999;
341  all_rechity = -9999;
342  all_rechitz = -9999;
343 
344  all_simhitx = -9999;
345  all_simhity = -9999;
346 
347  all_rechiterrx = -9999;
348  all_rechiterry = -9999;
349 
350  all_rechitresx = -9999;
351  all_rechitresy = -9999;
352 
353  all_rechitpullx = -9999;
354  all_rechitpully = -9999;
355 
356  all_npix = -9999;
357  all_nxpix = -9999;
358  all_nypix = -9999;
359 
360  all_edgex = -9999;
361  all_edgey = -9999;
362 
363  all_bigx = -9999;
364  all_bigy = -9999;
365 
366  all_alpha = -9999;
367  all_beta = -9999;
368 
369  all_simphi = -9999;
370  all_simtheta = -9999;
371 
372  all_simhitx = -9999;
373  all_simhity = -9999;
374 
375  all_nsimhit = -9999;
376  all_pidhit = -9999;
377  all_simproc = -9999;
378 
379  all_vtxr = -9999;
380  all_vtxz = -9999;
381 
382  all_simpx = -9999;
383  all_simpy = -9999;
384  all_simpz = -9999;
385 
386  all_eloss = -9999;
387 
388  all_trkid = -9999;
389 
390  all_x1 = -9999;
391  all_x2 = -9999;
392  all_y1 = -9999;
393  all_y2 = -9999;
394  all_z1 = -9999;
395  all_z2 = -9999;
396 
397  all_row1 = -9999;
398  all_row2 = -9999;
399  all_col1 = -9999;
400  all_col2 = -9999;
401 
402  all_gx1 = -9999;
403  all_gx2 = -9999;
404  all_gy1 = -9999;
405  all_gy2 = -9999;
406  all_gz1 = -9999;
407  all_gz2 = -9999;
408 
409  all_simtrketa = -9999;
410  all_simtrkphi = -9999;
411 
412  all_clust_row = -9999;
413  all_clust_col = -9999;
414 
415  all_clust_x = -9999;
416  all_clust_y = -9999;
417 
418  all_clust_q = -9999;
419 
420  all_clust_maxpixcol = -9999;
421  all_clust_maxpixrow = -9999;
422  all_clust_minpixcol = -9999;
423  all_clust_minpixrow = -9999;
424 
425  all_clust_geoid = -9999;
426 
427  all_clust_alpha = -9999;
428  all_clust_beta = -9999;
429 
430  /*
431  for (int i=0; i<all_npix; ++i)
432  {
433  all_pixrow[i] = -9999;
434  all_pixcol[i] = -9999;
435  all_pixadc[i] = -9999;
436  all_pixx[i] = -9999;
437  all_pixy[i] = -9999;
438  all_pixgx[i] = -9999;
439  all_pixgy[i] = -9999;
440  all_pixgz[i] = -9999;
441  }
442  */
443 
444  all_hit_probx = -9999;
445  all_hit_proby = -9999;
446  all_hit_cprob0 = -9999;
447  all_hit_cprob1 = -9999;
448  all_hit_cprob2 = -9999;
449 
450  all_nsimhit = (int)matched.size();
451 
452  all_subdetid = (int)detId.subdetId();
453  // only consider rechits in pixel barrel and pixel forward
454  if ( !(all_subdetid==1 || all_subdetid==2) )
455  {
456  cout << "SiPixelErrorEstimation::analyze: Not in a pixel detector !!!!!" << endl;
457  continue;
458  }
459 
460  const PixelGeomDetUnit* theGeomDet
461  = dynamic_cast<const PixelGeomDetUnit*> ( tracker->idToDet(detId) );
462 
463  const PixelTopology* topol = &(theGeomDet->specificTopology());
464 
465  const int maxPixelCol = pixeliter->cluster()->maxPixelCol();
466  const int maxPixelRow = pixeliter->cluster()->maxPixelRow();
467  const int minPixelCol = pixeliter->cluster()->minPixelCol();
468  const int minPixelRow = pixeliter->cluster()->minPixelRow();
469 
470  //all_hit_probx = (float)pixeliter->probabilityX();
471  //all_hit_proby = (float)pixeliter->probabilityY();
472  all_hit_cprob0 = (float)pixeliter->clusterProbability(0);
473  all_hit_cprob1 = (float)pixeliter->clusterProbability(1);
474  all_hit_cprob2 = (float)pixeliter->clusterProbability(2);
475 
476  // check whether the cluster is at the module edge
477  if ( topol->isItEdgePixelInX( minPixelRow ) ||
478  topol->isItEdgePixelInX( maxPixelRow ) )
479  all_edgex = 1;
480  else
481  all_edgex = 0;
482 
483  if ( topol->isItEdgePixelInY( minPixelCol ) ||
484  topol->isItEdgePixelInY( maxPixelCol ) )
485  all_edgey = 1;
486  else
487  all_edgey = 0;
488 
489  // check whether this rechit contains big pixels
490  if ( topol->containsBigPixelInX(minPixelRow, maxPixelRow) )
491  all_bigx = 1;
492  else
493  all_bigx = 0;
494 
495  if ( topol->containsBigPixelInY(minPixelCol, maxPixelCol) )
496  all_bigy = 1;
497  else
498  all_bigy = 0;
499 
500  if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel )
501  {
502  PXBDetId bdetid(detId);
503  all_layer = bdetid.layer();
504  all_ladder = bdetid.ladder();
505  all_mod = bdetid.module();
506 
507  int tmp_nrows = theGeomDet->specificTopology().nrows();
508  if ( tmp_nrows == 80 )
509  all_half = 1;
510  else if ( tmp_nrows == 160 )
511  all_half = 0;
512  else
513  cout << "-------------------------------------------------- Wrong module size !!!" << endl;
514 
515  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
516  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
517 
518  if ( tmp2<tmp1 )
519  all_flipped = 1;
520  else
521  all_flipped = 0;
522  }
523  else if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap )
524  {
525  PXFDetId fdetid(detId);
526  all_side = fdetid.side();
527  all_disk = fdetid.disk();
528  all_blade = fdetid.blade();
529  all_panel = fdetid.panel();
530  all_plaq = fdetid.module(); // also known as plaquette
531 
532  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
533  else std::cout << "We are not in the pixel detector" << (int)detId.subdetId() << endl;
534 
535  all_cols = theGeomDet->specificTopology().ncolumns();
536  all_rows = theGeomDet->specificTopology().nrows();
537 
538  LocalPoint lp = pixeliter->localPosition();
539  // gavril: change this name
540  all_rechitx = lp.x();
541  all_rechity = lp.y();
542  all_rechitz = lp.z();
543 
544  LocalError le = pixeliter->localPositionError();
545  all_rechiterrx = sqrt( le.xx() );
546  all_rechiterry = sqrt( le.yy() );
547 
548  bool found_hit_from_generated_particle = false;
549 
550  //---Loop over sim hits, fill closest
551  float closest_dist = 99999.9;
552  std::vector<PSimHit>::const_iterator closest_simhit = matched.begin();
553 
554  for (std::vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); m++)
555  {
556  if ( checkType_ )
557  {
558  int pid = (*m).particleType();
559  if ( abs(pid) != genType_ )
560  continue;
561  }
562 
563  float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
564  float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
565 
566  float x_res = simhitx - rechitx;
567  float y_res = simhity - rechity;
568 
569  float dist = sqrt( x_res*x_res + y_res*y_res );
570 
571  if ( dist < closest_dist )
572  {
573  closest_dist = dist;
574  closest_simhit = m;
575  found_hit_from_generated_particle = true;
576  }
577  } // end sim hit loop
578 
579  // If this recHit does not have any simHit with the same particleType as the particles generated
580  // ignore it as most probably comes from delta rays.
581  if ( checkType_ && !found_hit_from_generated_particle )
582  continue;
583 
584  all_x1 = (*closest_simhit).entryPoint().x(); // width (row index, in col direction)
585  all_y1 = (*closest_simhit).entryPoint().y(); // length (col index, in row direction)
586  all_z1 = (*closest_simhit).entryPoint().z();
587  all_x2 = (*closest_simhit).exitPoint().x();
588  all_y2 = (*closest_simhit).exitPoint().y();
589  all_z2 = (*closest_simhit).exitPoint().z();
590  GlobalPoint GP1 =
591  theGeomDet->surface().toGlobal( Local3DPoint( (*closest_simhit).entryPoint().x(),
592  (*closest_simhit).entryPoint().y(),
593  (*closest_simhit).entryPoint().z() ) );
594  GlobalPoint GP2 =
595  theGeomDet->surface().toGlobal (Local3DPoint( (*closest_simhit).exitPoint().x(),
596  (*closest_simhit).exitPoint().y(),
597  (*closest_simhit).exitPoint().z() ) );
598  all_gx1 = GP1.x();
599  all_gx2 = GP2.x();
600  all_gy1 = GP1.y();
601  all_gy2 = GP2.y();
602  all_gz1 = GP1.z();
603  all_gz2 = GP2.z();
604 
605  MeasurementPoint mp1 =
606  topol->measurementPosition( LocalPoint( (*closest_simhit).entryPoint().x(),
607  (*closest_simhit).entryPoint().y(),
608  (*closest_simhit).entryPoint().z() ) );
609  MeasurementPoint mp2 =
610  topol->measurementPosition( LocalPoint( (*closest_simhit).exitPoint().x(),
611  (*closest_simhit).exitPoint().y(),
612  (*closest_simhit).exitPoint().z() ) );
613  all_row1 = mp1.x();
614  all_col1 = mp1.y();
615  all_row2 = mp2.x();
616  all_col2 = mp2.y();
617 
618  all_simhitx = 0.5*(all_x1+all_x2);
619  all_simhity = 0.5*(all_y1+all_y2);
620 
623 
626 
627  SiPixelRecHit::ClusterRef const& clust = pixeliter->cluster();
628 
629  all_npix = clust->size();
630  all_nxpix = clust->sizeX();
631  all_nypix = clust->sizeY();
632 
633  all_clust_row = clust->x();
634  all_clust_col = clust->y();
635 
637  all_clust_x = lp2.x();
638  all_clust_y = lp2.y();
639 
640  all_clust_q = clust->charge();
641 
642  all_clust_maxpixcol = clust->maxPixelCol();
643  all_clust_maxpixrow = clust->maxPixelRow();
644  all_clust_minpixcol = clust->minPixelCol();
645  all_clust_minpixrow = clust->minPixelRow();
646 
647  all_clust_geoid = clust->geographicalId();
648 
649  all_simpx = (*closest_simhit).momentumAtEntry().x();
650  all_simpy = (*closest_simhit).momentumAtEntry().y();
651  all_simpz = (*closest_simhit).momentumAtEntry().z();
652  all_eloss = (*closest_simhit).energyLoss();
653  all_simphi = (*closest_simhit).phiAtEntry();
654  all_simtheta = (*closest_simhit).thetaAtEntry();
655  all_pidhit = (*closest_simhit).particleType();
656  all_trkid = (*closest_simhit).trackId();
657 
658  //--- Fill alpha and beta -- more useful for exploring the residuals...
659  all_beta = atan2(all_simpz, all_simpy);
660  all_alpha = atan2(all_simpz, all_simpx);
661 
662  all_simproc = (int)closest_simhit->processType();
663 
664  const edm::SimTrackContainer& trks = *(simtracks.product());
665  SimTrackContainer::const_iterator trksiter;
666  for (trksiter = trks.begin(); trksiter != trks.end(); trksiter++)
667  if ( (int)trksiter->trackId() == all_trkid )
668  {
669  all_simtrketa = trksiter->momentum().eta();
670  all_simtrkphi = trksiter->momentum().phi();
671  }
672 
673  all_vtxz = theGeomDet->surface().position().z();
674  all_vtxr = theGeomDet->surface().position().perp();
675 
676  //computeAnglesFromDetPosition(clust,
677  // theGeomDet,
678  // all_clust_alpha, all_clust_beta )
679 
680  const std::vector<SiPixelCluster::Pixel>& pixvector = clust->pixels();
681  for ( int i=0; i<(int)pixvector.size(); ++i)
682  {
683  SiPixelCluster::Pixel holdpix = pixvector[i];
684  all_pixrow[i] = holdpix.x;
685  all_pixcol[i] = holdpix.y;
686  all_pixadc[i] = holdpix.adc;
687  LocalPoint lp = topol->localPosition(MeasurementPoint(holdpix.x, holdpix.y));
688  all_pixx[i] = lp.x();
689  all_pixy[i]= lp.y();
690  GlobalPoint GP = theGeomDet->surface().toGlobal(Local3DPoint(lp.x(),lp.y(),lp.z()));
691  all_pixgx[i] = GP.x();
692  all_pixgy[i]= GP.y();
693  all_pixgz[i]= GP.z();
694  }
695 
696  ttree_all_hits_->Fill();
697 
698  } // for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
699 
700  } // for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
701 
702  // ------------------------------------------------ all hits ---------------------------------------------------------------
703 
704 
705 
706  // ------------------------------------------------ track hits only --------------------------------------------------------
707 
708  if ( include_trk_hits_ )
709  {
710  // Get tracks
711  edm::Handle<reco::TrackCollection> trackCollection;
712  e.getByLabel(src_, trackCollection);
713  const reco::TrackCollection *tracks = trackCollection.product();
714  reco::TrackCollection::const_iterator tciter;
715 
716  if ( tracks->size() > 0 )
717  {
718  // Loop on tracks
719  for ( tciter=tracks->begin(); tciter!=tracks->end(); ++tciter)
720  {
721  // First loop on hits: find matched hits
722  for ( trackingRecHit_iterator it = tciter->recHitsBegin(); it != tciter->recHitsEnd(); ++it)
723  {
724  const TrackingRecHit &thit = **it;
725  // Is it a matched hit?
726  const SiPixelRecHit* matchedhit = dynamic_cast<const SiPixelRecHit*>(&thit);
727 
728  if ( matchedhit )
729  {
730  rechitx = -9999.9;
731  rechity = -9999.9;
732  rechitz = -9999.9;
733  rechiterrx = -9999.9;
734  rechiterry = -9999.9;
735  rechitresx = -9999.9;
736  rechitresy = -9999.9;
737  rechitpullx = -9999.9;
738  rechitpully = -9999.9;
739 
740  npix = -9999;
741  nxpix = -9999;
742  nypix = -9999;
743  charge = -9999.9;
744 
745  edgex = -9999;
746  edgey = -9999;
747 
748  bigx = -9999;
749  bigy = -9999;
750 
751  alpha = -9999.9;
752  beta = -9999.9;
753 
754  phi = -9999.9;
755  eta = -9999.9;
756 
757  subdetId = -9999;
758 
759  layer = -9999;
760  ladder = -9999;
761  mod = -9999;
762  side = -9999;
763  disk = -9999;
764  blade = -9999;
765  panel = -9999;
766  plaq = -9999;
767 
768  half = -9999;
769  flipped = -9999;
770 
771  nsimhit = -9999;
772  pidhit = -9999;
773  simproc = -9999;
774 
775  simhitx = -9999.9;
776  simhity = -9999.9;
777 
778  hit_probx = -9999.9;
779  hit_proby = -9999.9;
780  hit_cprob0 = -9999.9;
781  hit_cprob1 = -9999.9;
782  hit_cprob2 = -9999.9;
783 
784  position = (*it)->localPosition();
785  error = (*it)->localPositionError();
786 
787  rechitx = position.x();
788  rechity = position.y();
789  rechitz = position.z();
790  rechiterrx = sqrt(error.xx());
791  rechiterry = sqrt(error.yy());
792 
793  npix = matchedhit->cluster()->size();
794  nxpix = matchedhit->cluster()->sizeX();
795  nypix = matchedhit->cluster()->sizeY();
796  charge = matchedhit->cluster()->charge();
797 
798  //hit_probx = (float)matchedhit->probabilityX();
799  //hit_proby = (float)matchedhit->probabilityY();
800  hit_cprob0 = (float)matchedhit->clusterProbability(0);
801  hit_cprob1 = (float)matchedhit->clusterProbability(1);
802  hit_cprob2 = (float)matchedhit->clusterProbability(2);
803 
804 
805  //Association of the rechit to the simhit
806  matched.clear();
807  matched = associate.associateHit(*matchedhit);
808 
809  nsimhit = (int)matched.size();
810 
811  if ( !matched.empty() )
812  {
813  mindist = 999999.9;
814  float distx, disty, dist;
815  bool found_hit_from_generated_particle = false;
816 
817  int n_assoc_muon = 0;
818 
819  vector<PSimHit>::const_iterator closestit = matched.begin();
820  for (vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); ++m)
821  {
822  if ( checkType_ )
823  { // only consider associated simhits with the generated pid (muons)
824  int pid = (*m).particleType();
825  if ( abs(pid) != genType_ )
826  continue;
827  }
828 
829  float simhitx = 0.5 * ( (*m).entryPoint().x() + (*m).exitPoint().x() );
830  float simhity = 0.5 * ( (*m).entryPoint().y() + (*m).exitPoint().y() );
831 
832  distx = fabs(rechitx - simhitx);
833  disty = fabs(rechity - simhity);
834  dist = sqrt( distx*distx + disty*disty );
835 
836  if ( dist < mindist )
837  {
838  n_assoc_muon++;
839 
840  mindist = dist;
841  closestit = m;
842  found_hit_from_generated_particle = true;
843  }
844  } // for (vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
845 
846  // This recHit does not have any simHit with the same particleType as the particles generated
847  // Ignore it as most probably come from delta rays.
848  if ( checkType_ && !found_hit_from_generated_particle )
849  continue;
850 
851  //if ( n_assoc_muon > 1 )
852  //{
853  // // cout << " ----- This is not good: n_assoc_muon = " << n_assoc_muon << endl;
854  // // cout << "evt = " << evt << endl;
855  //}
856 
857  detId = (*it)->geographicalId();
858 
859  const PixelGeomDetUnit* theGeomDet =
860  dynamic_cast<const PixelGeomDetUnit*> ((*tracker).idToDet(detId) );
861 
862  const PixelTopology* theTopol = &(theGeomDet->specificTopology());
863 
864  pidhit = (*closestit).particleType();
865  simproc = (int)(*closestit).processType();
866 
867  simhitx = 0.5*( (*closestit).entryPoint().x() + (*closestit).exitPoint().x() );
868  simhity = 0.5*( (*closestit).entryPoint().y() + (*closestit).exitPoint().y() );
869 
870  rechitresx = rechitx - simhitx;
871  rechitresy = rechity - simhity;
872  rechitpullx = ( rechitx - simhitx ) / sqrt(error.xx());
873  rechitpully = ( rechity - simhity ) / sqrt(error.yy());
874 
875  float simhitpx = (*closestit).momentumAtEntry().x();
876  float simhitpy = (*closestit).momentumAtEntry().y();
877  float simhitpz = (*closestit).momentumAtEntry().z();
878 
879  beta = atan2(simhitpz, simhitpy) * radtodeg;
880  alpha = atan2(simhitpz, simhitpx) * radtodeg;
881 
882  //beta = fabs(atan2(simhitpz, simhitpy)) * radtodeg;
883  //alpha = fabs(atan2(simhitpz, simhitpx)) * radtodeg;
884 
885  // calculate alpha and beta exactly as in PixelCPEBase.cc
886  float locx = simhitpx;
887  float locy = simhitpy;
888  float locz = simhitpz;
889 
890  bool isFlipped = false;
891  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
892  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
893  if ( tmp2<tmp1 )
894  isFlipped = true;
895  else
896  isFlipped = false;
897 
898  trk_alpha = acos(locx/sqrt(locx*locx+locz*locz)) * radtodeg;
899  if ( isFlipped ) // &&& check for FPIX !!!
900  trk_alpha = 180.0 - trk_alpha ;
901 
902  trk_beta = acos(locy/sqrt(locy*locy+locz*locz)) * radtodeg;
903 
904 
905  phi = tciter->momentum().phi() / math_pi*180.0;
906  eta = tciter->momentum().eta();
907 
908  const int maxPixelCol = (*matchedhit).cluster()->maxPixelCol();
909  const int maxPixelRow = (*matchedhit).cluster()->maxPixelRow();
910  const int minPixelCol = (*matchedhit).cluster()->minPixelCol();
911  const int minPixelRow = (*matchedhit).cluster()->minPixelRow();
912 
913  // check whether the cluster is at the module edge
914  if ( theTopol->isItEdgePixelInX( minPixelRow ) ||
915  theTopol->isItEdgePixelInX( maxPixelRow ) )
916  edgex = 1;
917  else
918  edgex = 0;
919 
920  if ( theTopol->isItEdgePixelInY( minPixelCol ) ||
921  theTopol->isItEdgePixelInY( maxPixelCol ) )
922  edgey = 1;
923  else
924  edgey = 0;
925 
926  // check whether this rechit contains big pixels
927  if ( theTopol->containsBigPixelInX(minPixelRow, maxPixelRow) )
928  bigx = 1;
929  else
930  bigx = 0;
931 
932  if ( theTopol->containsBigPixelInY(minPixelCol, maxPixelCol) )
933  bigy = 1;
934  else
935  bigy = 0;
936 
937  subdetId = (int)detId.subdetId();
938 
939  if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel )
940  {
941 
942  int tmp_nrows = theGeomDet->specificTopology().nrows();
943  if ( tmp_nrows == 80 )
944  half = 1;
945  else if ( tmp_nrows == 160 )
946  half = 0;
947  else
948  cout << "-------------------------------------------------- Wrong module size !!!" << endl;
949 
950  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
951  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
952 
953  if ( tmp2<tmp1 )
954  flipped = 1;
955  else
956  flipped = 0;
957 
958  PXBDetId bdetid(detId);
959  layer = bdetid.layer(); // Layer: 1,2,3.
960  ladder = bdetid.ladder(); // Ladder: 1-20, 32, 44.
961  mod = bdetid.module(); // Mod: 1-8.
962  }
963  else if ( (int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap )
964  {
965  PXFDetId fdetid(detId);
966  side = fdetid.side();
967  disk = fdetid.disk();
968  blade = fdetid.blade();
969  panel = fdetid.panel();
970  plaq = fdetid.module(); // also known as plaquette
971 
972  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,0.)).perp();
973  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0.,0.,1.)).perp();
974 
975  if ( tmp2<tmp1 )
976  flipped = 1;
977  else
978  flipped = 0;
979 
980  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
981  //else std::// cout << "We are not in the pixel detector. detId.subdetId() = " << (int)detId.subdetId() << endl;
982 
983  ttree_track_hits_->Fill();
984 
985  } // if ( !matched.empty() )
986  else
987  cout << "---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
988 
989  } // if ( matchedhit )
990 
991  } // end of loop on hits
992 
993  } //end of loop on track
994 
995  } // tracks > 0.
996 
997  } // if ( include_trk_hits_ )
998 
999  // ----------------------------------------------- track hits only -----------------------------------------------------------
1000 
1001 }
RunNumber_t run() const
Definition: EventID.h:42
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
EventNumber_t event() const
Definition: EventID.h:44
int i
Definition: DBlmapReader.cc:9
float xx() const
Definition: LocalError.h:24
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
T y() const
Definition: PV2DBase.h:45
virtual bool containsBigPixelInX(const int &ixmin, const int &ixmax) const =0
T perp() const
Definition: PV3DBase.h:71
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
virtual int ncolumns() const =0
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:10
T y() const
Definition: PV3DBase.h:62
virtual int nrows() const =0
#define abs(x)
Definition: mlp_lapack.h:159
static int position[TOTALCHAMBERS][3]
Definition: ReadPGInfo.cc:509
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
virtual bool isItEdgePixelInX(int ixbin) const =0
float yy() const
Definition: LocalError.h:26
T sqrt(T t)
Definition: SSEVec.h:46
T z() const
Definition: PV3DBase.h:63
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
virtual bool containsBigPixelInY(const int &iymin, const int &iymax) const =0
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:39
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:356
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
Definition: DetId.h:20
tuple tracks
Definition: testEve_cfg.py:39
const T & get() const
Definition: EventSetup.h:55
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
T const * product() const
Definition: Handle.h:74
edm::EventID id() const
Definition: EventBase.h:56
virtual bool isItEdgePixelInY(int iybin) const =0
iterator end()
Definition: DetSetNew.h:59
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
Local3DPoint LocalPoint
Definition: LocalPoint.h:11
tuple cout
Definition: gather_cfg.py:121
unsigned short adc
T x() const
Definition: PV2DBase.h:44
T x() const
Definition: PV3DBase.h:61
const PositionType & position() const
std::vector< SimTrack > SimTrackContainer
Pixel Reconstructed Hit.
iterator begin()
Definition: DetSetNew.h:56
void SiPixelErrorEstimation::beginJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 47 of file SiPixelErrorEstimation.cc.

References all_alpha, all_beta, all_bigx, all_bigy, all_blade, all_clust_alpha, all_clust_beta, all_clust_col, all_clust_geoid, all_clust_maxpixcol, all_clust_maxpixrow, all_clust_minpixcol, all_clust_minpixrow, all_clust_q, all_clust_row, all_clust_x, all_clust_y, all_col1, all_col2, all_cols, all_disk, all_edgex, all_edgey, all_eloss, all_flipped, all_gx1, all_gx2, all_half, all_hit_cprob0, all_hit_cprob1, all_hit_cprob2, all_hit_probx, all_hit_proby, all_ladder, all_layer, all_mod, all_npix, all_nsimhit, all_nxpix, all_nypix, all_panel, all_pidhit, all_pixadc, all_pixcol, all_pixgx, all_pixgy, all_pixgz, all_pixrow, all_pixx, all_pixy, all_plaq, all_rechiterrx, all_rechiterry, all_rechitpullx, all_rechitpully, all_rechitresx, all_rechitresy, all_rechitx, all_rechity, all_rechitz, all_row1, all_row2, all_rows, all_side, all_simhitx, all_simhity, all_simphi, all_simproc, all_simpx, all_simpy, all_simpz, all_simtheta, all_simtrketa, all_simtrkphi, all_subdetid, all_trkid, all_vtxr, all_vtxz, all_x1, all_x2, alpha, beta, bigx, bigy, blade, charge, disk, edgex, edgey, eta, evt, flipped, half, hit_cprob0, hit_cprob1, hit_cprob2, hit_probx, hit_proby, include_trk_hits_, ladder, layer, mod, npix, nsimhit, nxpix, nypix, outputFile_, panel, phi, pidhit, plaq, rechiterrx, rechiterry, rechitpullx, rechitpully, rechitresx, rechitresy, rechitx, rechity, rechitz, run, side, simhitx, simhity, simproc, subdetId, tfile_, trk_alpha, trk_beta, ttree_all_hits_, and ttree_track_hits_.

48 {
49  int bufsize = 64000;
50 
51  if ( include_trk_hits_ )
52  {
53  //tfile_ = new TFile ("SiPixelErrorEstimation_Ntuple.root" , "RECREATE");
54  //const char* tmp_name = outputFile_.c_str();
55  tfile_ = new TFile ( outputFile_.c_str() , "RECREATE");
56 
57  ttree_track_hits_ = new TTree("TrackHitNtuple", "TrackHitNtuple");
58 
59  ttree_track_hits_->Branch("evt", &evt, "evt/I", bufsize);
60  ttree_track_hits_->Branch("run", &run, "run/I", bufsize);
61 
62  ttree_track_hits_->Branch("subdetId", &subdetId, "subdetId/I", bufsize);
63 
64  ttree_track_hits_->Branch("layer" , &layer , "layer/I" , bufsize);
65  ttree_track_hits_->Branch("ladder", &ladder, "ladder/I", bufsize);
66  ttree_track_hits_->Branch("mod" , &mod , "mod/I" , bufsize);
67 
68  ttree_track_hits_->Branch("side" , &side , "side/I" , bufsize);
69  ttree_track_hits_->Branch("disk" , &disk , "disk/I" , bufsize);
70  ttree_track_hits_->Branch("blade" , &blade , "blade/I" , bufsize);
71  ttree_track_hits_->Branch("panel" , &panel , "panel/I" , bufsize);
72  ttree_track_hits_->Branch("plaq" , &plaq , "plaq/I" , bufsize);
73 
74  ttree_track_hits_->Branch("half" , &half , "half/I" , bufsize);
75  ttree_track_hits_->Branch("flipped", &flipped, "flipped/I", bufsize);
76 
77  ttree_track_hits_->Branch("rechitx", &rechitx, "rechitx/F" , bufsize);
78  ttree_track_hits_->Branch("rechity", &rechity, "rechity/F" , bufsize);
79  ttree_track_hits_->Branch("rechitz", &rechitz, "rechitz/F" , bufsize);
80 
81  ttree_track_hits_->Branch("rechiterrx", &rechiterrx, "rechiterrx/F" , bufsize);
82  ttree_track_hits_->Branch("rechiterry", &rechiterry, "rechiterry/F" , bufsize);
83 
84  ttree_track_hits_->Branch("rechitresx", &rechitresx, "rechitresx/F" , bufsize);
85  ttree_track_hits_->Branch("rechitresy", &rechitresy, "rechitresy/F" , bufsize);
86 
87  ttree_track_hits_->Branch("rechitpullx", &rechitpullx, "rechitpullx/F", bufsize);
88  ttree_track_hits_->Branch("rechitpully", &rechitpully, "rechitpully/F", bufsize);
89 
90  ttree_track_hits_->Branch("npix" , &npix , "npix/I" , bufsize);
91  ttree_track_hits_->Branch("nxpix" , &nxpix , "nxpix/I" , bufsize);
92  ttree_track_hits_->Branch("nypix" , &nypix , "nypix/I" , bufsize);
93  ttree_track_hits_->Branch("charge", &charge, "charge/F", bufsize);
94 
95  ttree_track_hits_->Branch("edgex", &edgex, "edgex/I", bufsize);
96  ttree_track_hits_->Branch("edgey", &edgey, "edgey/I", bufsize);
97 
98  ttree_track_hits_->Branch("bigx", &bigx, "bigx/I", bufsize);
99  ttree_track_hits_->Branch("bigy", &bigy, "bigy/I", bufsize);
100 
101  ttree_track_hits_->Branch("alpha", &alpha, "alpha/F", bufsize);
102  ttree_track_hits_->Branch("beta" , &beta , "beta/F" , bufsize);
103 
104  ttree_track_hits_->Branch("trk_alpha", &trk_alpha, "trk_alpha/F", bufsize);
105  ttree_track_hits_->Branch("trk_beta" , &trk_beta , "trk_beta/F" , bufsize);
106 
107  ttree_track_hits_->Branch("phi", &phi, "phi/F", bufsize);
108  ttree_track_hits_->Branch("eta", &eta, "eta/F", bufsize);
109 
110  ttree_track_hits_->Branch("simhitx", &simhitx, "simhitx/F", bufsize);
111  ttree_track_hits_->Branch("simhity", &simhity, "simhity/F", bufsize);
112 
113  ttree_track_hits_->Branch("nsimhit", &nsimhit, "nsimhit/I", bufsize);
114  ttree_track_hits_->Branch("pidhit" , &pidhit , "pidhit/I" , bufsize);
115  ttree_track_hits_->Branch("simproc", &simproc, "simproc/I", bufsize);
116 
117  ttree_track_hits_->Branch("hit_probx" , &hit_probx , "hit_probx/F" , bufsize);
118  ttree_track_hits_->Branch("hit_proby" , &hit_proby , "hit_proby/F" , bufsize);
119  ttree_track_hits_->Branch("hit_cprob0", &hit_cprob0, "hit_cprob0/F", bufsize);
120  ttree_track_hits_->Branch("hit_cprob1", &hit_cprob1, "hit_cprob1/F", bufsize);
121  ttree_track_hits_->Branch("hit_cprob2", &hit_cprob2, "hit_cprob2/F", bufsize);
122 
123  } // if ( include_trk_hits_ )
124 
125  // ----------------------------------------------------------------------
126 
127  ttree_all_hits_ = new TTree("AllHitNtuple", "AllHitNtuple");
128 
129  ttree_all_hits_->Branch("evt", &evt, "evt/I", bufsize);
130  ttree_all_hits_->Branch("run", &run, "run/I", bufsize);
131 
132  ttree_all_hits_->Branch("subdetid", &all_subdetid, "subdetid/I", bufsize);
133 
134  ttree_all_hits_->Branch("layer" , &all_layer , "layer/I" , bufsize);
135  ttree_all_hits_->Branch("ladder", &all_ladder, "ladder/I", bufsize);
136  ttree_all_hits_->Branch("mod" , &all_mod , "mod/I" , bufsize);
137 
138  ttree_all_hits_->Branch("side" , &all_side , "side/I" , bufsize);
139  ttree_all_hits_->Branch("disk" , &all_disk , "disk/I" , bufsize);
140  ttree_all_hits_->Branch("blade" , &all_blade , "blade/I" , bufsize);
141  ttree_all_hits_->Branch("panel" , &all_panel , "panel/I" , bufsize);
142  ttree_all_hits_->Branch("plaq" , &all_plaq , "plaq/I" , bufsize);
143 
144  ttree_all_hits_->Branch("half" , &all_half , "half/I" , bufsize);
145  ttree_all_hits_->Branch("flipped", &all_flipped, "flipped/I", bufsize);
146 
147  ttree_all_hits_->Branch("cols", &all_cols, "cols/I", bufsize);
148  ttree_all_hits_->Branch("rows", &all_rows, "rows/I", bufsize);
149 
150  ttree_all_hits_->Branch("rechitx" , &all_rechitx , "rechitx/F" , bufsize);
151  ttree_all_hits_->Branch("rechity" , &all_rechity , "rechity/F" , bufsize);
152  ttree_all_hits_->Branch("rechitz" , &all_rechitz , "rechitz/F" , bufsize);
153 
154  ttree_all_hits_->Branch("rechiterrx" , &all_rechiterrx , "rechiterrx/F" , bufsize);
155  ttree_all_hits_->Branch("rechiterry" , &all_rechiterry , "rechiterry/F" , bufsize);
156 
157  ttree_all_hits_->Branch("rechitresx" , &all_rechitresx , "rechitresx/F" , bufsize);
158  ttree_all_hits_->Branch("rechitresy" , &all_rechitresy , "rechitresy/F" , bufsize);
159 
160  ttree_all_hits_->Branch("rechitpullx", &all_rechitpullx, "rechitpullx/F", bufsize);
161  ttree_all_hits_->Branch("rechitpully", &all_rechitpully, "rechitpully/F", bufsize);
162 
163  ttree_all_hits_->Branch("npix" , &all_npix , "npix/I" , bufsize);
164  ttree_all_hits_->Branch("nxpix" , &all_nxpix , "nxpix/I" , bufsize);
165  ttree_all_hits_->Branch("nypix" , &all_nypix , "nypix/I" , bufsize);
166 
167  ttree_all_hits_->Branch("edgex", &all_edgex, "edgex/I", bufsize);
168  ttree_all_hits_->Branch("edgey", &all_edgey, "edgey/I", bufsize);
169 
170  ttree_all_hits_->Branch("bigx", &all_bigx, "bigx/I", bufsize);
171  ttree_all_hits_->Branch("bigy", &all_bigy, "bigy/I", bufsize);
172 
173  ttree_all_hits_->Branch("alpha", &all_alpha, "alpha/F", bufsize);
174  ttree_all_hits_->Branch("beta" , &all_beta , "beta/F" , bufsize);
175 
176  ttree_all_hits_->Branch("simhitx", &all_simhitx, "simhitx/F", bufsize);
177  ttree_all_hits_->Branch("simhity", &all_simhity, "simhity/F", bufsize);
178 
179  ttree_all_hits_->Branch("nsimhit", &all_nsimhit, "nsimhit/I", bufsize);
180  ttree_all_hits_->Branch("pidhit" , &all_pidhit , "pidhit/I" , bufsize);
181  ttree_all_hits_->Branch("simproc", &all_simproc, "simproc/I", bufsize);
182 
183  ttree_all_hits_->Branch("vtxr", &all_vtxr, "vtxr/F", bufsize);
184  ttree_all_hits_->Branch("vtxz", &all_vtxz, "vtxz/F", bufsize);
185 
186  ttree_all_hits_->Branch("simpx", &all_simpx, "simpx/F", bufsize);
187  ttree_all_hits_->Branch("simpy", &all_simpy, "simpy/F", bufsize);
188  ttree_all_hits_->Branch("simpz", &all_simpz, "simpz/F", bufsize);
189 
190  ttree_all_hits_->Branch("eloss", &all_eloss, "eloss/F", bufsize);
191 
192  ttree_all_hits_->Branch("simphi", &all_simphi, "simphi/F", bufsize);
193  ttree_all_hits_->Branch("simtheta", &all_simtheta, "simtheta/F", bufsize);
194 
195  ttree_all_hits_->Branch("trkid", &all_trkid, "trkid/I", bufsize);
196 
197  ttree_all_hits_->Branch("x1", &all_x1, "x1/F", bufsize);
198  ttree_all_hits_->Branch("x2", &all_x2, "x2/F", bufsize);
199  ttree_all_hits_->Branch("y1", &all_x1, "y1/F", bufsize);
200  ttree_all_hits_->Branch("y2", &all_x2, "y2/F", bufsize);
201  ttree_all_hits_->Branch("z1", &all_x1, "z1/F", bufsize);
202  ttree_all_hits_->Branch("z2", &all_x2, "z2/F", bufsize);
203 
204  ttree_all_hits_->Branch("row1", &all_row1, "row1/F", bufsize);
205  ttree_all_hits_->Branch("row2", &all_row2, "row2/F", bufsize);
206  ttree_all_hits_->Branch("col1", &all_col1, "col1/F", bufsize);
207  ttree_all_hits_->Branch("col2", &all_col2, "col2/F", bufsize);
208 
209  ttree_all_hits_->Branch("gx1", &all_gx1, "gx1/F", bufsize);
210  ttree_all_hits_->Branch("gx2", &all_gx2, "gx2/F", bufsize);
211  ttree_all_hits_->Branch("gy1", &all_gx1, "gy1/F", bufsize);
212  ttree_all_hits_->Branch("gy2", &all_gx2, "gy2/F", bufsize);
213  ttree_all_hits_->Branch("gz1", &all_gx1, "gz1/F", bufsize);
214  ttree_all_hits_->Branch("gz2", &all_gx2, "gz2/F", bufsize);
215 
216  ttree_all_hits_->Branch("simtrketa", &all_simtrketa, "simtrketa/F", bufsize);
217  ttree_all_hits_->Branch("simtrkphi", &all_simtrkphi, "simtrkphi/F", bufsize);
218 
219  ttree_all_hits_->Branch("clust_row", &all_clust_row, "clust_row/F", bufsize);
220  ttree_all_hits_->Branch("clust_col", &all_clust_col, "clust_col/F", bufsize);
221 
222  ttree_all_hits_->Branch("clust_x", &all_clust_x, "clust_x/F", bufsize);
223  ttree_all_hits_->Branch("clust_y", &all_clust_y, "clust_y/F", bufsize);
224 
225  ttree_all_hits_->Branch("clust_q", &all_clust_q, "clust_q/F", bufsize);
226 
227  ttree_all_hits_->Branch("clust_maxpixcol", &all_clust_maxpixcol, "clust_maxpixcol/I", bufsize);
228  ttree_all_hits_->Branch("clust_maxpixrow", &all_clust_maxpixrow, "clust_maxpixrow/I", bufsize);
229  ttree_all_hits_->Branch("clust_minpixcol", &all_clust_minpixcol, "clust_minpixcol/I", bufsize);
230  ttree_all_hits_->Branch("clust_minpixrow", &all_clust_minpixrow, "clust_minpixrow/I", bufsize);
231 
232  ttree_all_hits_->Branch("clust_geoid", &all_clust_geoid, "clust_geoid/I", bufsize);
233 
234  ttree_all_hits_->Branch("clust_alpha", &all_clust_alpha, "clust_alpha/F", bufsize);
235  ttree_all_hits_->Branch("clust_beta" , &all_clust_beta , "clust_beta/F" , bufsize);
236 
237  ttree_all_hits_->Branch("rowpix", all_pixrow, "row[npix]/F", bufsize);
238  ttree_all_hits_->Branch("colpix", all_pixcol, "col[npix]/F", bufsize);
239  ttree_all_hits_->Branch("adc", all_pixadc, "adc[npix]/F", bufsize);
240  ttree_all_hits_->Branch("xpix", all_pixx, "x[npix]/F", bufsize);
241  ttree_all_hits_->Branch("ypix", all_pixy, "y[npix]/F", bufsize);
242  ttree_all_hits_->Branch("gxpix", all_pixgx, "gx[npix]/F", bufsize);
243  ttree_all_hits_->Branch("gypix", all_pixgy, "gy[npix]/F", bufsize);
244  ttree_all_hits_->Branch("gzpix", all_pixgz, "gz[npix]/F", bufsize);
245 
246  ttree_all_hits_->Branch("all_hit_probx", &all_hit_probx, "all_hit_probx/F" , bufsize);
247  ttree_all_hits_->Branch("all_hit_proby", &all_hit_proby, "all_hit_proby/F" , bufsize);
248  ttree_all_hits_->Branch("all_hit_cprob0", &all_hit_cprob0, "all_hit_cprob0/F", bufsize);
249  ttree_all_hits_->Branch("all_hit_cprob1", &all_hit_cprob1, "all_hit_cprob1/F", bufsize);
250  ttree_all_hits_->Branch("all_hit_cprob2", &all_hit_cprob2, "all_hit_cprob2/F", bufsize);
251 
252 }
void SiPixelErrorEstimation::computeAnglesFromDetPosition ( const SiPixelCluster cl,
const GeomDetUnit det,
float &  alpha,
float &  beta 
)

Definition at line 1004 of file SiPixelErrorEstimation.cc.

References gather_cfg::cout, Topology::localPosition(), PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), GeomDet::surface(), Surface::toGlobal(), PV3DBase< T, PVType, FrameType >::x(), SiPixelCluster::x(), PV3DBase< T, PVType, FrameType >::y(), SiPixelCluster::y(), and PV3DBase< T, PVType, FrameType >::z().

1007 {
1008  //--- This is a new det unit, so cache it
1009  const PixelGeomDetUnit* theDet = dynamic_cast<const PixelGeomDetUnit*>( &det );
1010  if (! theDet)
1011  {
1012  cout << "---------------------------------------------- Not a pixel detector !!!!!!!!!!!!!!" << endl;
1013  assert(0);
1014  }
1015 
1016  const PixelTopology* theTopol = &(theDet->specificTopology());
1017 
1018  // get cluster center of gravity (of charge)
1019  float xcenter = cl.x();
1020  float ycenter = cl.y();
1021 
1022  // get the cluster position in local coordinates (cm)
1023  LocalPoint lp = theTopol->localPosition( MeasurementPoint(xcenter, ycenter) );
1024  //float lp_mod = sqrt( lp.x()*lp.x() + lp.y()*lp.y() + lp.z()*lp.z() );
1025 
1026  // get the cluster position in global coordinates (cm)
1027  GlobalPoint gp = theDet->surface().toGlobal( lp );
1028  float gp_mod = sqrt( gp.x()*gp.x() + gp.y()*gp.y() + gp.z()*gp.z() );
1029 
1030  // normalize
1031  float gpx = gp.x()/gp_mod;
1032  float gpy = gp.y()/gp_mod;
1033  float gpz = gp.z()/gp_mod;
1034 
1035  // make a global vector out of the global point; this vector will point from the
1036  // origin of the detector to the cluster
1037  GlobalVector gv(gpx, gpy, gpz);
1038 
1039  // make local unit vector along local X axis
1040  const Local3DVector lvx(1.0, 0.0, 0.0);
1041 
1042  // get the unit X vector in global coordinates/
1043  GlobalVector gvx = theDet->surface().toGlobal( lvx );
1044 
1045  // make local unit vector along local Y axis
1046  const Local3DVector lvy(0.0, 1.0, 0.0);
1047 
1048  // get the unit Y vector in global coordinates
1049  GlobalVector gvy = theDet->surface().toGlobal( lvy );
1050 
1051  // make local unit vector along local Z axis
1052  const Local3DVector lvz(0.0, 0.0, 1.0);
1053 
1054  // get the unit Z vector in global coordinates
1055  GlobalVector gvz = theDet->surface().toGlobal( lvz );
1056 
1057  // calculate the components of gv (the unit vector pointing to the cluster)
1058  // in the local coordinate system given by the basis {gvx, gvy, gvz}
1059  // note that both gv and the basis {gvx, gvy, gvz} are given in global coordinates
1060  float gv_dot_gvx = gv.x()*gvx.x() + gv.y()*gvx.y() + gv.z()*gvx.z();
1061  float gv_dot_gvy = gv.x()*gvy.x() + gv.y()*gvy.y() + gv.z()*gvy.z();
1062  float gv_dot_gvz = gv.x()*gvz.x() + gv.y()*gvz.y() + gv.z()*gvz.z();
1063 
1064  // calculate angles
1065  alpha = atan2( gv_dot_gvz, gv_dot_gvx );
1066  beta = atan2( gv_dot_gvz, gv_dot_gvy );
1067 
1068  // calculate cotalpha and cotbeta
1069  // cotalpha_ = 1.0/tan(alpha_);
1070  // cotbeta_ = 1.0/tan(beta_ );
1071  // or like this
1072  //cotalpha_ = gv_dot_gvx / gv_dot_gvz;
1073  //cotbeta_ = gv_dot_gvy / gv_dot_gvz;
1074 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:78
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
T y() const
Definition: PV3DBase.h:62
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
T sqrt(T t)
Definition: SSEVec.h:46
T z() const
Definition: PV3DBase.h:63
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
const BoundPlane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:35
float y() const
tuple cout
Definition: gather_cfg.py:121
T x() const
Definition: PV3DBase.h:61
float x() const
void SiPixelErrorEstimation::endJob ( void  )
virtual

Reimplemented from edm::EDAnalyzer.

Definition at line 254 of file SiPixelErrorEstimation.cc.

References tfile_.

255 {
256  tfile_->Write();
257  tfile_->Close();
258 }

Member Data Documentation

float SiPixelErrorEstimation::all_alpha
private

Definition at line 190 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_beta
private

Definition at line 191 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_bigx
private

Definition at line 187 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_bigy
private

Definition at line 188 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_blade
private

Definition at line 154 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_alpha
private

Definition at line 248 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_beta
private

Definition at line 249 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_col
private

Definition at line 234 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_geoid
private

Definition at line 246 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_maxpixcol
private

Definition at line 241 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_maxpixrow
private

Definition at line 242 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_minpixcol
private

Definition at line 243 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_minpixrow
private

Definition at line 244 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_q
private

Definition at line 239 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_row
private

Definition at line 233 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_x
private

Definition at line 236 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_y
private

Definition at line 237 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_col1
private

Definition at line 220 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_col2
private

Definition at line 221 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_cols
private

Definition at line 161 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_disk
private

Definition at line 153 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_edgex
private

Definition at line 184 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_edgey
private

Definition at line 185 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_eloss
private

Definition at line 207 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_flipped
private

Definition at line 159 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_gx1
private

Definition at line 223 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_gx2
private

Definition at line 224 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_gy1
private

Definition at line 225 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_gy2
private

Definition at line 226 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_gz1
private

Definition at line 227 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_gz2
private

Definition at line 228 of file SiPixelErrorEstimation.h.

Referenced by analyze().

int SiPixelErrorEstimation::all_half
private

Definition at line 158 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_cprob0
private

Definition at line 264 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_cprob1
private

Definition at line 265 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_cprob2
private

Definition at line 266 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_probx
private

Definition at line 262 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_proby
private

Definition at line 263 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_ladder
private

Definition at line 149 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_layer
private

Definition at line 148 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_mod
private

Definition at line 150 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_npix
private

Definition at line 180 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_nsimhit
private

Definition at line 196 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_nxpix
private

Definition at line 181 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_nypix
private

Definition at line 182 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_panel
private

Definition at line 155 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_pidhit
private

Definition at line 197 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixadc[maxpix]
private

Definition at line 254 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixcol[maxpix]
private

Definition at line 253 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixgx[maxpix]
private

Definition at line 258 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixgy[maxpix]
private

Definition at line 259 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixgz[maxpix]
private

Definition at line 260 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixrow[maxpix]
private

Definition at line 252 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixx[maxpix]
private

Definition at line 256 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixy[maxpix]
private

Definition at line 257 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_plaq
private

Definition at line 156 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechiterrx
private

Definition at line 171 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechiterry
private

Definition at line 172 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitpullx
private

Definition at line 177 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitpully
private

Definition at line 178 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitresx
private

Definition at line 174 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitresy
private

Definition at line 175 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitx
private

Definition at line 164 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechity
private

Definition at line 165 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitz
private

Definition at line 166 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_row1
private

Definition at line 218 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_row2
private

Definition at line 219 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_rows
private

Definition at line 162 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_side
private

Definition at line 152 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simhitx
private

Definition at line 168 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simhity
private

Definition at line 169 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simphi
private

Definition at line 193 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_simproc
private

Definition at line 198 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simpx
private

Definition at line 203 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simpy
private

Definition at line 204 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simpz
private

Definition at line 205 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simtheta
private

Definition at line 194 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simtrketa
private

Definition at line 230 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simtrkphi
private

Definition at line 231 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_subdetid
private

Definition at line 146 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_trkid
private

Definition at line 209 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_vtxr
private

Definition at line 200 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_vtxz
private

Definition at line 201 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_x1
private

Definition at line 211 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_x2
private

Definition at line 212 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_y1
private

Definition at line 213 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_y2
private

Definition at line 214 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_z1
private

Definition at line 215 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_z2
private

Definition at line 216 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::alpha
private

Definition at line 106 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::beta
private

Definition at line 107 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::bigx
private

Definition at line 103 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::bigy
private

Definition at line 104 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::blade
private

Definition at line 121 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::charge
private
bool SiPixelErrorEstimation::checkType_
private

Definition at line 80 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

edm::ParameterSet SiPixelErrorEstimation::conf_
private

Definition at line 77 of file SiPixelErrorEstimation.h.

int SiPixelErrorEstimation::disk
private

Definition at line 120 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::edgex
private

Definition at line 100 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::edgey
private

Definition at line 101 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::eta
private

Definition at line 113 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::evt
private

Definition at line 135 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::flipped
private

Definition at line 126 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::genType_
private

Definition at line 81 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

int SiPixelErrorEstimation::half
private

Definition at line 125 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::hit_cprob0
private

Definition at line 140 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::hit_cprob1
private

Definition at line 141 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::hit_cprob2
private

Definition at line 142 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::hit_probx
private

Definition at line 138 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::hit_proby
private

Definition at line 139 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

bool SiPixelErrorEstimation::include_trk_hits_
private

Definition at line 82 of file SiPixelErrorEstimation.h.

Referenced by analyze(), beginJob(), and SiPixelErrorEstimation().

int SiPixelErrorEstimation::ladder
private

Definition at line 117 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::layer
private
const int SiPixelErrorEstimation::maxpix = 10000
staticprivate

Definition at line 251 of file SiPixelErrorEstimation.h.

int SiPixelErrorEstimation::mod
private

Definition at line 118 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::npix
private

Definition at line 95 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::nsimhit
private

Definition at line 128 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::nxpix
private

Definition at line 96 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::nypix
private

Definition at line 97 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

std::string SiPixelErrorEstimation::outputFile_
private

Definition at line 78 of file SiPixelErrorEstimation.h.

Referenced by beginJob(), and SiPixelErrorEstimation().

int SiPixelErrorEstimation::panel
private

Definition at line 122 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::phi
private

Definition at line 112 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::pidhit
private

Definition at line 129 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::plaq
private

Definition at line 123 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechiterrx
private

Definition at line 88 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechiterry
private

Definition at line 89 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitpullx
private

Definition at line 92 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitpully
private

Definition at line 93 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitresx
private

Definition at line 90 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitresy
private

Definition at line 91 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitx
private

Definition at line 85 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechity
private

Definition at line 86 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitz
private

Definition at line 87 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::run
private
int SiPixelErrorEstimation::side
private

Definition at line 119 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::simhitx
private

Definition at line 132 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::simhity
private

Definition at line 133 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::simproc
private

Definition at line 130 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

std::string SiPixelErrorEstimation::src_
private

Definition at line 79 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

int SiPixelErrorEstimation::subdetId
private

Definition at line 115 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

TFile* SiPixelErrorEstimation::tfile_
private

Definition at line 270 of file SiPixelErrorEstimation.h.

Referenced by beginJob(), and endJob().

float SiPixelErrorEstimation::trk_alpha
private

Definition at line 109 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::trk_beta
private

Definition at line 110 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

TTree* SiPixelErrorEstimation::ttree_all_hits_
private

Definition at line 271 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

TTree* SiPixelErrorEstimation::ttree_track_hits_
private

Definition at line 272 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().