CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Public Attributes | Private Attributes
SiPixelTrackResidualSource Class Reference

#include <SiPixelTrackResidualSource.h>

Inheritance diagram for SiPixelTrackResidualSource:
DQMEDAnalyzer edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > > edm::stream::EDAnalyzerBase edm::EDConsumerBase

Public Member Functions

virtual void analyze (const edm::Event &, const edm::EventSetup &)
 
virtual void bookHistograms (DQMStore::IBooker &, edm::Run const &, edm::EventSetup const &) override
 
virtual void dqmBeginRun (const edm::Run &r, edm::EventSetup const &iSetup)
 
 SiPixelTrackResidualSource (const edm::ParameterSet &)
 
void triplets (double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double ptsig, double &dc, double &dz, double kap)
 
 ~SiPixelTrackResidualSource ()
 
- Public Member Functions inherited from DQMEDAnalyzer
virtual void beginRun (edm::Run const &, edm::EventSetup const &) final
 
virtual void beginStream (edm::StreamID id) final
 
 DQMEDAnalyzer (void)
 
virtual void endLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
virtual void endRunSummary (edm::Run const &, edm::EventSetup const &, dqmDetails::NoCache *) const final
 
uint32_t streamId () const
 
- Public Member Functions inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
 EDAnalyzer ()=default
 
- Public Member Functions inherited from edm::stream::EDAnalyzerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
 EDAnalyzerBase ()
 
ModuleDescription const & moduleDescription () const
 
virtual ~EDAnalyzerBase ()
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
 EDConsumerBase ()
 
ProductHolderIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductHolderIndexAndSkipBit > &) const
 
std::vector
< ProductHolderIndexAndSkipBit >
const & 
itemsToGetFromEvent () const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesDependentUpon (const std::string &iProcessName, std::vector< const char * > &oModuleLabels) const
 
void modulesWhoseProductsAreConsumed (std::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
bool registeredToConsume (ProductHolderIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void updateLookup (BranchType iBranchType, ProductHolderIndexHelper const &)
 
virtual ~EDConsumerBase ()
 

Public Attributes

std::string topFolderName_
 

Private Attributes

edm::EDGetTokenT< reco::BeamSpotbeamSpotToken_
 
bool bladeOn
 
edm::InputTag clustersrc_
 
edm::EDGetTokenT
< edmNew::DetSetVector
< SiPixelCluster > > 
clustersrcToken_
 
bool debug_
 
bool diskOn
 
bool firstRun
 
edm::EDGetTokenT
< reco::TrackCollection
generalTracksToken_
 
bool isUpgrade
 
bool ladOn
 
bool layOn
 
MonitorElementmeClChargeNotOnTrack_all
 
MonitorElementmeClChargeNotOnTrack_bpix
 
std::vector< MonitorElement * > meClChargeNotOnTrack_diskms
 
std::vector< MonitorElement * > meClChargeNotOnTrack_diskps
 
MonitorElementmeClChargeNotOnTrack_fpix
 
std::vector< MonitorElement * > meClChargeNotOnTrack_layers
 
MonitorElementmeClChargeOnTrack_all
 
MonitorElementmeClChargeOnTrack_bpix
 
std::vector< MonitorElement * > meClChargeOnTrack_diskms
 
std::vector< MonitorElement * > meClChargeOnTrack_diskps
 
MonitorElementmeClChargeOnTrack_fpix
 
std::vector< MonitorElement * > meClChargeOnTrack_layers
 
std::vector< MonitorElement * > meClPosDisksmzNotOnTrack
 
std::vector< MonitorElement * > meClPosDisksmzOnTrack
 
std::vector< MonitorElement * > meClPosDiskspzNotOnTrack
 
std::vector< MonitorElement * > meClPosDiskspzOnTrack
 
std::vector< MonitorElement * > meClPosLayersLadVsModOnTrack
 
std::vector< MonitorElement * > meClPosLayersNotOnTrack
 
std::vector< MonitorElement * > meClPosLayersOnTrack
 
MonitorElementmeClSizeNotOnTrack_all
 
MonitorElementmeClSizeNotOnTrack_bpix
 
std::vector< MonitorElement * > meClSizeNotOnTrack_diskms
 
std::vector< MonitorElement * > meClSizeNotOnTrack_diskps
 
MonitorElementmeClSizeNotOnTrack_fpix
 
std::vector< MonitorElement * > meClSizeNotOnTrack_layers
 
MonitorElementmeClSizeOnTrack_all
 
MonitorElementmeClSizeOnTrack_bpix
 
std::vector< MonitorElement * > meClSizeOnTrack_diskms
 
std::vector< MonitorElement * > meClSizeOnTrack_diskps
 
MonitorElementmeClSizeOnTrack_fpix
 
std::vector< MonitorElement * > meClSizeOnTrack_layers
 
MonitorElementmeClSizeXNotOnTrack_all
 
MonitorElementmeClSizeXNotOnTrack_bpix
 
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskms
 
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskps
 
MonitorElementmeClSizeXNotOnTrack_fpix
 
std::vector< MonitorElement * > meClSizeXNotOnTrack_layers
 
MonitorElementmeClSizeXOnTrack_all
 
MonitorElementmeClSizeXOnTrack_bpix
 
std::vector< MonitorElement * > meClSizeXOnTrack_diskms
 
std::vector< MonitorElement * > meClSizeXOnTrack_diskps
 
MonitorElementmeClSizeXOnTrack_fpix
 
std::vector< MonitorElement * > meClSizeXOnTrack_layers
 
MonitorElementmeClSizeYNotOnTrack_all
 
MonitorElementmeClSizeYNotOnTrack_bpix
 
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskms
 
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskps
 
MonitorElementmeClSizeYNotOnTrack_fpix
 
std::vector< MonitorElement * > meClSizeYNotOnTrack_layers
 
MonitorElementmeClSizeYOnTrack_all
 
MonitorElementmeClSizeYOnTrack_bpix
 
std::vector< MonitorElement * > meClSizeYOnTrack_diskms
 
std::vector< MonitorElement * > meClSizeYOnTrack_diskps
 
MonitorElementmeClSizeYOnTrack_fpix
 
std::vector< MonitorElement * > meClSizeYOnTrack_layers
 
MonitorElementmeHitProbability
 
MonitorElementmeNClustersNotOnTrack_all
 
MonitorElementmeNClustersNotOnTrack_bpix
 
std::vector< MonitorElement * > meNClustersNotOnTrack_diskms
 
std::vector< MonitorElement * > meNClustersNotOnTrack_diskps
 
MonitorElementmeNClustersNotOnTrack_fpix
 
std::vector< MonitorElement * > meNClustersNotOnTrack_layers
 
MonitorElementmeNClustersOnTrack_all
 
MonitorElementmeNClustersOnTrack_bpix
 
std::vector< MonitorElement * > meNClustersOnTrack_diskms
 
std::vector< MonitorElement * > meNClustersOnTrack_diskps
 
MonitorElementmeNClustersOnTrack_fpix
 
std::vector< MonitorElement * > meNClustersOnTrack_layers
 
MonitorElementmeNofClustersNotOnTrack_
 
MonitorElementmeNofClustersOnTrack_
 
MonitorElementmeNofTracks_
 
MonitorElementmeNofTracksInPixVol_
 
std::vector< MonitorElement * > meResidualXSummedLay
 
std::vector< MonitorElement * > meResidualYSummedLay
 
MonitorElementmeSubdetResidualX [3]
 
MonitorElementmeSubdetResidualY [3]
 
bool modOn
 
int NLowProb
 
int noOfDisks
 
int noOfLayers
 
int NTotal
 
edm::EDGetTokenT
< reco::VertexCollection
offlinePrimaryVerticesToken_
 
bool phiOn
 
edm::ParameterSet pSet_
 
double ptminres_
 
bool reducedSet
 
bool ringOn
 
edm::InputTag src_
 
std::map< uint32_t,
SiPixelTrackResidualModule * > 
theSiPixelStructure
 
edm::EDGetTokenT
< TrajTrackAssociationCollection
trackAssociationToken_
 
edm::InputTag tracksrc_
 
edm::EDGetTokenT< std::vector
< Trajectory > > 
tracksrcToken_
 
edm::EDGetTokenT< std::vector
< reco::Track > > 
trackToken_
 
std::string ttrhbuilder_
 

Additional Inherited Members

- Public Types inherited from edm::stream::EDAnalyzer< edm::RunSummaryCache< dqmDetails::NoCache >, edm::LuminosityBlockSummaryCache< dqmDetails::NoCache > >
typedef CacheContexts< T...> CacheTypes
 
typedef CacheTypes::GlobalCache GlobalCache
 
typedef AbilityChecker< T...> HasAbility
 
typedef
CacheTypes::LuminosityBlockCache 
LuminosityBlockCache
 
typedef
LuminosityBlockContextT
< LuminosityBlockCache,
RunCache, GlobalCache
LuminosityBlockContext
 
typedef
CacheTypes::LuminosityBlockSummaryCache 
LuminosityBlockSummaryCache
 
typedef CacheTypes::RunCache RunCache
 
typedef RunContextT< RunCache,
GlobalCache
RunContext
 
typedef CacheTypes::RunSummaryCache RunSummaryCache
 
- Public Types inherited from edm::stream::EDAnalyzerBase
typedef EDAnalyzerAdaptorBase ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from DQMEDAnalyzer
static std::shared_ptr
< dqmDetails::NoCache
globalBeginLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *)
 
static std::shared_ptr
< dqmDetails::NoCache
globalBeginRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *)
 
static void globalEndLuminosityBlockSummary (edm::LuminosityBlock const &, edm::EventSetup const &, LuminosityBlockContext const *, dqmDetails::NoCache *)
 
static void globalEndRunSummary (edm::Run const &, edm::EventSetup const &, RunContext const *, dqmDetails::NoCache *)
 
- Static Public Member Functions inherited from edm::stream::EDAnalyzerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- 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 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 48 of file SiPixelTrackResidualSource.h.

Constructor & Destructor Documentation

SiPixelTrackResidualSource::SiPixelTrackResidualSource ( const edm::ParameterSet pSet)
explicit

Definition at line 65 of file SiPixelTrackResidualSource.cc.

References beamSpotToken_, bladeOn, clustersrc_, clustersrcToken_, debug_, diskOn, firstRun, generalTracksToken_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), ladOn, layOn, modOn, NLowProb, NTotal, offlinePrimaryVerticesToken_, phiOn, pSet_, ptminres_, ringOn, src_, AlCaHLTBitMon_QueryRunRegistry::string, topFolderName_, trackAssociationToken_, tracksrc_, tracksrcToken_, trackToken_, and ttrhbuilder_.

65  :
66  pSet_(pSet),
67  modOn( pSet.getUntrackedParameter<bool>("modOn",true) ),
68  reducedSet( pSet.getUntrackedParameter<bool>("reducedSet",true) ),
69  ladOn( pSet.getUntrackedParameter<bool>("ladOn",false) ),
70  layOn( pSet.getUntrackedParameter<bool>("layOn",false) ),
71  phiOn( pSet.getUntrackedParameter<bool>("phiOn",false) ),
72  ringOn( pSet.getUntrackedParameter<bool>("ringOn",false) ),
73  bladeOn( pSet.getUntrackedParameter<bool>("bladeOn",false) ),
74  diskOn( pSet.getUntrackedParameter<bool>("diskOn",false) ),
75  isUpgrade( pSet.getUntrackedParameter<bool>("isUpgrade",false) ),
76  noOfLayers(0),
77  noOfDisks(0)
78 {
79  pSet_ = pSet;
80  debug_ = pSet_.getUntrackedParameter<bool>("debug", false);
83  tracksrc_ = pSet_.getParameter<edm::InputTag>("trajectoryInput");
84  ttrhbuilder_ = pSet_.getParameter<std::string>("TTRHBuilder");
85  ptminres_= pSet.getUntrackedParameter<double>("PtMinRes",4.0) ;
86  beamSpotToken_ = consumes<reco::BeamSpot>(std::string("offlineBeamSpot"));
87  offlinePrimaryVerticesToken_ = consumes<reco::VertexCollection>(std::string("offlinePrimaryVertices"));
88  generalTracksToken_ = consumes<reco::TrackCollection>(pSet_.getParameter<edm::InputTag>("tracksrc"));
89  tracksrcToken_ = consumes<std::vector<Trajectory> >(pSet_.getParameter<edm::InputTag>("trajectoryInput"));
90  trackToken_ = consumes<std::vector<reco::Track> >(pSet_.getParameter<edm::InputTag>("trajectoryInput"));
91  trackAssociationToken_ = consumes<TrajTrackAssociationCollection>(pSet_.getParameter<edm::InputTag>("trajectoryInput"));
92  clustersrcToken_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(pSet_.getParameter<edm::InputTag>("clustersrc"));
93 
94  LogInfo("PixelDQM") << "SiPixelTrackResidualSource constructor" << endl;
95  LogInfo ("PixelDQM") << "Mod/Lad/Lay/Phi " << modOn << "/" << ladOn << "/"
96  << layOn << "/" << phiOn << std::endl;
97  LogInfo ("PixelDQM") << "Blade/Disk/Ring" << bladeOn << "/" << diskOn << "/"
98  << ringOn << std::endl;
99 
100  topFolderName_ = pSet_.getParameter<std::string>("TopFolderName");
101 
102  firstRun = true;
103  NTotal=0;
104  NLowProb=0;
105 }
T getParameter(std::string const &) const
edm::EDGetTokenT< reco::TrackCollection > generalTracksToken_
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< std::vector< Trajectory > > tracksrcToken_
edm::EDGetTokenT< std::vector< reco::Track > > trackToken_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clustersrcToken_
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
edm::EDGetTokenT< TrajTrackAssociationCollection > trackAssociationToken_
SiPixelTrackResidualSource::~SiPixelTrackResidualSource ( )

