CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes | Static Private Attributes
SiPixelErrorEstimation Class Reference

#include <SiPixelErrorEstimation.h>

Inheritance diagram for SiPixelErrorEstimation:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginJob () override
 
void computeAnglesFromDetPosition (const SiPixelCluster &cl, const GeomDetUnit &det, float &alpha, float &beta)
 
void endJob () override
 
 SiPixelErrorEstimation (const edm::ParameterSet &)
 
 ~SiPixelErrorEstimation () override
 
- Public Member Functions inherited from edm::EDAnalyzer
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzer ()
 
SerialTaskQueueglobalLuminosityBlocksQueue ()
 
SerialTaskQueueglobalRunsQueue ()
 
ModuleDescription const & moduleDescription () const
 
std::string workerType () const
 
 ~EDAnalyzer () override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

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_pixel_clst_err_x
 
float all_pixel_clst_err_y
 
int all_pixel_split
 
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 detector_type
 
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
 
float pixel_clst_err_x
 
float pixel_clst_err_y
 
int pixel_split
 
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_
 
float strip_charge
 
float strip_clst_err_x
 
float strip_clst_err_y
 
float strip_cotalpha
 
float strip_cotbeta
 
int strip_edge
 
int strip_hit_type
 
int strip_is_stereo
 
float strip_locbx
 
float strip_locby
 
float strip_locbz
 
int strip_nprm
 
int strip_nsimhit
 
int strip_pidhit
 
int strip_pidhit1
 
int strip_pidhit2
 
int strip_pidhit3
 
int strip_pidhit4
 
int strip_pidhit5
 
float strip_prob
 
int strip_qbin
 
float strip_rechiterrx
 
float strip_rechiterry
 
float strip_rechitpullx
 
float strip_rechitpully
 
float strip_rechitresx
 
float strip_rechitresx2
 
float strip_rechitresy
 
float strip_rechitx
 
float strip_rechity
 
float strip_rechitz
 
int strip_simproc
 
int strip_simproc1
 
int strip_simproc2
 
int strip_simproc3
 
int strip_simproc4
 
int strip_simproc5
 
int strip_size
 
int strip_split
 
int strip_subdet_id
 
int strip_tib_is_double_side
 
int strip_tib_is_external_string
 
int strip_tib_is_internal_string
 
int strip_tib_is_rphi
 
int strip_tib_is_stereo
 
int strip_tib_is_z_minus_side
 
int strip_tib_is_z_plus_side
 
int strip_tib_layer
 
int strip_tib_layer_number
 
int strip_tib_module
 
int strip_tib_module_number
 
int strip_tib_order
 
int strip_tib_side
 
int strip_tib_string_number
 
int strip_tob_is_double_side
 
int strip_tob_is_rphi
 
int strip_tob_is_stereo
 
int strip_tob_is_z_minus_side
 
int strip_tob_is_z_plus_side
 
int strip_tob_layer
 
int strip_tob_layer_number
 
int strip_tob_module
 
int strip_tob_module_number
 
int strip_tob_rod_number
 
int strip_tob_side
 
float strip_trk_pt
 
int subdetId
 
TFile * tfile_
 
edm::EDGetTokenT< SiPixelRecHitCollectiontPixRecHitCollection
 
TrackerHitAssociator::Config trackerHitAssociatorConfig_
 
float trk_alpha
 
float trk_beta
 
edm::EDGetTokenT< edm::SimTrackContainertSimTrackContainer
 
edm::EDGetTokenT< reco::TrackCollectiontTrackCollection
 
edm::EDGetTokenT< std::vector< Trajectory > > tTrajectory
 
TTree * ttree_all_hits_
 
TTree * ttree_track_hits_
 
TTree * ttree_track_hits_strip_
 

Static Private Attributes

static const int maxpix = 10000
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Detailed Description

Definition at line 63 of file SiPixelErrorEstimation.h.

Constructor & Destructor Documentation

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

Definition at line 35 of file SiPixelErrorEstimation.cc.

References checkType_, genType_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), include_trk_hits_, outputFile_, src_, AlCaHLTBitMon_QueryRunRegistry::string, tPixRecHitCollection, tSimTrackContainer, tTrackCollection, and tTrajectory.

36  : tfile_(nullptr),
37  ttree_all_hits_(nullptr),
38  ttree_track_hits_(nullptr),
39  ttree_track_hits_strip_(nullptr),
41  //Read config file
42  outputFile_ = ps.getUntrackedParameter<string>("outputFile", "SiPixelErrorEstimation_Ntuple.root");
43 
44  // Replace "ctfWithMaterialTracks" with "generalTracks"
45  //src_ = ps.getUntrackedParameter<std::string>( "src", "ctfWithMaterialTracks" );
46  src_ = ps.getUntrackedParameter<std::string>("src", "generalTracks");
47 
48  checkType_ = ps.getParameter<bool>("checkType");
49  genType_ = ps.getParameter<int>("genType");
50  include_trk_hits_ = ps.getParameter<bool>("include_trk_hits");
51 
52  tTrajectory = consumes<std::vector<Trajectory>>(src_);
53  tPixRecHitCollection = consumes<SiPixelRecHitCollection>(edm::InputTag("siPixelRecHits"));
54  tSimTrackContainer = consumes<edm::SimTrackContainer>(edm::InputTag("g4SimHits"));
55  tTrackCollection = consumes<reco::TrackCollection>(src_);
56 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
TrackerHitAssociator::Config trackerHitAssociatorConfig_
edm::EDGetTokenT< reco::TrackCollection > tTrackCollection
edm::EDGetTokenT< edm::SimTrackContainer > tSimTrackContainer
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
edm::EDGetTokenT< std::vector< Trajectory > > tTrajectory
edm::EDGetTokenT< SiPixelRecHitCollection > tPixRecHitCollection
SiPixelErrorEstimation::~SiPixelErrorEstimation ( )
override

Definition at line 58 of file SiPixelErrorEstimation.cc.

58 {}

Member Function Documentation

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

Definition at line 371 of file SiPixelErrorEstimation.cc.

References funct::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_pixel_clst_err_x, all_pixel_clst_err_y, all_pixel_split, 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, blade, charge, checkType_, SiStripRecHit1D::cluster(), SiStripRecHit2D::cluster(), SiPixelRecHit::cluster(), SiPixelRecHit::clusterProbability(), PixelTopology::containsBigPixelInX(), PixelTopology::containsBigPixelInY(), gather_cfg::cout, detector_type, TrackerGeometry::dets(), disk, edgex, edgey, edmNew::DetSet< T >::end(), edmNew::DetSetVector< T >::end(), relativeConstraints::error, eta, edm::EventID::event(), evt, edmNew::DetSetVector< T >::find(), flipped, objects.autophobj::float, genType_, edm::EventSetup::get(), edm::Event::getByToken(), half, TrackingRecHit::hit(), hit_cprob0, hit_cprob1, hit_cprob2, hit_probx, hit_proby, mps_fire::i, edm::EventBase::id(), TrackerGeometry::idToDet(), TrackerGeometry::idToDetUnit(), include_trk_hits_, createfilelist::int, PixelTopology::isItEdgePixelInX(), PixelTopology::isItEdgePixelInY(), ladder, layer, PSimHit::localPosition(), Topology::localPosition(), funct::m, PV3DBase< T, PVType, FrameType >::mag(), seedCreatorFromRegionConsecutiveHitsEDProducer_cff::magneticField, electrons_cff::matched, math_pi, Topology::measurementPosition(), mod, SiStripDetId::moduleGeometry(), LocalTrajectoryParameters::momentum(), PixelTopology::ncolumns(), npix, PixelTopology::nrows(), nsimhit, nxpix, nypix, panel, PSimHit::particleType(), PV3DBase< T, PVType, FrameType >::perp(), phi, sysUtil::pid, pidhit, pixel_clst_err_x, pixel_clst_err_y, pixel_split, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, plaq, GloballyPositioned< T >::position(), position, PSimHit::processType(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), TrackerTopology::pxbLadder(), TrackerTopology::pxbLayer(), TrackerTopology::pxbModule(), TrackerTopology::pxfBlade(), TrackerTopology::pxfDisk(), TrackerTopology::pxfModule(), TrackerTopology::pxfPanel(), TrackerTopology::pxfSide(), rechiterrx, rechiterry, rechitpullx, rechitpully, rechitresx, rechitresy, rechitx, rechity, rechitz, edm::EventID::run(), run, side, simhitx, simhity, simproc, findQualityFiles::size, PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), StripSubdetector::stereo(), strip_charge, strip_clst_err_x, strip_clst_err_y, strip_cotalpha, strip_cotbeta, strip_edge, strip_hit_type, strip_is_stereo, strip_locbx, strip_locby, strip_locbz, strip_nprm, strip_nsimhit, strip_pidhit, strip_pidhit1, strip_pidhit2, strip_pidhit3, strip_pidhit4, strip_pidhit5, strip_prob, strip_qbin, strip_rechiterrx, strip_rechiterry, strip_rechitpullx, strip_rechitpully, strip_rechitresx, strip_rechitresx2, strip_rechitresy, strip_rechitx, strip_rechity, strip_rechitz, strip_simproc, strip_simproc1, strip_simproc2, strip_simproc3, strip_simproc4, strip_simproc5, strip_size, strip_split, strip_subdet_id, strip_tib_is_double_side, strip_tib_is_external_string, strip_tib_is_internal_string, strip_tib_is_rphi, strip_tib_is_stereo, strip_tib_is_z_minus_side, strip_tib_is_z_plus_side, strip_tib_layer, strip_tib_layer_number, strip_tib_module, strip_tib_module_number, strip_tib_order, strip_tib_side, strip_tib_string_number, strip_tob_is_double_side, strip_tob_is_rphi, strip_tob_is_stereo, strip_tob_is_z_minus_side, strip_tob_is_z_plus_side, strip_tob_layer, strip_tob_layer_number, strip_tob_module, strip_tob_module_number, strip_tob_rod_number, strip_tob_side, strip_trk_pt, DetId::subdetId(), subdetId, GeomDet::surface(), StripSubdetector::TIB, TrackerTopology::tibIsDoubleSide(), TrackerTopology::tibIsExternalString(), TrackerTopology::tibIsInternalString(), TrackerTopology::tibIsRPhi(), TrackerTopology::tibIsStereo(), TrackerTopology::tibIsZMinusSide(), TrackerTopology::tibIsZPlusSide(), TrackerTopology::tibLayer(), TrackerTopology::tibModule(), TrackerTopology::tibOrder(), TrackerTopology::tibSide(), TrackerTopology::tibString(), StripSubdetector::TOB, TrackerTopology::tobIsDoubleSide(), TrackerTopology::tobIsRPhi(), TrackerTopology::tobIsStereo(), TrackerTopology::tobIsZMinusSide(), TrackerTopology::tobIsZPlusSide(), TrackerTopology::tobLayer(), TrackerTopology::tobModule(), TrackerTopology::tobRod(), TrackerTopology::tobSide(), Surface::toGlobal(), toLocal(), tPixRecHitCollection, findElectronsInSiStrips_cfi::trackCollection, trackingTruthProducer_cfi::tracker, trackerHitAssociatorConfig_, l1t::tracks, trk_alpha, trk_beta, tSimTrackContainer, tTrackCollection, tTrajectory, ttree_all_hits_, ttree_track_hits_, ttree_track_hits_strip_, x, 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().