Definition at line 108 of file SiPixelTrackResidualSource.cc.

References theSiPixelStructure.

108  {
109  LogInfo("PixelDQM") << "SiPixelTrackResidualSource destructor" << endl;
110 
111  std::map<uint32_t,SiPixelTrackResidualModule*>::iterator struct_iter;
112  for (struct_iter = theSiPixelStructure.begin() ; struct_iter != theSiPixelStructure.end() ; struct_iter++){
113  delete struct_iter->second;
114  struct_iter->second = 0;
115  }
116 }
std::map< uint32_t, SiPixelTrackResidualModule * > theSiPixelStructure

Member Function Documentation

void SiPixelTrackResidualSource::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
virtual

Implements edm::stream::EDAnalyzerBase.

Definition at line 618 of file SiPixelTrackResidualSource.cc.

References funct::abs(), Reference_intrackfit_cff::barrel, beamSpotToken_, edm::AssociationMap< Tag >::begin(), edmNew::DetSetVector< T >::begin(), bladeOn, RecoTauCleanerPlugins::charge, SiPixelRecHit::clusterProbability(), clustersrcToken_, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, gather_cfg::cout, debug_, DetId::det(), PixelEndcapName::diskName(), diskOn, edm::AssociationMap< Tag >::end(), edmNew::DetSetVector< T >::end(), Reference_intrackfit_cff::endcap, edm::HandleBase::failedToGet(), MonitorElement::Fill(), HcalObjRepresent::Fill(), edmNew::DetSetVector< T >::find(), generalTracksToken_, edm::EventSetup::get(), edm::Event::getByToken(), corrVsCorr::gX, corrVsCorr::gY, SiPixelRecHit::hasFilledProb(), TrackingRecHit::hit(), i, TrackerGeometry::idToDet(), reco::TransientTrack::initialFreeState(), reco::TransientTrack::innermostMeasurementState(), edm::Ref< C, T, F >::isNonnull(), isUpgrade, edm::ESHandleBase::isValid(), edm::HandleBase::isValid(), edm::Ref< C, T, F >::key(), GetRecoTauVFromDQM_MC_cff::kk, PixelBarrelName::ladderName(), ladOn, PixelBarrelNameUpgrade::layerName(), PixelBarrelName::layerName(), layOn, TrajectoryStateOnSurface::localParameters(), Topology::localPosition(), PV3DBase< T, PVType, FrameType >::mag(), match(), meClChargeNotOnTrack_all, meClChargeNotOnTrack_bpix, meClChargeNotOnTrack_diskms, meClChargeNotOnTrack_diskps, meClChargeNotOnTrack_fpix, meClChargeNotOnTrack_layers, meClChargeOnTrack_all, meClChargeOnTrack_bpix, meClChargeOnTrack_diskms, meClChargeOnTrack_diskps, meClChargeOnTrack_fpix, meClChargeOnTrack_layers, meClPosDisksmzNotOnTrack, meClPosDisksmzOnTrack, meClPosDiskspzNotOnTrack, meClPosDiskspzOnTrack, meClPosLayersLadVsModOnTrack, meClPosLayersNotOnTrack, meClPosLayersOnTrack, meClSizeNotOnTrack_all, meClSizeNotOnTrack_bpix, meClSizeNotOnTrack_diskms, meClSizeNotOnTrack_diskps, meClSizeNotOnTrack_fpix, meClSizeNotOnTrack_layers, meClSizeOnTrack_all, meClSizeOnTrack_bpix, meClSizeOnTrack_diskms, meClSizeOnTrack_diskps, meClSizeOnTrack_fpix, meClSizeOnTrack_layers, meClSizeXNotOnTrack_all, meClSizeXNotOnTrack_bpix, meClSizeXNotOnTrack_diskms, meClSizeXNotOnTrack_diskps, meClSizeXNotOnTrack_fpix, meClSizeXNotOnTrack_layers, meClSizeXOnTrack_all, meClSizeXOnTrack_bpix, meClSizeXOnTrack_diskms, meClSizeXOnTrack_diskps, meClSizeXOnTrack_fpix, meClSizeXOnTrack_layers, meClSizeYNotOnTrack_all, meClSizeYNotOnTrack_bpix, meClSizeYNotOnTrack_diskms, meClSizeYNotOnTrack_diskps, meClSizeYNotOnTrack_fpix, meClSizeYNotOnTrack_layers, meClSizeYOnTrack_all, meClSizeYOnTrack_bpix, meClSizeYOnTrack_diskms, meClSizeYOnTrack_diskps, meClSizeYOnTrack_fpix, meClSizeYOnTrack_layers, meHitProbability, meNClustersNotOnTrack_all, meNClustersNotOnTrack_bpix, meNClustersNotOnTrack_diskms, meNClustersNotOnTrack_diskps, meNClustersNotOnTrack_fpix, meNClustersNotOnTrack_layers, meNClustersOnTrack_all, meNClustersOnTrack_bpix, meNClustersOnTrack_diskms, meNClustersOnTrack_diskps, meNClustersOnTrack_fpix, meNClustersOnTrack_layers, meNofClustersNotOnTrack_, meNofClustersOnTrack_, meNofTracks_, meNofTracksInPixVol_, meResidualXSummedLay, meResidualYSummedLay, modOn, python.rootplot.argparse::module, PixelBarrelName::moduleName(), LocalTrajectoryParameters::momentum(), reco::Vertex::ndof(), NLowProb, noOfDisks, noOfLayers, NTotal, offlinePrimaryVerticesToken_, phi, PV3DBase< T, PVType, FrameType >::phi(), phiOn, PixelSubdetector::PixelBarrel, PixelSubdetector::PixelEndcap, funct::pow(), edm::Handle< T >::product(), edm::ESHandle< class >::product(), EnergyCorrector::pt, ptminres_, TrackerTopology::pxbLayer(), DetId::rawId(), reducedSet, ringOn, PixelBarrelName::shell(), edm::AssociationMap< Tag >::size(), edmNew::DetSetVector< T >::size(), PixelGeomDetUnit::specificTopology(), mathSSE::sqrt(), DetId::subdetId(), GeomDet::surface(), funct::tan(), groupFilesInBlocks::temp, theSiPixelStructure, Surface::toGlobal(), trackAssociationToken_, DetId::Tracker, testEve_cfg::tracks, tracksrcToken_, trackToken_, FreeTrajectoryState::transverseCurvature(), triplets(), ttrhbuilder_, HLT_25ns14e33_v1_cff::vertices, x, PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::x(), y, PV2DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::y(), z, and PV3DBase< T, PVType, FrameType >::z().

618  {
619  //Retrieve tracker topology from geometry
620  edm::ESHandle<TrackerTopology> tTopoHandle;
621  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
622  const TrackerTopology* const tTopo = tTopoHandle.product();
623 
624  // retrieve TrackerGeometry again and MagneticField for use in transforming
625  // a TrackCandidate's P(ersistent)TrajectoryStateoOnDet (PTSoD) to a TrajectoryStateOnSurface (TSoS)
627  iSetup.get<TrackerDigiGeometryRecord>().get(TG);
628  const TrackerGeometry* theTrackerGeometry = TG.product();
629 
630  //analytic triplet method to calculate the track residuals in the pixe barrel detector
631 
632  //--------------------------------------------------------------------
633  // beam spot:
634  //
636  //iEvent.getByLabel( "offlineBeamSpot", rbs );
637  iEvent.getByToken( beamSpotToken_, rbs );
638  math::XYZPoint bsP = math::XYZPoint(0,0,0);
639  if( !rbs.failedToGet() && rbs.isValid() )
640  {
641  bsP = math::XYZPoint( rbs->x0(), rbs->y0(), rbs->z0() );
642  }
643 
644  //--------------------------------------------------------------------
645  // primary vertices:
646  //
648  //iEvent.getByLabel("offlinePrimaryVertices", vertices );
649  iEvent.getByToken( offlinePrimaryVerticesToken_, vertices );
650 
651  if( vertices.failedToGet() ) return;
652  if( !vertices.isValid() ) return;
653 
654  math::XYZPoint vtxN = math::XYZPoint(0,0,0);
655  math::XYZPoint vtxP = math::XYZPoint(0,0,0);
656 
657  double bestNdof = 0.0;
658  double maxSumPt = 0.0;
659  reco::Vertex bestPvx;
660  for(reco::VertexCollection::const_iterator iVertex = vertices->begin();
661  iVertex != vertices->end(); ++iVertex ) {
662  if( iVertex->ndof() > bestNdof ) {
663  bestNdof = iVertex->ndof();
664  vtxN = math::XYZPoint( iVertex->x(), iVertex->y(), iVertex->z() );
665  }//ndof
666  if( iVertex->p4().pt() > maxSumPt ) {
667  maxSumPt = iVertex->p4().pt();
668  vtxP = math::XYZPoint( iVertex->x(), iVertex->y(), iVertex->z() );
669  bestPvx = *iVertex;
670  }//sumpt
671 
672  }//vertex
673 
674  if( maxSumPt < 1.0 ) vtxP = vtxN;
675 
676  //---------------------------------------------
677  //get Tracks
678  //
680  //iEvent.getByLabel( "generalTracks", TracksForRes );
681  iEvent.getByToken( generalTracksToken_, TracksForRes );
682 
683  //
684  // transient track builder, needs B-field from data base (global tag in .py)
685  //
687  iSetup.get<TransientTrackRecord>().get( "TransientTrackBuilder", theB );
688 
689  //get the TransienTrackingRecHitBuilder needed for extracting the global position of the hits in the pixel
690  edm::ESHandle<TransientTrackingRecHitBuilder> theTrackerRecHitBuilder;
691  iSetup.get<TransientRecHitRecord>().get(ttrhbuilder_,theTrackerRecHitBuilder);
692 
693  //check that tracks are valid
694  if( TracksForRes.failedToGet() ) return;
695  if( !TracksForRes.isValid() ) return;
696 
697  //get tracker geometry
699  iSetup.get<TrackerDigiGeometryRecord>().get(pDD);
700 
701  if( !pDD.isValid() ) {
702  cout << "Unable to find TrackerDigiGeometry. Return\n";
703  return;
704  }
705 
706  int kk = -1;
707  //----------------------------------------------------------------------------
708  // Residuals:
709  //
710  for( reco::TrackCollection::const_iterator iTrack = TracksForRes->begin();
711  iTrack != TracksForRes->end(); ++iTrack ) {
712  //count
713  kk++;
714  //Calculate minimal track pt before curling
715  // cpt = cqRB = 0.3*R[m]*B[T] = 1.14*R[m] for B=3.8T
716  // D = 2R = 2*pt/1.14
717  // calo: D = 1.3 m => pt = 0.74 GeV/c
718  double pt = iTrack->pt();
719  if( pt < 0.75 ) continue;// curls up
720  if( abs( iTrack->dxy(vtxP) ) > 5*iTrack->dxyError() ) continue; // not prompt
721 
722  double charge = iTrack->charge();
723 
724  reco::TransientTrack tTrack = theB->build(*iTrack);
725  //get curvature of the track, needed for the residuals
726  double kap = tTrack.initialFreeState().transverseCurvature();
727  //needed for the TransienTrackingRecHitBuilder
729  if( iTrack->extra().isNonnull() &&iTrack->extra().isAvailable() ){
730 
731  double x1 = 0;
732  double y1 = 0;
733  double z1 = 0;
734  double x2 = 0;
735  double y2 = 0;
736  double z2 = 0;
737  double x3 = 0;
738  double y3 = 0;
739  double z3 = 0;
740  int n1 = 0;
741  int n2 = 0;
742  int n3 = 0;
743 
744  //for saving the pixel barrel hits
745  vector<TransientTrackingRecHit::RecHitPointer> GoodPixBarrelHits;
746  //looping through the RecHits of the track
747  for( trackingRecHit_iterator irecHit = iTrack->recHitsBegin();
748  irecHit != iTrack->recHitsEnd(); ++irecHit){
749 
750  if( (*irecHit)->isValid() ){
751  DetId detId = (*irecHit)->geographicalId();
752  // enum Detector { Tracker=1, Muon=2, Ecal=3, Hcal=4, Calo=5 };
753  if( detId.det() != 1 ){
754  if(debug_){
755  cout << "rec hit ID = " << detId.det() << " not in tracker!?!?\n";
756  }
757  continue;
758  }
759  uint32_t subDet = detId.subdetId();
760 
761  // enum SubDetector{ PixelBarrel=1, PixelEndcap=2 };
762  // enum SubDetector{ TIB=3, TID=4, TOB=5, TEC=6 };
763 
764  TransientTrackingRecHit::RecHitPointer trecHit = theTrackerRecHitBuilder->build( &*(*irecHit), initialTSOS);
765 
766 
767  double gX = trecHit->globalPosition().x();
768  double gY = trecHit->globalPosition().y();
769  double gZ = trecHit->globalPosition().z();
770 
771 
772  if( subDet == PixelSubdetector::PixelBarrel ) {
773 
774  int ilay = tTopo->pxbLayer(detId);
775 
776  if( ilay == 1 ){
777  n1++;
778  x1 = gX;
779  y1 = gY;
780  z1 = gZ;
781 
782  GoodPixBarrelHits.push_back((trecHit));
783  }//PXB1
784  if( ilay == 2 ){
785 
786  n2++;
787  x2 = gX;
788  y2 = gY;
789  z2 = gZ;
790 
791  GoodPixBarrelHits.push_back((trecHit));
792 
793  }//PXB2
794  if( ilay == 3 ){
795 
796  n3++;
797  x3 = gX;
798  y3 = gY;
799  z3 = gZ;
800  GoodPixBarrelHits.push_back((trecHit));
801  }
802  }//PXB
803 
804 
805  }//valid
806  }//loop rechits
807 
808  //CS extra plots
809 
810 
811  if( n1+n2+n3 == 3 && n1*n2*n3 > 0) {
812  for( unsigned int i = 0; i < GoodPixBarrelHits.size(); i++){
813 
814  if( GoodPixBarrelHits[i]->isValid() ){
815  DetId detId = GoodPixBarrelHits[i]->geographicalId().rawId();
816  int ilay = tTopo->pxbLayer(detId);
817  if(pt > ptminres_){
818 
819  double dca2 = 0.0, dz2=0.0;
820  double ptsig = pt;
821  if(charge<0.) ptsig = -pt;
822  //Filling the histograms in modules
823 
824  MeasurementPoint Test;
825  MeasurementPoint Test2;
826  Test=MeasurementPoint(0,0);
827  Test2=MeasurementPoint(0,0);
828  Measurement2DVector residual;
829 
830  if( ilay == 1 ){
831 
832  triplets(x2,y2,z2,x1,y1,z1,x3,y3,z3,ptsig,dca2,dz2, kap);
833 
834  Test=MeasurementPoint(dca2*1E4,dz2*1E4);
835  residual=Test-Test2;
836  }
837 
838  if( ilay == 2 ){
839 
840  triplets(x1,y1,z1,x2,y2,z2,x3,y3,z3,ptsig,dca2,dz2, kap);
841 
842  Test=MeasurementPoint(dca2*1E4,dz2*1E4);
843  residual=Test-Test2;
844 
845  }
846 
847  if( ilay == 3 ){
848 
849  triplets(x1,y1,z1,x3,y3,z3,x2,y2,z2,ptsig,dca2,dz2, kap);
850 
851  Test=MeasurementPoint(dca2*1E4,dz2*1E4);
852  residual=Test-Test2;
853  }
854  // fill the residual histograms
855 
856  std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.find(detId);
857  if (pxd!=theSiPixelStructure.end()) (*pxd).second->fill(residual, reducedSet, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn);
858 
859  if(ladOn&&pxd!=theSiPixelStructure.end()){
860  meResidualXSummedLay.at(PixelBarrelNameUpgrade((*pxd).first).layerName()-1)->Fill(residual.x());
861  meResidualYSummedLay.at(PixelBarrelNameUpgrade((*pxd).first).layerName()-1)->Fill(residual.y());
862  }
863 
864  }//three hits
865  }//is valid
866  }//rechits loop
867  }//pt 4
868  }
869 
870 
871  }//-----Tracks
873  //get trajectories
874  edm::Handle<std::vector<Trajectory> > trajCollectionHandle;
875  //iEvent.getByLabel(tracksrc_,trajCollectionHandle);
876  iEvent.getByToken ( tracksrcToken_, trajCollectionHandle );
877  const std::vector<Trajectory> trajColl = *(trajCollectionHandle.product());
878 
879  //get tracks
880  edm::Handle<std::vector<reco::Track> > trackCollectionHandle;
881  //iEvent.getByLabel(tracksrc_,trackCollectionHandle);
882  iEvent.getByToken( trackToken_, trackCollectionHandle );
883 
884  const std::vector<reco::Track> trackColl = *(trackCollectionHandle.product());
885 
886  //get the map
888  //iEvent.getByLabel(tracksrc_,match);
889  iEvent.getByToken( trackAssociationToken_, match);
890  const TrajTrackAssociationCollection ttac = *(match.product());
891 
892  // get clusters
894  //iEvent.getByLabel( clustersrc_, clusterColl );
895  iEvent.getByToken( clustersrcToken_, clusterColl );
896  const edmNew::DetSetVector<SiPixelCluster> clustColl = *(clusterColl.product());
897 
898  if(debug_){
899  std::cout << "Trajectories\t : " << trajColl.size() << std::endl;
900  std::cout << "recoTracks \t : " << trackColl.size() << std::endl;
901  std::cout << "Map entries \t : " << ttac.size() << std::endl;
902  }
903 
904  std::set<SiPixelCluster> clusterSet;
905  TrajectoryStateCombiner tsoscomb;
906  int tracks=0, pixeltracks=0, bpixtracks=0, fpixtracks=0;
907  int trackclusters=0, barreltrackclusters=0, endcaptrackclusters=0;
908  int otherclusters=0, barrelotherclusters=0, endcapotherclusters=0;
909 
910  //Loop over map entries
911  for(TrajTrackAssociationCollection::const_iterator it = ttac.begin();it != ttac.end(); ++it){
912  const edm::Ref<std::vector<Trajectory> > traj_iterator = it->key;
913  // Trajectory Map, extract Trajectory for this track
914  reco::TrackRef trackref = it->val;
915  tracks++;
916 
917  bool isBpixtrack = false, isFpixtrack = false, crossesPixVol=false;
918 
919  //find out whether track crosses pixel fiducial volume (for cosmic tracks)
920 
921  double d0 = (*trackref).d0(), dz = (*trackref).dz();
922 
923  if(abs(d0)<15 && abs(dz)<50) crossesPixVol = true;
924 
925  std::vector<TrajectoryMeasurement> tmeasColl =traj_iterator->measurements();
926  std::vector<TrajectoryMeasurement>::const_iterator tmeasIt;
927  //loop on measurements to find out whether there are bpix and/or fpix hits
928  for(tmeasIt = tmeasColl.begin();tmeasIt!=tmeasColl.end();tmeasIt++){
929  if(! tmeasIt->updatedState().isValid()) continue;
930  TransientTrackingRecHit::ConstRecHitPointer testhit = tmeasIt->recHit();
931  if(! testhit->isValid() || testhit->geographicalId().det() != DetId::Tracker) continue;
932  uint testSubDetID = (testhit->geographicalId().subdetId());
933  if(testSubDetID==PixelSubdetector::PixelBarrel) isBpixtrack = true;
934  if(testSubDetID==PixelSubdetector::PixelEndcap) isFpixtrack = true;
935  }//end loop on measurements
936  if(isBpixtrack) {
937  bpixtracks++;
938  if(debug_) std::cout << "bpixtrack\n";
939  }
940  if(isFpixtrack) {
941  fpixtracks++;
942  if(debug_) std::cout << "fpixtrack\n";
943  }
944  if(isBpixtrack || isFpixtrack){
945  pixeltracks++;
946 
947  if(crossesPixVol) meNofTracksInPixVol_->Fill(0,1);
948 
949  std::vector<TrajectoryMeasurement> tmeasColl = traj_iterator->measurements();
950  for(std::vector<TrajectoryMeasurement>::const_iterator tmeasIt = tmeasColl.begin(); tmeasIt!=tmeasColl.end(); tmeasIt++){
951  if(! tmeasIt->updatedState().isValid()) continue;
952 
953  TrajectoryStateOnSurface tsos = tsoscomb( tmeasIt->forwardPredictedState(), tmeasIt->backwardPredictedState() );
955  if(! hit->isValid() || hit->geographicalId().det() != DetId::Tracker ) {
956  continue;
957  } else {
958 
959 // //residual
960  const DetId & hit_detId = hit->geographicalId();
961  //uint IntRawDetID = (hit_detId.rawId());
962  uint IntSubDetID = (hit_detId.subdetId());
963 
964  if(IntSubDetID == 0 ) continue; // don't look at SiStrip hits!
965 
966  // get the enclosed persistent hit
967  const TrackingRecHit *persistentHit = hit->hit();
968  // check if it's not null, and if it's a valid pixel hit
969  if ((persistentHit != 0) && (typeid(*persistentHit) == typeid(SiPixelRecHit))) {
970  // tell the C++ compiler that the hit is a pixel hit
971  const SiPixelRecHit* pixhit = static_cast<const SiPixelRecHit*>( hit->hit() );
972  //Hit probability:
973  float hit_prob = -1.;
974  if(pixhit->hasFilledProb()){
975  hit_prob = pixhit->clusterProbability(0);
976  //std::cout<<"HITPROB= "<<hit_prob<<std::endl;
977  if(hit_prob<pow(10.,-15.)) NLowProb++;
978  NTotal++;
979  if(NTotal>0) meHitProbability->Fill(float(NLowProb/NTotal));
980  }
981 
982  // get the edm::Ref to the cluster
983  edm::Ref<edmNew::DetSetVector<SiPixelCluster>, SiPixelCluster> const& clust = (*pixhit).cluster();
984 
985  // check if the ref is not null
986  if (clust.isNonnull()) {
987 
988  //define tracker and pixel geometry and topology
989  const TrackerGeometry& theTracker(*theTrackerGeometry);
990  const PixelGeomDetUnit* theGeomDet = static_cast<const PixelGeomDetUnit*> (theTracker.idToDet(hit_detId) );
991 
992  //test if PixelGeomDetUnit exists
993  if(theGeomDet == 0) {
994  if(debug_) std::cout << "NO THEGEOMDET\n";
995  continue;
996  }
997 
998  const PixelTopology * topol = &(theGeomDet->specificTopology());
999  //fill histograms for clusters on tracks
1000  //correct SiPixelTrackResidualModule
1001  std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.find((*hit).geographicalId().rawId());
1002 
1003  //CHARGE CORRECTION (for track impact angle)
1004  // calculate alpha and beta from cluster position
1006  LocalVector localDir = ltp.momentum()/ltp.momentum().mag();
1007 
1008  float clust_alpha = atan2(localDir.z(), localDir.x());
1009  float clust_beta = atan2(localDir.z(), localDir.y());
1010  double corrCharge = clust->charge() * sqrt( 1.0 / ( 1.0/pow( tan(clust_alpha), 2 ) +
1011  1.0/pow( tan(clust_beta ), 2 ) +
1012  1.0 )
1013  )/1000.;
1014 
1015  if (pxd!=theSiPixelStructure.end()) (*pxd).second->fill((*clust), true, corrCharge, reducedSet, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn);
1016 
1017 
1018  trackclusters++;
1019  //CORR CHARGE
1020  meClChargeOnTrack_all->Fill(corrCharge);
1021  meClSizeOnTrack_all->Fill((*clust).size());
1022  meClSizeXOnTrack_all->Fill((*clust).sizeX());
1023  meClSizeYOnTrack_all->Fill((*clust).sizeY());
1024  clusterSet.insert(*clust);
1025 
1026  //find cluster global position (rphi, z)
1027  // get cluster center of gravity (of charge)
1028  float xcenter = clust->x();
1029  float ycenter = clust->y();
1030  // get the cluster position in local coordinates (cm)
1031  LocalPoint clustlp = topol->localPosition( MeasurementPoint(xcenter, ycenter) );
1032  // get the cluster position in global coordinates (cm)
1033  GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp );
1034 
1035  //find location of hit (barrel or endcap, same for cluster)
1036  bool barrel = DetId((*hit).geographicalId()).subdetId() == static_cast<int>(PixelSubdetector::PixelBarrel);
1037  bool endcap = DetId((*hit).geographicalId()).subdetId() == static_cast<int>(PixelSubdetector::PixelEndcap);
1038  if(barrel) {
1039  barreltrackclusters++;
1040  //CORR CHARGE
1041  meClChargeOnTrack_bpix->Fill(corrCharge);
1042  meClSizeOnTrack_bpix->Fill((*clust).size());
1043  meClSizeXOnTrack_bpix->Fill((*clust).sizeX());
1044  meClSizeYOnTrack_bpix->Fill((*clust).sizeY());
1045  int DBlayer;
1046  DBlayer = PixelBarrelName(DetId((*hit).geographicalId()), tTopo, isUpgrade).layerName();
1047  float phi = clustgp.phi();
1048  float z = clustgp.z();
1049 
1050  PixelBarrelName pbn(DetId((*hit).geographicalId()), tTopo, isUpgrade);
1051  int ladder = pbn.ladderName();
1052  int module = pbn.moduleName();
1053 
1054  PixelBarrelName::Shell sh = pbn.shell(); //enum
1055  int ladderSigned=ladder;
1056  int moduleSigned=module;
1057  // Shell { mO = 1, mI = 2 , pO =3 , pI =4 };
1058  int shell = int(sh);
1059  // change the module sign for z<0
1060  if(shell==1 || shell==2) { moduleSigned = -module; }
1061  // change ladeer sign for Outer )x<0)
1062  if(shell==1 || shell==3) { ladderSigned = -ladder; }
1063 
1064  for (int i = 0; i < noOfLayers; i++)
1065  {
1066  if (DBlayer == i + 1) {
1067  meClPosLayersOnTrack.at(i)->Fill(z,phi);
1068  meClPosLayersLadVsModOnTrack.at(i)->Fill(moduleSigned,ladderSigned);
1069  meClChargeOnTrack_layers.at(i)->Fill(corrCharge);
1070  meClSizeOnTrack_layers.at(i)->Fill((*clust).size());
1071  meClSizeXOnTrack_layers.at(i)->Fill((*clust).sizeX());
1072  meClSizeYOnTrack_layers.at(i)->Fill((*clust).sizeY());
1073  }
1074  }
1075  }
1076  if(endcap) {
1077  endcaptrackclusters++;
1078  //CORR CHARGE
1079  meClChargeOnTrack_fpix->Fill(corrCharge);
1080  meClSizeOnTrack_fpix->Fill((*clust).size());
1081  meClSizeXOnTrack_fpix->Fill((*clust).sizeX());
1082  meClSizeYOnTrack_fpix->Fill((*clust).sizeY());
1083  int DBdisk = 0;
1084  DBdisk = PixelEndcapName(DetId((*hit).geographicalId()), tTopo, isUpgrade).diskName();
1085  float x = clustgp.x();
1086  float y = clustgp.y();
1087  float z = clustgp.z();
1088  if(z>0){
1089  for (int i = 0; i < noOfDisks; i++)
1090  {
1091  if (DBdisk == i + 1) {
1092  meClPosDiskspzOnTrack.at(i)->Fill(x,y);
1093  meClChargeOnTrack_diskps.at(i)->Fill(corrCharge);
1094  meClSizeOnTrack_diskps.at(i)->Fill((*clust).size());
1095  meClSizeXOnTrack_diskps.at(i)->Fill((*clust).sizeX());
1096  meClSizeYOnTrack_diskps.at(i)->Fill((*clust).sizeY());
1097  }
1098  }
1099  }
1100  else{
1101  for (int i = 0; i < noOfDisks; i++)
1102  {
1103  if (DBdisk == i + 1) {
1104  meClPosDisksmzOnTrack.at(i)->Fill(x,y);
1105  meClChargeOnTrack_diskms.at(i)->Fill(corrCharge);
1106  meClSizeOnTrack_diskms.at(i)->Fill((*clust).size());
1107  meClSizeXOnTrack_diskms.at(i)->Fill((*clust).sizeX());
1108  meClSizeYOnTrack_diskms.at(i)->Fill((*clust).sizeY());
1109  }
1110  }
1111  }
1112  }
1113 
1114  }//end if (cluster exists)
1115 
1116  }//end if (persistent hit exists and is pixel hit)
1117 
1118  }//end of else
1119 
1120 
1121  }//end for (all traj measurements of pixeltrack)
1122  }//end if (is pixeltrack)
1123  else {
1124  if(debug_) std::cout << "no pixeltrack:\n";
1125  if(crossesPixVol) meNofTracksInPixVol_->Fill(1,1);
1126  }
1127 
1128  }//end loop on map entries
1129 
1130  //find clusters that are NOT on track
1131  //edmNew::DetSet<SiPixelCluster>::const_iterator di;
1132  if(debug_) std::cout << "clusters not on track: (size " << clustColl.size() << ") ";
1133 
1134  for(TrackerGeometry::DetContainer::const_iterator it = TG->dets().begin(); it != TG->dets().end(); it++){
1135  //if(dynamic_cast<PixelGeomDetUnit const *>((*it))!=0){
1136  DetId detId = (*it)->geographicalId();
1137  if(detId>=302055684 && detId<=352477708){ // make sure it's a Pixel module WITHOUT using dynamic_cast!
1138  int nofclOnTrack = 0, nofclOffTrack=0;
1139  float z=0.;
1141  if( isearch != clustColl.end() ) { // Not an empty iterator
1143  for(di=isearch->begin(); di!=isearch->end(); di++){
1144  unsigned int temp = clusterSet.size();
1145  clusterSet.insert(*di);
1146  //check if cluster is off track
1147  if(clusterSet.size()>temp) {
1148  otherclusters++;
1149  nofclOffTrack++;
1150  //fill histograms for clusters off tracks
1151  //correct SiPixelTrackResidualModule
1152  std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.find((*it)->geographicalId().rawId());
1153 
1154  if (pxd!=theSiPixelStructure.end()) (*pxd).second->fill((*di), false, -1., reducedSet, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn);
1155 
1156 
1157 
1158  meClSizeNotOnTrack_all->Fill((*di).size());
1159  meClSizeXNotOnTrack_all->Fill((*di).sizeX());
1160  meClSizeYNotOnTrack_all->Fill((*di).sizeY());
1161  meClChargeNotOnTrack_all->Fill((*di).charge()/1000);
1162 
1164  //find cluster global position (rphi, z) get cluster
1165  //define tracker and pixel geometry and topology
1166  const TrackerGeometry& theTracker(*theTrackerGeometry);
1167  const PixelGeomDetUnit* theGeomDet = static_cast<const PixelGeomDetUnit*> (theTracker.idToDet(detId) );
1168  //test if PixelGeomDetUnit exists
1169  if(theGeomDet == 0) {
1170  if(debug_) std::cout << "NO THEGEOMDET\n";
1171  continue;
1172  }
1173  const PixelTopology * topol = &(theGeomDet->specificTopology());
1174 
1175  //center of gravity (of charge)
1176  float xcenter = di->x();
1177  float ycenter = di->y();
1178  // get the cluster position in local coordinates (cm)
1179  LocalPoint clustlp = topol->localPosition( MeasurementPoint(xcenter, ycenter) );
1180  // get the cluster position in global coordinates (cm)
1181  GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp );
1182 
1184 
1185  //barrel
1186  if(DetId(detId).subdetId() == 1) {
1187  meClSizeNotOnTrack_bpix->Fill((*di).size());
1188  meClSizeXNotOnTrack_bpix->Fill((*di).sizeX());
1189  meClSizeYNotOnTrack_bpix->Fill((*di).sizeY());
1190  meClChargeNotOnTrack_bpix->Fill((*di).charge()/1000);
1191  barrelotherclusters++;
1192  int DBlayer = PixelBarrelName(DetId(detId), tTopo, isUpgrade).layerName();
1193  float phi = clustgp.phi();
1194  //float r = clustgp.perp();
1195  z = clustgp.z();
1196  for (int i = 0; i < noOfLayers; i++)
1197  {
1198  if (DBlayer == i + 1) {
1199  meClPosLayersNotOnTrack.at(i)->Fill(z,phi);
1200  meClSizeNotOnTrack_layers.at(i)->Fill((*di).size());
1201  meClSizeXNotOnTrack_layers.at(i)->Fill((*di).sizeX());
1202  meClSizeYNotOnTrack_layers.at(i)->Fill((*di).sizeY());
1203  meClChargeNotOnTrack_layers.at(i)->Fill((*di).charge()/1000);
1204  }
1205  }
1206  }
1207  //endcap
1208  if(DetId(detId).subdetId() == 2) {
1209  meClSizeNotOnTrack_fpix->Fill((*di).size());
1210  meClSizeXNotOnTrack_fpix->Fill((*di).sizeX());
1211  meClSizeYNotOnTrack_fpix->Fill((*di).sizeY());
1212  meClChargeNotOnTrack_fpix->Fill((*di).charge()/1000);
1213  endcapotherclusters++;
1214  int DBdisk = PixelEndcapName(DetId(detId), tTopo, isUpgrade).diskName();
1215  float x = clustgp.x();
1216  float y = clustgp.y();
1217  z = clustgp.z();
1218  if(z>0){
1219  for (int i = 0; i < noOfDisks; i++)
1220  {
1221  if (DBdisk == i + 1) {
1222  meClPosDiskspzNotOnTrack.at(i)->Fill(x,y);
1223  meClSizeNotOnTrack_diskps.at(i)->Fill((*di).size());
1224  meClSizeXNotOnTrack_diskps.at(i)->Fill((*di).sizeX());
1225  meClSizeYNotOnTrack_diskps.at(i)->Fill((*di).sizeY());
1226  meClChargeNotOnTrack_diskps.at(i)->Fill((*di).charge()/1000);
1227  }
1228  }
1229  }
1230  else{
1231  for (int i = 0; i < noOfDisks; i++)
1232  {
1233  if (DBdisk == i + 1) {
1234  meClPosDisksmzNotOnTrack.at(i)->Fill(x,y);
1235  meClSizeNotOnTrack_diskms.at(i)->Fill((*di).size());
1236  meClSizeXNotOnTrack_diskms.at(i)->Fill((*di).sizeX());
1237  meClSizeYNotOnTrack_diskms.at(i)->Fill((*di).sizeY());
1238  meClChargeNotOnTrack_diskms.at(i)->Fill((*di).charge()/1000);
1239  }
1240  }
1241  }
1242 
1243  }
1244  }// end "if cluster off track"
1245  else {
1246  nofclOnTrack++;
1247  if(z == 0){
1248  //find cluster global position (rphi, z) get cluster
1249  //define tracker and pixel geometry and topology
1250  const TrackerGeometry& theTracker(*theTrackerGeometry);
1251  const PixelGeomDetUnit* theGeomDet = static_cast<const PixelGeomDetUnit*> (theTracker.idToDet(detId) );
1252  //test if PixelGeomDetUnit exists
1253  if(theGeomDet == 0) {
1254  if(debug_) std::cout << "NO THEGEOMDET\n";
1255  continue;
1256  }
1257  const PixelTopology * topol = &(theGeomDet->specificTopology());
1258  //center of gravity (of charge)
1259  float xcenter = di->x();
1260  float ycenter = di->y();
1261  // get the cluster position in local coordinates (cm)
1262  LocalPoint clustlp = topol->localPosition( MeasurementPoint(xcenter, ycenter) );
1263  // get the cluster position in global coordinates (cm)
1264  GlobalPoint clustgp = theGeomDet->surface().toGlobal( clustlp );
1265  z = clustgp.z();
1266  }
1267  }
1268  }
1269  }
1270  //++ fill the number of clusters on a module
1271  std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.find((*it)->geographicalId().rawId());
1272  if (pxd!=theSiPixelStructure.end()) (*pxd).second->nfill(nofclOnTrack, nofclOffTrack, reducedSet, modOn, ladOn, layOn, phiOn, bladeOn, diskOn, ringOn);
1273  if(nofclOnTrack!=0) meNClustersOnTrack_all->Fill(nofclOnTrack);
1274  if(nofclOffTrack!=0) meNClustersNotOnTrack_all->Fill(nofclOffTrack);
1275  //barrel
1276  if(DetId(detId).subdetId() == 1){
1277  if(nofclOnTrack!=0) meNClustersOnTrack_bpix->Fill(nofclOnTrack);
1278  if(nofclOffTrack!=0) meNClustersNotOnTrack_bpix->Fill(nofclOffTrack);
1279  int DBlayer = PixelBarrelName(DetId(detId), tTopo, isUpgrade).layerName();
1280  for (int i = 0; i < noOfLayers; i++)
1281  {
1282  if (DBlayer == i + 1) {
1283  if(nofclOnTrack!=0) meNClustersOnTrack_layers.at(i)->Fill(nofclOnTrack);
1284  if(nofclOffTrack!=0) meNClustersNotOnTrack_layers.at(i)->Fill(nofclOffTrack);
1285  }
1286  }
1287  }//end barrel
1288  //endcap
1289  if(DetId(detId).subdetId() == 2) {
1290  int DBdisk = PixelEndcapName(DetId(detId )).diskName();
1291  //z = clustgp.z();
1292  if(nofclOnTrack!=0) meNClustersOnTrack_fpix->Fill(nofclOnTrack);
1293  if(nofclOffTrack!=0) meNClustersNotOnTrack_fpix->Fill(nofclOffTrack);
1294  if(z>0){
1295  for (int i = 0; i < noOfDisks; i++)
1296  {
1297  if (DBdisk == i + 1) {
1298  if(nofclOnTrack!=0) meNClustersOnTrack_diskps.at(i)->Fill(nofclOnTrack);
1299  if(nofclOffTrack!=0) meNClustersNotOnTrack_diskps.at(i)->Fill(nofclOffTrack);
1300  }
1301  }
1302  }
1303  if(z<0){
1304  for (int i = 0; i < noOfDisks; i++)
1305  {
1306  if (DBdisk == i + 1) {
1307  if(nofclOnTrack!=0) meNClustersOnTrack_diskms.at(i)->Fill(nofclOnTrack);
1308  if(nofclOffTrack!=0) meNClustersNotOnTrack_diskms.at(i)->Fill(nofclOffTrack);
1309  }
1310  }
1311  }
1312  }
1313 
1314  }//end if it's a Pixel module
1315  }//end for loop over tracker detector geometry modules
1316 
1317  if(trackclusters>0) (meNofClustersOnTrack_)->Fill(0,trackclusters);
1318  if(barreltrackclusters>0)(meNofClustersOnTrack_)->Fill(1,barreltrackclusters);
1319  if(endcaptrackclusters>0)(meNofClustersOnTrack_)->Fill(2,endcaptrackclusters);
1320  if(otherclusters>0)(meNofClustersNotOnTrack_)->Fill(0,otherclusters);
1321  if(barrelotherclusters>0)(meNofClustersNotOnTrack_)->Fill(1,barrelotherclusters);
1322  if(endcapotherclusters>0)(meNofClustersNotOnTrack_)->Fill(2,endcapotherclusters);
1323  if(tracks>0)(meNofTracks_)->Fill(0,tracks);
1324  if(pixeltracks>0)(meNofTracks_)->Fill(1,pixeltracks);
1325  if(bpixtracks>0)(meNofTracks_)->Fill(2,bpixtracks);
1326  if(fpixtracks>0)(meNofTracks_)->Fill(3,fpixtracks);
1327 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:114
edm::EDGetTokenT< reco::TrackCollection > generalTracksToken_
int i
Definition: DBlmapReader.cc:9
bool hasFilledProb() const
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
const_iterator end(bool update=false) const
std::vector< MonitorElement * > meClChargeOnTrack_layers
bool isNonnull() const
Checks for non-null.
Definition: Ref.h:252
float clusterProbability(unsigned int flags=0) const
T y() const
Definition: PV2DBase.h:46
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskps
edm::EDGetTokenT< std::vector< Trajectory > > tracksrcToken_
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
const LocalTrajectoryParameters & localParameters() const
const_iterator end() const
last iterator over the map (read only)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:457
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskms
std::vector< MonitorElement * > meClSizeXOnTrack_layers
std::vector< MonitorElement * > meNClustersNotOnTrack_diskps
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
T y() const
Definition: PV3DBase.h:63
std::vector< MonitorElement * > meClSizeYOnTrack_diskms
std::vector< MonitorElement * > meClSizeNotOnTrack_diskms
std::vector< MonitorElement * > meClPosLayersOnTrack
std::vector< MonitorElement * > meClPosDisksmzOnTrack
std::vector< MonitorElement * > meClSizeOnTrack_layers
std::vector< MonitorElement * > meClPosDiskspzOnTrack
data_type const * const_iterator
Definition: DetSetNew.h:30
std::vector< MonitorElement * > meClChargeNotOnTrack_diskps
key_type key() const
Accessor for product key.
Definition: Ref.h:264
std::vector< MonitorElement * > meClChargeOnTrack_diskms
std::vector< MonitorElement * > meClPosDiskspzNotOnTrack
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:40
std::vector< MonitorElement * > meClPosLayersNotOnTrack
std::vector< MonitorElement * > meResidualXSummedLay
tuple gX
Definition: corrVsCorr.py:109
TrajectoryStateOnSurface innermostMeasurementState() const
void Fill(long long x)
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
std::vector< MonitorElement * > meClSizeXNotOnTrack_layers
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
T mag() const
Definition: PV3DBase.h:67
std::vector< MonitorElement * > meClChargeOnTrack_diskps
std::shared_ptr< TrackingRecHit const > ConstRecHitPointer
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
T sqrt(T t)
Definition: SSEVec.h:48
std::vector< MonitorElement * > meResidualYSummedLay
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskms
T z() const
Definition: PV3DBase.h:64
void triplets(double x1, double y1, double z1, double x2, double y2, double z2, double x3, double y3, double z3, double ptsig, double &dc, double &dz, double kap)
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
LocalVector momentum() const
Momentum vector in the local frame.
std::vector< MonitorElement * > meClPosDisksmzNotOnTrack
edm::EDGetTokenT< std::vector< reco::Track > > trackToken_
std::vector< MonitorElement * > meClSizeYOnTrack_layers
std::vector< MonitorElement * > meNClustersOnTrack_diskps
bool isValid() const
Definition: HandleBase.h:75
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > clustersrcToken_
std::shared_ptr< TrackingRecHit const > RecHitPointer
double ndof() const
Definition: Vertex.h:102
std::vector< MonitorElement * > meClSizeNotOnTrack_diskps
std::vector< MonitorElement * > meClSizeXOnTrack_diskps
unsigned int pxbLayer(const DetId &id) const
std::vector< MonitorElement * > meClSizeYNotOnTrack_layers
std::vector< MonitorElement * > meClSizeYOnTrack_diskps
FreeTrajectoryState initialFreeState() const
bool failedToGet() const
Definition: HandleBase.h:79
Definition: DetId.h:18
virtual TrackingRecHit const * hit() const
std::vector< MonitorElement * > meClPosLayersLadVsModOnTrack
std::map< uint32_t, SiPixelTrackResidualModule * > theSiPixelStructure
size_type size() const
map size
T const * product() const
Definition: Handle.h:81
tuple tracks
Definition: testEve_cfg.py:39
XYZPointD XYZPoint
point in space with cartesian internal representation
Definition: Point3D.h:12
std::vector< MonitorElement * > meClChargeNotOnTrack_diskms
std::vector< MonitorElement * > meClSizeOnTrack_diskps
const T & get() const
Definition: EventSetup.h:55
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
int layerName() const
layer id
T const * product() const
Definition: ESHandle.h:86
edm::EDGetTokenT< reco::VertexCollection > offlinePrimaryVerticesToken_
tuple gY
Definition: corrVsCorr.py:110
double transverseCurvature() const
std::vector< MonitorElement * > meNClustersOnTrack_diskms
const_iterator find(id_type i, bool update=false) const
size_type size() const
Pixel cluster – collection of neighboring pixels above threshold.
std::vector< MonitorElement * > meNClustersNotOnTrack_diskms
tuple cout
Definition: gather_cfg.py:121
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskps
int diskName() const
disk id
std::pair< typename Association::data_type::first_type, double > match(Reference key, Association association, bool bestMatchByMaxValue)
Generic matching function.
Definition: Utils.h:10
std::vector< MonitorElement * > meClChargeNotOnTrack_layers
const_iterator begin() const
first iterator over the map (read only)
std::vector< MonitorElement * > meNClustersOnTrack_layers
std::vector< MonitorElement * > meClSizeNotOnTrack_layers
bool isValid() const
Definition: ESHandle.h:47
std::vector< MonitorElement * > meNClustersNotOnTrack_layers
Detector det() const
get the detector field from this detid
Definition: DetId.h:35
std::vector< MonitorElement * > meClSizeOnTrack_diskms
T x() const
Definition: PV2DBase.h:45
edm::EDGetTokenT< reco::BeamSpot > beamSpotToken_
T x() const
Definition: PV3DBase.h:62
Definition: vlib.h:208
edm::EDGetTokenT< TrajTrackAssociationCollection > trackAssociationToken_
int layerName() const
layer id
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
std::vector< MonitorElement * > meClSizeXOnTrack_diskms
const_iterator begin(bool update=false) const
TrackingRecHitCollection::base::const_iterator trackingRecHit_iterator
iterator over a vector of reference to TrackingRecHit in the same collection
Our base class.
Definition: SiPixelRecHit.h:23
void SiPixelTrackResidualSource::bookHistograms ( DQMStore::IBooker iBooker,
edm::Run const &  ,
edm::EventSetup const &  iSetup 
)
overridevirtual