371  {
372  //Retrieve tracker topology from geometry
373  edm::ESHandle<TrackerTopology> tTopoHandle;
374  es.get<TrackerTopologyRcd>().get(tTopoHandle);
375  const TrackerTopology* const tTopo = tTopoHandle.product();
376 
377  using namespace edm;
378 
379  run = e.id().run();
380  evt = e.id().event();
381 
382  if (evt % 1000 == 0)
383  cout << "evt = " << evt << endl;
384 
385  float math_pi = 3.14159265;
386  float radtodeg = 180.0 / math_pi;
387 
390  float mindist = 999999.9;
391 
392  std::vector<PSimHit> matched;
394 
396  es.get<TrackerDigiGeometryRecord>().get(pDD);
397  const TrackerGeometry* tracker = &(*pDD);
398 
399  //cout << "...1..." << endl;
400 
402  es.get<IdealMagneticFieldRecord>().get(magneticField);
403  //const MagneticField* magField_ = magFieldHandle.product();
404 
405  edm::FileInPath FileInPath_;
406 
407  // Strip hits ==============================================================================================================
408 
409  edm::Handle<vector<Trajectory>> trajCollectionHandle;
410 
411  e.getByToken(tTrajectory, trajCollectionHandle);
412  //e.getByLabel( "generalTracks", trajCollectionHandle);
413 
414  for (vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it != trajCollectionHandle->end(); ++it) {
415  vector<TrajectoryMeasurement> tmColl = it->measurements();
416  for (vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj != tmColl.end(); ++itTraj) {
417  if (!itTraj->updatedState().isValid())
418  continue;
419 
420  strip_rechitx = -9999999.9;
421  strip_rechity = -9999999.9;
422  strip_rechitz = -9999999.9;
423  strip_rechiterrx = -9999999.9;
424  strip_rechiterry = -9999999.9;
425  strip_rechitresx = -9999999.9;
426  strip_rechitresx2 = -9999999.9;
427 
428  strip_rechitresy = -9999999.9;
429  strip_rechitpullx = -9999999.9;
430  strip_rechitpully = -9999999.9;
431  strip_is_stereo = -9999999;
432  strip_hit_type = -9999999;
433  detector_type = -9999999;
434 
435  strip_trk_pt = -9999999.9;
436  strip_cotalpha = -9999999.9;
437  strip_cotbeta = -9999999.9;
438  strip_locbx = -9999999.9;
439  strip_locby = -9999999.9;
440  strip_locbz = -9999999.9;
441  strip_charge = -9999999.9;
442  strip_size = -9999999;
443 
444  strip_edge = -9999999;
445  strip_nsimhit = -9999999;
446  strip_pidhit = -9999999;
447  strip_simproc = -9999999;
448 
449  strip_subdet_id = -9999999;
450 
451  strip_tib_layer = -9999999;
452  strip_tib_module = -9999999;
453  strip_tib_order = -9999999;
454  strip_tib_side = -9999999;
455  strip_tib_is_double_side = -9999999;
456  strip_tib_is_z_plus_side = -9999999;
457  strip_tib_is_z_minus_side = -9999999;
458  strip_tib_layer_number = -9999999;
459  strip_tib_string_number = -9999999;
460  strip_tib_module_number = -9999999;
461  strip_tib_is_internal_string = -9999999;
462  strip_tib_is_external_string = -9999999;
463  strip_tib_is_rphi = -9999999;
464  strip_tib_is_stereo = -9999999;
465 
466  strip_tob_layer = -9999999;
467  strip_tob_module = -9999999;
468  strip_tob_side = -9999999;
469  strip_tob_is_double_side = -9999999;
470  strip_tob_is_z_plus_side = -9999999;
471  strip_tob_is_z_minus_side = -9999999;
472  strip_tob_layer_number = -9999999;
473  strip_tob_rod_number = -9999999;
474  strip_tob_module_number = -9999999;
475 
476  strip_tob_is_rphi = -9999999;
477  strip_tob_is_stereo = -9999999;
478 
479  strip_prob = -9999999.9;
480  strip_qbin = -9999999;
481 
482  strip_nprm = -9999999;
483 
484  strip_pidhit1 = -9999999;
485  strip_simproc1 = -9999999;
486 
487  strip_pidhit2 = -9999999;
488  strip_simproc2 = -9999999;
489 
490  strip_pidhit3 = -9999999;
491  strip_simproc3 = -9999999;
492 
493  strip_pidhit4 = -9999999;
494  strip_simproc4 = -9999999;
495 
496  strip_pidhit5 = -9999999;
497  strip_simproc5 = -9999999;
498 
499  strip_split = -9999999;
500  strip_clst_err_x = -9999999.9;
501  strip_clst_err_y = -9999999.9;
502 
503  const TransientTrackingRecHit::ConstRecHitPointer trans_trk_rec_hit_point = itTraj->recHit();
504 
505  if (trans_trk_rec_hit_point == nullptr)
506  continue;
507 
508  const TrackingRecHit* trk_rec_hit = (*trans_trk_rec_hit_point).hit();
509 
510  if (trk_rec_hit == nullptr)
511  continue;
512 
513  DetId detid = (trk_rec_hit)->geographicalId();
514 
515  strip_subdet_id = (int)detid.subdetId();
516 
517  if ((int)detid.subdetId() != (int)(StripSubdetector::TIB) &&
518  (int)detid.subdetId() != (int)(StripSubdetector::TOB))
519  continue;
520 
521  const SiStripMatchedRecHit2D* matchedhit =
522  dynamic_cast<const SiStripMatchedRecHit2D*>((*trans_trk_rec_hit_point).hit());
523  const SiStripRecHit2D* hit2d = dynamic_cast<const SiStripRecHit2D*>((*trans_trk_rec_hit_point).hit());
524  const SiStripRecHit1D* hit1d = dynamic_cast<const SiStripRecHit1D*>((*trans_trk_rec_hit_point).hit());
525 
526  if (!matchedhit && !hit2d && !hit1d)
527  continue;
528 
529  position = (trk_rec_hit)->localPosition();
530  error = (trk_rec_hit)->localPositionError();
531 
532  strip_rechitx = position.x();
533  strip_rechity = position.y();
534  strip_rechitz = position.z();
535  strip_rechiterrx = sqrt(error.xx());
536  strip_rechiterry = sqrt(error.yy());
537 
538  //cout << "strip_rechitx = " << strip_rechitx << endl;
539  //cout << "strip_rechity = " << strip_rechity << endl;
540  //cout << "strip_rechitz = " << strip_rechitz << endl;
541 
542  //cout << "strip_rechiterrx = " << strip_rechiterrx << endl;
543  //cout << "strip_rechiterry = " << strip_rechiterry << endl;
544 
545  TrajectoryStateOnSurface tsos = itTraj->updatedState();
546 
547  strip_trk_pt = tsos.globalMomentum().perp();
548 
549  LocalTrajectoryParameters ltp = tsos.localParameters();
550 
551  LocalVector localDir = ltp.momentum() / ltp.momentum().mag();
552 
553  float locx = localDir.x();
554  float locy = localDir.y();
555  float locz = localDir.z();
556 
557  //alpha_ = atan2( locz, locx );
558  //beta_ = atan2( locz, locy );
559 
560  strip_cotalpha = locx / locz;
561  strip_cotbeta = locy / locz;
562 
563  StripSubdetector StripSubdet = (StripSubdetector)detid;
564 
565  if (StripSubdet.stereo() == 0)
566  strip_is_stereo = 0;
567  else
568  strip_is_stereo = 1;
569 
570  SiStripDetId si_strip_det_id = SiStripDetId(detid);
571 
572  //const StripGeomDetUnit* strip_geom_det_unit = dynamic_cast<const StripGeomDetUnit*> ( tracker->idToDet( detid ) );
573  const StripGeomDetUnit* strip_geom_det_unit = (const StripGeomDetUnit*)tracker->idToDetUnit(detid);
574 
575  if (strip_geom_det_unit != nullptr) {
576  LocalVector lbfield = (strip_geom_det_unit->surface())
577  .toLocal((*magneticField).inTesla(strip_geom_det_unit->surface().position()));
578 
579  strip_locbx = lbfield.x();
580  strip_locby = lbfield.y();
581  strip_locbz = lbfield.z();
582  }
583 
584  //enum ModuleGeometry {UNKNOWNGEOMETRY, IB1, IB2, OB1, OB2, W1A, W2A, W3A, W1B, W2B, W3B, W4, W5, W6, W7};
585 
586  if (si_strip_det_id.moduleGeometry() == 1) {
587  detector_type = 1;
588  //cout << "si_strip_det_id.moduleGeometry() = IB1" << endl;
589  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
590  } else if (si_strip_det_id.moduleGeometry() == 2) {
591  detector_type = 2;
592  //cout << "si_strip_det_id.moduleGeometry() = IB2" << endl;
593  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
594  } else if (si_strip_det_id.moduleGeometry() == 3) {
595  detector_type = 3;
596  //cout << "si_strip_det_id.moduleGeometry() = OB1" << endl;
597  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
598  } else if (si_strip_det_id.moduleGeometry() == 4) {
599  detector_type = 4;
600  //cout << "si_strip_det_id.moduleGeometry() = OB2" << endl;
601  //cout << "si_strip_det_id.moduleGeometry() = " << si_strip_det_id.moduleGeometry() << endl;
602  }
603 
604  // Store ntuple variables
605 
606  if ((int)detid.subdetId() == int(StripSubdetector::TIB)) {
607  strip_tib_layer = (int)tTopo->tibLayer(detid);
608  strip_tib_module = (int)tTopo->tibModule(detid);
609  strip_tib_order = (int)tTopo->tibOrder(detid);
610  strip_tib_side = (int)tTopo->tibSide(detid);
614  strip_tib_layer_number = (int)tTopo->tibLayer(detid);
615  strip_tib_string_number = (int)tTopo->tibString(detid);
616  strip_tib_module_number = (int)tTopo->tibModule(detid);
619  strip_tib_is_rphi = (int)tTopo->tibIsRPhi(detid);
620  strip_tib_is_stereo = (int)tTopo->tibIsStereo(detid);
621  }
622 
623  if ((int)detid.subdetId() == int(StripSubdetector::TOB)) {
624  strip_tob_layer = (int)tTopo->tobLayer(detid);
625  strip_tob_module = (int)tTopo->tobModule(detid);
626 
627  strip_tob_side = (int)tTopo->tobSide(detid);
631  strip_tob_layer_number = (int)tTopo->tobLayer(detid);
632  strip_tob_rod_number = (int)tTopo->tobRod(detid);
633  strip_tob_module_number = (int)tTopo->tobModule(detid);
634 
635  strip_tob_is_rphi = (int)tTopo->tobIsRPhi(detid);
636  strip_tob_is_stereo = (int)tTopo->tobIsStereo(detid);
637  }
638 
639  if (matchedhit) {
640  //cout << endl << endl << endl;
641  //cout << "Found a SiStripMatchedRecHit2D !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " << endl;
642  //cout << endl << endl << endl;
643  strip_hit_type = 0;
644 
645  } // if ( matchedhit )
646 
647  if (hit1d) {
648  strip_hit_type = 1;
649 
650  const SiStripRecHit1D::ClusterRef& cluster = hit1d->cluster();
651 
652  if (cluster->getSplitClusterError() > 0.0)
653  strip_split = 1;
654  else
655  strip_split = 0;
656 
657  strip_clst_err_x = cluster->getSplitClusterError();
658  //strip_clst_err_y = ...
659 
660  // Get cluster total charge
661  const auto& stripCharges = cluster->amplitudes();
662  uint16_t charge = 0;
663  for (unsigned int i = 0; i < stripCharges.size(); ++i) {
664  charge += stripCharges[i];
665  }
666 
667  strip_charge = (float)charge;
668  strip_size = (int)((cluster->amplitudes()).size());
669 
670  // Association of the rechit to the simhit
671  float mindist = 999999.9;
672  matched.clear();
673 
674  matched = associate.associateHit(*hit1d);
675 
676  strip_nsimhit = (int)matched.size();
677 
678  if (!matched.empty()) {
679  PSimHit closest;
680 
681  // Get the closest simhit
682 
683  int strip_nprimaries = 0;
684  int current_index = 0;
685 
686  for (vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); ++m) {
687  ++current_index;
688 
689  if ((*m).processType() == 2)
690  ++strip_nprimaries;
691 
692  if (current_index == 1) {
693  strip_pidhit1 = (*m).particleType();
694  strip_simproc1 = (*m).processType();
695  } else if (current_index == 2) {
696  strip_pidhit2 = (*m).particleType();
697  strip_simproc2 = (*m).processType();
698  } else if (current_index == 3) {
699  strip_pidhit3 = (*m).particleType();
700  strip_simproc3 = (*m).processType();
701  } else if (current_index == 4) {
702  strip_pidhit4 = (*m).particleType();
703  strip_simproc4 = (*m).processType();
704  } else if (current_index == 5) {
705  strip_pidhit5 = (*m).particleType();
706  strip_simproc5 = (*m).processType();
707  }
708 
709  float dist = abs((hit1d)->localPosition().x() - (*m).localPosition().x());
710 
711  if (dist < mindist) {
712  mindist = dist;
713  closest = (*m);
714  }
715 
716  } // for ( vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); ++m)
717 
718  strip_nprm = strip_nprimaries;
719 
722 
723  strip_rechitresx2 = strip_rechitx - matched[0].localPosition().x();
724 
727 
728  strip_pidhit = closest.particleType();
729  strip_simproc = closest.processType();
730 
731  } // if( !matched.empty())
732 
733  //strip_prob = (hit1d)->getTemplProb();
734  //strip_qbin = (hit1d)->getTemplQbin();
735 
736  //cout << endl;
737  //cout << "SiPixelErrorEstimation 1d hit: " << endl;
738  //cout << "prob 1d = " << strip_prob << endl;
739  //cout << "qbin 1d = " << strip_qbin << endl;
740  //cout << endl;
741 
742  // Is the cluster on edge ?
743  /*
744  SiStripDetInfoFileReader* reader;
745 
746  FileInPath_("CalibTracker/SiStripCommon/data/SiStripDetInfo.dat");
747 
748  reader = new SiStripDetInfoFileReader( FileInPath_.fullPath() );
749 
750  uint16_t firstStrip = cluster->firstStrip();
751  uint16_t lastStrip = firstStrip + (cluster->amplitudes()).size() -1;
752  unsigned short Nstrips;
753  Nstrips = reader->getNumberOfApvsAndStripLength(id1).first*128;
754 
755  if ( firstStrip == 0 || lastStrip == (Nstrips-1) )
756  strip_edge = 1;
757  else
758  strip_edge = 0;
759  */
760 
761  } // if ( hit1d )
762 
763  if (hit2d) {
764  strip_hit_type = 2;
765 
766  const SiStripRecHit1D::ClusterRef& cluster = hit2d->cluster();
767 
768  //if ( cluster->getSplitClusterError() > 0.0 )
769  //strip_split = 1;
770  //else
771  //strip_split = 0;
772 
773  //strip_clst_err_x = cluster->getSplitClusterError();
774  //strip_clst_err_y = ...
775 
776  // Get cluster total charge
777  auto& stripCharges = cluster->amplitudes();
778  uint16_t charge = 0;
779  for (unsigned int i = 0; i < stripCharges.size(); ++i) {
780  charge += stripCharges[i];
781  }
782 
783  strip_charge = (float)charge;
784  strip_size = (int)((cluster->amplitudes()).size());
785 
786  // Association of the rechit to the simhit
787  float mindist = 999999.9;
788  matched.clear();
789 
790  matched = associate.associateHit(*hit2d);
791 
792  strip_nsimhit = (int)matched.size();
793 
794  if (!matched.empty()) {
795  PSimHit closest;
796 
797  // Get the closest simhit
798 
799  for (vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); ++m) {
800  float dist = abs((hit2d)->localPosition().x() - (*m).localPosition().x());
801 
802  if (dist < mindist) {
803  mindist = dist;
804  closest = (*m);
805  }
806  }
807 
810 
813 
814  strip_pidhit = closest.particleType();
815  strip_simproc = closest.processType();
816 
817  } // if( !matched.empty())
818 
819  //strip_prob = (hit2d)->getTemplProb();
820  //strip_qbin = (hit2d)->getTemplQbin();
821 
822  //cout << endl;
823  //cout << "SiPixelErrorEstimation 2d hit: " << endl;
824  //cout << "prob 2d = " << strip_prob << endl;
825  //cout << "qbin 2d = " << strip_qbin << endl;
826  //cout << endl;
827 
828  } // if ( hit2d )
829 
830  ttree_track_hits_strip_->Fill();
831 
832  } // for ( vector<TrajectoryMeasurement>::const_iterator itTraj = tmColl.begin(); itTraj!=tmColl.end(); ++itTraj )
833 
834  } // for( vector<Trajectory>::const_iterator it = trajCollectionHandle->begin(); it!=trajCollectionHandle->end(); ++it)
835 
836  //cout << "...2..." << endl;
837 
838  // --------------------------------------- all hits -----------------------------------------------------------
840  e.getByToken(tPixRecHitCollection, recHitColl);
841 
843  e.getByToken(tSimTrackContainer, simtracks);
844 
845  //-----Iterate over detunits
846  for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++) {
847  DetId detId = ((*it)->geographicalId());
848 
849  SiPixelRecHitCollection::const_iterator dsmatch = recHitColl->find(detId);
850  if (dsmatch == recHitColl->end())
851  continue;
852 
853  SiPixelRecHitCollection::DetSet pixelrechitRange = *dsmatch;
854  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorBegin = pixelrechitRange.begin();
855  SiPixelRecHitCollection::DetSet::const_iterator pixelrechitRangeIteratorEnd = pixelrechitRange.end();
856  SiPixelRecHitCollection::DetSet::const_iterator pixeliter = pixelrechitRangeIteratorBegin;
857  std::vector<PSimHit> matched;
858 
859  //----Loop over rechits for this detId
860  for (; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter) {
861  matched.clear();
862  matched = associate.associateHit(*pixeliter);
863  // only consider rechits that have associated simhit
864  // otherwise cannot determine residiual
865  if (matched.empty()) {
866  cout << "SiPixelErrorEstimation::analyze: rechits without associated simhit !!!!!!!" << endl;
867  continue;
868  }
869 
870  all_subdetid = -9999;
871 
872  all_layer = -9999;
873  all_ladder = -9999;
874  all_mod = -9999;
875 
876  all_side = -9999;
877  all_disk = -9999;
878  all_blade = -9999;
879  all_panel = -9999;
880  all_plaq = -9999;
881 
882  all_half = -9999;
883  all_flipped = -9999;
884 
885  all_cols = -9999;
886  all_rows = -9999;
887 
888  all_rechitx = -9999;
889  all_rechity = -9999;
890  all_rechitz = -9999;
891 
892  all_simhitx = -9999;
893  all_simhity = -9999;
894 
895  all_rechiterrx = -9999;
896  all_rechiterry = -9999;
897 
898  all_rechitresx = -9999;
899  all_rechitresy = -9999;
900 
901  all_rechitpullx = -9999;
902  all_rechitpully = -9999;
903 
904  all_npix = -9999;
905  all_nxpix = -9999;
906  all_nypix = -9999;
907 
908  all_edgex = -9999;
909  all_edgey = -9999;
910 
911  all_bigx = -9999;
912  all_bigy = -9999;
913 
914  all_alpha = -9999;
915  all_beta = -9999;
916 
917  all_simphi = -9999;
918  all_simtheta = -9999;
919 
920  all_simhitx = -9999;
921  all_simhity = -9999;
922 
923  all_nsimhit = -9999;
924  all_pidhit = -9999;
925  all_simproc = -9999;
926 
927  all_vtxr = -9999;
928  all_vtxz = -9999;
929 
930  all_simpx = -9999;
931  all_simpy = -9999;
932  all_simpz = -9999;
933 
934  all_eloss = -9999;
935 
936  all_trkid = -9999;
937 
938  all_x1 = -9999;
939  all_x2 = -9999;
940  all_y1 = -9999;
941  all_y2 = -9999;
942  all_z1 = -9999;
943  all_z2 = -9999;
944 
945  all_row1 = -9999;
946  all_row2 = -9999;
947  all_col1 = -9999;
948  all_col2 = -9999;
949 
950  all_gx1 = -9999;
951  all_gx2 = -9999;
952  all_gy1 = -9999;
953  all_gy2 = -9999;
954  all_gz1 = -9999;
955  all_gz2 = -9999;
956 
957  all_simtrketa = -9999;
958  all_simtrkphi = -9999;
959 
960  all_clust_row = -9999;
961  all_clust_col = -9999;
962 
963  all_clust_x = -9999;
964  all_clust_y = -9999;
965 
966  all_clust_q = -9999;
967 
968  all_clust_maxpixcol = -9999;
969  all_clust_maxpixrow = -9999;
970  all_clust_minpixcol = -9999;
971  all_clust_minpixrow = -9999;
972 
973  all_clust_geoid = -9999;
974 
975  all_clust_alpha = -9999;
976  all_clust_beta = -9999;
977 
978  /*
979  for (int i=0; i<all_npix; ++i)
980  {
981  all_pixrow[i] = -9999;
982  all_pixcol[i] = -9999;
983  all_pixadc[i] = -9999;
984  all_pixx[i] = -9999;
985  all_pixy[i] = -9999;
986  all_pixgx[i] = -9999;
987  all_pixgy[i] = -9999;
988  all_pixgz[i] = -9999;
989  }
990  */
991 
992  all_hit_probx = -9999;
993  all_hit_proby = -9999;
994  all_hit_cprob0 = -9999;
995  all_hit_cprob1 = -9999;
996  all_hit_cprob2 = -9999;
997 
998  all_pixel_split = -9999;
999  all_pixel_clst_err_x = -9999.9;
1000  all_pixel_clst_err_y = -9999.9;
1001 
1002  all_nsimhit = (int)matched.size();
1003 
1004  all_subdetid = (int)detId.subdetId();
1005  // only consider rechits in pixel barrel and pixel forward
1006  if (!(all_subdetid == 1 || all_subdetid == 2)) {
1007  cout << "SiPixelErrorEstimation::analyze: Not in a pixel detector !!!!!" << endl;
1008  continue;
1009  }
1010 
1011  const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*>(tracker->idToDet(detId));
1012 
1013  const PixelTopology* topol = &(theGeomDet->specificTopology());
1014 
1015  if (pixeliter->cluster()->getSplitClusterErrorX() > 0.0 && pixeliter->cluster()->getSplitClusterErrorY() > 0.0) {
1016  all_pixel_split = 1;
1017  } else {
1018  all_pixel_split = 0;
1019  }
1020 
1021  all_pixel_clst_err_x = pixeliter->cluster()->getSplitClusterErrorX();
1022  all_pixel_clst_err_y = pixeliter->cluster()->getSplitClusterErrorY();
1023 
1024  const int maxPixelCol = pixeliter->cluster()->maxPixelCol();
1025  const int maxPixelRow = pixeliter->cluster()->maxPixelRow();
1026  const int minPixelCol = pixeliter->cluster()->minPixelCol();
1027  const int minPixelRow = pixeliter->cluster()->minPixelRow();
1028 
1029  //all_hit_probx = (float)pixeliter->probabilityX();
1030  //all_hit_proby = (float)pixeliter->probabilityY();
1031  all_hit_cprob0 = (float)pixeliter->clusterProbability(0);
1032  all_hit_cprob1 = (float)pixeliter->clusterProbability(1);
1033  all_hit_cprob2 = (float)pixeliter->clusterProbability(2);
1034 
1035  // check whether the cluster is at the module edge
1036  if (topol->isItEdgePixelInX(minPixelRow) || topol->isItEdgePixelInX(maxPixelRow))
1037  all_edgex = 1;
1038  else
1039  all_edgex = 0;
1040 
1041  if (topol->isItEdgePixelInY(minPixelCol) || topol->isItEdgePixelInY(maxPixelCol))
1042  all_edgey = 1;
1043  else
1044  all_edgey = 0;
1045 
1046  // check whether this rechit contains big pixels
1047  if (topol->containsBigPixelInX(minPixelRow, maxPixelRow))
1048  all_bigx = 1;
1049  else
1050  all_bigx = 0;
1051 
1052  if (topol->containsBigPixelInY(minPixelCol, maxPixelCol))
1053  all_bigy = 1;
1054  else
1055  all_bigy = 0;
1056 
1057  if ((int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel) {
1058  all_layer = tTopo->pxbLayer(detId);
1059  all_ladder = tTopo->pxbLadder(detId);
1060  all_mod = tTopo->pxbModule(detId);
1061 
1062  int tmp_nrows = theGeomDet->specificTopology().nrows();
1063  if (tmp_nrows == 80)
1064  all_half = 1;
1065  else if (tmp_nrows == 160)
1066  all_half = 0;
1067  else
1068  cout << "-------------------------------------------------- Wrong module size !!!" << endl;
1069 
1070  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1071  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1072 
1073  if (tmp2 < tmp1)
1074  all_flipped = 1;
1075  else
1076  all_flipped = 0;
1077  } else if ((int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap) {
1078  all_side = tTopo->pxfSide(detId);
1079  all_disk = tTopo->pxfDisk(detId);
1080  all_blade = tTopo->pxfBlade(detId);
1081  all_panel = tTopo->pxfPanel(detId);
1082  all_plaq = tTopo->pxfModule(detId); // also known as plaquette
1083 
1084  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1085  else
1086  std::cout << "We are not in the pixel detector" << (int)detId.subdetId() << endl;
1087 
1088  all_cols = theGeomDet->specificTopology().ncolumns();
1089  all_rows = theGeomDet->specificTopology().nrows();
1090 
1091  LocalPoint lp = pixeliter->localPosition();
1092  // gavril: change this name
1093  all_rechitx = lp.x();
1094  all_rechity = lp.y();
1095  all_rechitz = lp.z();
1096 
1097  LocalError le = pixeliter->localPositionError();
1098  all_rechiterrx = sqrt(le.xx());
1099  all_rechiterry = sqrt(le.yy());
1100 
1101  bool found_hit_from_generated_particle = false;
1102 
1103  //---Loop over sim hits, fill closest
1104  float closest_dist = 99999.9;
1105  std::vector<PSimHit>::const_iterator closest_simhit = matched.begin();
1106 
1107  for (std::vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); m++) {
1108  if (checkType_) {
1109  int pid = (*m).particleType();
1110  if (abs(pid) != genType_)
1111  continue;
1112  }
1113 
1114  float simhitx = 0.5 * ((*m).entryPoint().x() + (*m).exitPoint().x());
1115  float simhity = 0.5 * ((*m).entryPoint().y() + (*m).exitPoint().y());
1116 
1117  float x_res = simhitx - rechitx;
1118  float y_res = simhity - rechity;
1119 
1120  float dist = sqrt(x_res * x_res + y_res * y_res);
1121 
1122  if (dist < closest_dist) {
1123  closest_dist = dist;
1124  closest_simhit = m;
1125  found_hit_from_generated_particle = true;
1126  }
1127  } // end sim hit loop
1128 
1129  // If this recHit does not have any simHit with the same particleType as the particles generated
1130  // ignore it as most probably comes from delta rays.
1131  if (checkType_ && !found_hit_from_generated_particle)
1132  continue;
1133 
1134  all_x1 = (*closest_simhit).entryPoint().x(); // width (row index, in col direction)
1135  all_y1 = (*closest_simhit).entryPoint().y(); // length (col index, in row direction)
1136  all_z1 = (*closest_simhit).entryPoint().z();
1137  all_x2 = (*closest_simhit).exitPoint().x();
1138  all_y2 = (*closest_simhit).exitPoint().y();
1139  all_z2 = (*closest_simhit).exitPoint().z();
1140  GlobalPoint GP1 = theGeomDet->surface().toGlobal(Local3DPoint(
1141  (*closest_simhit).entryPoint().x(), (*closest_simhit).entryPoint().y(), (*closest_simhit).entryPoint().z()));
1142  GlobalPoint GP2 = theGeomDet->surface().toGlobal(Local3DPoint(
1143  (*closest_simhit).exitPoint().x(), (*closest_simhit).exitPoint().y(), (*closest_simhit).exitPoint().z()));
1144  all_gx1 = GP1.x();
1145  all_gx2 = GP2.x();
1146  all_gy1 = GP1.y();
1147  all_gy2 = GP2.y();
1148  all_gz1 = GP1.z();
1149  all_gz2 = GP2.z();
1150 
1152  (*closest_simhit).entryPoint().x(), (*closest_simhit).entryPoint().y(), (*closest_simhit).entryPoint().z()));
1154  (*closest_simhit).exitPoint().x(), (*closest_simhit).exitPoint().y(), (*closest_simhit).exitPoint().z()));
1155  all_row1 = mp1.x();
1156  all_col1 = mp1.y();
1157  all_row2 = mp2.x();
1158  all_col2 = mp2.y();
1159 
1160  all_simhitx = 0.5 * (all_x1 + all_x2);
1161  all_simhity = 0.5 * (all_y1 + all_y2);
1162 
1165 
1168 
1169  SiPixelRecHit::ClusterRef const& clust = pixeliter->cluster();
1170 
1171  all_npix = clust->size();
1172  all_nxpix = clust->sizeX();
1173  all_nypix = clust->sizeY();
1174 
1175  all_clust_row = clust->x();
1176  all_clust_col = clust->y();
1177 
1179  all_clust_x = lp2.x();
1180  all_clust_y = lp2.y();
1181 
1182  all_clust_q = clust->charge();
1183 
1184  all_clust_maxpixcol = clust->maxPixelCol();
1185  all_clust_maxpixrow = clust->maxPixelRow();
1186  all_clust_minpixcol = clust->minPixelCol();
1187  all_clust_minpixrow = clust->minPixelRow();
1188 
1189  all_clust_geoid = 0; // never set!
1190 
1191  all_simpx = (*closest_simhit).momentumAtEntry().x();
1192  all_simpy = (*closest_simhit).momentumAtEntry().y();
1193  all_simpz = (*closest_simhit).momentumAtEntry().z();
1194  all_eloss = (*closest_simhit).energyLoss();
1195  all_simphi = (*closest_simhit).phiAtEntry();
1196  all_simtheta = (*closest_simhit).thetaAtEntry();
1197  all_pidhit = (*closest_simhit).particleType();
1198  all_trkid = (*closest_simhit).trackId();
1199 
1200  //--- Fill alpha and beta -- more useful for exploring the residuals...
1201  all_beta = atan2(all_simpz, all_simpy);
1202  all_alpha = atan2(all_simpz, all_simpx);
1203 
1204  all_simproc = (int)closest_simhit->processType();
1205 
1206  const edm::SimTrackContainer& trks = *(simtracks.product());
1207  SimTrackContainer::const_iterator trksiter;
1208  for (trksiter = trks.begin(); trksiter != trks.end(); trksiter++)
1209  if ((int)trksiter->trackId() == all_trkid) {
1210  all_simtrketa = trksiter->momentum().eta();
1211  all_simtrkphi = trksiter->momentum().phi();
1212  }
1213 
1214  all_vtxz = theGeomDet->surface().position().z();
1215  all_vtxr = theGeomDet->surface().position().perp();
1216 
1217  //computeAnglesFromDetPosition(clust,
1218  // theGeomDet,
1219  // all_clust_alpha, all_clust_beta )
1220 
1221  const std::vector<SiPixelCluster::Pixel>& pixvector = clust->pixels();
1222  for (int i = 0; i < (int)pixvector.size(); ++i) {
1223  SiPixelCluster::Pixel holdpix = pixvector[i];
1224  all_pixrow[i] = holdpix.x;
1225  all_pixcol[i] = holdpix.y;
1226  all_pixadc[i] = holdpix.adc;
1227  LocalPoint lp = topol->localPosition(MeasurementPoint(holdpix.x, holdpix.y));
1228  all_pixx[i] = lp.x();
1229  all_pixy[i] = lp.y();
1230  GlobalPoint GP = theGeomDet->surface().toGlobal(Local3DPoint(lp.x(), lp.y(), lp.z()));
1231  all_pixgx[i] = GP.x();
1232  all_pixgy[i] = GP.y();
1233  all_pixgz[i] = GP.z();
1234  }
1235 
1236  ttree_all_hits_->Fill();
1237 
1238  } // for ( ; pixeliter != pixelrechitRangeIteratorEnd; ++pixeliter)
1239 
1240  } // for (TrackerGeometry::DetContainer::const_iterator it = pDD->dets().begin(); it != pDD->dets().end(); it++)
1241 
1242  // ------------------------------------------------ all hits ---------------------------------------------------------------
1243 
1244  //cout << "...3..." << endl;
1245 
1246  // ------------------------------------------------ track hits only --------------------------------------------------------
1247 
1248  if (include_trk_hits_) {
1249  // Get tracks
1251  e.getByToken(tTrackCollection, trackCollection);
1252  const reco::TrackCollection* tracks = trackCollection.product();
1253  reco::TrackCollection::const_iterator tciter;
1254 
1255  if (!tracks->empty()) {
1256  // Loop on tracks
1257  for (tciter = tracks->begin(); tciter != tracks->end(); ++tciter) {
1258  // First loop on hits: find matched hits
1259  for (auto const hit : tciter->recHits()) {
1260  // Is it a matched hit?
1261  const SiPixelRecHit* matchedhit = dynamic_cast<const SiPixelRecHit*>(hit);
1262 
1263  if (matchedhit) {
1264  rechitx = -9999.9;
1265  rechity = -9999.9;
1266  rechitz = -9999.9;
1267  rechiterrx = -9999.9;
1268  rechiterry = -9999.9;
1269  rechitresx = -9999.9;
1270  rechitresy = -9999.9;
1271  rechitpullx = -9999.9;
1272  rechitpully = -9999.9;
1273 
1274  npix = -9999;
1275  nxpix = -9999;
1276  nypix = -9999;
1277  charge = -9999.9;
1278 
1279  edgex = -9999;
1280  edgey = -9999;
1281 
1282  bigx = -9999;
1283  bigy = -9999;
1284 
1285  alpha = -9999.9;
1286  beta = -9999.9;
1287 
1288  phi = -9999.9;
1289  eta = -9999.9;
1290 
1291  subdetId = -9999;
1292 
1293  layer = -9999;
1294  ladder = -9999;
1295  mod = -9999;
1296  side = -9999;
1297  disk = -9999;
1298  blade = -9999;
1299  panel = -9999;
1300  plaq = -9999;
1301 
1302  half = -9999;
1303  flipped = -9999;
1304 
1305  nsimhit = -9999;
1306  pidhit = -9999;
1307  simproc = -9999;
1308 
1309  simhitx = -9999.9;
1310  simhity = -9999.9;
1311 
1312  hit_probx = -9999.9;
1313  hit_proby = -9999.9;
1314  hit_cprob0 = -9999.9;
1315  hit_cprob1 = -9999.9;
1316  hit_cprob2 = -9999.9;
1317 
1318  pixel_split = -9999;
1319 
1320  pixel_clst_err_x = -9999.9;
1321  pixel_clst_err_y = -9999.9;
1322 
1323  position = hit->localPosition();
1324  error = hit->localPositionError();
1325 
1326  rechitx = position.x();
1327  rechity = position.y();
1328  rechitz = position.z();
1329  rechiterrx = sqrt(error.xx());
1330  rechiterry = sqrt(error.yy());
1331 
1332  npix = matchedhit->cluster()->size();
1333  nxpix = matchedhit->cluster()->sizeX();
1334  nypix = matchedhit->cluster()->sizeY();
1335  charge = matchedhit->cluster()->charge();
1336 
1337  if (matchedhit->cluster()->getSplitClusterErrorX() > 0.0 &&
1338  matchedhit->cluster()->getSplitClusterErrorY() > 0.0)
1339  pixel_split = 1;
1340  else
1341  pixel_split = 0;
1342 
1343  pixel_clst_err_x = matchedhit->cluster()->getSplitClusterErrorX();
1344  pixel_clst_err_y = matchedhit->cluster()->getSplitClusterErrorY();
1345 
1346  //hit_probx = (float)matchedhit->probabilityX();
1347  //hit_proby = (float)matchedhit->probabilityY();
1348  hit_cprob0 = (float)matchedhit->clusterProbability(0);
1349  hit_cprob1 = (float)matchedhit->clusterProbability(1);
1350  hit_cprob2 = (float)matchedhit->clusterProbability(2);
1351 
1352  //Association of the rechit to the simhit
1353  matched.clear();
1354  matched = associate.associateHit(*matchedhit);
1355 
1356  nsimhit = (int)matched.size();
1357 
1358  if (!matched.empty()) {
1359  mindist = 999999.9;
1360  float distx, disty, dist;
1361  bool found_hit_from_generated_particle = false;
1362 
1363  int n_assoc_muon = 0;
1364 
1365  vector<PSimHit>::const_iterator closestit = matched.begin();
1366  for (vector<PSimHit>::const_iterator m = matched.begin(); m < matched.end(); ++m) {
1367  if (checkType_) { // only consider associated simhits with the generated pid (muons)
1368  int pid = (*m).particleType();
1369  if (abs(pid) != genType_)
1370  continue;
1371  }
1372 
1373  float simhitx = 0.5 * ((*m).entryPoint().x() + (*m).exitPoint().x());
1374  float simhity = 0.5 * ((*m).entryPoint().y() + (*m).exitPoint().y());
1375 
1376  distx = fabs(rechitx - simhitx);
1377  disty = fabs(rechity - simhity);
1378  dist = sqrt(distx * distx + disty * disty);
1379 
1380  if (dist < mindist) {
1381  n_assoc_muon++;
1382 
1383  mindist = dist;
1384  closestit = m;
1385  found_hit_from_generated_particle = true;
1386  }
1387  } // for (vector<PSimHit>::const_iterator m=matched.begin(); m<matched.end(); m++)
1388 
1389  // This recHit does not have any simHit with the same particleType as the particles generated
1390  // Ignore it as most probably come from delta rays.
1391  if (checkType_ && !found_hit_from_generated_particle)
1392  continue;
1393 
1394  //if ( n_assoc_muon > 1 )
1395  //{
1396  // // cout << " ----- This is not good: n_assoc_muon = " << n_assoc_muon << endl;
1397  // // cout << "evt = " << evt << endl;
1398  //}
1399 
1400  DetId detId = hit->geographicalId();
1401 
1402  const PixelGeomDetUnit* theGeomDet = dynamic_cast<const PixelGeomDetUnit*>((*tracker).idToDet(detId));
1403 
1404  const PixelTopology* theTopol = &(theGeomDet->specificTopology());
1405 
1406  pidhit = (*closestit).particleType();
1407  simproc = (int)(*closestit).processType();
1408 
1409  simhitx = 0.5 * ((*closestit).entryPoint().x() + (*closestit).exitPoint().x());
1410  simhity = 0.5 * ((*closestit).entryPoint().y() + (*closestit).exitPoint().y());
1411 
1412  rechitresx = rechitx - simhitx;
1413  rechitresy = rechity - simhity;
1414  rechitpullx = (rechitx - simhitx) / sqrt(error.xx());
1415  rechitpully = (rechity - simhity) / sqrt(error.yy());
1416 
1417  float simhitpx = (*closestit).momentumAtEntry().x();
1418  float simhitpy = (*closestit).momentumAtEntry().y();
1419  float simhitpz = (*closestit).momentumAtEntry().z();
1420 
1421  beta = atan2(simhitpz, simhitpy) * radtodeg;
1422  alpha = atan2(simhitpz, simhitpx) * radtodeg;
1423 
1424  //beta = fabs(atan2(simhitpz, simhitpy)) * radtodeg;
1425  //alpha = fabs(atan2(simhitpz, simhitpx)) * radtodeg;
1426 
1427  // calculate alpha and beta exactly as in PixelCPEBase.cc
1428  float locx = simhitpx;
1429  float locy = simhitpy;
1430  float locz = simhitpz;
1431 
1432  bool isFlipped = false;
1433  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1434  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1435  if (tmp2 < tmp1)
1436  isFlipped = true;
1437  else
1438  isFlipped = false;
1439 
1440  trk_alpha = acos(locx / sqrt(locx * locx + locz * locz)) * radtodeg;
1441  if (isFlipped) // &&& check for FPIX !!!
1442  trk_alpha = 180.0 - trk_alpha;
1443 
1444  trk_beta = acos(locy / sqrt(locy * locy + locz * locz)) * radtodeg;
1445 
1446  phi = tciter->momentum().phi() / math_pi * 180.0;
1447  eta = tciter->momentum().eta();
1448 
1449  const int maxPixelCol = (*matchedhit).cluster()->maxPixelCol();
1450  const int maxPixelRow = (*matchedhit).cluster()->maxPixelRow();
1451  const int minPixelCol = (*matchedhit).cluster()->minPixelCol();
1452  const int minPixelRow = (*matchedhit).cluster()->minPixelRow();
1453 
1454  // check whether the cluster is at the module edge
1455  if (theTopol->isItEdgePixelInX(minPixelRow) || theTopol->isItEdgePixelInX(maxPixelRow))
1456  edgex = 1;
1457  else
1458  edgex = 0;
1459 
1460  if (theTopol->isItEdgePixelInY(minPixelCol) || theTopol->isItEdgePixelInY(maxPixelCol))
1461  edgey = 1;
1462  else
1463  edgey = 0;
1464 
1465  // check whether this rechit contains big pixels
1466  if (theTopol->containsBigPixelInX(minPixelRow, maxPixelRow))
1467  bigx = 1;
1468  else
1469  bigx = 0;
1470 
1471  if (theTopol->containsBigPixelInY(minPixelCol, maxPixelCol))
1472  bigy = 1;
1473  else
1474  bigy = 0;
1475 
1476  subdetId = (int)detId.subdetId();
1477 
1478  if ((int)detId.subdetId() == (int)PixelSubdetector::PixelBarrel) {
1479  int tmp_nrows = theGeomDet->specificTopology().nrows();
1480  if (tmp_nrows == 80)
1481  half = 1;
1482  else if (tmp_nrows == 160)
1483  half = 0;
1484  else
1485  cout << "-------------------------------------------------- Wrong module size !!!" << endl;
1486 
1487  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1488  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1489 
1490  if (tmp2 < tmp1)
1491  flipped = 1;
1492  else
1493  flipped = 0;
1494 
1495  layer = tTopo->pxbLayer(detId); // Layer: 1,2,3.
1496  ladder = tTopo->pxbLadder(detId); // Ladder: 1-20, 32, 44.
1497  mod = tTopo->pxbModule(detId); // Mod: 1-8.
1498  } else if ((int)detId.subdetId() == (int)PixelSubdetector::PixelEndcap) {
1499  side = tTopo->pxfSide(detId);
1500  disk = tTopo->pxfDisk(detId);
1501  blade = tTopo->pxfBlade(detId);
1502  panel = tTopo->pxfPanel(detId);
1503  plaq = tTopo->pxfModule(detId); // also known as plaquette
1504 
1505  float tmp1 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 0.)).perp();
1506  float tmp2 = theGeomDet->surface().toGlobal(Local3DPoint(0., 0., 1.)).perp();
1507 
1508  if (tmp2 < tmp1)
1509  flipped = 1;
1510  else
1511  flipped = 0;
1512 
1513  } // else if ( detId.subdetId()==PixelSubdetector::PixelEndcap )
1514  //else std::// cout << "We are not in the pixel detector. detId.subdetId() = " << (int)detId.subdetId() << endl;
1515 
1516  ttree_track_hits_->Fill();
1517 
1518  } // if ( !matched.empty() )
1519  else
1520  cout << "---------------- RecHit with no associated SimHit !!! -------------------------- " << endl;
1521 
1522  } // if ( matchedhit )
1523 
1524  } // end of loop on hits
1525 
1526  } //end of loop on track
1527 
1528  } // tracks > 0.
1529 
1530  } // if ( include_trk_hits_ )
1531 
1532  // ----------------------------------------------- track hits only -----------------------------------------------------------
1533 }
RunNumber_t run() const
Definition: EventID.h:39
ClusterRef cluster() const
size
Write out results.
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
EventNumber_t event() const
Definition: EventID.h:41
float xx() const
Definition: LocalError.h:24
virtual int nrows() const =0
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
bool tobIsDoubleSide(const DetId &id) const
const_iterator end(bool update=false) const
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:32
float clusterProbability(unsigned int flags=0) const
T y() const
Definition: PV2DBase.h:46
bool tibIsDoubleSide(const DetId &id) const
T perp() const
Definition: PV3DBase.h:72
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
bool tobIsStereo(const DetId &id) const
TrackerHitAssociator::Config trackerHitAssociatorConfig_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
virtual bool isItEdgePixelInX(int ixbin) const =0
unsigned int pxfDisk(const DetId &id) const
edm::EDGetTokenT< reco::TrackCollection > tTrackCollection
unsigned int pxbLadder(const DetId &id) const
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:15
T y() const
Definition: PV3DBase.h:63
virtual bool isItEdgePixelInY(int iybin) const =0
unsigned int pxbModule(const DetId &id) const
LocalVector toLocal(const reco::Track::Vector &v, const Surface &s)
bool tobIsRPhi(const DetId &id) const
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
bool tibIsZPlusSide(const DetId &id) const
const DetContainer & dets() const override
Returm a vector of all GeomDet (including all GeomDetUnits)
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
unsigned int tibSide(const DetId &id) const
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
bool tibIsExternalString(const DetId &id) const
T mag() const
Definition: PV3DBase.h:67
bool tibIsRPhi(const DetId &id) const
edm::EDGetTokenT< edm::SimTrackContainer > tSimTrackContainer
float yy() const
Definition: LocalError.h:26
bool tibIsZMinusSide(const DetId &id) const
Local3DPoint localPosition() const
Definition: PSimHit.h:52
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
bool tobIsZPlusSide(const DetId &id) const
virtual bool containsBigPixelInX(int ixmin, int ixmax) const =0
unsigned int tobSide(const DetId &id) const
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
bool tobIsZMinusSide(const DetId &id) const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
ClusterRef cluster() const
LocalVector momentum() const
Momentum vector in the local frame.
unsigned int tibModule(const DetId &id) const
unsigned int pxfModule(const DetId &id) const
unsigned int pxbLayer(const DetId &id) const
edm::EDGetTokenT< std::vector< Trajectory > > tTrajectory
Point3DBase< float, LocalTag > Local3DPoint
Definition: LocalPoint.h:9
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
Definition: DetId.h:18
unsigned int stereo() const
stereo
virtual TrackingRecHit const * hit() const
T const * product() const
Definition: Handle.h:74
ClusterRef cluster() const
Definition: SiPixelRecHit.h:49
bool tibIsStereo(const DetId &id) const
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
unsigned short processType() const
Definition: PSimHit.h:120
unsigned int tobModule(const DetId &id) const
const_iterator find(id_type i, bool update=false) const
edm::EventID id() const
Definition: EventBase.h:59
HLT enums.
virtual int ncolumns() const =0
int particleType() const
Definition: PSimHit.h:89
iterator end()
Definition: DetSetNew.h:70
static int position[264][3]
Definition: ReadPGInfo.cc:509
T get() const
Definition: EventSetup.h:71
const TrackerGeomDet * idToDet(DetId) const override
unsigned int pxfSide(const DetId &id) const
edm::EDGetTokenT< SiPixelRecHitCollection > tPixRecHitCollection
unsigned int tobRod(const DetId &id) const
ModuleGeometry moduleGeometry() const
Definition: SiStripDetId.h:106
bool tibIsInternalString(const DetId &id) const
T x() const
Definition: PV2DBase.h:45
T x() const
Definition: PV3DBase.h:62
const PositionType & position() const
T const * product() const
Definition: ESHandle.h:86
std::vector< SimTrack > SimTrackContainer
unsigned int pxfPanel(const DetId &id) const
unsigned int pxfBlade(const DetId &id) const
unsigned int tobLayer(const DetId &id) const
Our base class.
Definition: SiPixelRecHit.h:23
unsigned int tibOrder(const DetId &id) const
virtual bool containsBigPixelInY(int iymin, int iymax) const =0
iterator begin()
Definition: DetSetNew.h:67
void SiPixelErrorEstimation::beginJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 60 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_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_pixel_clst_err_x, all_pixel_clst_err_y, all_pixel_split, 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, detector_type, disk, edgex, edgey, eta, evt, flipped, half, include_trk_hits_, ladder, layer, mod, npix, nsimhit, nxpix, nypix, outputFile_, panel, phi, pidhit, pixel_clst_err_x, pixel_clst_err_y, pixel_split, plaq, rechiterrx, rechiterry, rechitpullx, rechitpully, rechitresx, rechitresy, rechitx, rechity, rechitz, run, side, simhitx, simhity, simproc, strip_charge, strip_clst_err_x, strip_clst_err_y, strip_cotalpha, strip_cotbeta, strip_edge, strip_hit_type, strip_is_stereo, strip_locbx, strip_locby, strip_locbz, strip_nprm, strip_nsimhit, strip_pidhit, strip_pidhit1, strip_pidhit2, strip_pidhit3, strip_pidhit4, strip_pidhit5, strip_prob, strip_qbin, strip_rechiterrx, strip_rechiterry, strip_rechitpullx, strip_rechitpully, strip_rechitresx, strip_rechitresx2, strip_rechitresy, strip_rechitx, strip_rechity, strip_rechitz, strip_simproc, strip_simproc1, strip_simproc2, strip_simproc3, strip_simproc4, strip_simproc5, strip_size, strip_split, strip_subdet_id, strip_tib_is_double_side, strip_tib_is_external_string, strip_tib_is_internal_string, strip_tib_is_rphi, strip_tib_is_stereo, strip_tib_is_z_minus_side, strip_tib_is_z_plus_side, strip_tib_layer, strip_tib_layer_number, strip_tib_module, strip_tib_module_number, strip_tib_order, strip_tib_side, strip_tib_string_number, strip_tob_is_double_side, strip_tob_is_z_minus_side, strip_tob_is_z_plus_side, strip_tob_layer, strip_tob_layer_number, strip_tob_module, strip_tob_module_number, strip_tob_rod_number, strip_tob_side, strip_trk_pt, subdetId, tfile_, trk_alpha, trk_beta, ttree_all_hits_, ttree_track_hits_, and ttree_track_hits_strip_.