Implements DQMEDAnalyzer.

Definition at line 153 of file SiPixelTrackResidualSource.cc.

References bladeOn, DQMStore::IBooker::book1D(), DQMStore::IBooker::book2D(), clustersrc_, debug_, diskOn, Exception, firstRun, i, isUpgrade, edm::InputTag::label(), ladOn, layOn, meClChargeNotOnTrack_all, meClChargeNotOnTrack_bpix, meClChargeNotOnTrack_diskms, meClChargeNotOnTrack_diskps, meClChargeNotOnTrack_fpix, meClChargeNotOnTrack_layers, meClChargeOnTrack_all, meClChargeOnTrack_bpix, meClChargeOnTrack_diskms, meClChargeOnTrack_diskps, meClChargeOnTrack_fpix, meClChargeOnTrack_layers, meClPosDisksmzNotOnTrack, meClPosDisksmzOnTrack, meClPosDiskspzNotOnTrack, meClPosDiskspzOnTrack, meClPosLayersLadVsModOnTrack, meClPosLayersNotOnTrack, meClPosLayersOnTrack, meClSizeNotOnTrack_all, meClSizeNotOnTrack_bpix, meClSizeNotOnTrack_diskms, meClSizeNotOnTrack_diskps, meClSizeNotOnTrack_fpix, meClSizeNotOnTrack_layers, meClSizeOnTrack_all, meClSizeOnTrack_bpix, meClSizeOnTrack_diskms, meClSizeOnTrack_diskps, meClSizeOnTrack_fpix, meClSizeOnTrack_layers, meClSizeXNotOnTrack_all, meClSizeXNotOnTrack_bpix, meClSizeXNotOnTrack_diskms, meClSizeXNotOnTrack_diskps, meClSizeXNotOnTrack_fpix, meClSizeXNotOnTrack_layers, meClSizeXOnTrack_all, meClSizeXOnTrack_bpix, meClSizeXOnTrack_diskms, meClSizeXOnTrack_diskps, meClSizeXOnTrack_fpix, meClSizeXOnTrack_layers, meClSizeYNotOnTrack_all, meClSizeYNotOnTrack_bpix, meClSizeYNotOnTrack_diskms, meClSizeYNotOnTrack_diskps, meClSizeYNotOnTrack_fpix, meClSizeYNotOnTrack_layers, meClSizeYOnTrack_all, meClSizeYOnTrack_bpix, meClSizeYOnTrack_diskms, meClSizeYOnTrack_diskps, meClSizeYOnTrack_fpix, meClSizeYOnTrack_layers, meHitProbability, meNClustersNotOnTrack_all, meNClustersNotOnTrack_bpix, meNClustersNotOnTrack_diskms, meNClustersNotOnTrack_diskps, meNClustersNotOnTrack_fpix, meNClustersNotOnTrack_layers, meNClustersOnTrack_all, meNClustersOnTrack_bpix, meNClustersOnTrack_diskms, meNClustersOnTrack_diskps, meNClustersOnTrack_fpix, meNClustersOnTrack_layers, meNofClustersNotOnTrack_, meNofClustersOnTrack_, meNofTracks_, meNofTracksInPixVol_, meResidualXSummedLay, meResidualYSummedLay, meSubdetResidualX, meSubdetResidualY, modOn, noOfDisks, noOfLayers, phiOn, pSet_, reducedSet, ringOn, alignCSCRings::s, MonitorElement::setAxisTitle(), MonitorElement::setBinLabel(), DQMStore::IBooker::setCurrentFolder(), SiPixelFolderOrganizer::setModuleFolder(), AlCaHLTBitMon_QueryRunRegistry::string, theSiPixelStructure, topFolderName_, tracksrc_, SiStripMonitorClusterAlca_cfi::ymax, and SiStripMonitorClusterAlca_cfi::ymin.

153  {
154 
155  // book residual histograms in theSiPixelFolder - one (x,y) pair of histograms per det
156  SiPixelFolderOrganizer theSiPixelFolder(false);
157  std::stringstream nameX, titleX, nameY, titleY;
158 
159  if(ladOn){
160  iBooker.setCurrentFolder(topFolderName_+"/Barrel");
161  for (int i = 1; i <= noOfLayers; i++){
162  nameX.str(std::string()); nameX <<"siPixelTrackResidualsX_SummedLayer_" << i;
163  titleX.str(std::string()); titleX <<"Layer"<< i << "Hit-to-Track Residual in r-phi";
164  meResidualXSummedLay.push_back(iBooker.book1D(nameX.str(),titleX.str(),100,-150,150));
165  meResidualXSummedLay.at(i-1)->setAxisTitle("hit-to-track residual in r-phi (um)",1);
166  nameY.str(std::string()); nameY <<"siPixelTrackResidualsY_SummedLayer_" << i;
167  titleY.str(std::string()); titleY <<"Layer"<< i << "Hit-to-Track Residual in Z";
168  meResidualYSummedLay.push_back(iBooker.book1D(nameY.str(),titleY.str(),100,-300,300));
169  meResidualYSummedLay.at(i-1)->setAxisTitle("hit-to-track residual in z (um)",1);
170  }
171  }
172 
173  for (std::map<uint32_t, SiPixelTrackResidualModule*>::iterator pxd = theSiPixelStructure.begin();
174  pxd!=theSiPixelStructure.end(); pxd++){
175 
176  if(modOn){
177  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,0,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,0,isUpgrade);
178  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Folder Creation Failed! ";
179  }
180  if(ladOn){
181  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,1,isUpgrade)) {
182 
183  (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,1,isUpgrade);
184  }
185  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource ladder Folder Creation Failed! ";
186  }
187  if(layOn){
188  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,2,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,2,isUpgrade);
189  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource layer Folder Creation Failed! ";
190  }
191  if(phiOn){
192  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,3,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,3,isUpgrade);
193  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource phi Folder Creation Failed! ";
194  }
195  if(bladeOn){
196  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,4,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,4,isUpgrade);
197  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Blade Folder Creation Failed! ";
198  }
199  if(diskOn){
200  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,5,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,5,isUpgrade);
201  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Disk Folder Creation Failed! ";
202  }
203  if(ringOn){
204  if (theSiPixelFolder.setModuleFolder(iBooker,(*pxd).first,6,isUpgrade)) (*pxd).second->book(pSet_,iSetup,iBooker,reducedSet,6,isUpgrade);
205  else throw cms::Exception("LogicError") << "SiPixelTrackResidualSource Ring Folder Creation Failed! ";
206  }
207  }
208 
209 // edm::InputTag tracksrc = pSet_.getParameter<edm::InputTag>("trajectoryInput");
210 // edm::InputTag clustersrc = pSet_.getParameter<edm::InputTag>("clustersrc");
211 
212  //number of tracks
213  iBooker.setCurrentFolder(topFolderName_+"/Tracks");
214  meNofTracks_ = iBooker.book1D("ntracks_" + tracksrc_.label(),"Number of Tracks",4,0,4);
215  meNofTracks_->setAxisTitle("Number of Tracks",1);
216  meNofTracks_->setBinLabel(1,"All");
217  meNofTracks_->setBinLabel(2,"Pixel");
218  meNofTracks_->setBinLabel(3,"BPix");
219  meNofTracks_->setBinLabel(4,"FPix");
220 
221  //number of tracks in pixel fiducial volume
222  iBooker.setCurrentFolder(topFolderName_+"/Tracks");
223  meNofTracksInPixVol_ = iBooker.book1D("ntracksInPixVol_" + tracksrc_.label(),"Number of Tracks crossing Pixel fiducial Volume",2,0,2);
224  meNofTracksInPixVol_->setAxisTitle("Number of Tracks",1);
225  meNofTracksInPixVol_->setBinLabel(1,"With Hits");
226  meNofTracksInPixVol_->setBinLabel(2,"Without Hits");
227 
228  //number of clusters (associated to track / not associated)
229  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack");
230  meNofClustersOnTrack_ = iBooker.book1D("nclusters_" + clustersrc_.label() + "_tot","Number of Clusters (on track)",3,0,3);
231  meNofClustersOnTrack_->setAxisTitle("Number of Clusters on Track",1);
235  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack");
236  meNofClustersNotOnTrack_ = iBooker.book1D("nclusters_" + clustersrc_.label() + "_tot","Number of Clusters (off track)",3,0,3);
237  meNofClustersNotOnTrack_->setAxisTitle("Number of Clusters off Track",1);
241 
242  //cluster charge and size
243  //charge
244  //on track
245  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack");
246  std::stringstream ss1, ss2;
247  meClChargeOnTrack_all = iBooker.book1D("charge_" + clustersrc_.label(),"Charge (on track)",500,0.,500.);
248  meClChargeOnTrack_all->setAxisTitle("Charge size (in ke)",1);
249  meClChargeOnTrack_bpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Barrel","Charge (on track, barrel)",500,0.,500.);
250  meClChargeOnTrack_bpix->setAxisTitle("Charge size (in ke)",1);
251  meClChargeOnTrack_fpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Endcap","Charge (on track, endcap)",500,0.,500.);
252  meClChargeOnTrack_fpix->setAxisTitle("Charge size (in ke)",1);
253  for (int i = 1; i <= noOfLayers; i++)
254  {
255  ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Layer_" << i;
256  ss2.str(std::string()); ss2 << "Charge (on track, layer" << i << ")";
257  meClChargeOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
258  meClChargeOnTrack_layers.at(i-1)->setAxisTitle("Charge size (in ke)",1);
259  }
260  for (int i = 1; i <= noOfDisks; i++)
261  {
262  ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_p" << i;
263  ss2.str(std::string()); ss2 << "Charge (on track, diskp" << i << ")";
264  meClChargeOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
265  meClChargeOnTrack_diskps.at(i-1)->setAxisTitle("Charge size (in ke)",1);
266  }
267  for (int i = 1; i <= noOfDisks; i++)
268  {
269  ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_m" << i;
270  ss2.str(std::string()); ss2 << "Charge (on track, diskm" << i << ")";
271  meClChargeOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
272  meClChargeOnTrack_diskms.at(i-1)->setAxisTitle("Charge size (in ke)",1);
273  }
274  //off track
275  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack");
276  meClChargeNotOnTrack_all = iBooker.book1D("charge_" + clustersrc_.label(),"Charge (off track)",500,0.,500.);
277  meClChargeNotOnTrack_all->setAxisTitle("Charge size (in ke)",1);
278  meClChargeNotOnTrack_bpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Barrel","Charge (off track, barrel)",500,0.,500.);
279  meClChargeNotOnTrack_bpix->setAxisTitle("Charge size (in ke)",1);
280  meClChargeNotOnTrack_fpix = iBooker.book1D("charge_" + clustersrc_.label() + "_Endcap","Charge (off track, endcap)",500,0.,500.);
281  meClChargeNotOnTrack_fpix->setAxisTitle("Charge size (in ke)",1);
282  for (int i = 1; i <= noOfLayers; i++)
283  {
284  ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Layer_" << i;
285  ss2.str(std::string()); ss2 << "Charge (off track, layer" << i << ")";
286  meClChargeNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
287  meClChargeNotOnTrack_layers.at(i-1)->setAxisTitle("Charge size (in ke)",1);
288  }
289  for (int i = 1; i <= noOfDisks; i++)
290  {
291  ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_p" << i;
292  ss2.str(std::string()); ss2 << "Charge (off track, diskp" << i << ")";
293  meClChargeNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
294  meClChargeNotOnTrack_diskps.at(i-1)->setAxisTitle("Charge size (in ke)",1);
295  }
296  for (int i = 1; i <= noOfDisks; i++)
297  {
298  ss1.str(std::string()); ss1 << "charge_" + clustersrc_.label() + "_Disk_m" << i;
299  ss2.str(std::string()); ss2 << "Charge (off track, diskm" << i << ")";
300  meClChargeNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
301  meClChargeNotOnTrack_diskms.at(i-1)->setAxisTitle("Charge size (in ke)",1);
302  }
303 
304  //size
305  //on track
306  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack");
307  meClSizeOnTrack_all = iBooker.book1D("size_" + clustersrc_.label(),"Size (on track)",100,0.,100.);
308  meClSizeOnTrack_all->setAxisTitle("Cluster size (in pixels)",1);
309  meClSizeOnTrack_bpix = iBooker.book1D("size_" + clustersrc_.label() + "_Barrel","Size (on track, barrel)",100,0.,100.);
310  meClSizeOnTrack_bpix->setAxisTitle("Cluster size (in pixels)",1);
311  meClSizeOnTrack_fpix = iBooker.book1D("size_" + clustersrc_.label() + "_Endcap","Size (on track, endcap)",100,0.,100.);
312  meClSizeOnTrack_fpix->setAxisTitle("Cluster size (in pixels)",1);
313  for (int i = 1; i <= noOfLayers; i++)
314  {
315  ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Layer_" << i;
316  ss2.str(std::string()); ss2 << "Size (on track, layer" << i << ")";
317  meClSizeOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
318  meClSizeOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
319  }
320  for (int i = 1; i <= noOfDisks; i++)
321  {
322  ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_p" << i;
323  ss2.str(std::string()); ss2 << "Size (on track, diskp" << i << ")";
324  meClSizeOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
325  meClSizeOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
326  }
327  for (int i = 1; i <= noOfDisks; i++)
328  {
329  ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_m1" << i;
330  ss2.str(std::string()); ss2 << "Size (on track, diskm" << i << ")";
331  meClSizeOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
332  meClSizeOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
333  }
334  meClSizeXOnTrack_all = iBooker.book1D("sizeX_" + clustersrc_.label(),"SizeX (on track)",100,0.,100.);
335  meClSizeXOnTrack_all->setAxisTitle("Cluster sizeX (in pixels)",1);
336  meClSizeXOnTrack_bpix = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Barrel","SizeX (on track, barrel)",100,0.,100.);
337  meClSizeXOnTrack_bpix->setAxisTitle("Cluster sizeX (in pixels)",1);
338  meClSizeXOnTrack_fpix = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Endcap","SizeX (on track, endcap)",100,0.,100.);
339  meClSizeXOnTrack_fpix->setAxisTitle("Cluster sizeX (in pixels)",1);
340  for (int i = 1; i <= noOfLayers; i++)
341  {
342  ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Layer_" << i;
343  ss2.str(std::string()); ss2 << "SizeX (on track, layer" << i << ")";
344  meClSizeXOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
345  meClSizeXOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
346  }
347  for (int i = 1; i <= noOfDisks; i++)
348  {
349  ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_p" << i;
350  ss2.str(std::string()); ss2 << "SizeX (on track, diskp" << i << ")";
351  meClSizeXOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
352  meClSizeXOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
353  }
354  for (int i = 1; i <= noOfDisks; i++)
355  {
356  ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_m" << i;
357  ss2.str(std::string()); ss2 << "SizeX (on track, diskm" << i << ")";
358  meClSizeXOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
359  meClSizeXOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
360  }
361  meClSizeYOnTrack_all = iBooker.book1D("sizeY_" + clustersrc_.label(),"SizeY (on track)",100,0.,100.);
362  meClSizeYOnTrack_all->setAxisTitle("Cluster sizeY (in pixels)",1);
363  meClSizeYOnTrack_bpix = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Barrel","SizeY (on track, barrel)",100,0.,100.);
364  meClSizeYOnTrack_bpix->setAxisTitle("Cluster sizeY (in pixels)",1);
365  meClSizeYOnTrack_fpix = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Endcap","SizeY (on track, endcap)",100,0.,100.);
366  meClSizeYOnTrack_fpix->setAxisTitle("Cluster sizeY (in pixels)",1);
367  for (int i = 1; i <= noOfLayers; i++)
368  {
369  ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Layer_" << i;
370  ss2.str(std::string()); ss2 << "SizeY (on track, layer" << i << ")";
371  meClSizeYOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
372  meClSizeYOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
373  }
374  for (int i = 1; i <= noOfDisks; i++)
375  {
376  ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_p" << i;
377  ss2.str(std::string()); ss2 << "SizeY (on track, diskp" << i << ")";
378  meClSizeYOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
379  meClSizeYOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
380  }
381  for (int i = 1; i <= noOfDisks; i++)
382  {
383  ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_m" << i;
384  ss2.str(std::string()); ss2 << "SizeY (on track, diskm" << i << ")";
385  meClSizeYOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
386  meClSizeYOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
387  }
388  //off track
389  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack");
390  meClSizeNotOnTrack_all = iBooker.book1D("size_" + clustersrc_.label(),"Size (off track)",100,0.,100.);
391  meClSizeNotOnTrack_all->setAxisTitle("Cluster size (in pixels)",1);
392  meClSizeNotOnTrack_bpix = iBooker.book1D("size_" + clustersrc_.label() + "_Barrel","Size (off track, barrel)",100,0.,100.);
393  meClSizeNotOnTrack_bpix->setAxisTitle("Cluster size (in pixels)",1);
394  meClSizeNotOnTrack_fpix = iBooker.book1D("size_" + clustersrc_.label() + "_Endcap","Size (off track, endcap)",100,0.,100.);
395  meClSizeNotOnTrack_fpix->setAxisTitle("Cluster size (in pixels)",1);
396  for (int i = 1; i <= noOfLayers; i++)
397  {
398  ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Layer_" << i;
399  ss2.str(std::string()); ss2 << "Size (off track, layer" << i << ")";
400  meClSizeNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
401  meClSizeNotOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
402  }
403  for (int i = 1; i <= noOfDisks; i++)
404  {
405  ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_p" << i;
406  ss2.str(std::string()); ss2 << "Size (off track, diskp" << i << ")";
407  meClSizeNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
408  meClSizeNotOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
409  }
410  for (int i = 1; i <= noOfDisks; i++)
411  {
412  ss1.str(std::string()); ss1 << "size_" + clustersrc_.label() + "_Disk_m" << i;
413  ss2.str(std::string()); ss2 << "Size (off track, diskm" << i << ")";
414  meClSizeNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
415  meClSizeNotOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
416  }
417  meClSizeXNotOnTrack_all = iBooker.book1D("sizeX_" + clustersrc_.label(),"SizeX (off track)",100,0.,100.);
418  meClSizeXNotOnTrack_all->setAxisTitle("Cluster sizeX (in pixels)",1);
419  meClSizeXNotOnTrack_bpix = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Barrel","SizeX (off track, barrel)",100,0.,100.);
420  meClSizeXNotOnTrack_bpix->setAxisTitle("Cluster sizeX (in pixels)",1);
421  meClSizeXNotOnTrack_fpix = iBooker.book1D("sizeX_" + clustersrc_.label() + "_Endcap","SizeX (off track, endcap)",100,0.,100.);
422  meClSizeXNotOnTrack_fpix->setAxisTitle("Cluster sizeX (in pixels)",1);
423  for (int i = 1; i <= noOfLayers; i++)
424  {
425  ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Layer_" << i;
426  ss2.str(std::string()); ss2 << "SizeX (off track, layer" << i << ")";
427  meClSizeXNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
428  meClSizeXNotOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
429  }
430  for (int i = 1; i <= noOfDisks; i++)
431  {
432  ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_p" << i;
433  ss2.str(std::string()); ss2 << "SizeX (off track, diskp" << i << ")";
434  meClSizeXNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
435  meClSizeXNotOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
436  }
437  for (int i = 1; i <= noOfDisks; i++)
438  {
439  ss1.str(std::string()); ss1 << "sizeX_" + clustersrc_.label() + "_Disk_m" << i;
440  ss2.str(std::string()); ss2 << "SizeX (off track, diskm" << i << ")";
441  meClSizeXNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
442  meClSizeXNotOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
443  }
444  meClSizeYNotOnTrack_all = iBooker.book1D("sizeY_" + clustersrc_.label(),"SizeY (off track)",100,0.,100.);
445  meClSizeYNotOnTrack_all->setAxisTitle("Cluster sizeY (in pixels)",1);
446  meClSizeYNotOnTrack_bpix = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Barrel","SizeY (off track, barrel)",100,0.,100.);
447  meClSizeYNotOnTrack_bpix->setAxisTitle("Cluster sizeY (in pixels)",1);
448  meClSizeYNotOnTrack_fpix = iBooker.book1D("sizeY_" + clustersrc_.label() + "_Endcap","SizeY (off track, endcap)",100,0.,100.);
449  meClSizeYNotOnTrack_fpix->setAxisTitle("Cluster sizeY (in pixels)",1);
450  for (int i = 1; i <= noOfLayers; i++)
451  {
452  ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Layer_" << i;
453  ss2.str(std::string()); ss2 << "SizeY (off track, layer" << i << ")";
454  meClSizeYNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
455  meClSizeYNotOnTrack_layers.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
456  }
457  for (int i = 1; i <= noOfDisks; i++)
458  {
459  ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_p" << i;
460  ss2.str(std::string()); ss2 << "SizeY (off track, diskp" << i << ")";
461  meClSizeYNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
462  meClSizeYNotOnTrack_diskps.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
463  }
464  for (int i = 1; i <= noOfDisks; i++)
465  {
466  ss1.str(std::string()); ss1 << "sizeY_" + clustersrc_.label() + "_Disk_m" << i;
467  ss2.str(std::string()); ss2 << "SizeY (off track, diskm" << i << ")";
468  meClSizeYNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
469  meClSizeYNotOnTrack_diskms.at(i-1)->setAxisTitle("Cluster size (in pixels)",1);
470  }
471 
472  //cluster global position
473  //on track
474  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack");
475  //bpix
476  for (int i = 1; i <= noOfLayers; i++)
477  {
478  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_Layer_" << i;
479  ss2.str(std::string()); ss2 << "Clusters Layer" << i << " (on track)";
480  meClPosLayersOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),200,-30.,30.,128,-3.2,3.2));
481  meClPosLayersOnTrack.at(i-1)->setAxisTitle("Global Z (cm)",1);
482  meClPosLayersOnTrack.at(i-1)->setAxisTitle("Global #phi",2);
483 
484  int ybins = -1; float ymin = 0.; float ymax = 0.;
485  if (i==1) { ybins = 23; ymin = -11.5; ymax = 11.5; }
486  if (i==2) { ybins = 33; ymin = -17.5; ymax = 17.5; }
487  if (i==3) { ybins = 45; ymin = -24.5; ymax = 24.5; }
488  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_LadvsMod_Layer_" << i;
489  ss2.str(std::string()); ss2 << "Clusters Layer" << i << "_LadvsMod (on track)";
490  meClPosLayersLadVsModOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),11,-5.5,5.5,ybins,ymin,ymax));
491  meClPosLayersLadVsModOnTrack.at(i-1)->setAxisTitle("z-module",1);
492  meClPosLayersLadVsModOnTrack.at(i-1)->setAxisTitle("Ladder",2);
493 
494  }
495  //fpix
496  for (int i = 1; i <= noOfDisks; i++)
497  {
498  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_pz_Disk_" << i;
499  ss2.str(std::string()); ss2 << "Clusters +Z Disk" << i << " (on track)";
500  meClPosDiskspzOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.));
501  meClPosDiskspzOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1);
502  meClPosDiskspzOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2);
503  }
504  for (int i = 1; i <= noOfDisks; i++)
505  {
506  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_mz_Disk_" << i;
507  ss2.str(std::string()); ss2 << "Clusters -Z Disk" << i << " (on track)";
508  meClPosDisksmzOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.));
509  meClPosDisksmzOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1);
510  meClPosDisksmzOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2);
511  }
512  meNClustersOnTrack_all = iBooker.book1D("nclusters_" + clustersrc_.label(),"Number of Clusters (on Track)",50,0.,50.);
513  meNClustersOnTrack_all->setAxisTitle("Number of Clusters",1);
514  meNClustersOnTrack_bpix = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Barrel","Number of Clusters (on track, barrel)",50,0.,50.);
515  meNClustersOnTrack_bpix->setAxisTitle("Number of Clusters",1);
516  meNClustersOnTrack_fpix = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Endcap","Number of Clusters (on track, endcap)",50,0.,50.);
517  meNClustersOnTrack_fpix->setAxisTitle("Number of Clusters",1);
518  for (int i = 1; i <= noOfLayers; i++)
519  {
520  ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Layer_" << i;
521  ss2.str(std::string()); ss2 << "Number of Clusters (on track, layer" << i << ")";
522  meNClustersOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
523  meNClustersOnTrack_layers.at(i-1)->setAxisTitle("Number of Clusters",1);
524  }
525  for (int i = 1; i <= noOfDisks; i++)
526  {
527  ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_p" << i;
528  ss2.str(std::string()); ss2 << "Number of Clusters (on track, diskp" << i << ")";
529  meNClustersOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),50,0.,50.));
530  meNClustersOnTrack_diskps.at(i-1)->setAxisTitle("Number of Clusters",1);
531  }
532  for (int i = 1; i <= noOfDisks; i++)
533  {
534  ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_m" << i;
535  ss2.str(std::string()); ss2 << "Number of Clusters (on track, diskm" << i << ")";
536  meNClustersOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
537  meNClustersOnTrack_diskms.at(i-1)->setAxisTitle("Number of Clusters",1);
538  }
539 
540  //not on track
541  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OffTrack");
542  //bpix
543  for (int i = 1; i <= noOfLayers; i++)
544  {
545  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_Layer_" << i;
546  ss2.str(std::string()); ss2 << "Clusters Layer" << i << " (off track)";
547  meClPosLayersNotOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),200,-30.,30.,128,-3.2,3.2));
548  meClPosLayersNotOnTrack.at(i-1)->setAxisTitle("Global Z (cm)",1);
549  meClPosLayersNotOnTrack.at(i-1)->setAxisTitle("Global #phi",2);
550  }
551  //fpix
552  for (int i = 1; i <= noOfDisks; i++)
553  {
554  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_pz_Disk_" << i;
555  ss2.str(std::string()); ss2 << "Clusters +Z Disk" << i << " (off track)";
556  meClPosDiskspzNotOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.));
557  meClPosDiskspzNotOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1);
558  meClPosDiskspzNotOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2);
559  }
560  for (int i = 1; i <= noOfDisks; i++)
561  {
562  ss1.str(std::string()); ss1 << "position_" + clustersrc_.label() + "_mz_Disk_" << i;
563  ss2.str(std::string()); ss2 << "Clusters -Z Disk" << i << " (off track)";
564  meClPosDisksmzNotOnTrack.push_back(iBooker.book2D(ss1.str(),ss2.str(),80,-20.,20.,80,-20.,20.));
565  meClPosDisksmzNotOnTrack.at(i-1)->setAxisTitle("Global X (cm)",1);
566  meClPosDisksmzNotOnTrack.at(i-1)->setAxisTitle("Global Y (cm)",2);
567  }
568  meNClustersNotOnTrack_all = iBooker.book1D("nclusters_" + clustersrc_.label(),"Number of Clusters (off Track)",50,0.,50.);
569  meNClustersNotOnTrack_all->setAxisTitle("Number of Clusters",1);
570  meNClustersNotOnTrack_bpix = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Barrel","Number of Clusters (off track, barrel)",50,0.,50.);
571  meNClustersNotOnTrack_bpix->setAxisTitle("Number of Clusters",1);
572  meNClustersNotOnTrack_fpix = iBooker.book1D("nclusters_" + clustersrc_.label() + "_Endcap","Number of Clusters (off track, endcap)",50,0.,50.);
573  meNClustersNotOnTrack_fpix->setAxisTitle("Number of Clusters",1);
574  for (int i = 1; i <= noOfLayers; i++)
575  {
576  ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Layer_" << i;
577  ss2.str(std::string()); ss2 << "Number of Clusters (off track, layer" << i << ")";
578  meNClustersNotOnTrack_layers.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
579  meNClustersNotOnTrack_layers.at(i-1)->setAxisTitle("Number of Clusters",1);
580  }
581  for (int i = 1; i <= noOfDisks; i++)
582  {
583  ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_p" << i;
584  ss2.str(std::string()); ss2 << "Number of Clusters (off track, diskp" << i << ")";
585  meNClustersNotOnTrack_diskps.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
586  meNClustersNotOnTrack_diskps.at(i-1)->setAxisTitle("Number of Clusters",1);
587  }
588  for (int i = 1; i <= noOfDisks; i++)
589  {
590  ss1.str(std::string()); ss1 << "nclusters_" + clustersrc_.label() + "_Disk_m" << i;
591  ss2.str(std::string()); ss2 << "Number of Clusters (off track, diskm" << i << ")";
592  meNClustersNotOnTrack_diskms.push_back(iBooker.book1D(ss1.str(),ss2.str(),500,0.,500.));
593  meNClustersNotOnTrack_diskms.at(i-1)->setAxisTitle("Number of Clusters",1);
594 
595  }
596  //HitProbability
597  //on track
598  iBooker.setCurrentFolder(topFolderName_+"/Clusters/OnTrack");
599  meHitProbability = iBooker.book1D("FractionLowProb","Fraction of hits with low probability;FractionLowProb;#HitsOnTrack",100,0.,1.);
600 
601  if (debug_) {
602  // book summary residual histograms in a debugging folder - one (x,y) pair of histograms per subdetector
603  iBooker.setCurrentFolder("debugging");
604  char hisID[80];
605  for (int s=0; s<3; s++) {
606  sprintf(hisID,"residual_x_subdet_%i",s);
607  meSubdetResidualX[s] = iBooker.book1D(hisID,"Pixel Hit-to-Track Residual in X",500,-5.,5.);
608 
609  sprintf(hisID,"residual_y_subdet_%i",s);
610  meSubdetResidualY[s] = iBooker.book1D(hisID,"Pixel Hit-to-Track Residual in Y",500,-5.,5.);
611  }
612  }
613 
614  firstRun = false;
615 }
int i
Definition: DBlmapReader.cc:9
std::vector< MonitorElement * > meClChargeOnTrack_layers
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskps
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskms
std::vector< MonitorElement * > meClSizeXOnTrack_layers
std::vector< MonitorElement * > meNClustersNotOnTrack_diskps
std::vector< MonitorElement * > meClSizeYOnTrack_diskms
void setBinLabel(int bin, const std::string &label, int axis=1)
set bin label for x, y or z axis (axis=1, 2, 3 respectively)
std::vector< MonitorElement * > meClSizeNotOnTrack_diskms
std::vector< MonitorElement * > meClPosLayersOnTrack
std::vector< MonitorElement * > meClPosDisksmzOnTrack
std::vector< MonitorElement * > meClSizeOnTrack_layers
std::vector< MonitorElement * > meClPosDiskspzOnTrack
std::vector< MonitorElement * > meClChargeNotOnTrack_diskps
std::vector< MonitorElement * > meClChargeOnTrack_diskms
std::vector< MonitorElement * > meClPosDiskspzNotOnTrack
std::vector< MonitorElement * > meClPosLayersNotOnTrack
std::vector< MonitorElement * > meResidualXSummedLay
std::vector< MonitorElement * > meClSizeXNotOnTrack_layers
std::vector< MonitorElement * > meClChargeOnTrack_diskps
std::vector< MonitorElement * > meResidualYSummedLay
std::vector< MonitorElement * > meClSizeYNotOnTrack_diskms
MonitorElement * book1D(Args &&...args)
Definition: DQMStore.h:115
std::vector< MonitorElement * > meClPosDisksmzNotOnTrack
std::vector< MonitorElement * > meClSizeYOnTrack_layers
std::vector< MonitorElement * > meNClustersOnTrack_diskps
std::vector< MonitorElement * > meClSizeNotOnTrack_diskps
std::vector< MonitorElement * > meClSizeXOnTrack_diskps
std::vector< MonitorElement * > meClSizeYNotOnTrack_layers
std::vector< MonitorElement * > meClSizeYOnTrack_diskps
std::vector< MonitorElement * > meClPosLayersLadVsModOnTrack
void setCurrentFolder(const std::string &fullpath)
Definition: DQMStore.cc:274
std::map< uint32_t, SiPixelTrackResidualModule * > theSiPixelStructure
MonitorElement * book2D(Args &&...args)
Definition: DQMStore.h:133
std::vector< MonitorElement * > meClChargeNotOnTrack_diskms
std::vector< MonitorElement * > meClSizeOnTrack_diskps
std::string const & label() const
Definition: InputTag.h:43
std::vector< MonitorElement * > meNClustersOnTrack_diskms
std::vector< MonitorElement * > meNClustersNotOnTrack_diskms
std::vector< MonitorElement * > meClSizeXNotOnTrack_diskps
std::vector< MonitorElement * > meClChargeNotOnTrack_layers
std::vector< MonitorElement * > meNClustersOnTrack_layers
std::vector< MonitorElement * > meClSizeNotOnTrack_layers
std::vector< MonitorElement * > meNClustersNotOnTrack_layers
std::vector< MonitorElement * > meClSizeOnTrack_diskms
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)
std::vector< MonitorElement * > meClSizeXOnTrack_diskms
void SiPixelTrackResidualSource::dqmBeginRun ( const edm::Run r,
edm::EventSetup const &  iSetup 
)
virtual