60  {
61  int bufsize = 64000;
62 
63  tfile_ = new TFile(outputFile_.c_str(), "RECREATE");
64 
65  ttree_track_hits_strip_ = new TTree("TrackHitNtupleStrip", "TrackHitNtupleStrip");
66 
67  ttree_track_hits_strip_->Branch("strip_rechitx", &strip_rechitx, "strip_rechitx/F", bufsize);
68  ttree_track_hits_strip_->Branch("strip_rechity", &strip_rechity, "strip_rechity/F", bufsize);
69  ttree_track_hits_strip_->Branch("strip_rechitz", &strip_rechitz, "strip_rechitz/F", bufsize);
70 
71  ttree_track_hits_strip_->Branch("strip_rechiterrx", &strip_rechiterrx, "strip_rechiterrx/F", bufsize);
72  ttree_track_hits_strip_->Branch("strip_rechiterry", &strip_rechiterry, "strip_rechiterry/F", bufsize);
73 
74  ttree_track_hits_strip_->Branch("strip_rechitresx", &strip_rechitresx, "strip_rechitresx/F", bufsize);
75 
76  ttree_track_hits_strip_->Branch("strip_rechitresx2", &strip_rechitresx2, "strip_rechitresx2/F", bufsize);
77 
78  ttree_track_hits_strip_->Branch("strip_rechitresy", &strip_rechitresy, "strip_rechitresy/F", bufsize);
79 
80  ttree_track_hits_strip_->Branch("strip_rechitpullx", &strip_rechitpullx, "strip_rechitpullx/F", bufsize);
81  ttree_track_hits_strip_->Branch("strip_rechitpully", &strip_rechitpully, "strip_rechitpully/F", bufsize);
82 
83  ttree_track_hits_strip_->Branch("strip_is_stereo", &strip_is_stereo, "strip_is_stereo/I", bufsize);
84  ttree_track_hits_strip_->Branch("strip_hit_type", &strip_hit_type, "strip_hit_type/I", bufsize);
85  ttree_track_hits_strip_->Branch("detector_type", &detector_type, "detector_type/I", bufsize);
86 
87  ttree_track_hits_strip_->Branch("strip_trk_pt", &strip_trk_pt, "strip_trk_pt/F", bufsize);
88  ttree_track_hits_strip_->Branch("strip_cotalpha", &strip_cotalpha, "strip_cotalpha/F", bufsize);
89  ttree_track_hits_strip_->Branch("strip_cotbeta", &strip_cotbeta, "strip_cotbeta/F", bufsize);
90  ttree_track_hits_strip_->Branch("strip_locbx", &strip_locbx, "strip_locbx/F", bufsize);
91  ttree_track_hits_strip_->Branch("strip_locby", &strip_locby, "strip_locby/F", bufsize);
92  ttree_track_hits_strip_->Branch("strip_locbz", &strip_locbz, "strip_locbz/F", bufsize);
93  ttree_track_hits_strip_->Branch("strip_charge", &strip_charge, "strip_charge/F", bufsize);
94  ttree_track_hits_strip_->Branch("strip_size", &strip_size, "strip_size/I", bufsize);
95 
96  ttree_track_hits_strip_->Branch("strip_edge", &strip_edge, "strip_edge/I", bufsize);
97  ttree_track_hits_strip_->Branch("strip_nsimhit", &strip_nsimhit, "strip_nsimhit/I", bufsize);
98  ttree_track_hits_strip_->Branch("strip_pidhit", &strip_pidhit, "strip_pidhit/I", bufsize);
99  ttree_track_hits_strip_->Branch("strip_simproc", &strip_simproc, "strip_simproc/I", bufsize);
100 
101  ttree_track_hits_strip_->Branch("strip_subdet_id", &strip_subdet_id, "strip_subdet_id/I", bufsize);
102 
103  ttree_track_hits_strip_->Branch("strip_tib_layer", &strip_tib_layer, "strip_tib_layer/I", bufsize);
104  ttree_track_hits_strip_->Branch("strip_tib_module", &strip_tib_module, "strip_tib_module/I", bufsize);
105  ttree_track_hits_strip_->Branch("strip_tib_order", &strip_tib_order, "strip_tib_order/I", bufsize);
106  ttree_track_hits_strip_->Branch("strip_tib_side", &strip_tib_side, "strip_tib_side/I", bufsize);
107  ttree_track_hits_strip_->Branch(
108  "strip_tib_is_double_side", &strip_tib_is_double_side, "strip_tib_is_double_side/I", bufsize);
109  ttree_track_hits_strip_->Branch(
110  "strip_tib_is_z_plus_side", &strip_tib_is_z_plus_side, "strip_tib_is_z_plus_side/I", bufsize);
111  ttree_track_hits_strip_->Branch(
112  "strip_tib_is_z_minus_side", &strip_tib_is_z_minus_side, "strip_tib_is_z_minus_side/I", bufsize);
113  ttree_track_hits_strip_->Branch(
114  "strip_tib_layer_number", &strip_tib_layer_number, "strip_tib_layer_number/I", bufsize);
115  ttree_track_hits_strip_->Branch(
116  "strip_tib_string_number", &strip_tib_string_number, "strip_tib_string_number/I", bufsize);
117  ttree_track_hits_strip_->Branch(
118  "strip_tib_module_number", &strip_tib_module_number, "strip_tib_module_number/I", bufsize);
119  ttree_track_hits_strip_->Branch(
120  "strip_tib_is_internal_string", &strip_tib_is_internal_string, "strip_tib_is_internal_string/I", bufsize);
121  ttree_track_hits_strip_->Branch(
122  "strip_tib_is_external_string", &strip_tib_is_external_string, "strip_tib_is_external_string/I", bufsize);
123  ttree_track_hits_strip_->Branch("strip_tib_is_rphi", &strip_tib_is_rphi, "strip_tib_is_rphi/I", bufsize);
124  ttree_track_hits_strip_->Branch("strip_tib_is_stereo", &strip_tib_is_stereo, "strip_tib_is_stereo/I", bufsize);
125  ttree_track_hits_strip_->Branch("strip_tob_layer", &strip_tob_layer, "strip_tob_layer/I", bufsize);
126  ttree_track_hits_strip_->Branch("strip_tob_module", &strip_tob_module, "strip_tob_module/I", bufsize);
127  ttree_track_hits_strip_->Branch("strip_tob_side", &strip_tob_side, "strip_tob_side/I", bufsize);
128  ttree_track_hits_strip_->Branch(
129  "strip_tob_is_double_side", &strip_tob_is_double_side, "strip_tob_is_double_side/I", bufsize);
130  ttree_track_hits_strip_->Branch(
131  "strip_tob_is_z_plus_side", &strip_tob_is_z_plus_side, "strip_tob_is_z_plus_side/I", bufsize);
132  ttree_track_hits_strip_->Branch(
133  "strip_tob_is_z_minus_side", &strip_tob_is_z_minus_side, "strip_tob_is_z_minus_side/I", bufsize);
134  ttree_track_hits_strip_->Branch(
135  "strip_tob_layer_number", &strip_tob_layer_number, "strip_tob_layer_number/I", bufsize);
136  ttree_track_hits_strip_->Branch("strip_tob_rod_number", &strip_tob_rod_number, "strip_tob_rod_number/I", bufsize);
137  ttree_track_hits_strip_->Branch(
138  "strip_tob_module_number", &strip_tob_module_number, "strip_tob_module_number/I", bufsize);
139 
140  ttree_track_hits_strip_->Branch("strip_prob", &strip_prob, "strip_prob/F", bufsize);
141  ttree_track_hits_strip_->Branch("strip_qbin", &strip_qbin, "strip_qbin/I", bufsize);
142 
143  ttree_track_hits_strip_->Branch("strip_nprm", &strip_nprm, "strip_nprm/I", bufsize);
144 
145  ttree_track_hits_strip_->Branch("strip_pidhit1", &strip_pidhit1, "strip_pidhit1/I", bufsize);
146  ttree_track_hits_strip_->Branch("strip_simproc1", &strip_simproc1, "strip_simproc1/I", bufsize);
147 
148  ttree_track_hits_strip_->Branch("strip_pidhit2", &strip_pidhit2, "strip_pidhit2/I", bufsize);
149  ttree_track_hits_strip_->Branch("strip_simproc2", &strip_simproc2, "strip_simproc2/I", bufsize);
150 
151  ttree_track_hits_strip_->Branch("strip_pidhit3", &strip_pidhit3, "strip_pidhit3/I", bufsize);
152  ttree_track_hits_strip_->Branch("strip_simproc3", &strip_simproc3, "strip_simproc3/I", bufsize);
153 
154  ttree_track_hits_strip_->Branch("strip_pidhit4", &strip_pidhit4, "strip_pidhit4/I", bufsize);
155  ttree_track_hits_strip_->Branch("strip_simproc4", &strip_simproc4, "strip_simproc4/I", bufsize);
156 
157  ttree_track_hits_strip_->Branch("strip_pidhit5", &strip_pidhit5, "strip_pidhit5/I", bufsize);
158  ttree_track_hits_strip_->Branch("strip_simproc5", &strip_simproc5, "strip_simproc5/I", bufsize);
159 
160  ttree_track_hits_strip_->Branch("strip_split", &strip_split, "strip_split/I", bufsize);
161 
162  ttree_track_hits_strip_->Branch("strip_clst_err_x", &strip_clst_err_x, "strip_clst_err_x/F", bufsize);
163  ttree_track_hits_strip_->Branch("strip_clst_err_y", &strip_clst_err_y, "strip_clst_err_y/F", bufsize);
164 
165  if (include_trk_hits_) {
166  //tfile_ = new TFile ("SiPixelErrorEstimation_Ntuple.root" , "RECREATE");
167  //const char* tmp_name = outputFile_.c_str();
168 
169  ttree_track_hits_ = new TTree("TrackHitNtuple", "TrackHitNtuple");
170 
171  ttree_track_hits_->Branch("evt", &evt, "evt/I", bufsize);
172  ttree_track_hits_->Branch("run", &run, "run/I", bufsize);
173 
174  ttree_track_hits_->Branch("subdetId", &subdetId, "subdetId/I", bufsize);
175 
176  ttree_track_hits_->Branch("layer", &layer, "layer/I", bufsize);
177  ttree_track_hits_->Branch("ladder", &ladder, "ladder/I", bufsize);
178  ttree_track_hits_->Branch("mod", &mod, "mod/I", bufsize);
179 
180  ttree_track_hits_->Branch("side", &side, "side/I", bufsize);
181  ttree_track_hits_->Branch("disk", &disk, "disk/I", bufsize);
182  ttree_track_hits_->Branch("blade", &blade, "blade/I", bufsize);
183  ttree_track_hits_->Branch("panel", &panel, "panel/I", bufsize);
184  ttree_track_hits_->Branch("plaq", &plaq, "plaq/I", bufsize);
185 
186  ttree_track_hits_->Branch("half", &half, "half/I", bufsize);
187  ttree_track_hits_->Branch("flipped", &flipped, "flipped/I", bufsize);
188 
189  ttree_track_hits_->Branch("rechitx", &rechitx, "rechitx/F", bufsize);
190  ttree_track_hits_->Branch("rechity", &rechity, "rechity/F", bufsize);
191  ttree_track_hits_->Branch("rechitz", &rechitz, "rechitz/F", bufsize);
192 
193  ttree_track_hits_->Branch("rechiterrx", &rechiterrx, "rechiterrx/F", bufsize);
194  ttree_track_hits_->Branch("rechiterry", &rechiterry, "rechiterry/F", bufsize);
195 
196  ttree_track_hits_->Branch("rechitresx", &rechitresx, "rechitresx/F", bufsize);
197  ttree_track_hits_->Branch("rechitresy", &rechitresy, "rechitresy/F", bufsize);
198 
199  ttree_track_hits_->Branch("rechitpullx", &rechitpullx, "rechitpullx/F", bufsize);
200  ttree_track_hits_->Branch("rechitpully", &rechitpully, "rechitpully/F", bufsize);
201 
202  ttree_track_hits_->Branch("npix", &npix, "npix/I", bufsize);
203  ttree_track_hits_->Branch("nxpix", &nxpix, "nxpix/I", bufsize);
204  ttree_track_hits_->Branch("nypix", &nypix, "nypix/I", bufsize);
205  ttree_track_hits_->Branch("charge", &charge, "charge/F", bufsize);
206 
207  ttree_track_hits_->Branch("edgex", &edgex, "edgex/I", bufsize);
208  ttree_track_hits_->Branch("edgey", &edgey, "edgey/I", bufsize);
209 
210  ttree_track_hits_->Branch("bigx", &bigx, "bigx/I", bufsize);
211  ttree_track_hits_->Branch("bigy", &bigy, "bigy/I", bufsize);
212 
213  ttree_track_hits_->Branch("alpha", &alpha, "alpha/F", bufsize);
214  ttree_track_hits_->Branch("beta", &beta, "beta/F", bufsize);
215 
216  ttree_track_hits_->Branch("trk_alpha", &trk_alpha, "trk_alpha/F", bufsize);
217  ttree_track_hits_->Branch("trk_beta", &trk_beta, "trk_beta/F", bufsize);
218 
219  ttree_track_hits_->Branch("phi", &phi, "phi/F", bufsize);
220  ttree_track_hits_->Branch("eta", &eta, "eta/F", bufsize);
221 
222  ttree_track_hits_->Branch("simhitx", &simhitx, "simhitx/F", bufsize);
223  ttree_track_hits_->Branch("simhity", &simhity, "simhity/F", bufsize);
224 
225  ttree_track_hits_->Branch("nsimhit", &nsimhit, "nsimhit/I", bufsize);
226  ttree_track_hits_->Branch("pidhit", &pidhit, "pidhit/I", bufsize);
227  ttree_track_hits_->Branch("simproc", &simproc, "simproc/I", bufsize);
228 
229  ttree_track_hits_->Branch("pixel_split", &pixel_split, "pixel_split/I", bufsize);
230 
231  ttree_track_hits_->Branch("pixel_clst_err_x", &pixel_clst_err_x, "pixel_clst_err_x/F", bufsize);
232  ttree_track_hits_->Branch("pixel_clst_err_y", &pixel_clst_err_y, "pixel_clst_err_y/F", bufsize);
233 
234  } // if ( include_trk_hits_ )
235 
236  // ----------------------------------------------------------------------
237 
238  ttree_all_hits_ = new TTree("AllHitNtuple", "AllHitNtuple");
239 
240  ttree_all_hits_->Branch("evt", &evt, "evt/I", bufsize);
241  ttree_all_hits_->Branch("run", &run, "run/I", bufsize);
242 
243  ttree_all_hits_->Branch("subdetid", &all_subdetid, "subdetid/I", bufsize);
244 
245  ttree_all_hits_->Branch("layer", &all_layer, "layer/I", bufsize);
246  ttree_all_hits_->Branch("ladder", &all_ladder, "ladder/I", bufsize);
247  ttree_all_hits_->Branch("mod", &all_mod, "mod/I", bufsize);
248 
249  ttree_all_hits_->Branch("side", &all_side, "side/I", bufsize);
250  ttree_all_hits_->Branch("disk", &all_disk, "disk/I", bufsize);
251  ttree_all_hits_->Branch("blade", &all_blade, "blade/I", bufsize);
252  ttree_all_hits_->Branch("panel", &all_panel, "panel/I", bufsize);
253  ttree_all_hits_->Branch("plaq", &all_plaq, "plaq/I", bufsize);
254 
255  ttree_all_hits_->Branch("half", &all_half, "half/I", bufsize);
256  ttree_all_hits_->Branch("flipped", &all_flipped, "flipped/I", bufsize);
257 
258  ttree_all_hits_->Branch("cols", &all_cols, "cols/I", bufsize);
259  ttree_all_hits_->Branch("rows", &all_rows, "rows/I", bufsize);
260 
261  ttree_all_hits_->Branch("rechitx", &all_rechitx, "rechitx/F", bufsize);
262  ttree_all_hits_->Branch("rechity", &all_rechity, "rechity/F", bufsize);
263  ttree_all_hits_->Branch("rechitz", &all_rechitz, "rechitz/F", bufsize);
264 
265  ttree_all_hits_->Branch("rechiterrx", &all_rechiterrx, "rechiterrx/F", bufsize);
266  ttree_all_hits_->Branch("rechiterry", &all_rechiterry, "rechiterry/F", bufsize);
267 
268  ttree_all_hits_->Branch("rechitresx", &all_rechitresx, "rechitresx/F", bufsize);
269  ttree_all_hits_->Branch("rechitresy", &all_rechitresy, "rechitresy/F", bufsize);
270 
271  ttree_all_hits_->Branch("rechitpullx", &all_rechitpullx, "rechitpullx/F", bufsize);
272  ttree_all_hits_->Branch("rechitpully", &all_rechitpully, "rechitpully/F", bufsize);
273 
274  ttree_all_hits_->Branch("npix", &all_npix, "npix/I", bufsize);
275  ttree_all_hits_->Branch("nxpix", &all_nxpix, "nxpix/I", bufsize);
276  ttree_all_hits_->Branch("nypix", &all_nypix, "nypix/I", bufsize);
277 
278  ttree_all_hits_->Branch("edgex", &all_edgex, "edgex/I", bufsize);
279  ttree_all_hits_->Branch("edgey", &all_edgey, "edgey/I", bufsize);
280 
281  ttree_all_hits_->Branch("bigx", &all_bigx, "bigx/I", bufsize);
282  ttree_all_hits_->Branch("bigy", &all_bigy, "bigy/I", bufsize);
283 
284  ttree_all_hits_->Branch("alpha", &all_alpha, "alpha/F", bufsize);
285  ttree_all_hits_->Branch("beta", &all_beta, "beta/F", bufsize);
286 
287  ttree_all_hits_->Branch("simhitx", &all_simhitx, "simhitx/F", bufsize);
288  ttree_all_hits_->Branch("simhity", &all_simhity, "simhity/F", bufsize);
289 
290  ttree_all_hits_->Branch("nsimhit", &all_nsimhit, "nsimhit/I", bufsize);
291  ttree_all_hits_->Branch("pidhit", &all_pidhit, "pidhit/I", bufsize);
292  ttree_all_hits_->Branch("simproc", &all_simproc, "simproc/I", bufsize);
293 
294  ttree_all_hits_->Branch("vtxr", &all_vtxr, "vtxr/F", bufsize);
295  ttree_all_hits_->Branch("vtxz", &all_vtxz, "vtxz/F", bufsize);
296 
297  ttree_all_hits_->Branch("simpx", &all_simpx, "simpx/F", bufsize);
298  ttree_all_hits_->Branch("simpy", &all_simpy, "simpy/F", bufsize);
299  ttree_all_hits_->Branch("simpz", &all_simpz, "simpz/F", bufsize);
300 
301  ttree_all_hits_->Branch("eloss", &all_eloss, "eloss/F", bufsize);
302 
303  ttree_all_hits_->Branch("simphi", &all_simphi, "simphi/F", bufsize);
304  ttree_all_hits_->Branch("simtheta", &all_simtheta, "simtheta/F", bufsize);
305 
306  ttree_all_hits_->Branch("trkid", &all_trkid, "trkid/I", bufsize);
307 
308  ttree_all_hits_->Branch("x1", &all_x1, "x1/F", bufsize);
309  ttree_all_hits_->Branch("x2", &all_x2, "x2/F", bufsize);
310  ttree_all_hits_->Branch("y1", &all_x1, "y1/F", bufsize);
311  ttree_all_hits_->Branch("y2", &all_x2, "y2/F", bufsize);
312  ttree_all_hits_->Branch("z1", &all_x1, "z1/F", bufsize);
313  ttree_all_hits_->Branch("z2", &all_x2, "z2/F", bufsize);
314 
315  ttree_all_hits_->Branch("row1", &all_row1, "row1/F", bufsize);
316  ttree_all_hits_->Branch("row2", &all_row2, "row2/F", bufsize);
317  ttree_all_hits_->Branch("col1", &all_col1, "col1/F", bufsize);
318  ttree_all_hits_->Branch("col2", &all_col2, "col2/F", bufsize);
319 
320  ttree_all_hits_->Branch("gx1", &all_gx1, "gx1/F", bufsize);
321  ttree_all_hits_->Branch("gx2", &all_gx2, "gx2/F", bufsize);
322  ttree_all_hits_->Branch("gy1", &all_gx1, "gy1/F", bufsize);
323  ttree_all_hits_->Branch("gy2", &all_gx2, "gy2/F", bufsize);
324  ttree_all_hits_->Branch("gz1", &all_gx1, "gz1/F", bufsize);
325  ttree_all_hits_->Branch("gz2", &all_gx2, "gz2/F", bufsize);
326 
327  ttree_all_hits_->Branch("simtrketa", &all_simtrketa, "simtrketa/F", bufsize);
328  ttree_all_hits_->Branch("simtrkphi", &all_simtrkphi, "simtrkphi/F", bufsize);
329 
330  ttree_all_hits_->Branch("clust_row", &all_clust_row, "clust_row/F", bufsize);
331  ttree_all_hits_->Branch("clust_col", &all_clust_col, "clust_col/F", bufsize);
332 
333  ttree_all_hits_->Branch("clust_x", &all_clust_x, "clust_x/F", bufsize);
334  ttree_all_hits_->Branch("clust_y", &all_clust_y, "clust_y/F", bufsize);
335 
336  ttree_all_hits_->Branch("clust_q", &all_clust_q, "clust_q/F", bufsize);
337 
338  ttree_all_hits_->Branch("clust_maxpixcol", &all_clust_maxpixcol, "clust_maxpixcol/I", bufsize);
339  ttree_all_hits_->Branch("clust_maxpixrow", &all_clust_maxpixrow, "clust_maxpixrow/I", bufsize);
340  ttree_all_hits_->Branch("clust_minpixcol", &all_clust_minpixcol, "clust_minpixcol/I", bufsize);
341  ttree_all_hits_->Branch("clust_minpixrow", &all_clust_minpixrow, "clust_minpixrow/I", bufsize);
342 
343  ttree_all_hits_->Branch("clust_geoid", &all_clust_geoid, "clust_geoid/I", bufsize);
344 
345  ttree_all_hits_->Branch("clust_alpha", &all_clust_alpha, "clust_alpha/F", bufsize);
346  ttree_all_hits_->Branch("clust_beta", &all_clust_beta, "clust_beta/F", bufsize);
347 
348  ttree_all_hits_->Branch("rowpix", all_pixrow, "row[npix]/F", bufsize);
349  ttree_all_hits_->Branch("colpix", all_pixcol, "col[npix]/F", bufsize);
350  ttree_all_hits_->Branch("adc", all_pixadc, "adc[npix]/F", bufsize);
351  ttree_all_hits_->Branch("xpix", all_pixx, "x[npix]/F", bufsize);
352  ttree_all_hits_->Branch("ypix", all_pixy, "y[npix]/F", bufsize);
353  ttree_all_hits_->Branch("gxpix", all_pixgx, "gx[npix]/F", bufsize);
354  ttree_all_hits_->Branch("gypix", all_pixgy, "gy[npix]/F", bufsize);
355  ttree_all_hits_->Branch("gzpix", all_pixgz, "gz[npix]/F", bufsize);
356 
357  ttree_all_hits_->Branch("hit_probx", &all_hit_probx, "hit_probx/F", bufsize);
358  ttree_all_hits_->Branch("hit_proby", &all_hit_proby, "hit_proby/F", bufsize);
359 
360  ttree_all_hits_->Branch("all_pixel_split", &all_pixel_split, "all_pixel_split/I", bufsize);
361 
362  ttree_all_hits_->Branch("all_pixel_clst_err_x", &all_pixel_clst_err_x, "all_pixel_clst_err_x/F", bufsize);
363  ttree_all_hits_->Branch("all_pixel_clst_err_y", &all_pixel_clst_err_y, "all_pixel_clst_err_y/F", bufsize);
364 }
void SiPixelErrorEstimation::computeAnglesFromDetPosition ( const SiPixelCluster cl,
const GeomDetUnit det,
float &  alpha,
float &  beta 
)