Reimplemented from DQMEDAnalyzer.

Definition at line 119 of file SiPixelTrackResidualSource.cc.

References debug_, PixelEndcapName::diskName(), edm::EventSetup::get(), isUpgrade, PixelBarrelName::layerName(), python.rootplot.argparse::module, noOfDisks, noOfLayers, edm::ESHandle< class >::product(), and theSiPixelStructure.

119  {
120  LogInfo("PixelDQM") << "SiPixelTrackResidualSource beginRun()" << endl;
121  // retrieve TrackerGeometry for pixel dets
123  iSetup.get<TrackerDigiGeometryRecord>().get(TG);
124  if (debug_) LogVerbatim("PixelDQM") << "TrackerGeometry "<< &(*TG) <<" size is "<< TG->dets().size() << endl;
125  edm::ESHandle<TrackerTopology> tTopoHandle;
126  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
127  const TrackerTopology *pTT = tTopoHandle.product();
128 
129  // build theSiPixelStructure with the pixel barrel and endcap dets from TrackerGeometry
130  for (TrackerGeometry::DetContainer::const_iterator pxb = TG->detsPXB().begin();
131  pxb!=TG->detsPXB().end(); pxb++) {
132  if (dynamic_cast<PixelGeomDetUnit const *>((*pxb))!=0) {
133  SiPixelTrackResidualModule* module = new SiPixelTrackResidualModule((*pxb)->geographicalId().rawId());
134  theSiPixelStructure.insert(pair<uint32_t, SiPixelTrackResidualModule*>((*pxb)->geographicalId().rawId(), module));
135  //int DBlayer = PixelBarrelNameWrapper(pSet_, DetId((*pxb)->geographicalId())).layerName();
136  int DBlayer = PixelBarrelName(DetId((*pxb)->geographicalId()),pTT,isUpgrade).layerName();
137  if (noOfLayers < DBlayer) noOfLayers = DBlayer;
138  }
139  }
140  for (TrackerGeometry::DetContainer::const_iterator pxf = TG->detsPXF().begin();
141  pxf!=TG->detsPXF().end(); pxf++) {
142  if (dynamic_cast<PixelGeomDetUnit const *>((*pxf))!=0) {
143  SiPixelTrackResidualModule* module = new SiPixelTrackResidualModule((*pxf)->geographicalId().rawId());
144  theSiPixelStructure.insert(pair<uint32_t, SiPixelTrackResidualModule*>((*pxf)->geographicalId().rawId(), module));
145  int DBdisk;
146  DBdisk = PixelEndcapName(DetId((*pxf)->geographicalId()),pTT,isUpgrade).diskName();
147  if (noOfDisks < DBdisk) noOfDisks = DBdisk;
148  }
149  }
150  LogInfo("PixelDQM") << "SiPixelStructure size is " << theSiPixelStructure.size() << endl;
151 }
Definition: DetId.h:18
std::map< uint32_t, SiPixelTrackResidualModule * > theSiPixelStructure
int layerName() const
layer id
T const * product() const
Definition: ESHandle.h:86
int diskName() const
disk id
Definition: vlib.h:208
void SiPixelTrackResidualSource::triplets ( double  x1,
double  y1,
double  z1,
double  x2,
double  y2,
double  z2,
double  x3,
double  y3,
double  z3,
double  ptsig,
double &  dc,
double &  dz,
double  kap 
)

Definition at line 1328 of file SiPixelTrackResidualSource.cc.

References gather_cfg::cout, dttmaxenums::L, pileupDistInMC::num, diffTwoXMLs::r1, rho, and mathSSE::sqrt().

Referenced by analyze().

1329  {
1330 
1331  //Define some constants
1332  using namespace std;
1333 
1334  //Curvature kap from global Track
1335 
1336  //inverse of the curvature is the radius in the transverse plane
1337  double rho = 1/kap;
1338  //Check that the hits are in the correct layers
1339  double r1 = sqrt( x1*x1 + y1*y1 );
1340  double r3 = sqrt( x3*x3 + y3*y3 );
1341 
1342  if( r3-r1 < 2.0 ) cout << "warn r1 = " << r1 << ", r3 = " << r3 << endl;
1343 
1344  // Calculate the centre of the helix in xy-projection with radius rho from the track.
1345  //start with a line (sekante) connecting the two points (x1,y1) and (x3,y3) vec_L = vec_x3-vec_x1
1346  //with L being the length of that vector.
1347  double L=sqrt((x3-x1)*(x3-x1)+(y3-y1)*(y3-y1));
1348  //lam is the line from the middel point of vec_q towards the center of the circle X0,Y0
1349  // we already have kap and rho = 1/kap
1350  double lam = sqrt(rho*rho - L*L/4);
1351 
1352  // There are two solutions, the sign of kap gives the information
1353  // which of them is correct.
1354  //
1355  if( kap > 0 ) lam = -lam;
1356 
1357  //
1358  // ( X0, Y0 ) is the centre of the circle that describes the helix in xy-projection.
1359  //
1360  double x0 = 0.5*( x1 + x3 ) + lam/L * ( -y1 + y3 );
1361  double y0 = 0.5*( y1 + y3 ) + lam/L * ( x1 - x3 );
1362 
1363  // Calculate the dipangle in z direction (needed later for z residual) :
1364  //Starting from the heliz equation whihc has to hold for both points z1,z3
1365  double num = ( y3 - y0 ) * ( x1 - x0 ) - ( x3 - x0 ) * ( y1 - y0 );
1366  double den = ( x1 - x0 ) * ( x3 - x0 ) + ( y1 - y0 ) * ( y3 - y0 );
1367  double tandip = kap * ( z3 - z1 ) / atan( num / den );
1368 
1369 
1370  // angle from first hit to dca point:
1371  //
1372  double dphi = atan( ( ( x1 - x0 ) * y0 - ( y1 - y0 ) * x0 )
1373  / ( ( x1 - x0 ) * x0 + ( y1 - y0 ) * y0 ) );
1374  //z position of the track based on the middle of the circle
1375  //track equation for the z component
1376  double uz0 = z1 + tandip * dphi * rho;
1377 
1379  //RESIDUAL IN R-PHI
1381  //Calculate distance dca2 from point (x2,y2) to the circle which is given by
1382  //the distance of the point to the middlepoint dcM = sqrt((x0-x2)^2+(y0-y2)) and rho
1383  //dca = rho +- dcM
1384  if(kap>0) dca2=rho-sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2));
1385  else dca2=rho+sqrt((-x0+x2)*(-x0+x2)+(-y0+y2)*(-y0+y2));
1386 
1388  //RESIDUAL IN Z
1390  double xx =0 ;
1391  double yy =0 ;
1392  //sign of kappa determines the calculation
1393  //xx and yy are the new coordinates starting from x2, y2 that are on the track itself
1394  //vec_X2+-dca2*vec(X0-X2)/|(X0-X2)|
1395  if(kap<0){
1396  xx = x2+(dca2*((x0-x2))/sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)));
1397  yy = y2+(dca2*((y0-y2))/sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)));
1398  }
1399  else if(kap>=0){
1400  xx = x2-(dca2*((x0-x2))/sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)));
1401  yy = y2-(dca2*((y0-y2))/sqrt((x0-x2)*(x0-x2)+(y0-y2)*(y0-y2)));
1402  }
1403 
1404  //to get residual in z start with calculating the new uz2 position if one has moved to xx, yy
1405  //on the track. First calculate the change in phi2 with respect to the center X0, Y0
1406  double dphi2 = atan( ( ( xx - x0 ) * y0 - ( yy - y0 ) * x0 )
1407  / ( ( xx - x0 ) * x0 + ( yy - y0 ) * y0 ) );
1408  //Solve track equation for this new z depending on the dip angle of the track (see above
1409  //calculated based on X1, X3 and X0, use uz0 as reference point again.
1410  double uz2= uz0 - dphi2*tandip*rho;
1411 
1412  //subtract new z position from the old one
1413  dz2=z2-uz2;
1414 
1415  //if we are interested in the arclength this is unsigned though
1416  // double cosphi2 = (x2*xx+y2*yy)/(sqrt(x2*x2+y2*y2)*sqrt(xx*xx+yy*yy));
1417  //double arcdca2=sqrt(x2*x2+y2*y2)*acos(cosphi2);
1418 
1419 }
T sqrt(T t)
Definition: SSEVec.h:48
tuple cout
Definition: gather_cfg.py:121