Definition at line 1535 of file SiPixelErrorEstimation.cc.

References gather_cfg::cout, DEFINE_FWK_MODULE, runTauDisplay::gp, 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().

1538  {
1539  //--- This is a new det unit, so cache it
1540  const PixelGeomDetUnit* theDet = dynamic_cast<const PixelGeomDetUnit*>(&det);
1541  if (!theDet) {
1542  cout << "---------------------------------------------- Not a pixel detector !!!!!!!!!!!!!!" << endl;
1543  assert(0);
1544  }
1545 
1546  const PixelTopology* theTopol = &(theDet->specificTopology());
1547 
1548  // get cluster center of gravity (of charge)
1549  float xcenter = cl.x();
1550  float ycenter = cl.y();
1551 
1552  // get the cluster position in local coordinates (cm)
1553  LocalPoint lp = theTopol->localPosition(MeasurementPoint(xcenter, ycenter));
1554  //float lp_mod = sqrt( lp.x()*lp.x() + lp.y()*lp.y() + lp.z()*lp.z() );
1555 
1556  // get the cluster position in global coordinates (cm)
1557  GlobalPoint gp = theDet->surface().toGlobal(lp);
1558  float gp_mod = sqrt(gp.x() * gp.x() + gp.y() * gp.y() + gp.z() * gp.z());
1559 
1560  // normalize
1561  float gpx = gp.x() / gp_mod;
1562  float gpy = gp.y() / gp_mod;
1563  float gpz = gp.z() / gp_mod;
1564 
1565  // make a global vector out of the global point; this vector will point from the
1566  // origin of the detector to the cluster
1567  GlobalVector gv(gpx, gpy, gpz);
1568 
1569  // make local unit vector along local X axis
1570  const Local3DVector lvx(1.0, 0.0, 0.0);
1571 
1572  // get the unit X vector in global coordinates/
1573  GlobalVector gvx = theDet->surface().toGlobal(lvx);
1574 
1575  // make local unit vector along local Y axis
1576  const Local3DVector lvy(0.0, 1.0, 0.0);
1577 
1578  // get the unit Y vector in global coordinates
1579  GlobalVector gvy = theDet->surface().toGlobal(lvy);
1580 
1581  // make local unit vector along local Z axis
1582  const Local3DVector lvz(0.0, 0.0, 1.0);
1583 
1584  // get the unit Z vector in global coordinates
1585  GlobalVector gvz = theDet->surface().toGlobal(lvz);
1586 
1587  // calculate the components of gv (the unit vector pointing to the cluster)
1588  // in the local coordinate system given by the basis {gvx, gvy, gvz}
1589  // note that both gv and the basis {gvx, gvy, gvz} are given in global coordinates
1590  float gv_dot_gvx = gv.x() * gvx.x() + gv.y() * gvx.y() + gv.z() * gvx.z();
1591  float gv_dot_gvy = gv.x() * gvy.x() + gv.y() * gvy.y() + gv.z() * gvy.z();
1592  float gv_dot_gvz = gv.x() * gvz.x() + gv.y() * gvz.y() + gv.z() * gvz.z();
1593 
1594  // calculate angles
1595  alpha = atan2(gv_dot_gvz, gv_dot_gvx);
1596  beta = atan2(gv_dot_gvz, gv_dot_gvy);
1597 
1598  // calculate cotalpha and cotbeta
1599  // cotalpha_ = 1.0/tan(alpha_);
1600  // cotbeta_ = 1.0/tan(beta_ );
1601  // or like this
1602  //cotalpha_ = gv_dot_gvx / gv_dot_gvz;
1603  //cotbeta_ = gv_dot_gvy / gv_dot_gvz;
1604 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
T y() const
Definition: PV3DBase.h:63
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
T sqrt(T t)
Definition: SSEVec.h:18
T z() const
Definition: PV3DBase.h:64
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
float y() const
T x() const
Definition: PV3DBase.h:62
float x() const
void SiPixelErrorEstimation::endJob ( void  )
overridevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 366 of file SiPixelErrorEstimation.cc.

References tfile_.

Referenced by o2olib.O2ORunMgr::executeJob().

366  {
367  tfile_->Write();
368  tfile_->Close();
369 }

Member Data Documentation

float SiPixelErrorEstimation::all_alpha
private

Definition at line 281 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_beta
private

Definition at line 282 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_bigx
private

Definition at line 278 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_bigy
private

Definition at line 279 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_blade
private

Definition at line 245 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_alpha
private

Definition at line 339 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_beta
private

Definition at line 340 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_col
private

Definition at line 325 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_geoid
private

Definition at line 337 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_maxpixcol
private

Definition at line 332 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_maxpixrow
private

Definition at line 333 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_minpixcol
private

Definition at line 334 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_clust_minpixrow
private

Definition at line 335 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_q
private

Definition at line 330 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_row
private

Definition at line 324 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_x
private

Definition at line 327 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_clust_y
private

Definition at line 328 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_col1
private

Definition at line 311 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_col2
private

Definition at line 312 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_cols
private

Definition at line 252 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_disk
private

Definition at line 244 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_edgex
private

Definition at line 275 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_edgey
private

Definition at line 276 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_eloss
private

Definition at line 298 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_flipped
private

Definition at line 250 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_gx1
private

Definition at line 314 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_gx2
private

Definition at line 315 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_gy1
private

Definition at line 316 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_gy2
private

Definition at line 317 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_gz1
private

Definition at line 318 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_gz2
private

Definition at line 319 of file SiPixelErrorEstimation.h.

Referenced by analyze().

int SiPixelErrorEstimation::all_half
private

Definition at line 249 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_cprob0
private

Definition at line 355 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_hit_cprob1
private

Definition at line 356 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_hit_cprob2
private

Definition at line 357 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_hit_probx
private

Definition at line 353 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_hit_proby
private

Definition at line 354 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_ladder
private

Definition at line 240 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_layer
private

Definition at line 239 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_mod
private

Definition at line 241 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_npix
private

Definition at line 271 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_nsimhit
private

Definition at line 287 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_nxpix
private

Definition at line 272 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_nypix
private

Definition at line 273 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_panel
private

Definition at line 246 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_pidhit
private

Definition at line 288 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixadc[maxpix]
private

Definition at line 345 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixcol[maxpix]
private

Definition at line 344 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixel_clst_err_x
private

Definition at line 360 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixel_clst_err_y
private

Definition at line 361 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_pixel_split
private

Definition at line 359 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixgx[maxpix]
private

Definition at line 349 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixgy[maxpix]
private

Definition at line 350 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixgz[maxpix]
private

Definition at line 351 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixrow[maxpix]
private

Definition at line 343 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixx[maxpix]
private

Definition at line 347 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_pixy[maxpix]
private

Definition at line 348 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_plaq
private

Definition at line 247 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechiterrx
private

Definition at line 262 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechiterry
private

Definition at line 263 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitpullx
private

Definition at line 268 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitpully
private

Definition at line 269 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitresx
private

Definition at line 265 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitresy
private

Definition at line 266 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitx
private

Definition at line 255 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechity
private

Definition at line 256 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_rechitz
private

Definition at line 257 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_row1
private

Definition at line 309 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_row2
private

Definition at line 310 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_rows
private

Definition at line 253 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_side
private

Definition at line 243 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simhitx
private

Definition at line 259 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simhity
private

Definition at line 260 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simphi
private

Definition at line 284 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_simproc
private

Definition at line 289 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simpx
private

Definition at line 294 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simpy
private

Definition at line 295 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simpz
private

Definition at line 296 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simtheta
private

Definition at line 285 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simtrketa
private

Definition at line 321 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_simtrkphi
private

Definition at line 322 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_subdetid
private

Definition at line 237 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::all_trkid
private

Definition at line 300 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_vtxr
private

Definition at line 291 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_vtxz
private

Definition at line 292 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_x1
private

Definition at line 302 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_x2
private

Definition at line 303 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::all_y1
private

Definition at line 304 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_y2
private

Definition at line 305 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_z1
private

Definition at line 306 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::all_z2
private

Definition at line 307 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::alpha
private

Definition at line 192 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::beta
private

Definition at line 193 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::bigx
private

Definition at line 189 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::bigy
private

Definition at line 190 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::blade
private
float SiPixelErrorEstimation::charge
private
bool SiPixelErrorEstimation::checkType_
private

Definition at line 82 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

edm::ParameterSet SiPixelErrorEstimation::conf_
private

Definition at line 75 of file SiPixelErrorEstimation.h.

int SiPixelErrorEstimation::detector_type
private

Definition at line 111 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::disk
private
int SiPixelErrorEstimation::edgex
private

Definition at line 186 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::edgey
private

Definition at line 187 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::eta
private
int SiPixelErrorEstimation::evt
private

Definition at line 221 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::flipped
private

Definition at line 212 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::genType_
private

Definition at line 83 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

int SiPixelErrorEstimation::half
private

Definition at line 211 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::hit_cprob0
private

Definition at line 226 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::hit_cprob1
private

Definition at line 227 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::hit_cprob2
private

Definition at line 228 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::hit_probx
private

Definition at line 224 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::hit_proby
private

Definition at line 225 of file SiPixelErrorEstimation.h.

Referenced by analyze().

bool SiPixelErrorEstimation::include_trk_hits_
private

Definition at line 84 of file SiPixelErrorEstimation.h.

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

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

Definition at line 342 of file SiPixelErrorEstimation.h.

int SiPixelErrorEstimation::mod
private

Definition at line 204 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::npix
private

Definition at line 181 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::nsimhit
private

Definition at line 214 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::nxpix
private

Definition at line 182 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::nypix
private

Definition at line 183 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

std::string SiPixelErrorEstimation::outputFile_
private

Definition at line 80 of file SiPixelErrorEstimation.h.

Referenced by beginJob(), and SiPixelErrorEstimation().

int SiPixelErrorEstimation::panel
private
float SiPixelErrorEstimation::phi
private
int SiPixelErrorEstimation::pidhit
private

Definition at line 215 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::pixel_clst_err_x
private

Definition at line 232 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::pixel_clst_err_y
private

Definition at line 233 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::pixel_split
private

Definition at line 230 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::plaq
private

Definition at line 209 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechiterrx
private

Definition at line 90 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechiterry
private

Definition at line 91 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitpullx
private

Definition at line 94 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitpully
private

Definition at line 95 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitresx
private

Definition at line 92 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitresy
private

Definition at line 93 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitx
private

Definition at line 87 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechity
private

Definition at line 88 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::rechitz
private

Definition at line 89 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

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

Definition at line 205 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::simhitx
private

Definition at line 218 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::simhity
private

Definition at line 219 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::simproc
private

Definition at line 216 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

std::string SiPixelErrorEstimation::src_
private

Definition at line 81 of file SiPixelErrorEstimation.h.

Referenced by SiPixelErrorEstimation().

float SiPixelErrorEstimation::strip_charge
private

Definition at line 119 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_clst_err_x
private

Definition at line 178 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_clst_err_y
private

Definition at line 179 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_cotalpha
private

Definition at line 114 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_cotbeta
private

Definition at line 115 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_edge
private

Definition at line 121 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_hit_type
private

Definition at line 110 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_is_stereo
private

Definition at line 109 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_locbx
private

Definition at line 116 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_locby
private

Definition at line 117 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_locbz
private

Definition at line 118 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_nprm
private

Definition at line 160 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_nsimhit
private

Definition at line 122 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_pidhit
private

Definition at line 123 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_pidhit1
private

Definition at line 162 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_pidhit2
private

Definition at line 165 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_pidhit3
private

Definition at line 168 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_pidhit4
private

Definition at line 171 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_pidhit5
private

Definition at line 174 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_prob
private

Definition at line 157 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_qbin
private

Definition at line 158 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechiterrx
private

Definition at line 100 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechiterry
private

Definition at line 101 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitpullx
private

Definition at line 107 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitpully
private

Definition at line 108 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitresx
private

Definition at line 102 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitresx2
private

Definition at line 104 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitresy
private

Definition at line 106 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitx
private

Definition at line 97 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechity
private

Definition at line 98 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_rechitz
private

Definition at line 99 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_simproc
private

Definition at line 124 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_simproc1
private

Definition at line 163 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_simproc2
private

Definition at line 166 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_simproc3
private

Definition at line 169 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_simproc4
private

Definition at line 172 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_simproc5
private

Definition at line 175 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_size
private

Definition at line 120 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_split
private

Definition at line 177 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_subdet_id
private

Definition at line 126 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_double_side
private

Definition at line 132 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_external_string
private

Definition at line 139 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_internal_string
private

Definition at line 138 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_rphi
private

Definition at line 140 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_stereo
private

Definition at line 141 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_z_minus_side
private

Definition at line 134 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_is_z_plus_side
private

Definition at line 133 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_layer
private

Definition at line 128 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_layer_number
private

Definition at line 135 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_module
private

Definition at line 129 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_module_number
private

Definition at line 137 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_order
private

Definition at line 130 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_side
private

Definition at line 131 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tib_string_number
private

Definition at line 136 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_is_double_side
private

Definition at line 147 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_is_rphi
private

Definition at line 154 of file SiPixelErrorEstimation.h.

Referenced by analyze().

int SiPixelErrorEstimation::strip_tob_is_stereo
private

Definition at line 155 of file SiPixelErrorEstimation.h.

Referenced by analyze().

int SiPixelErrorEstimation::strip_tob_is_z_minus_side
private

Definition at line 149 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_is_z_plus_side
private

Definition at line 148 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_layer
private

Definition at line 143 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_layer_number
private

Definition at line 150 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_module
private

Definition at line 144 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_module_number
private

Definition at line 152 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_rod_number
private

Definition at line 151 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::strip_tob_side
private

Definition at line 146 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::strip_trk_pt
private

Definition at line 113 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

int SiPixelErrorEstimation::subdetId
private

Definition at line 201 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

TFile* SiPixelErrorEstimation::tfile_
private

Definition at line 365 of file SiPixelErrorEstimation.h.

Referenced by beginJob(), and endJob().

edm::EDGetTokenT<SiPixelRecHitCollection> SiPixelErrorEstimation::tPixRecHitCollection
private

Definition at line 77 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

TrackerHitAssociator::Config SiPixelErrorEstimation::trackerHitAssociatorConfig_
private

Definition at line 371 of file SiPixelErrorEstimation.h.

Referenced by analyze().

float SiPixelErrorEstimation::trk_alpha
private

Definition at line 195 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

float SiPixelErrorEstimation::trk_beta
private

Definition at line 196 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

edm::EDGetTokenT<edm::SimTrackContainer> SiPixelErrorEstimation::tSimTrackContainer
private

Definition at line 78 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

edm::EDGetTokenT<reco::TrackCollection> SiPixelErrorEstimation::tTrackCollection
private

Definition at line 79 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

edm::EDGetTokenT<std::vector<Trajectory> > SiPixelErrorEstimation::tTrajectory
private

Definition at line 76 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and SiPixelErrorEstimation().

TTree* SiPixelErrorEstimation::ttree_all_hits_
private

Definition at line 366 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

TTree* SiPixelErrorEstimation::ttree_track_hits_
private

Definition at line 367 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().

TTree* SiPixelErrorEstimation::ttree_track_hits_strip_
private

Definition at line 369 of file SiPixelErrorEstimation.h.

Referenced by analyze(), and beginJob().