Member Data Documentation

edm::EDGetTokenT<reco::BeamSpot> SiPixelTrackResidualSource::beamSpotToken_
private

Definition at line 67 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

bool SiPixelTrackResidualSource::bladeOn
private
edm::InputTag SiPixelTrackResidualSource::clustersrc_
private

Definition at line 64 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms(), and SiPixelTrackResidualSource().

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > SiPixelTrackResidualSource::clustersrcToken_
private

Definition at line 73 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

bool SiPixelTrackResidualSource::debug_
private
bool SiPixelTrackResidualSource::diskOn
private
bool SiPixelTrackResidualSource::firstRun
private

Definition at line 85 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms(), and SiPixelTrackResidualSource().

edm::EDGetTokenT<reco::TrackCollection> SiPixelTrackResidualSource::generalTracksToken_
private

Definition at line 69 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

bool SiPixelTrackResidualSource::isUpgrade
private

Definition at line 83 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), bookHistograms(), and dqmBeginRun().

bool SiPixelTrackResidualSource::ladOn
private
bool SiPixelTrackResidualSource::layOn
private
MonitorElement* SiPixelTrackResidualSource::meClChargeNotOnTrack_all
private

Definition at line 107 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClChargeNotOnTrack_bpix
private

Definition at line 108 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClChargeNotOnTrack_diskms
private

Definition at line 112 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClChargeNotOnTrack_diskps
private

Definition at line 111 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClChargeNotOnTrack_fpix
private

Definition at line 109 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClChargeNotOnTrack_layers
private

Definition at line 110 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClChargeOnTrack_all
private

Definition at line 101 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClChargeOnTrack_bpix
private

Definition at line 102 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClChargeOnTrack_diskms
private

Definition at line 106 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClChargeOnTrack_diskps
private

Definition at line 105 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClChargeOnTrack_fpix
private

Definition at line 103 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClChargeOnTrack_layers
private

Definition at line 104 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosDisksmzNotOnTrack
private

Definition at line 171 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosDisksmzOnTrack
private

Definition at line 169 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosDiskspzNotOnTrack
private

Definition at line 170 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosDiskspzOnTrack
private

Definition at line 168 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosLayersLadVsModOnTrack
private

Definition at line 166 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosLayersNotOnTrack
private

Definition at line 167 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClPosLayersOnTrack
private

Definition at line 165 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeNotOnTrack_all
private

Definition at line 119 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeNotOnTrack_bpix
private

Definition at line 120 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeNotOnTrack_diskms
private

Definition at line 124 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeNotOnTrack_diskps
private

Definition at line 123 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeNotOnTrack_fpix
private

Definition at line 121 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeNotOnTrack_layers
private

Definition at line 122 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeOnTrack_all
private

Definition at line 113 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeOnTrack_bpix
private

Definition at line 114 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeOnTrack_diskms
private

Definition at line 118 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeOnTrack_diskps
private

Definition at line 117 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeOnTrack_fpix
private

Definition at line 115 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeOnTrack_layers
private

Definition at line 116 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeXNotOnTrack_all
private

Definition at line 131 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeXNotOnTrack_bpix
private

Definition at line 132 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeXNotOnTrack_diskms
private

Definition at line 136 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeXNotOnTrack_diskps
private

Definition at line 135 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeXNotOnTrack_fpix
private

Definition at line 133 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeXNotOnTrack_layers
private

Definition at line 134 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeXOnTrack_all
private

Definition at line 125 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeXOnTrack_bpix
private

Definition at line 126 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeXOnTrack_diskms
private

Definition at line 130 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeXOnTrack_diskps
private

Definition at line 129 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeXOnTrack_fpix
private

Definition at line 127 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeXOnTrack_layers
private

Definition at line 128 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeYNotOnTrack_all
private

Definition at line 143 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeYNotOnTrack_bpix
private

Definition at line 144 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeYNotOnTrack_diskms
private

Definition at line 148 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeYNotOnTrack_diskps
private

Definition at line 147 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeYNotOnTrack_fpix
private

Definition at line 145 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeYNotOnTrack_layers
private

Definition at line 146 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeYOnTrack_all
private

Definition at line 137 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeYOnTrack_bpix
private

Definition at line 138 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeYOnTrack_diskms
private

Definition at line 142 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeYOnTrack_diskps
private

Definition at line 141 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meClSizeYOnTrack_fpix
private

Definition at line 139 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meClSizeYOnTrack_layers
private

Definition at line 140 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meHitProbability
private

Definition at line 173 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNClustersNotOnTrack_all
private

Definition at line 157 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNClustersNotOnTrack_bpix
private

Definition at line 158 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meNClustersNotOnTrack_diskms
private

Definition at line 162 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meNClustersNotOnTrack_diskps
private

Definition at line 161 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNClustersNotOnTrack_fpix
private

Definition at line 159 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meNClustersNotOnTrack_layers
private

Definition at line 160 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNClustersOnTrack_all
private

Definition at line 151 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNClustersOnTrack_bpix
private

Definition at line 152 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meNClustersOnTrack_diskms
private

Definition at line 156 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meNClustersOnTrack_diskps
private

Definition at line 155 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNClustersOnTrack_fpix
private

Definition at line 153 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meNClustersOnTrack_layers
private

Definition at line 154 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNofClustersNotOnTrack_
private

Definition at line 100 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNofClustersOnTrack_
private

Definition at line 99 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNofTracks_
private

Definition at line 97 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meNofTracksInPixVol_
private

Definition at line 98 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meResidualXSummedLay
private

Definition at line 94 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

std::vector<MonitorElement*> SiPixelTrackResidualSource::meResidualYSummedLay
private

Definition at line 95 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meSubdetResidualX[3]
private

Definition at line 91 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms().

MonitorElement* SiPixelTrackResidualSource::meSubdetResidualY[3]
private

Definition at line 92 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms().

bool SiPixelTrackResidualSource::modOn
private
int SiPixelTrackResidualSource::NLowProb
private

Definition at line 87 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

int SiPixelTrackResidualSource::noOfDisks
private

Definition at line 176 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), bookHistograms(), and dqmBeginRun().

int SiPixelTrackResidualSource::noOfLayers
private

Definition at line 175 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), bookHistograms(), and dqmBeginRun().

int SiPixelTrackResidualSource::NTotal
private

Definition at line 86 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

edm::EDGetTokenT<reco::VertexCollection> SiPixelTrackResidualSource::offlinePrimaryVerticesToken_
private

Definition at line 68 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

bool SiPixelTrackResidualSource::phiOn
private
edm::ParameterSet SiPixelTrackResidualSource::pSet_
private

Definition at line 62 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms(), and SiPixelTrackResidualSource().

double SiPixelTrackResidualSource::ptminres_
private

Definition at line 84 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

bool SiPixelTrackResidualSource::reducedSet
private

Definition at line 78 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and bookHistograms().

bool SiPixelTrackResidualSource::ringOn
private
edm::InputTag SiPixelTrackResidualSource::src_
private

Definition at line 63 of file SiPixelTrackResidualSource.h.

Referenced by SiPixelTrackResidualSource().

std::map<uint32_t, SiPixelTrackResidualModule*> SiPixelTrackResidualSource::theSiPixelStructure
private
std::string SiPixelTrackResidualSource::topFolderName_

Definition at line 59 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms(), and SiPixelTrackResidualSource().

edm::EDGetTokenT<TrajTrackAssociationCollection> SiPixelTrackResidualSource::trackAssociationToken_
private

Definition at line 72 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

edm::InputTag SiPixelTrackResidualSource::tracksrc_
private

Definition at line 65 of file SiPixelTrackResidualSource.h.

Referenced by bookHistograms(), and SiPixelTrackResidualSource().

edm::EDGetTokenT<std::vector<Trajectory> > SiPixelTrackResidualSource::tracksrcToken_
private

Definition at line 70 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

edm::EDGetTokenT<std::vector<reco::Track> > SiPixelTrackResidualSource::trackToken_
private

Definition at line 71 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().

std::string SiPixelTrackResidualSource::ttrhbuilder_
private

Definition at line 66 of file SiPixelTrackResidualSource.h.

Referenced by analyze(), and SiPixelTrackResidualSource().