CMS 3D CMS Logo

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

#include <DPGAnalysis/SiStripTools/plugins/TrackerDpgAnalysis.cc>

Inheritance diagram for TrackerDpgAnalysis:
edm::EDAnalyzer edm::EDConsumerBase

Public Member Functions

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

Protected Member Functions

float delay (const SiStripEventSummary &)
 
std::map< uint32_t, float > delay (const std::vector< std::string > &)
 
void insertMeasurement (std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
 
void insertMeasurement (std::multimap< const uint32_t, std::pair< int, int > > &, const TrackingRecHit *, int)
 
void insertMeasurement (std::multimap< const uint32_t, std::pair< LocalPoint, std::pair< double, double > > > &, const TransientTrackingRecHit *, double, double)
 
void insertMeasurement (std::multimap< const uint32_t, std::pair< std::pair< float, float >, int > > &, const TrackingRecHit *, int)
 
std::map< size_t, int > inVertex (const reco::TrackCollection &, const reco::VertexCollection &, uint32_t)
 
std::vector< int > onTrack (edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const reco::TrackCollection &, uint32_t)
 
std::vector< int > onTrack (edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &, const reco::TrackCollection &, uint32_t)
 
std::vector< double > onTrackAngles (edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const std::vector< Trajectory > &)
 
std::vector< std::pair< double, double > > onTrackAngles (edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &, const std::vector< Trajectory > &)
 
double sumPtSquared (const reco::Vertex &)
 
std::string toStringId (uint32_t)
 
std::string toStringName (uint32_t, const TrackerTopology *)
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 

Private Member Functions

void analyze (const edm::Event &, const edm::EventSetup &) override
 
void beginRun (const edm::Run &, const edm::EventSetup &) override
 
void endJob () override
 

Private Attributes

float alpha_
 
float angle_
 
float aplanarity_
 
float beta_
 
float bsDxdz_
 
float bsDydz_
 
float bsSigmaZ_
 
edm::EDGetTokenT< reco::BeamSpotbsToken_
 
float bsX0_
 
float bsY0_
 
float bsZ0_
 
uint32_t bx_
 
edm::ESHandle< SiStripFedCablingcabling_
 
std::string cablingFileName_
 
uint16_t ccuAdd_
 
uint16_t ccuChan_
 
float charge_
 
float chargeCorr_
 
float chi2_
 
float clBareCharge_
 
float clBareNoise_
 
float clCorrectedCharge_
 
float clCorrectedSignalOverNoise_
 
float clNormalizedCharge_
 
float clNormalizedNoise_
 
float clPosition_
 
float clPositionX_
 
float clPositionY_
 
float clSignalOverNoise_
 
uint32_t clSize_
 
uint32_t clSizeX_
 
uint32_t clSizeY_
 
TTree * clusters_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
 
float clWidth_
 
std::multimap< const uint32_t, const FedChannelConnection * > connections_
 
uint32_t dcuId_
 
float dedx1_
 
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx1Token_
 
float dedx2_
 
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx2Token_
 
float dedx3_
 
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx3Token_
 
uint32_t dedxNoM_
 
float delay_
 
std::vector< std::string > delayFileNames_
 
uint32_t detid_
 
float distance_
 
float dxy_
 
float dxyCorr_
 
float dxyerr_
 
float dz_
 
float dzCorr_
 
float dzerr_
 
float errorX_
 
float errorY_
 
float eta_
 
float etaerr_
 
TTree * event_
 
edm::EventNumber_t eventid_
 
float fBz_
 
uint16_t fecCrate_
 
uint16_t fecRing_
 
uint16_t fecSlot_
 
uint16_t fedCh_
 
uint16_t fedId_
 
uint16_t fiberLength_
 
uint32_t foundhits_
 
uint32_t foundhitsPixels_
 
uint32_t foundhitsStrips_
 
bool functionality_events_
 
bool functionality_missingHits_
 
bool functionality_offtrackClusters_
 
bool functionality_ontrackClusters_
 
bool functionality_pixclusters_
 
bool functionality_pixvertices_
 
bool functionality_tracks_
 
bool functionality_vertices_
 
uint32_t * globaltrackid_
 
uint32_t globalvertexid_
 
float globalX_
 
float globalY_
 
float globalZ_
 
std::vector< std::string > hlNames_
 
HLTConfigProvider hltConfig_
 
bool HLTDecisionBits_ [256]
 
edm::InputTag HLTTag_
 
edm::EDGetTokenT< edm::TriggerResultsHLTToken_
 
bool isFake_pvtx_
 
bool isValid_pvtx_
 
bool L1DecisionBits_ [192]
 
bool L1TechnicalBits_ [64]
 
edm::EDGetTokenT< L1GlobalTriggerReadoutRecordL1Token_
 
uint16_t lldChannel_
 
uint32_t lostHits_
 
uint32_t losthitsPixels_
 
uint32_t losthitsStrips_
 
float * lowPixelProbabilityFraction_
 
uint16_t lumiSegment_
 
float maxCharge_
 
float measX_
 
float measY_
 
std::vector< TTree * > missingHits_
 
char * moduleId_
 
char * moduleName_
 
uint32_t nclusters_
 
uint32_t nclustersOntrack_
 
uint32_t ndof_
 
uint32_t nLayers_
 
uint32_t npixClusters_
 
uint32_t npixClustersOntrack_
 
uint32_t nPixelVertices_
 
uint32_t * ntracks_
 
uint32_t nTracks_pvtx_
 
uint32_t * ntrajs_
 
uint32_t nVertices_
 
bool onTrack_
 
uint32_t orbit_
 
uint32_t orbitL1_
 
float p_
 
float phi_
 
float phierr_
 
uint16_t physicsDeclared_
 
TTree * pixclusters_
 
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelclusterToken_
 
edm::EDGetTokenT< reco::VertexCollectionpixelVertexToken_
 
TTree * pixelVertices_
 
float planarity_
 
edm::ParameterSet pset_
 
TTree * psumap_
 
char * PSUname_
 
float pt_
 
float pterr_
 
float qoverp_
 
uint32_t quality_
 
TTree * readoutmap_
 
float recx_err_pvtx_
 
float recx_pvtx_
 
float recy_err_pvtx_
 
float recy_pvtx_
 
float recz_err_pvtx_
 
float recz_pvtx_
 
uint32_t runid_
 
float sphericity_
 
uint32_t store_
 
float stripLength_
 
edm::EDGetTokenT< SiStripEventSummarysummaryToken_
 
float sumptsq_pvtx_
 
float thickness_
 
float thrustValue_
 
float thrustX_
 
float thrustY_
 
float thrustZ_
 
uint32_t time_
 
edm::ESHandle< TrackerGeometrytracker_
 
uint32_t * trackid_
 
std::vector< edm::InputTagtrackLabels_
 
std::vector< TTree * > tracks_
 
std::vector< edm::EDGetTokenT< reco::TrackCollection > > trackTokens_
 
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajectoryTokens_
 
std::vector< edm::EDGetTokenT< TrajTrackAssociationCollection > > trajTrackAssoTokens_
 
float trkWeightpvtx_
 
uint32_t type_
 
uint32_t vertexid_
 
edm::EDGetTokenT< reco::VertexCollectionvertexToken_
 
TTree * vertices_
 
float xPCA_
 
float yPCA_
 
float zPCA_
 

Static Private Attributes

static const int nMaxPVs_ = 50
 

Additional Inherited Members

- Public Types inherited from edm::EDAnalyzer
typedef EDAnalyzer ModuleType
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 
- Static Public Member Functions inherited from edm::EDAnalyzer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &)
 
static bool wantsGlobalLuminosityBlocks ()
 
static bool wantsGlobalRuns ()
 
static bool wantsStreamLuminosityBlocks ()
 
static bool wantsStreamRuns ()
 

Detailed Description

Description: analysis of the clusters and digis in the tracker

Implementation: analysis of the clusters and digis in the tracker

Definition at line 109 of file TrackerDpgAnalysis.cc.

Constructor & Destructor Documentation

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

Definition at line 215 of file TrackerDpgAnalysis.cc.

References alpha_, angle_, aplanarity_, beta_, bsDxdz_, bsDydz_, bsSigmaZ_, bsToken_, bsX0_, bsY0_, bsZ0_, edmScanValgrind::buffer, bx_, cablingFileName_, ccuAdd_, ccuChan_, charge_, chargeCorr_, chi2_, clBareCharge_, clBareNoise_, clCorrectedCharge_, clCorrectedSignalOverNoise_, clNormalizedCharge_, clNormalizedNoise_, clPosition_, clPositionX_, clPositionY_, clSignalOverNoise_, clSize_, clSizeX_, clSizeY_, clusters_, clusterToken_, clWidth_, dcuId_, dedx1_, dedx1Token_, dedx2_, dedx2Token_, dedx3_, dedx3Token_, dedxNoM_, delay_, delayFileNames_, detid_, dir, dxy_, dxyCorr_, dxyerr_, dz_, dzCorr_, dzerr_, errorX_, errorY_, eta_, etaerr_, event_, eventid_, fBz_, fecCrate_, fecRing_, fecSlot_, fedCh_, fedId_, fiberLength_, fileService, foundhits_, foundhitsPixels_, foundhitsStrips_, functionality_events_, functionality_missingHits_, functionality_offtrackClusters_, functionality_ontrackClusters_, functionality_pixclusters_, functionality_pixvertices_, functionality_tracks_, functionality_vertices_, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), globaltrackid_, globalvertexid_, globalX_, globalY_, globalZ_, HLTDecisionBits_, HLTTag_, HLTToken_, mps_fire::i, isFake_pvtx_, isValid_pvtx_, L1DecisionBits_, L1TechnicalBits_, L1Token_, lldChannel_, lostHits_, losthitsPixels_, losthitsStrips_, lowPixelProbabilityFraction_, lumiSegment_, TFileDirectory::make(), maxCharge_, measX_, measY_, missingHits_, TFileService::mkdir(), moduleId_, moduleName_, nclusters_, nclustersOntrack_, ndof_, nLayers_, npixClusters_, npixClustersOntrack_, ntracks_, nTracks_pvtx_, ntrajs_, nVertices_, onTrack_, orbit_, orbitL1_, p_, phi_, phierr_, physicsDeclared_, pixclusters_, pixelclusterToken_, pixelVertexToken_, pixelVertices_, planarity_, pset_, psumap_, PSUname_, pt_, pterr_, qoverp_, quality_, readoutmap_, recx_err_pvtx_, recx_pvtx_, recy_err_pvtx_, recy_pvtx_, recz_err_pvtx_, recz_pvtx_, runid_, sphericity_, store_, AlCaHLTBitMon_QueryRunRegistry::string, stripLength_, summaryToken_, sumptsq_pvtx_, GlobalPosition_Frontier_DevDB_cff::tag, thickness_, thrustValue_, thrustX_, thrustY_, thrustZ_, time_, trackid_, trackLabels_, tracks_, trackTokens_, trajectoryTokens_, trajTrackAssoTokens_, trkWeightpvtx_, type_, edm::vector_transform(), vertexid_, vertexToken_, vertices_, xPCA_, yPCA_, and zPCA_.

215  :hltConfig_()
216 {
217  // members
218  moduleName_ = new char[256];
219  moduleId_ = new char[256];
220  PSUname_ = new char[256];
221  pset_ = iConfig;
222 
223  // enable/disable functionalities
224  functionality_offtrackClusters_ = iConfig.getUntrackedParameter<bool>("keepOfftrackClusters",true);
225  functionality_ontrackClusters_ = iConfig.getUntrackedParameter<bool>("keepOntrackClusters",true);
226  functionality_pixclusters_ = iConfig.getUntrackedParameter<bool>("keepPixelClusters",true);
227  functionality_pixvertices_ = iConfig.getUntrackedParameter<bool>("keepPixelVertices",true);
228  functionality_missingHits_ = iConfig.getUntrackedParameter<bool>("keepMissingHits",true);
229  functionality_tracks_ = iConfig.getUntrackedParameter<bool>("keepTracks",true);
230  functionality_vertices_ = iConfig.getUntrackedParameter<bool>("keepVertices",true);
231  functionality_events_ = iConfig.getUntrackedParameter<bool>("keepEvents",true);
232 
233  // parameters
234  summaryToken_ = consumes<SiStripEventSummary>(edm::InputTag("siStripDigis"));
235  clusterToken_ = consumes<edmNew::DetSetVector<SiStripCluster> >(iConfig.getParameter<edm::InputTag>("ClustersLabel"));
236  pixelclusterToken_ = consumes<edmNew::DetSetVector<SiPixelCluster> >(iConfig.getParameter<edm::InputTag>("PixelClustersLabel"));
237  trackLabels_ = iConfig.getParameter<std::vector<edm::InputTag> >("TracksLabel");
238  trackTokens_ = edm::vector_transform(trackLabels_, [this](edm::InputTag const & tag){return consumes<reco::TrackCollection>(tag);});
239  trajectoryTokens_ = edm::vector_transform(trackLabels_, [this](edm::InputTag const & tag){return consumes<std::vector<Trajectory> >(tag);});
240  trajTrackAssoTokens_ = edm::vector_transform(trackLabels_, [this](edm::InputTag const & tag){return consumes<TrajTrackAssociationCollection>(tag);});
241  dedx1Token_ = consumes<edm::ValueMap<reco::DeDxData> >(iConfig.getParameter<edm::InputTag>("DeDx1Label"));
242  dedx2Token_ = consumes<edm::ValueMap<reco::DeDxData> >(iConfig.getParameter<edm::InputTag>("DeDx2Label"));
243  dedx3Token_ = consumes<edm::ValueMap<reco::DeDxData> >(iConfig.getParameter<edm::InputTag>("DeDx3Label"));
244  vertexToken_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("vertexLabel"));
245  pixelVertexToken_ = consumes<reco::VertexCollection>(iConfig.getParameter<edm::InputTag>("pixelVertexLabel"));
246  bsToken_ = consumes<reco::BeamSpot>(iConfig.getParameter<edm::InputTag>("beamSpotLabel"));
247  L1Token_ = consumes<L1GlobalTriggerReadoutRecord>(iConfig.getParameter<edm::InputTag>("L1Label"));
248  HLTTag_ = iConfig.getParameter<edm::InputTag>("HLTLabel");
249  HLTToken_ = consumes<edm::TriggerResults>(HLTTag_);
250 
251  // initialize arrays
252  size_t trackSize(trackLabels_.size());
253  ntracks_ = new uint32_t[trackSize];
254  ntrajs_ = new uint32_t[trackSize];
255  globaltrackid_ = new uint32_t[trackSize];
256  trackid_ = new uint32_t[trackSize];
257  lowPixelProbabilityFraction_ = new float[trackSize];
258  globalvertexid_ = iConfig.getParameter<uint32_t>("InitalCounter");
259  for(size_t i = 0; i<trackSize;++i) {
260  ntracks_[i]=0;
261  ntrajs_[i]=0;
262  globaltrackid_[i]=iConfig.getParameter<uint32_t>("InitalCounter");
263  trackid_[i]=0;
265  }
266 
267  // create output
269  TFileDirectory* dir = new TFileDirectory(fileService->mkdir("trackerDPG"));
270 
271  // create a TTree for clusters
272  clusters_ = dir->make<TTree>("clusters","cluster information");
273  clusters_->Branch("eventid",&eventid_,"eventid/i");
274  clusters_->Branch("runid",&runid_,"runid/i");
275  for(size_t i = 0; i<trackSize; ++i) {
276  char buffer1[256];
277  char buffer2[256];
278  sprintf(buffer1,"trackid%lu",(unsigned long)i);
279  sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
280  clusters_->Branch(buffer1,trackid_+i,buffer2);
281  }
282  clusters_->Branch("onTrack",&onTrack_,"onTrack/O");
283  clusters_->Branch("clWidth",&clWidth_,"clWidth/F");
284  clusters_->Branch("clPosition",&clPosition_,"clPosition/F");
285  clusters_->Branch("clglobalX",&globalX_,"clglobalX/F");
286  clusters_->Branch("clglobalY",&globalY_,"clglobalY/F");
287  clusters_->Branch("clglobalZ",&globalZ_,"clglobalZ/F");
288  clusters_->Branch("angle",&angle_,"angle/F");
289  clusters_->Branch("thickness",&thickness_,"thickness/F");
290  clusters_->Branch("maxCharge",&maxCharge_,"maxCharge/F");
291  clusters_->Branch("clNormalizedCharge",&clNormalizedCharge_,"clNormalizedCharge/F");
292  clusters_->Branch("clNormalizedNoise",&clNormalizedNoise_,"clNormalizedNoise/F");
293  clusters_->Branch("clSignalOverNoise",&clSignalOverNoise_,"clSignalOverNoise/F");
294  clusters_->Branch("clCorrectedCharge",&clCorrectedCharge_,"clCorrectedCharge/F");
295  clusters_->Branch("clCorrectedSignalOverNoise",&clCorrectedSignalOverNoise_,"clCorrectedSignalOverNoise/F");
296  clusters_->Branch("clBareCharge",&clBareCharge_,"clBareCharge/F");
297  clusters_->Branch("clBareNoise",&clBareNoise_,"clBareNoise/F");
298  clusters_->Branch("stripLength",&stripLength_,"stripLength/F");
299  clusters_->Branch("detid",&detid_,"detid/i");
300  clusters_->Branch("lldChannel",&lldChannel_,"lldChannel/s");
301 
302  // create a TTree for pixel clusters
303  pixclusters_ = dir->make<TTree>("pixclusters","pixel cluster information");
304  pixclusters_->Branch("eventid",&eventid_,"eventid/i");
305  pixclusters_->Branch("runid",&runid_,"runid/i");
306  for(size_t i = 0; i<trackSize; ++i) {
307  char buffer1[256];
308  char buffer2[256];
309  sprintf(buffer1,"trackid%lu",(unsigned long)i);
310  sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
311  pixclusters_->Branch(buffer1,trackid_+i,buffer2);
312  }
313  pixclusters_->Branch("onTrack",&onTrack_,"onTrack/O");
314  pixclusters_->Branch("clPositionX",&clPositionX_,"clPositionX/F");
315  pixclusters_->Branch("clPositionY",&clPositionY_,"clPositionY/F");
316  pixclusters_->Branch("clSize",&clSize_,"clSize/i");
317  pixclusters_->Branch("clSizeX",&clSizeX_,"clSizeX/i");
318  pixclusters_->Branch("clSizeY",&clSizeY_,"clSizeY/i");
319  pixclusters_->Branch("alpha",&alpha_,"alpha/F");
320  pixclusters_->Branch("beta",&beta_,"beta/F");
321  pixclusters_->Branch("charge",&charge_,"charge/F");
322  pixclusters_->Branch("chargeCorr",&chargeCorr_,"chargeCorr/F");
323  pixclusters_->Branch("clglobalX",&globalX_,"clglobalX/F");
324  pixclusters_->Branch("clglobalY",&globalY_,"clglobalY/F");
325  pixclusters_->Branch("clglobalZ",&globalZ_,"clglobalZ/F");
326  pixclusters_->Branch("detid",&detid_,"detid/i");
327 
328  // create a tree for tracks
329  for(size_t i = 0; i<trackSize; ++i) {
330  char buffer1[256];
331  char buffer2[256];
332  sprintf(buffer1,"tracks%lu",(unsigned long)i);
333  sprintf(buffer2,"track%lu information",(unsigned long)i);
334  TTree* thetracks_ = dir->make<TTree>(buffer1,buffer2);
335  sprintf(buffer1,"trackid%lu",(unsigned long)i);
336  sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
337  thetracks_->Branch(buffer1,globaltrackid_+i,buffer2);
338  thetracks_->Branch("eventid",&eventid_,"eventid/i");
339  thetracks_->Branch("runid",&runid_,"runid/i");
340  thetracks_->Branch("chi2",&chi2_,"chi2/F");
341  thetracks_->Branch("eta",&eta_,"eta/F");
342  thetracks_->Branch("etaerr",&etaerr_,"etaerr/F");
343  thetracks_->Branch("phi",&phi_,"phi/F");
344  thetracks_->Branch("phierr",&phierr_,"phierr/F");
345  thetracks_->Branch("dedx1",&dedx1_,"dedx1/F");
346  thetracks_->Branch("dedx2",&dedx2_,"dedx2/F");
347  thetracks_->Branch("dedx3",&dedx3_,"dedx3/F");
348  thetracks_->Branch("dedxNoM",&dedxNoM_,"dedxNoM/i");
349  thetracks_->Branch("charge",&charge_,"charge/F");
350  thetracks_->Branch("quality",&quality_,"quality/i");
351  thetracks_->Branch("foundhits",&foundhits_,"foundhits/i");
352  thetracks_->Branch("lostHits",&lostHits_,"lostHits/i");
353  thetracks_->Branch("foundhitsStrips",&foundhitsStrips_,"foundhitsStrips/i");
354  thetracks_->Branch("foundhitsPixels",&foundhitsPixels_,"foundhitsPixels/i");
355  thetracks_->Branch("losthitsStrips",&losthitsStrips_,"losthitsStrips/i");
356  thetracks_->Branch("losthitsPixels",&losthitsPixels_,"losthitsPixels/i");
357  thetracks_->Branch("p",&p_,"p/F");
358  thetracks_->Branch("pt",&pt_,"pt/F");
359  thetracks_->Branch("pterr",&pterr_,"pterr/F");
360  thetracks_->Branch("ndof",&ndof_,"ndof/i");
361  thetracks_->Branch("dz",&dz_,"dz/F");
362  thetracks_->Branch("dzerr",&dzerr_,"dzerr/F");
363  thetracks_->Branch("dzCorr",&dzCorr_,"dzCorr/F");
364  thetracks_->Branch("dxy",&dxy_,"dxy/F");
365  thetracks_->Branch("dxyerr",&dxyerr_,"dxyerr/F");
366  thetracks_->Branch("dxyCorr",&dxyCorr_,"dxyCorr/F");
367  thetracks_->Branch("qoverp",&qoverp_,"qoverp/F");
368  thetracks_->Branch("xPCA",&xPCA_,"xPCA/F");
369  thetracks_->Branch("yPCA",&yPCA_,"yPCA/F");
370  thetracks_->Branch("zPCA",&zPCA_,"zPCA/F");
371  thetracks_->Branch("nLayers",&nLayers_,"nLayers/i");
372  thetracks_->Branch("trkWeightpvtx",&trkWeightpvtx_,"trkWeightpvtx/F");
373  thetracks_->Branch("vertexid",&vertexid_,"vertexid/i");
374  tracks_.push_back(thetracks_);
375  }
376 
377  // create a tree for missing hits
378  for(size_t i = 0; i<trackSize; ++i) {
379  char buffer1[256];
380  char buffer2[256];
381  sprintf(buffer1,"misingHits%lu",(unsigned long)i);
382  sprintf(buffer2,"missing hits from track collection %lu",(unsigned long)i);
383  TTree* themissingHits_ = dir->make<TTree>(buffer1,buffer2);
384  sprintf(buffer1,"trackid%lu",(unsigned long)i);
385  sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
386  themissingHits_->Branch(buffer1,globaltrackid_+i,buffer2);
387  themissingHits_->Branch("eventid",&eventid_,"eventid/i");
388  themissingHits_->Branch("runid",&runid_,"runid/i");
389  themissingHits_->Branch("detid",&detid_,"detid/i");
390  themissingHits_->Branch("type",&type_,"type/i");
391  themissingHits_->Branch("localX",&clPositionX_,"localX/F");
392  themissingHits_->Branch("localY",&clPositionY_,"localY/F");
393  themissingHits_->Branch("globalX",&globalX_,"globalX/F");
394  themissingHits_->Branch("globalY",&globalY_,"globalY/F");
395  themissingHits_->Branch("globalZ",&globalZ_,"globalZ/F");
396  themissingHits_->Branch("measX",&measX_,"measX/F");
397  themissingHits_->Branch("measY",&measY_,"measY/F");
398  themissingHits_->Branch("errorX",&errorX_,"errorX/F");
399  themissingHits_->Branch("errorY",&errorY_,"errorY/F");
400  missingHits_.push_back(themissingHits_);
401  }
402 
403  // create a tree for the vertices
404  vertices_ = dir->make<TTree>("vertices","vertex information");
405  vertices_->Branch("vertexid",&globalvertexid_,"vertexid/i");
406  vertices_->Branch("eventid",&eventid_,"eventid/i");
407  vertices_->Branch("runid",&runid_,"runid/i");
408  vertices_->Branch("nTracks",&nTracks_pvtx_,"nTracks/i");
409  vertices_->Branch("sumptsq",&sumptsq_pvtx_,"sumptsq/F");
410  vertices_->Branch("isValid",&isValid_pvtx_,"isValid/O");
411  vertices_->Branch("isFake",&isFake_pvtx_,"isFake/O");
412  vertices_->Branch("recx",&recx_pvtx_,"recx/F");
413  vertices_->Branch("recy",&recy_pvtx_,"recy/F");
414  vertices_->Branch("recz",&recz_pvtx_,"recz/F");
415  vertices_->Branch("recx_err",&recx_err_pvtx_,"recx_err/F");
416  vertices_->Branch("recy_err",&recy_err_pvtx_,"recy_err/F");
417  vertices_->Branch("recz_err",&recz_err_pvtx_,"recz_err/F");
418 
419  // create a tree for the vertices
420  pixelVertices_ = dir->make<TTree>("pixelVertices","pixel vertex information");
421  pixelVertices_->Branch("eventid",&eventid_,"eventid/i");
422  pixelVertices_->Branch("runid",&runid_,"runid/i");
423  pixelVertices_->Branch("nTracks",&nTracks_pvtx_,"nTracks/i");
424  pixelVertices_->Branch("sumptsq",&sumptsq_pvtx_,"sumptsq/F");
425  pixelVertices_->Branch("isValid",&isValid_pvtx_,"isValid/O");
426  pixelVertices_->Branch("isFake",&isFake_pvtx_,"isFake/O");
427  pixelVertices_->Branch("recx",&recx_pvtx_,"recx/F");
428  pixelVertices_->Branch("recy",&recy_pvtx_,"recy/F");
429  pixelVertices_->Branch("recz",&recz_pvtx_,"recz/F");
430  pixelVertices_->Branch("recx_err",&recx_err_pvtx_,"recx_err/F");
431  pixelVertices_->Branch("recy_err",&recy_err_pvtx_,"recy_err/F");
432  pixelVertices_->Branch("recz_err",&recz_err_pvtx_,"recz_err/F");
433 
434  // create a tree for the events
435  event_ = dir->make<TTree>("events","event information");
436  event_->Branch("eventid",&eventid_,"eventid/i");
437  event_->Branch("runid",&runid_,"runid/i");
438  event_->Branch("L1DecisionBits",L1DecisionBits_,"L1DecisionBits[192]/O");
439  event_->Branch("L1TechnicalBits",L1TechnicalBits_,"L1TechnicalBits[64]/O");
440  event_->Branch("orbit",&orbit_,"orbit/i");
441  event_->Branch("orbitL1",&orbitL1_,"orbitL1/i");
442  event_->Branch("bx",&bx_,"bx/i");
443  event_->Branch("store",&store_,"store/i");
444  event_->Branch("time",&time_,"time/i");
445  event_->Branch("delay",&delay_,"delay/F");
446  event_->Branch("lumiSegment",&lumiSegment_,"lumiSegment/s");
447  event_->Branch("physicsDeclared",&physicsDeclared_,"physicsDeclared/s");
448  event_->Branch("HLTDecisionBits",HLTDecisionBits_,"HLTDecisionBits[256]/O");
449  char buffer[256];
450  sprintf(buffer,"ntracks[%lu]/i",(unsigned long)trackSize);
451  event_->Branch("ntracks",ntracks_,buffer);
452  sprintf(buffer,"ntrajs[%lu]/i",(unsigned long)trackSize);
453  event_->Branch("ntrajs",ntrajs_,buffer);
454  sprintf(buffer,"lowPixelProbabilityFraction[%lu]/F",(unsigned long)trackSize);
455  event_->Branch("lowPixelProbabilityFraction",lowPixelProbabilityFraction_,buffer);
456  event_->Branch("nclusters",&nclusters_,"nclusters/i");
457  event_->Branch("npixClusters",&npixClusters_,"npixClusters/i");
458  event_->Branch("nclustersOntrack",&nclustersOntrack_,"nclustersOntrack/i");
459  event_->Branch("npixClustersOntrack",&npixClustersOntrack_,"npixClustersOntrack/i");
460  event_->Branch("bsX0",&bsX0_,"bsX0/F");
461  event_->Branch("bsY0",&bsY0_,"bsY0/F");
462  event_->Branch("bsZ0",&bsZ0_,"bsZ0/F");
463  event_->Branch("bsSigmaZ",&bsSigmaZ_,"bsSigmaZ/F");
464  event_->Branch("bsDxdz",&bsDxdz_,"bsDxdz/F");
465  event_->Branch("bsDydz",&bsDydz_,"bsDydz/F");
466  event_->Branch("nVertices",&nVertices_,"nVertices/i");
467  event_->Branch("thrustValue",&thrustValue_,"thrustValue/F");
468  event_->Branch("thrustX",&thrustX_,"thrustX/F");
469  event_->Branch("thrustY",&thrustY_,"thrustY/F");
470  event_->Branch("thrustZ",&thrustZ_,"thrustZ/F");
471  event_->Branch("sphericity",&sphericity_,"sphericity/F");
472  event_->Branch("planarity",&planarity_,"planarity/F");
473  event_->Branch("aplanarity",&aplanarity_,"aplanarity/F");
474  event_->Branch("MagneticField",&fBz_,"MagneticField/F");
475 
476  // cabling
477  cablingFileName_ = iConfig.getUntrackedParameter<std::string>("PSUFileName","PSUmapping.csv");
478  delayFileNames_ = iConfig.getUntrackedParameter<std::vector<std::string> >("DelayFileNames",std::vector<std::string>(0));
479  psumap_ = dir->make<TTree>("psumap","PSU map");
480  psumap_->Branch("PSUname",PSUname_,"PSUname/C");
481  psumap_->Branch("dcuId",&dcuId_,"dcuId/i");
482  readoutmap_ = dir->make<TTree>("readoutMap","cabling map");
483  readoutmap_->Branch("detid",&detid_,"detid/i");
484  readoutmap_->Branch("dcuId",&dcuId_,"dcuId/i");
485  readoutmap_->Branch("fecCrate",&fecCrate_,"fecCrate/s");
486  readoutmap_->Branch("fecSlot",&fecSlot_,"fecSlot/s");
487  readoutmap_->Branch("fecRing",&fecRing_,"fecRing/s");
488  readoutmap_->Branch("ccuAdd",&ccuAdd_,"ccuAdd/s");
489  readoutmap_->Branch("ccuChan",&ccuChan_,"ccuChan/s");
490  readoutmap_->Branch("lldChannel",&lldChannel_,"lldChannel/s");
491  readoutmap_->Branch("fedId",&fedId_,"fedId/s");
492  readoutmap_->Branch("fedCh",&fedCh_,"fedCh/s");
493  readoutmap_->Branch("fiberLength",&fiberLength_,"fiberLength/s");
494  readoutmap_->Branch("moduleName",moduleName_,"moduleName/C");
495  readoutmap_->Branch("moduleId",moduleId_,"moduleId/C");
496  readoutmap_->Branch("delay",&delay_,"delay/F");
497  readoutmap_->Branch("globalX",&globalX_,"globalX/F");
498  readoutmap_->Branch("globalY",&globalY_,"globalY/F");
499  readoutmap_->Branch("globalZ",&globalZ_,"globalZ/F");
500 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
std::vector< TTree * > tracks_
edm::ParameterSet pset_
edm::EDGetTokenT< edm::TriggerResults > HLTToken_
edm::EDGetTokenT< reco::BeamSpot > bsToken_
std::vector< std::string > delayFileNames_
edm::EventNumber_t eventid_
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > L1Token_
T * make(const Args &...args) const
make new ROOT object
std::vector< edm::InputTag > trackLabels_
HLTConfigProvider hltConfig_
edm::EDGetTokenT< SiStripEventSummary > summaryToken_
std::vector< edm::EDGetTokenT< reco::TrackCollection > > trackTokens_
auto vector_transform(std::vector< InputType > const &input, Function predicate) -> std::vector< typename std::remove_cv< typename std::remove_reference< decltype(predicate(input.front()))>::type >::type >
Definition: transform.h:11
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx2Token_
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
Definition: TFileService.h:69
edm::Service< TFileService > fileService
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx1Token_
std::vector< TTree * > missingHits_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelclusterToken_
std::vector< edm::EDGetTokenT< TrajTrackAssociationCollection > > trajTrackAssoTokens_
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx3Token_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
dbl *** dir
Definition: mlp_gen.cc:35
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajectoryTokens_
edm::EDGetTokenT< reco::VertexCollection > pixelVertexToken_
TrackerDpgAnalysis::~TrackerDpgAnalysis ( )
override

Definition at line 502 of file TrackerDpgAnalysis.cc.

References moduleId_, and moduleName_.

503 {
504  delete[] moduleName_;
505  delete[] moduleId_;
506 }

Member Function Documentation

void TrackerDpgAnalysis::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 514 of file TrackerDpgAnalysis.cc.

References edm::HLTGlobalStatus::accept(), alpha_, angle_, EventShape::aplanarity(), aplanarity_, SiStripClusterInfo::baryStrip(), ecalDrivenElectronSeedsParameters_cff::beamSpot, begin, beta_, bsDxdz_, bsDydz_, bsSigmaZ_, bsToken_, bsX0_, bsY0_, bsZ0_, edm::EventAuxiliary::bunchCrossing(), bx_, EnergyCorrector::c, SiStripClusterInfo::charge(), charge_, chargeCorr_, chi2_, clBareCharge_, clBareNoise_, clCorrectedCharge_, clCorrectedSignalOverNoise_, clNormalizedCharge_, clNormalizedNoise_, clPosition_, clPositionX_, clPositionY_, clSignalOverNoise_, clSize_, clSizeX_, clSizeY_, SiPixelRecHit::clusterProbability(), fastPrimaryVertexProducer_cfi::clusters, clusters_, clusterToken_, clWidth_, coll, edm::AssociationMap< edm::OneToOne< std::vector< Trajectory >, reco::TrackCollection, unsigned short > >::const_iterator, funct::cos(), dedx1_, dedx1Token_, dedx2_, dedx2Token_, dedx3_, dedx3Token_, dedxNoM_, delay(), delay_, detid_, reco::BeamSpot::dxdz(), dxy_, dxyCorr_, dxyerr_, reco::BeamSpot::dydz(), dz_, dzCorr_, dzerr_, end, relativeConstraints::error, errorX_, errorY_, eta_, etaerr_, edm::EventID::event(), event_, edm::Event::eventAuxiliary(), eventid_, fBz_, objects.autophobj::float, foundhits_, foundhitsPixels_, foundhitsStrips_, functionality_events_, functionality_missingHits_, functionality_offtrackClusters_, functionality_ontrackClusters_, functionality_pixclusters_, functionality_pixvertices_, functionality_tracks_, functionality_vertices_, TrackingRecHit::geographicalId(), edm::EventSetup::get(), edm::Event::getByToken(), globaltrackid_, globalvertexid_, globalX_, globalY_, globalZ_, runTauDisplay::gp, L1GtFdlWord::gtDecisionWord(), L1GtFdlWord::gtDecisionWordExtended(), L1GlobalTriggerReadoutRecord::gtFdlWord(), L1GtFdlWord::gtTechnicalTriggerWord(), HLTDecisionBits_, HLTToken_, mps_fire::i, edm::EventBase::id(), TrackerGeometry::idToDet(), TrackerGeometry::idToDetUnit(), TrackingRecHit::inactive, createfilelist::int, MagneticField::inTesla(), inVertex(), isFake_pvtx_, GeomDetType::isTracker(), edm::HandleBase::isValid(), isValid_pvtx_, edm::Ref< C, T, F >::key(), L1DecisionBits_, L1TechnicalBits_, L1Token_, lldChannel_, DTRecHitClients_cfi::local, StripTopology::localPosition(), Topology::localPosition(), lostHits_, losthitsPixels_, losthitsStrips_, lowPixelProbabilityFraction_, edm::EventAuxiliary::luminosityBlock(), lumiSegment_, SiStripClusterInfo::maxCharge(), maxCharge_, Topology::measurementPosition(), measX_, measY_, missingHits_, nclusters_, nclustersOntrack_, ndof_, nLayers_, SiStripClusterInfo::noise(), SiStripClusterInfo::noiseRescaledByGain(), npixClusters_, npixClustersOntrack_, nPixelVertices_, ntracks_, nTracks_pvtx_, ntrajs_, nVertices_, onTrack(), onTrack_, onTrackAngles(), orbit_, orbitL1_, L1GtFdlWord::orbitNr(), edm::EventAuxiliary::orbitNumber(), p_, phi_, phierr_, L1GtFdlWord::physicsDeclared(), physicsDeclared_, pixclusters_, PixelSubdetector::PixelBarrel, pixelclusterToken_, pixelVertexToken_, pixelVertices_, EventShape::planarity(), planarity_, funct::pow(), edm::Handle< T >::product(), edm::ESHandle< T >::product(), pt_, pterr_, qoverp_, quality_, recx_err_pvtx_, recx_pvtx_, recy_err_pvtx_, recy_pvtx_, recz_err_pvtx_, recz_pvtx_, edm::EventID::run(), runid_, reco::BeamSpot::sigmaZ(), SiStripClusterInfo::signalOverNoise(), edm::HLTGlobalStatus::size(), PixelGeomDetUnit::specificTopology(), StripGeomDetUnit::specificTopology(), EventShape::sphericity(), sphericity_, mathSSE::sqrt(), store_, edm::EventAuxiliary::storeNumber(), AlCaHLTBitMon_QueryRunRegistry::string, stripLength_, DetId::subdetId(), heppy_report::summary, summaryToken_, sumptsq_pvtx_, sumPtSquared(), GeomDet::surface(), funct::tan(), thickness_, EventShape::thrust(), thrustValue_, thrustX_, thrustY_, thrustZ_, edm::EventAuxiliary::time(), time_, Surface::toGlobal(), GeomDet::topology(), reco::HitPattern::TRACK_HITS, findElectronsInSiStrips_cfi::trackCollection, tracker_, trackid_, trackLabels_, tracks_, trackTokens_, trajectoryTokens_, trajTrackAssoTokens_, trkWeightpvtx_, GeomDet::type(), type_, findQualityFiles::v, edm::Timestamp::value(), vertexid_, vertexToken_, vertices_, SiStripClusterInfo::width(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::x(), reco::BeamSpot::x0(), xPCA_, LocalError::xx(), PV2DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::y(), reco::BeamSpot::y0(), yPCA_, LocalError::yy(), PV3DBase< T, PVType, FrameType >::z(), reco::BeamSpot::z0(), and zPCA_.

515 {
516  using namespace edm;
517  using namespace reco;
518  using namespace std;
519  using reco::TrackCollection;
520 
521  // load event info
522  eventid_ = iEvent.id().event();
523  runid_ = iEvent.id().run();
524  bx_ = iEvent.eventAuxiliary().bunchCrossing();
525  orbit_ = iEvent.eventAuxiliary().orbitNumber();
526  store_ = iEvent.eventAuxiliary().storeNumber();
527  time_ = iEvent.eventAuxiliary().time().value();
529 
530  // Retrieve commissioning information from "event summary", when available (for standard fine delay)
532  iEvent.getByToken(summaryToken_, summary );
533  if(summary.isValid())
534  delay_ = delay(*summary.product());
535  else
536  delay_ = 0.;
537 
538  // -- Magnetic field
540  iSetup.get<IdealMagneticFieldRecord>().get(MF);
541  const MagneticField* theMagneticField = MF.product();
542  fBz_ = fabs(theMagneticField->inTesla(GlobalPoint(0,0,0)).z());
543 
544  // load trigger info
546  iEvent.getByToken(L1Token_, gtrr_handle);
547  L1GlobalTriggerReadoutRecord const* gtrr = gtrr_handle.product();
548  L1GtFdlWord fdlWord = gtrr->gtFdlWord();
549  DecisionWord L1decision = fdlWord.gtDecisionWord();
550  for(int bit=0;bit<128;++bit) {
551  L1DecisionBits_[bit] = L1decision[bit];
552  }
553  DecisionWordExtended L1decisionE = fdlWord.gtDecisionWordExtended();
554  for(int bit=0;bit<64;++bit) {
555  L1DecisionBits_[bit+128] = L1decisionE[bit];
556  }
557  TechnicalTriggerWord L1technical = fdlWord.gtTechnicalTriggerWord();
558  for(int bit=0;bit<64;++bit) {
559  L1TechnicalBits_[bit] = L1technical[bit];
560  }
561  orbitL1_ = fdlWord.orbitNr();
562  physicsDeclared_ = fdlWord.physicsDeclared();
564  iEvent.getByToken(HLTToken_, trh);
565  size_t ntrh = trh->size();
566  for(size_t bit=0;bit<256;++bit)
567  HLTDecisionBits_[bit] = bit<ntrh ? (bool)(trh->accept(bit)): false;
568 
569  // load beamspot
570  edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
571  iEvent.getByToken(bsToken_,recoBeamSpotHandle);
572  reco::BeamSpot bs = *recoBeamSpotHandle;
573  const Point beamSpot = recoBeamSpotHandle.isValid() ?
574  Point(recoBeamSpotHandle->x0(), recoBeamSpotHandle->y0(), recoBeamSpotHandle->z0()) :
575  Point(0, 0, 0);
576  if(recoBeamSpotHandle.isValid()) {
577  bsX0_ = bs.x0();
578  bsY0_ = bs.y0();
579  bsZ0_ = bs.z0();
580  bsSigmaZ_ = bs.sigmaZ();
581  bsDxdz_ = bs.dxdz();
582  bsDydz_ = bs.dydz();
583  } else {
584  bsX0_ = 0.;
585  bsY0_ = 0.;
586  bsZ0_ = 0.;
587  bsSigmaZ_ = 0.;
588  bsDxdz_ = 0.;
589  bsDydz_ = 0.;
590  }
591 
592  // load primary vertex
593  static const reco::VertexCollection s_empty_vertexColl;
594  edm::Handle<reco::VertexCollection> vertexCollectionHandle;
595  iEvent.getByToken(vertexToken_,vertexCollectionHandle);
596  const reco::VertexCollection vertexColl = *(vertexCollectionHandle.product());
597  nVertices_ = 0;
598  for(reco::VertexCollection::const_iterator v=vertexColl.begin();
599  v!=vertexColl.end(); ++v) {
600  if(v->isValid() && !v->isFake()) ++nVertices_;
601  }
602 
603  // load pixel vertices
604  // Pixel vertices are handled as primary vertices, but not linked to tracks.
605  edm::Handle<reco::VertexCollection> pixelVertexCollectionHandle;
606  iEvent.getByToken(pixelVertexToken_, pixelVertexCollectionHandle);
607  const reco::VertexCollection pixelVertexColl = *(pixelVertexCollectionHandle.product());
608  nPixelVertices_ = pixelVertexColl.size();
609 
610  // load the clusters
612  iEvent.getByToken(clusterToken_,clusters);
614  iEvent.getByToken(pixelclusterToken_,pixelclusters );
615 
616  // load dedx info
617  Handle<ValueMap<DeDxData> > dEdx1Handle;
618  Handle<ValueMap<DeDxData> > dEdx2Handle;
619  Handle<ValueMap<DeDxData> > dEdx3Handle;
620  try {iEvent.getByToken(dedx1Token_, dEdx1Handle);} catch ( cms::Exception& ) {;}
621  try {iEvent.getByToken(dedx2Token_, dEdx2Handle);} catch ( cms::Exception& ) {;}
622  try {iEvent.getByToken(dedx3Token_, dEdx3Handle);} catch ( cms::Exception& ) {;}
623  const ValueMap<DeDxData> dEdxTrack1 = *dEdx1Handle.product();
624  const ValueMap<DeDxData> dEdxTrack2 = *dEdx2Handle.product();
625  const ValueMap<DeDxData> dEdxTrack3 = *dEdx3Handle.product();
626 
627  // load track collections
628  const size_t trackSize(trackLabels_.size());
629  std::vector<reco::TrackCollection> trackCollection;
630  std::vector<edm::Handle<reco::TrackCollection> > trackCollectionHandle;
631  trackCollectionHandle.resize(trackSize);
632  size_t index = 0;
633  for(std::vector<edm::EDGetTokenT<reco::TrackCollection> >::const_iterator token = trackTokens_.begin();token!=trackTokens_.end();++token,++index) {
634  try {iEvent.getByToken(*token,trackCollectionHandle[index]);} catch ( cms::Exception& ) {;}
635  trackCollection.push_back(*trackCollectionHandle[index].product());
636  ntracks_[index] = trackCollection[index].size();
637  }
638 
639  // load the trajectory collections
640  std::vector<std::vector<Trajectory> > trajectoryCollection;
641  std::vector<edm::Handle<std::vector<Trajectory> > > trajectoryCollectionHandle;
642  trajectoryCollectionHandle.resize(trackSize);
643  index = 0;
644  for(std::vector<edm::EDGetTokenT<std::vector<Trajectory> > >::const_iterator token = trajectoryTokens_.begin();token!=trajectoryTokens_.end();++token,++index) {
645  try {iEvent.getByToken(*token,trajectoryCollectionHandle[index]);} catch ( cms::Exception& ) {;}
646  trajectoryCollection.push_back(*trajectoryCollectionHandle[index].product());
647  ntrajs_[index] = trajectoryCollection[index].size();
648  }
649 
650  // load the tracks/traj association maps
651  std::vector<TrajTrackAssociationCollection> TrajToTrackMap;
652  Handle<TrajTrackAssociationCollection> trajTrackAssociationHandle;
653  for(std::vector<edm::EDGetTokenT<TrajTrackAssociationCollection> >::const_iterator token = trajTrackAssoTokens_.begin();token!=trajTrackAssoTokens_.end();++token) {
654  try {iEvent.getByToken(*token,trajTrackAssociationHandle);} catch ( cms::Exception& ) {;}
655  TrajToTrackMap.push_back(*trajTrackAssociationHandle.product());
656  }
657 
658  // sanity check
659  if(!(!trackCollection.empty() && !trajectoryCollection.empty())) return;
660 
661  // build the reverse map tracks -> vertex
662  std::vector<std::map<size_t,int> > trackVertices;
663  for(size_t i=0;i<trackSize;++i) {
664  trackVertices.push_back(inVertex(trackCollection[0], vertexColl, globalvertexid_+1));
665  }
666 
667  // iterate over vertices
669  for(reco::VertexCollection::const_iterator v=vertexColl.begin();
670  v!=vertexColl.end(); ++v) {
671  nTracks_pvtx_ = v->tracksSize();
673  isValid_pvtx_ = int(v->isValid());
674  isFake_pvtx_ = int(v->isFake());
675  recx_pvtx_ = v->x();
676  recy_pvtx_ = v->y();
677  recz_pvtx_ = v->z();
678  recx_err_pvtx_ = v->xError();
679  recy_err_pvtx_ = v->yError();
680  recz_err_pvtx_ = v->zError();
681  globalvertexid_++;
682  vertices_->Fill();
683  }
684  }
685 
686  // iterate over pixel vertices
688  for(reco::VertexCollection::const_iterator v=pixelVertexColl.begin();
689  v!=pixelVertexColl.end(); ++v) {
690  nTracks_pvtx_ = v->tracksSize();
692  isValid_pvtx_ = int(v->isValid());
693  isFake_pvtx_ = int(v->isFake());
694  recx_pvtx_ = v->x();
695  recy_pvtx_ = v->y();
696  recz_pvtx_ = v->z();
697  recx_err_pvtx_ = v->xError();
698  recy_err_pvtx_ = v->yError();
699  recz_err_pvtx_ = v->zError();
700  pixelVertices_->Fill();
701  }
702  }
703 
704  // determine if each cluster is on a track or not, and record the local angle
705  // to do this, we use the first track/traj collection
706  std::vector<double> clusterOntrackAngles = onTrackAngles(clusters,trajectoryCollection[0]);
707  std::vector<std::pair<double,double> > pixclusterOntrackAngles = onTrackAngles(pixelclusters,trajectoryCollection[0]);
708 
709 /*
710  // iterate over trajectories
711  // note: when iterating over trajectories, it might be simpler to use the tracks/trajectories association map
712  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
713  }
714  // loop over all rechits from trajectories
715  //iterate over trajectories
716  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
717  Trajectory::DataContainer measurements = traj->measurements();
718  // iterate over measurements
719  for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
720  }
721  }
722 */
723 
724  // determine if each cluster is on a track or not, and record the trackid
725  std::vector< std::vector<int> > stripClusterOntrackIndices;
726  for(size_t i = 0; i<trackSize; ++i) {
727  stripClusterOntrackIndices.push_back(onTrack(clusters,trackCollection[i],globaltrackid_[i]+1));
728  }
729  std::vector< std::vector<int> > pixelClusterOntrackIndices;
730  for(size_t i = 0; i<trackSize; ++i) {
731  pixelClusterOntrackIndices.push_back(onTrack(pixelclusters,trackCollection[i],globaltrackid_[i]+1));
732  }
733  nclustersOntrack_ = count_if(stripClusterOntrackIndices[0].begin(),stripClusterOntrackIndices[0].end(),[](auto c){return c!=-1;});
734  npixClustersOntrack_ = count_if(pixelClusterOntrackIndices[0].begin(),pixelClusterOntrackIndices[0].end(),[](auto c){return c!=-1;});
735 
736  // iterate over tracks
737  for (size_t coll = 0; coll<trackCollection.size(); ++coll) {
738  uint32_t n_hits_barrel=0;
739  uint32_t n_hits_lowprob=0;
740  for(TrajTrackAssociationCollection::const_iterator it = TrajToTrackMap[coll].begin(); it!=TrajToTrackMap[coll].end(); ++it) {
741  reco::TrackRef itTrack = it->val;
742  edm::Ref<std::vector<Trajectory> > traj = it->key; // bug to find type of the key
743  eta_ = itTrack->eta();
744  phi_ = itTrack->phi();
745  try { // not all track collections have the dedx info... indeed at best one.
746  dedxNoM_ = dEdxTrack1[itTrack].numberOfMeasurements();
747  dedx1_ = dEdxTrack1[itTrack].dEdx();
748  dedx2_ = dEdxTrack2[itTrack].dEdx();
749  dedx3_ = dEdxTrack3[itTrack].dEdx();
750  } catch ( cms::Exception& ) {
751  dedxNoM_ = 0;
752  dedx1_ = 0.;
753  dedx2_ = 0.;
754  dedx3_ = 0.;
755  }
756  charge_ = itTrack->charge();
757  quality_ = itTrack->qualityMask();
758  foundhits_ = itTrack->found();
759  lostHits_ = itTrack->lost();
760  foundhitsStrips_ = itTrack->hitPattern().numberOfValidStripHits();
761  foundhitsPixels_ = itTrack->hitPattern().numberOfValidPixelHits();
762  losthitsStrips_ = itTrack->hitPattern().numberOfLostStripHits(reco::HitPattern::TRACK_HITS);
763  losthitsPixels_ = itTrack->hitPattern().numberOfLostPixelHits(reco::HitPattern::TRACK_HITS);
764  nLayers_ = uint32_t(itTrack->hitPattern().trackerLayersWithMeasurement());
765  p_ = itTrack->p();
766  pt_ = itTrack->pt();
767  chi2_ = itTrack->chi2();
768  ndof_ = (uint32_t)itTrack->ndof();
769  dz_ = itTrack->dz();
770  dzerr_ = itTrack->dzError();
771  dzCorr_ = itTrack->dz(beamSpot);
772  dxy_ = itTrack->dxy();
773  dxyerr_ = itTrack->dxyError();
774  dxyCorr_ = itTrack->dxy(beamSpot);
775  pterr_ = itTrack->ptError();
776  etaerr_ = itTrack->etaError();
777  phierr_ = itTrack->phiError();
778  qoverp_ = itTrack->qoverp();
779  xPCA_ = itTrack->vertex().x();
780  yPCA_ = itTrack->vertex().y();
781  zPCA_ = itTrack->vertex().z();
782  try { // only one track collection (at best) is connected to the main vertex
783  if(!vertexColl.empty() && !vertexColl.begin()->isFake()) {
784  trkWeightpvtx_ = vertexColl.begin()->trackWeight(itTrack);
785  } else
786  trkWeightpvtx_ = 0.;
787  } catch ( cms::Exception& ) {
788  trkWeightpvtx_ = 0.;
789  }
790  globaltrackid_[coll]++;
791  std::map<size_t,int>::const_iterator theV = trackVertices[coll].find(itTrack.key());
792  vertexid_ = (theV!=trackVertices[coll].end()) ? theV->second : 0;
793  // add missing hits (separate tree, common strip + pixel)
794  Trajectory::DataContainer const & measurements = traj->measurements();
796  for(Trajectory::DataContainer::const_iterator it = measurements.begin(); it!=measurements.end(); ++it) {
797  TrajectoryMeasurement::ConstRecHitPointer rechit = it->recHit();
798  if(!rechit->isValid()) {
799  // detid
800  detid_ = rechit->geographicalId();
801  // status
802  type_ = rechit->getType();
803  // position
804  LocalPoint local = it->predictedState().localPosition();
805  clPositionX_ = local.x();
806  clPositionY_ = local.y();
807  // global position
808  GlobalPoint global = it->predictedState().globalPosition();
809  globalX_ = global.x();
810  globalY_ = global.y();
811  globalZ_ = global.z();
812  // position in the measurement frame
813  measX_ = 0;
814  measY_ = 0;
816  const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(tracker_->idToDetUnit(detid_));
817  if(gdu && gdu->type().isTracker()) {
818  const Topology& topo = gdu->topology();
819  MeasurementPoint meas = topo.measurementPosition(local);
820  measX_ = meas.x();
821  measY_ = meas.y();
822  }
823  }
824  // local error
825  LocalError error = it->predictedState().localError().positionError();
826  errorX_ = error.xx();
827  errorY_ = error.yy();
828  // fill
829  missingHits_[coll]->Fill();
830  }
831  }
832  }
833  // compute the fraction of low probability pixels... will be added to the event tree
834  for(trackingRecHit_iterator it = itTrack->recHitsBegin(); it!=itTrack->recHitsEnd(); ++it) {
835  const TrackingRecHit* hit = &(**it);
836  const SiPixelRecHit* pixhit = dynamic_cast<const SiPixelRecHit*>(hit);
837  if(pixhit) {
838  DetId detId = pixhit->geographicalId();
840  ++n_hits_barrel;
841  double proba = pixhit->clusterProbability(0);
842  if(proba<=0.0) ++n_hits_lowprob;
843  }
844  }
845  }
846  // fill the track tree
847  if(functionality_tracks_) tracks_[coll]->Fill();
848  }
849  lowPixelProbabilityFraction_[coll] = n_hits_barrel>0 ? (float)n_hits_lowprob/n_hits_barrel : -1.;
850  }
851 
852  // iterate over clusters
853  nclusters_ = 0;
854  std::vector<double>::const_iterator angleIt = clusterOntrackAngles.begin();
855  uint32_t localCounter = 0;
856  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
859  uint32_t detid = DSViter->id();
860  nclusters_ += DSViter->size();
862  for(edmNew::DetSet<SiStripCluster>::const_iterator iter=begin;iter!=end;++iter,++angleIt,++localCounter) {
863  SiStripClusterInfo* siStripClusterInfo = new SiStripClusterInfo(*iter,iSetup,detid,std::string("")); //string = quality label
864  // general quantities
865  for(size_t i=0; i< trackSize; ++i) {
866  trackid_[i] = stripClusterOntrackIndices[i][localCounter];
867  }
868  onTrack_ = (trackid_[0] != (uint32_t)-1);
869  clWidth_ = siStripClusterInfo->width();
870  clPosition_ = siStripClusterInfo->baryStrip();
871  angle_ = *angleIt;
872  thickness_ = ((((DSViter->id()>>25)&0x7f)==0xd) ||
873  ((((DSViter->id()>>25)&0x7f)==0xe) && (((DSViter->id()>>5)&0x7)>4))) ? 500 : 300;
874  stripLength_ = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid))->specificTopology().stripLength();
875  int nstrips = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid))->specificTopology().nstrips();
876  maxCharge_ = siStripClusterInfo->maxCharge();
877  // signal and noise with gain corrections
878  clNormalizedCharge_ = siStripClusterInfo->charge() ;
879  clNormalizedNoise_ = siStripClusterInfo->noiseRescaledByGain() ;
880  clSignalOverNoise_ = siStripClusterInfo->signalOverNoise() ;
881  // signal and noise with gain corrections and angle corrections
882  clCorrectedCharge_ = clNormalizedCharge_ * fabs(cos(angle_)); // corrected for track angle
883  clCorrectedSignalOverNoise_ = clSignalOverNoise_ * fabs(cos(angle_)); // corrected for track angle
884  // signal and noise without gain corrections
885  clBareNoise_ = siStripClusterInfo->noise();
887  // global position
888  const StripGeomDetUnit* sgdu = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid));
890  globalX_ = gp.x();
891  globalY_ = gp.y();
892  globalZ_ = gp.z();
893  // cabling
894  detid_ = detid;
895  lldChannel_ = 1+(int(floor(iter->barycenter()))/256);
896  if(lldChannel_==2 && nstrips==512) lldChannel_=3;
898  delete siStripClusterInfo;
899  }
900  }
901  }
902 
903  // iterate over pixel clusters
904  npixClusters_ = 0;
905  std::vector<std::pair<double,double> >::const_iterator pixAngleIt = pixclusterOntrackAngles.begin();
906  localCounter = 0;
907  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator DSViter=pixelclusters->begin(); DSViter!=pixelclusters->end();DSViter++ ) {
910  uint32_t detid = DSViter->id();
911  npixClusters_ += DSViter->size();
913  for(edmNew::DetSet<SiPixelCluster>::const_iterator iter=begin;iter!=end;++iter,++pixAngleIt,++localCounter) {
914  // general quantities
915  for(size_t i=0; i< trackSize; ++i) {
916  trackid_[i] = pixelClusterOntrackIndices[i][localCounter];
917  }
918  onTrack_ = (trackid_[0] != (uint32_t)-1);
919  clPositionX_ = iter->x();
920  clPositionY_ = iter->y();
921  clSize_ = iter->size();
922  clSizeX_ = iter->sizeX();
923  clSizeY_ = iter->sizeY();
924  alpha_ = pixAngleIt->first;
925  beta_ = pixAngleIt->second;
926  charge_ = (iter->charge())/1000.;
927  chargeCorr_ = charge_ * sqrt( 1.0 / ( 1.0/pow( tan(alpha_), 2 ) + 1.0/pow( tan(beta_), 2 ) + 1.0 ))/1000.;
928  // global position
929  const PixelGeomDetUnit* pgdu = static_cast<const PixelGeomDetUnit*>(tracker_->idToDet(detid));
931  globalX_ = gp.x();
932  globalY_ = gp.y();
933  globalZ_ = gp.z();
934  // cabling
935  detid_ = detid;
936  // fill
937  pixclusters_->Fill();
938  }
939  }
940  }
941 
942  // topological quantities - uses the first track collection
943  EventShape shape(trackCollection[0]);
944  math::XYZTLorentzVectorF thrust = shape.thrust();
945  thrustValue_ = thrust.t();
946  thrustX_ = thrust.x();
947  thrustY_ = thrust.y();
948  thrustZ_ = thrust.z();
949  sphericity_ = shape.sphericity();
950  planarity_ = shape.planarity();
951  aplanarity_ = shape.aplanarity();
952 
953  // fill event tree
954  if(functionality_events_) event_->Fill();
955 
956 }
RunNumber_t run() const
Definition: EventID.h:39
uint8_t maxCharge() const
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
EventNumber_t event() const
Definition: EventID.h:41
double z0() const
z coordinate
Definition: BeamSpot.h:68
std::vector< TTree * > tracks_
const TechnicalTriggerWord & gtTechnicalTriggerWord() const
get/set technical trigger bits
Definition: L1GtFdlWord.h:149
float xx() const
Definition: LocalError.h:24
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
EventAuxiliary const & eventAuxiliary() const override
Definition: Event.h:92
float clusterProbability(unsigned int flags=0) const
T y() const
Definition: PV2DBase.h:46
virtual const GeomDetType & type() const
Definition: GeomDet.cc:85
std::vector< int > onTrack(edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const reco::TrackCollection &, uint32_t)
float noise() const
double sumPtSquared(const reco::Vertex &)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:517
virtual const Topology & topology() const
Definition: GeomDet.cc:81
float noiseRescaledByGain() const
bool isTracker() const
Definition: GeomDetType.cc:34
bool accept() const
Has at least one path accepted the event?
edm::EDGetTokenT< edm::TriggerResults > HLTToken_
float baryStrip() const
std::vector< Track > TrackCollection
collection of Tracks
Definition: TrackFwd.h:15
Timestamp const & time() const
T y() const
Definition: PV3DBase.h:63
std::vector< Vertex > VertexCollection
collection of Vertex objects
Definition: VertexFwd.h:9
data_type const * const_iterator
Definition: DetSetNew.h:30
key_type key() const
Accessor for product key.
Definition: Ref.h:263
virtual const StripTopology & specificTopology() const
Returns a reference to the strip proxy topology.
edm::ESHandle< TrackerGeometry > tracker_
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
int bunchCrossing() const
LuminosityBlockNumber_t luminosityBlock() const
edm::EDGetTokenT< reco::BeamSpot > bsToken_
const TrackerGeomDet * idToDetUnit(DetId) const override
Return the pointer to the GeomDetUnit corresponding to a given DetId.
double dydz() const
dydz slope
Definition: BeamSpot.h:84
std::vector< bool > DecisionWordExtended
float signalOverNoise() const
Measurement2DPoint MeasurementPoint
Measurement points are two-dimensional by default.
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
int storeNumber() const
uint16_t charge() const
float yy() const
Definition: LocalError.h:26
virtual LocalPoint localPosition(float strip) const =0
int orbitNumber() const
std::vector< bool > DecisionWord
typedefs
edm::EventNumber_t eventid_
T sqrt(T t)
Definition: SSEVec.h:18
unsigned int size() const
Get number of paths stored.
T z() const
Definition: PV3DBase.h:64
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
math::XYZPoint Point
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:41
uint16_t width() const
edm::EDGetTokenT< L1GlobalTriggerReadoutRecord > L1Token_
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
std::vector< bool > TechnicalTriggerWord
technical trigger bits (64 bits)
#define end
Definition: vmac.h:39
std::vector< double > onTrackAngles(edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, const std::vector< Trajectory > &)
bool isValid() const
Definition: HandleBase.h:74
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::vector< edm::InputTag > trackLabels_
double dxdz() const
dxdz slope
Definition: BeamSpot.h:82
edm::EDGetTokenT< SiStripEventSummary > summaryToken_
Definition: DetId.h:18
std::vector< edm::EDGetTokenT< reco::TrackCollection > > trackTokens_
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx2Token_
JetCorrectorParametersCollection coll
Definition: classes.h:10
T const * product() const
Definition: Handle.h:74
const L1GtFdlWord gtFdlWord(int bxInEventValue) const
get / set FDL word (record) in the GT readout record
edm::EDGetTokenT< reco::VertexCollection > vertexToken_
double sigmaZ() const
sigma z
Definition: BeamSpot.h:80
const cms_uint16_t physicsDeclared() const
get/set "physics declared" bit
Definition: L1GtFdlWord.h:227
virtual const PixelTopology & specificTopology() const
Returns a reference to the pixel proxy topology.
const DecisionWord & gtDecisionWord() const
get/set/print algorithms bits (decision word)
Definition: L1GtFdlWord.h:171
TrackingRecHit::ConstRecHitPointer ConstRecHitPointer
virtual LocalPoint localPosition(const MeasurementPoint &) const =0
std::map< size_t, int > inVertex(const reco::TrackCollection &, const reco::VertexCollection &, uint32_t)
edm::EventID id() const
Definition: EventBase.h:59
fixed size matrix
float delay(const SiStripEventSummary &)
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx1Token_
#define begin
Definition: vmac.h:32
HLT enums.
iterator end()
Definition: DetSetNew.h:70
Structure Point Contains parameters of Gaussian fits to DMRs.
Definition: DMRtrends.cc:55
std::vector< TTree * > missingHits_
edm::EDGetTokenT< edmNew::DetSetVector< SiPixelCluster > > pixelclusterToken_
std::vector< edm::EDGetTokenT< TrajTrackAssociationCollection > > trajTrackAssoTokens_
T get() const
Definition: EventSetup.h:71
edm::EDGetTokenT< edm::ValueMap< reco::DeDxData > > dedx3Token_
edm::EDGetTokenT< edmNew::DetSetVector< SiStripCluster > > clusterToken_
const TrackerGeomDet * idToDet(DetId) const override
double y0() const
y coordinate
Definition: BeamSpot.h:66
DetId geographicalId() const
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< float > > XYZTLorentzVectorF
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:22
const DecisionWordExtended & gtDecisionWordExtended() const
get/set extended algorithms bits (extended decision word)
Definition: L1GtFdlWord.h:203
T x() const
Definition: PV2DBase.h:45
T x() const
Definition: PV3DBase.h:62
T const * product() const
Definition: ESHandle.h:86
const cms_uint32_t orbitNr() const
get/set orbit number
Definition: L1GtFdlWord.h:332
TimeValue_t value() const
Definition: Timestamp.h:56
std::vector< edm::EDGetTokenT< std::vector< Trajectory > > > trajectoryTokens_
edm::EDGetTokenT< reco::VertexCollection > pixelVertexToken_
Power< A, B >::type pow(const A &a, const B &b)
Definition: Power.h:40
Our base class.
Definition: SiPixelRecHit.h:23
double x0() const
x coordinate
Definition: BeamSpot.h:64
iterator begin()
Definition: DetSetNew.h:67
void TrackerDpgAnalysis::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
)
overrideprivate

Definition at line 960 of file TrackerDpgAnalysis.cc.

References edmScanValgrind::buffer, cabling_, cablingFileName_, ccuAdd_, ccuChan_, connections_, gather_cfg::cout, dcuId_, delay(), delay_, delayFileNames_, detid_, fecCrate_, fecRing_, fecSlot_, fedCh_, SiStripFedCabling::fedConnections(), fedId_, SiStripFedCabling::fedIds(), fiberLength_, TrackerMap::fill_current_val(), edm::EventSetup::get(), globalX_, globalY_, globalZ_, runTauDisplay::gp, hlNames_, hltConfig_, HLTTag_, mps_fire::i, TrackerGeometry::idToDet(), HLTConfigProvider::init(), mps_splice::line, lldChannel_, moduleId_, moduleName_, dataset::name, edm::InputTag::process(), edm::ESHandle< T >::product(), psumap_, PSUname_, readoutmap_, TrackerMap::save(), AlCaHLTBitMon_QueryRunRegistry::string, GeomDet::surface(), Surface::toGlobal(), toStringId(), toStringName(), tracker_, HLTConfigProvider::triggerNames(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

961 {
962 
963  //Retrieve tracker topology from geometry
964  edm::ESHandle<TrackerTopology> tTopoHandle;
965  iSetup.get<TrackerTopologyRcd>().get(tTopoHandle);
966  const TrackerTopology* const tTopo = tTopoHandle.product();
967 
968  //geometry
969  iSetup.get<TrackerDigiGeometryRecord>().get(tracker_);
970 
971  //HLT names
972  bool changed (true);
973  if (hltConfig_.init(iRun,iSetup,HLTTag_.process(),changed)) {
974  if (changed) {
976  }
977  }
978  int i=0;
979  for(std::vector<std::string>::const_iterator it = hlNames_.begin(); it<hlNames_.end();++it) {
980  std::cout << (i++) << " = " << (*it) << std::endl;
981  }
982 
983  // read the delay offsets for each device from input files
984  // this is only for the so-called "random delay" run
985  std::map<uint32_t,float> delayMap = delay(delayFileNames_);
986  TrackerMap tmap("Delays");
987 
988  // cabling I (readout)
989  iSetup.get<SiStripFedCablingRcd>().get( cabling_ );
990  auto feds = cabling_->fedIds() ;
991  for(auto fedid = feds.begin();fedid<feds.end();++fedid) {
992  auto connections = cabling_->fedConnections(*fedid);
993  for(auto conn=connections.begin();conn<connections.end();++conn) {
994  // Fill the "old" map to be used for lookup during analysis
995  if(conn->isConnected())
996  connections_.insert(std::make_pair(conn->detId(),new FedChannelConnection(*conn)));
997  // Fill the standalone tree (once for all)
998  if(conn->isConnected()) {
999  detid_ = conn->detId();
1000  strncpy(moduleName_,toStringName(detid_,tTopo).c_str(),256);
1001  strncpy(moduleId_,toStringId(detid_).c_str(),256);
1002  lldChannel_ = conn->lldChannel();
1003  dcuId_ = conn->dcuId();
1004  fecCrate_ = conn->fecCrate();
1005  fecSlot_ = conn->fecSlot();
1006  fecRing_ = conn->fecRing();
1007  ccuAdd_ = conn->ccuAddr();
1008  ccuChan_ = conn->ccuChan();
1009  fedId_ = conn->fedId();
1010  fedCh_ = conn->fedCh();
1011  fiberLength_ = conn->fiberLength();
1012  delay_ = delayMap[dcuId_];
1013  const StripGeomDetUnit* sgdu = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid_));
1015  globalX_ = gp.x();
1016  globalY_ = gp.y();
1017  globalZ_ = gp.z();
1018  readoutmap_->Fill();
1019  tmap.fill_current_val(detid_,delay_);
1020  }
1021  }
1022  }
1023  if(!delayMap.empty()) tmap.save(true, 0, 0, "delaymap.png");
1024 
1025  // cabling II (DCU map)
1026  std::ifstream cablingFile(cablingFileName_.c_str());
1027  if(cablingFile.is_open()) {
1028  char buffer[1024];
1029  cablingFile.getline(buffer,1024);
1030  while(!cablingFile.eof()) {
1031  std::istringstream line(buffer);
1032  std::string name;
1033  // one line contains the PSU name + all dcuids connected to it.
1034  line >> name;
1035  strncpy(PSUname_,name.c_str(),256);
1036  while(!line.eof()) {
1037  line >> dcuId_;
1038  psumap_->Fill();
1039  }
1040  cablingFile.getline(buffer,1024);
1041  }
1042  } else {
1043  edm::LogWarning("BadConfig") << " The PSU file does not exist. The psumap tree will not be filled."
1044  << std::endl << " Looking for " << cablingFileName_.c_str() << "."
1045  << std::endl << " Please specify a valid filename through the PSUFileName untracked parameter.";
1046  }
1047 }
GlobalPoint toGlobal(const Point2DBase< Scalar, LocalTag > lp) const
Definition: Surface.h:106
Point3DBase< Scalar, LocalTag > LocalPoint
Definition: Definitions.h:32
const std::vector< std::string > & triggerNames() const
names of trigger paths
T y() const
Definition: PV3DBase.h:63
std::string toStringId(uint32_t)
edm::ESHandle< TrackerGeometry > tracker_
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:42
std::vector< std::string > delayFileNames_
Class containning control, module, detector and connection information, at the level of a FED channel...
edm::ESHandle< SiStripFedCabling > cabling_
FedsConstIterRange fedIds() const
T z() const
Definition: PV3DBase.h:64
HLTConfigProvider hltConfig_
std::multimap< const uint32_t, const FedChannelConnection * > connections_
bool init(const edm::Run &iRun, const edm::EventSetup &iSetup, const std::string &processName, bool &changed)
d&#39;tor
ConnsConstIterRange fedConnections(uint16_t fed_id) const
std::string const & process() const
Definition: InputTag.h:40
std::string toStringName(uint32_t, const TrackerTopology *)
float delay(const SiStripEventSummary &)
T get() const
Definition: EventSetup.h:71
const TrackerGeomDet * idToDet(DetId) const override
T x() const
Definition: PV3DBase.h:62
T const * product() const
Definition: ESHandle.h:86
std::vector< std::string > hlNames_
float TrackerDpgAnalysis::delay ( const SiStripEventSummary summary)
protected

Definition at line 1393 of file TrackerDpgAnalysis.cc.

References heppy_report::summary.

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

1393  {
1394  float delay = const_cast<SiStripEventSummary&>(summary).ttcrx();
1395  uint32_t latencyCode = (const_cast<SiStripEventSummary&>(summary).layerScanned()>>24)&0xff;
1396  int latencyShift = latencyCode & 0x3f; // number of bunch crossings between current value and start of scan... must be positive
1397  if(latencyShift>32) latencyShift -=64; // allow negative values: we cover [-32,32].. should not be needed.
1398  if((latencyCode>>6)==2) latencyShift -= 3; // layer in deconv, rest in peak
1399  if((latencyCode>>6)==1) latencyShift += 3; // layer in peak, rest in deconv
1400  float correctedDelay = delay - (latencyShift*25.); // shifts the delay so that 0 corresponds to the current settings.
1401  return correctedDelay;
1402 }
float delay(const SiStripEventSummary &)
std::map< uint32_t, float > TrackerDpgAnalysis::delay ( const std::vector< std::string > &  files)
protected

Definition at line 1404 of file TrackerDpgAnalysis.cc.

References edmScanValgrind::buffer, DEFINE_FWK_MODULE, delay(), FrontierConditions_GlobalTag_cff::file, mps_splice::line, and AlCaHLTBitMon_QueryRunRegistry::string.

1404  {
1405  // prepare output
1406  uint32_t dcuid;
1407  float delay;
1408  std::map<uint32_t,float> delayMap;
1409  //iterator over input files
1410  for(std::vector<std::string>::const_iterator file=files.begin();file<files.end();++file){
1411  // open the file
1412  std::ifstream cablingFile(file->c_str());
1413  if(cablingFile.is_open()) {
1414  char buffer[1024];
1415  // read one line
1416  cablingFile.getline(buffer,1024);
1417  while(!cablingFile.eof()) {
1418  std::string line(buffer);
1419  size_t pos = line.find("dcuid");
1420  // one line containing dcuid
1421  if(pos != std::string::npos) {
1422  // decode dcuid
1423  std::string dcuids = line.substr(pos+7,line.find(" ",pos)-pos-8);
1424  std::istringstream dcuidstr(dcuids);
1425  dcuidstr >> std::hex >> dcuid;
1426  // decode delay
1427  pos = line.find("difpll");
1428  std::string diffs = line.substr(pos+8,line.find(" ",pos)-pos-9);
1429  std::istringstream diffstr(diffs);
1430  diffstr >> delay;
1431  // fill the map
1432  delayMap[dcuid] = delay;
1433  }
1434  // iterate
1435  cablingFile.getline(buffer,1024);
1436  }
1437  } else {
1438  edm::LogWarning("BadConfig") << " The delay file does not exist. The delay map will not be filled properly."
1439  << std::endl << " Looking for " << file->c_str() << "."
1440  << std::endl << " Please specify valid filenames through the DelayFileNames untracked parameter.";
1441  }
1442  }
1443  return delayMap;
1444 }
float delay(const SiStripEventSummary &)
void TrackerDpgAnalysis::endJob ( void  )
overrideprivatevirtual

Reimplemented from edm::EDAnalyzer.

Definition at line 1051 of file TrackerDpgAnalysis.cc.

References edmScanValgrind::buffer, event_, mps_fire::i, psumap_, readoutmap_, tracks_, and vertices_.

1051  {
1052  for(size_t i = 0; i<tracks_.size();++i) {
1053  char buffer[256];
1054  sprintf(buffer,"trackid%lu",(unsigned long)i);
1055  if(tracks_[i]->GetEntries()) tracks_[i]->BuildIndex(buffer,"eventid");
1056  }
1057  /* not needed: missing hits is a high-level quantity
1058  for(size_t i = 0; i<missingHits_.size();++i) {
1059  char buffer[256];
1060  sprintf(buffer,"trackid%lu",(unsigned long)i);
1061  if(missingHits_[i]->GetEntries()) missingHits_[i]->BuildIndex(buffer);
1062  }
1063  */
1064  if(vertices_->GetEntries()) vertices_->BuildIndex("vertexid","eventid");
1065  if(event_->GetEntries()) event_->BuildIndex("runid","eventid");
1066  if(psumap_->GetEntries()) psumap_->BuildIndex("dcuId");
1067  if(readoutmap_->GetEntries()) readoutmap_->BuildIndex("detid","lldChannel");
1068 }
std::vector< TTree * > tracks_
void TrackerDpgAnalysis::insertMeasurement ( std::multimap< const uint32_t, std::pair< LocalPoint, double > > &  collection,
const TransientTrackingRecHit hit,
double  tla 
)
protected

Definition at line 1105 of file TrackerDpgAnalysis.cc.

References universalConfigTemplate::collection, TrackingRecHit::geographicalId(), BaseTrackerRecHit::localPosition(), DetId::rawId(), and SiTrackerMultiRecHit::recHits().

Referenced by insertMeasurement(), onTrack(), and onTrackAngles().

1106 {
1107  if(!hit) return;
1108  const SiTrackerMultiRecHit* multihit=dynamic_cast<const SiTrackerMultiRecHit*>(hit);
1109  const SiStripRecHit2D* singlehit=dynamic_cast<const SiStripRecHit2D*>(hit);
1110  const SiStripRecHit1D* hit1d=dynamic_cast<const SiStripRecHit1D*>(hit);
1111  if(hit1d) { //...->33X
1112  collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(hit1d->localPosition(),tla)));
1113  } else if(singlehit) { // 41X->...
1114  collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(singlehit->localPosition(),tla)));
1115  }
1116  else if(multihit){
1117  std::vector< const TrackingRecHit * > childs = multihit->recHits();
1118  for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1119  insertMeasurement(collection,dynamic_cast<const TrackingRecHit*>(*it),tla);
1120  }
1121  }
1122 }
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
LocalPoint localPosition() const final
DetId geographicalId() const
void TrackerDpgAnalysis::insertMeasurement ( std::multimap< const uint32_t, std::pair< int, int > > &  collection,
const TrackingRecHit hit,
int  trackid 
)
protected

Definition at line 1158 of file TrackerDpgAnalysis.cc.

References SiStripRecHit1D::cluster(), SiStripRecHit2D::cluster(), universalConfigTemplate::collection, TrackingRecHit::geographicalId(), insertMeasurement(), DetId::rawId(), and SiTrackerMultiRecHit::recHits().

1159 {
1160  if(!hit) return;
1161  const SiTrackerMultiRecHit* multihit=dynamic_cast<const SiTrackerMultiRecHit*>(hit);
1162  const SiStripRecHit2D* singlehit=dynamic_cast<const SiStripRecHit2D*>(hit);
1163  const SiStripRecHit1D* hit1d=dynamic_cast<const SiStripRecHit1D*>(hit);
1164  if(hit1d) { // 41X->...
1165  collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(int(hit1d->cluster()->barycenter()),trackid)));
1166  } else if(singlehit) { //...->33X
1167  collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(int(singlehit->cluster()->barycenter()),trackid)));
1168  }
1169  else if(multihit){
1170  std::vector< const TrackingRecHit * > childs = multihit->recHits();
1171  for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
1172  insertMeasurement(collection,*it,trackid);
1173  }
1174  }
1175 }
ClusterRef cluster() const
std::vector< const TrackingRecHit * > recHits() const override
Access to component RecHits (if any)
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
ClusterRef cluster() const
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
DetId geographicalId() const
void TrackerDpgAnalysis::insertMeasurement ( std::multimap< const uint32_t, std::pair< LocalPoint, std::pair< double, double > > > &  collection,
const TransientTrackingRecHit hit,
double  alpha,
double  beta 
)
protected

Definition at line 1233 of file TrackerDpgAnalysis.cc.

References universalConfigTemplate::collection, TrackingRecHit::geographicalId(), BaseTrackerRecHit::localPosition(), and DetId::rawId().

1234 {
1235  if(!hit) return;
1236  const SiPixelRecHit* pixhit = dynamic_cast<const SiPixelRecHit*>(hit);
1237  if(pixhit) {
1238  collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(pixhit->localPosition(),std::make_pair(alpha,beta))));
1239  }
1240 }
float alpha
Definition: AMPTWrapper.h:95
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
LocalPoint localPosition() const final
DetId geographicalId() const
Our base class.
Definition: SiPixelRecHit.h:23
void TrackerDpgAnalysis::insertMeasurement ( std::multimap< const uint32_t, std::pair< std::pair< float, float >, int > > &  collection,
const TrackingRecHit hit,
int  trackid 
)
protected

Definition at line 1276 of file TrackerDpgAnalysis.cc.

References SiPixelRecHit::cluster(), universalConfigTemplate::collection, TrackingRecHit::geographicalId(), and DetId::rawId().

1277 {
1278  if(!hit) return;
1279  const SiPixelRecHit* pixhit = dynamic_cast<const SiPixelRecHit*>(hit);
1280  if(pixhit) {
1281  collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(std::make_pair(pixhit->cluster()->x(),pixhit->cluster()->y()),trackid)));
1282  }
1283 }
constexpr uint32_t rawId() const
get the raw id
Definition: DetId.h:50
ClusterRef cluster() const
Definition: SiPixelRecHit.h:49
DetId geographicalId() const
Our base class.
Definition: SiPixelRecHit.h:23
std::map< size_t, int > TrackerDpgAnalysis::inVertex ( const reco::TrackCollection tracks,
const reco::VertexCollection vertices,
uint32_t  firstVertex 
)
protected

Definition at line 1177 of file TrackerDpgAnalysis.cc.

References convertSQLitetoXML_cfg::output, and findQualityFiles::v.

Referenced by analyze().

1178 {
1179  // build reverse map track -> vertex
1180  std::map<size_t,int> output;
1181  uint32_t vertexid = firstVertex;
1182  for(reco::VertexCollection::const_iterator v = vertices.begin(); v!=vertices.end(); ++v,++vertexid) {
1183  reco::Vertex::trackRef_iterator it = v->tracks_begin();
1184  reco::Vertex::trackRef_iterator lastTrack = v->tracks_end();
1185  for(;it!=lastTrack;++it) {
1186  output[it->key()] = vertexid;
1187  }
1188  }
1189  return output;
1190 }
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:37
std::vector< int > TrackerDpgAnalysis::onTrack ( edm::Handle< edmNew::DetSetVector< SiStripCluster > > &  clusters,
const reco::TrackCollection trackVec,
uint32_t  firstTrack 
)
protected

Definition at line 1124 of file TrackerDpgAnalysis.cc.

References begin, haddnano::cl, fastPrimaryVertexProducer_cfi::clusters, end, insertMeasurement(), and mps_fire::result.

Referenced by analyze().

1126 {
1127  std::vector<int> result;
1128  // first, build a list of positions and trackid on tracks
1129  std::multimap<const uint32_t,std::pair<int,int> > onTrackPositions;
1130  uint32_t trackid = firstTrack;
1131  for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1132  for(trackingRecHit_iterator it = itTrack->recHitsBegin(); it!=itTrack->recHitsEnd(); ++it) {
1133  const TrackingRecHit* hit = &(**it);
1134  insertMeasurement(onTrackPositions,hit,trackid);
1135  }
1136  }
1137  // then loop over the clusters to check
1138  int thetrackid = -1;
1139  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
1142  std::pair< std::multimap<uint32_t,std::pair<int,int> >::const_iterator,
1143  std::multimap<uint32_t,std::pair<int,int> >::const_iterator> range =
1144  onTrackPositions.equal_range(DSViter->id());
1145  for(edmNew::DetSet<SiStripCluster>::const_iterator iter=begin;iter!=end;++iter) {
1146  thetrackid = -1;
1147  for(std::multimap<uint32_t,std::pair<int,int> >::const_iterator cl = range.first; cl!= range.second; ++cl) {
1148  if(fabs(cl->second.first-iter->barycenter())<2) {
1149  thetrackid = cl->second.second;
1150  }
1151  }
1152  result.push_back(thetrackid);
1153  }
1154  }
1155  return result;
1156 }
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
data_type const * const_iterator
Definition: DetSetNew.h:30
#define end
Definition: vmac.h:39
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
#define begin
Definition: vmac.h:32
std::vector< int > TrackerDpgAnalysis::onTrack ( edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &  clusters,
const reco::TrackCollection trackVec,
uint32_t  firstTrack 
)
protected

Definition at line 1242 of file TrackerDpgAnalysis.cc.

References begin, haddnano::cl, fastPrimaryVertexProducer_cfi::clusters, end, insertMeasurement(), and mps_fire::result.

1244 {
1245  std::vector<int> result;
1246  // first, build a list of positions and trackid on tracks
1247  std::multimap<const uint32_t,std::pair<std::pair<float, float>,int> > onTrackPositions;
1248  uint32_t trackid = firstTrack;
1249  for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
1250  for(trackingRecHit_iterator it = itTrack->recHitsBegin(); it!=itTrack->recHitsEnd(); ++it) {
1251  const TrackingRecHit* hit = &(**it);
1252  insertMeasurement(onTrackPositions,hit,trackid);
1253  }
1254  }
1255  // then loop over the clusters to check
1256  int thetrackid = -1;
1257  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
1260  for(edmNew::DetSet<SiPixelCluster>::const_iterator iter=begin;iter!=end;++iter) {
1261  thetrackid = -1;
1262  std::pair< std::multimap<uint32_t,std::pair<std::pair<float, float>,int> >::const_iterator,
1263  std::multimap<uint32_t,std::pair<std::pair<float, float>,int> >::const_iterator> range =
1264  onTrackPositions.equal_range(DSViter->id());
1265  for(std::multimap<uint32_t,std::pair<std::pair<float, float>,int> >::const_iterator cl = range.first; cl!= range.second; ++cl) {
1266  if((fabs(cl->second.first.first-iter->x())<2)&&(fabs(cl->second.first.second-iter->y())<2)) {
1267  thetrackid = cl->second.second;
1268  }
1269  }
1270  result.push_back(thetrackid);
1271  }
1272  }
1273  return result;
1274 }
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
data_type const * const_iterator
Definition: DetSetNew.h:30
#define end
Definition: vmac.h:39
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
#define begin
Definition: vmac.h:32
std::vector< double > TrackerDpgAnalysis::onTrackAngles ( edm::Handle< edmNew::DetSetVector< SiStripCluster > > &  clusters,
const std::vector< Trajectory > &  trajVec 
)
protected

Definition at line 1070 of file TrackerDpgAnalysis.cc.

References angle(), begin, haddnano::cl, fastPrimaryVertexProducer_cfi::clusters, end, TrackerGeometry::idToDet(), insertMeasurement(), Topology::measurementPosition(), mps_fire::result, GeomDet::topology(), tracker_, and PV2DBase< T, PVType, FrameType >::x().

Referenced by analyze().

1072 {
1073  std::vector<double> result;
1074  // first, build a list of positions and angles on trajectories
1075  std::multimap<const uint32_t,std::pair<LocalPoint,double> > onTrackPositions;
1076  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1077  Trajectory::DataContainer measurements = traj->measurements();
1078  for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1079  double tla = meas->updatedState().localDirection().theta();
1080  insertMeasurement(onTrackPositions,&(*(meas->recHit())),tla);
1081  }
1082  }
1083  // then loop over the clusters to check
1084  double angle = 0.;
1085  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
1088  std::pair< std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator,
1089  std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator> range =
1090  onTrackPositions.equal_range(DSViter->id());
1091  const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(tracker_->idToDet(DSViter->id()));
1092  for(edmNew::DetSet<SiStripCluster>::const_iterator iter=begin;iter!=end;++iter) {
1093  angle = 0.;
1094  for(std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator cl = range.first; cl!= range.second; ++cl) {
1095  if(fabs(gdu->topology().measurementPosition(cl->second.first).x()-iter->barycenter())<2) {
1096  angle = cl->second.second;
1097  }
1098  }
1099  result.push_back(angle);
1100  }
1101  }
1102  return result;
1103 }
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
virtual const Topology & topology() const
Definition: GeomDet.cc:81
data_type const * const_iterator
Definition: DetSetNew.h:30
edm::ESHandle< TrackerGeometry > tracker_
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
#define end
Definition: vmac.h:39
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
#define begin
Definition: vmac.h:32
const TrackerGeomDet * idToDet(DetId) const override
T x() const
Definition: PV2DBase.h:45
T angle(T x1, T y1, T z1, T x2, T y2, T z2)
Definition: angle.h:11
std::vector< std::pair< double, double > > TrackerDpgAnalysis::onTrackAngles ( edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &  clusters,
const std::vector< Trajectory > &  trajVec 
)
protected

Definition at line 1192 of file TrackerDpgAnalysis.cc.

References alpha, begin, pfBoostedDoubleSVAK8TagInfos_cfi::beta, haddnano::cl, fastPrimaryVertexProducer_cfi::clusters, end, TrackerGeometry::idToDet(), insertMeasurement(), Topology::measurementPosition(), mps_fire::result, GeomDet::topology(), tracker_, PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::y(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

1194 {
1195  std::vector<std::pair<double,double> > result;
1196  // first, build a list of positions and angles on trajectories
1197  std::multimap<const uint32_t,std::pair<LocalPoint,std::pair<double,double> > > onTrackPositions;
1198  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
1199  Trajectory::DataContainer measurements = traj->measurements();
1200  for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
1201  LocalVector localDir = meas->updatedState().localDirection();
1202  double alpha = atan2(localDir.z(), localDir.x());
1203  double beta = atan2(localDir.z(), localDir.y());
1204  insertMeasurement(onTrackPositions,&(*(meas->recHit())),alpha,beta);
1205  }
1206  }
1207  // then loop over the clusters to check
1208  double alpha = 0.;
1209  double beta = 0.;
1210  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
1213  for(edmNew::DetSet<SiPixelCluster>::const_iterator iter=begin;iter!=end;++iter) {
1214  alpha = 0.;
1215  beta = 0.;
1216  std::pair< std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator,
1217  std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator> range =
1218  onTrackPositions.equal_range(DSViter->id());
1219  const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(tracker_->idToDet(DSViter->id()));
1220  for(std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator cl = range.first; cl!= range.second; ++cl) {
1221  if(fabs(gdu->topology().measurementPosition(cl->second.first).x()-iter->x())<2 &&
1222  fabs(gdu->topology().measurementPosition(cl->second.first).y()-iter->y())<2 ) {
1223  alpha = cl->second.second.first;
1224  beta = cl->second.second.second;
1225  }
1226  }
1227  result.push_back(std::make_pair(alpha,beta));
1228  }
1229  }
1230  return result;
1231 }
float alpha
Definition: AMPTWrapper.h:95
boost::transform_iterator< IterHelp, const_IdIter > const_iterator
T y() const
Definition: PV2DBase.h:46
virtual const Topology & topology() const
Definition: GeomDet.cc:81
T y() const
Definition: PV3DBase.h:63
data_type const * const_iterator
Definition: DetSetNew.h:30
edm::ESHandle< TrackerGeometry > tracker_
std::vector< TrajectoryMeasurement > DataContainer
Definition: Trajectory.h:44
T z() const
Definition: PV3DBase.h:64
virtual MeasurementPoint measurementPosition(const LocalPoint &) const =0
#define end
Definition: vmac.h:39
void insertMeasurement(std::multimap< const uint32_t, std::pair< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
#define begin
Definition: vmac.h:32
const TrackerGeomDet * idToDet(DetId) const override
T x() const
Definition: PV2DBase.h:45
T x() const
Definition: PV3DBase.h:62
double TrackerDpgAnalysis::sumPtSquared ( const reco::Vertex v)
protected

Definition at line 1383 of file TrackerDpgAnalysis.cc.

References PVValHelper::pT, reco::Vertex::tracks_begin(), and reco::Vertex::tracks_end().

Referenced by analyze().

1383  {
1384  double sum = 0.;
1385  double pT;
1386  for (reco::Vertex::trackRef_iterator it = v.tracks_begin(); it != v.tracks_end(); it++) {
1387  pT = (**it).pt();
1388  sum += pT*pT;
1389  }
1390  return sum;
1391 }
trackRef_iterator tracks_end() const
last iterator over tracks
Definition: Vertex.cc:81
std::vector< TrackBaseRef >::const_iterator trackRef_iterator
The iteratator for the vector<TrackRef>
Definition: Vertex.h:37
trackRef_iterator tracks_begin() const
first iterator over tracks
Definition: Vertex.cc:76
std::string TrackerDpgAnalysis::toStringId ( uint32_t  rawid)
protected

Definition at line 1375 of file TrackerDpgAnalysis.cc.

References TauDecayModes::dec, MillePedeFileConverter_cfg::out, convertSQLitetoXML_cfg::output, and AlCaHLTBitMon_QueryRunRegistry::string.

Referenced by beginRun().

1375  {
1376  std::string out;
1377  std::stringstream output;
1378  output << rawid << " (0x" << std::hex << rawid << std::dec << ")";
1379  out = output.str();
1380  return out;
1381 }
std::string TrackerDpgAnalysis::toStringName ( uint32_t  rawid,
const TrackerTopology tTopo 
)
protected

Definition at line 1285 of file TrackerDpgAnalysis.cc.

References MillePedeFileConverter_cfg::out, convertSQLitetoXML_cfg::output, AlCaHLTBitMon_QueryRunRegistry::string, SiStripDetId::subDetector(), TrackerTopology::tecIsDoubleSide(), TrackerTopology::tecIsFrontPetal(), TrackerTopology::tecIsRPhi(), TrackerTopology::tecIsZPlusSide(), TrackerTopology::tecModule(), TrackerTopology::tecPetalNumber(), TrackerTopology::tecRing(), TrackerTopology::tecWheel(), TrackerTopology::tibIsDoubleSide(), TrackerTopology::tibIsExternalString(), TrackerTopology::tibIsRPhi(), TrackerTopology::tibIsZPlusSide(), TrackerTopology::tibLayer(), TrackerTopology::tibModule(), TrackerTopology::tibString(), TrackerTopology::tidIsDoubleSide(), TrackerTopology::tidIsFrontRing(), TrackerTopology::tidIsRPhi(), TrackerTopology::tidIsZPlusSide(), TrackerTopology::tidModule(), TrackerTopology::tidRing(), TrackerTopology::tidWheel(), TrackerTopology::tobIsDoubleSide(), TrackerTopology::tobIsRPhi(), TrackerTopology::tobIsZPlusSide(), TrackerTopology::tobLayer(), TrackerTopology::tobModule(), and TrackerTopology::tobRod().

Referenced by beginRun().

1285  {
1286  SiStripDetId detid(rawid);
1287  std::string out;
1288  std::stringstream output;
1289  switch(detid.subDetector()) {
1290  case 3:
1291  {
1292  output << "TIB";
1293 
1294  output << (tTopo->tibIsZPlusSide(rawid) ? "+" : "-");
1295  output << " layer ";
1296  output << tTopo->tibLayer(rawid);
1297  output << ", string ";
1298  output << tTopo->tibString(rawid);
1299  output << (tTopo->tibIsExternalString(rawid) ? " external" : " internal");
1300  output << ", module ";
1301  output << tTopo->tibModule(rawid);
1302  if(tTopo->tibIsDoubleSide(rawid)) {
1303  output << " (double)";
1304  } else {
1305  output << (tTopo->tibIsRPhi(rawid) ? " (rphi)" : " (stereo)");
1306  }
1307  break;
1308  }
1309  case 4:
1310  {
1311  output << "TID";
1312 
1313  output << (tTopo->tidIsZPlusSide(rawid) ? "+" : "-");
1314  output << " disk ";
1315  output << tTopo->tidWheel(rawid);
1316  output << ", ring ";
1317  output << tTopo->tidRing(rawid);
1318  output << (tTopo->tidIsFrontRing(rawid) ? " front" : " back");
1319  output << ", module ";
1320  output << tTopo->tidModule(rawid);
1321  if(tTopo->tidIsDoubleSide(rawid)) {
1322  output << " (double)";
1323  } else {
1324  output << (tTopo->tidIsRPhi(rawid) ? " (rphi)" : " (stereo)");
1325  }
1326  break;
1327  }
1328  case 5:
1329  {
1330  output << "TOB";
1331 
1332  output << (tTopo->tobIsZPlusSide(rawid) ? "+" : "-");
1333  output << " layer ";
1334  output << tTopo->tobLayer(rawid);
1335  output << ", rod ";
1336  output << tTopo->tobRod(rawid);
1337  output << ", module ";
1338  output << tTopo->tobModule(rawid);
1339  if(tTopo->tobIsDoubleSide(rawid)) {
1340  output << " (double)";
1341  } else {
1342  output << (tTopo->tobIsRPhi(rawid) ? " (rphi)" : " (stereo)");
1343  }
1344  break;
1345  }
1346  case 6:
1347  {
1348  output << "TEC";
1349 
1350  output << (tTopo->tecIsZPlusSide(rawid) ? "+" : "-");
1351  output << " disk ";
1352  output << tTopo->tecWheel(rawid);
1353  output << " sector ";
1354  output << tTopo->tecPetalNumber(rawid);
1355  output << (tTopo->tecIsFrontPetal(rawid) ? " Front Petal" : " Back Petal");
1356  output << ", module ";
1357  output << tTopo->tecRing(rawid);
1358  output << tTopo->tecModule(rawid);
1359  if(tTopo->tecIsDoubleSide(rawid)) {
1360  output << " (double)";
1361  } else {
1362  output << (tTopo->tecIsRPhi(rawid) ? " (rphi)" : " (stereo)");
1363  }
1364  break;
1365  }
1366  default:
1367  {
1368  output << "UNKNOWN";
1369  }
1370  }
1371  out = output.str();
1372  return out;
1373 }
bool tecIsDoubleSide(const DetId &id) const
bool tobIsDoubleSide(const DetId &id) const
bool tibIsDoubleSide(const DetId &id) const
unsigned int tibLayer(const DetId &id) const
unsigned int tibString(const DetId &id) const
unsigned int tidRing(const DetId &id) const
unsigned int tecRing(const DetId &id) const
ring id
bool tidIsFrontRing(const DetId &id) const
unsigned int tidWheel(const DetId &id) const
bool tobIsRPhi(const DetId &id) const
bool tibIsZPlusSide(const DetId &id) const
bool tibIsExternalString(const DetId &id) const
bool tibIsRPhi(const DetId &id) const
unsigned int tidModule(const DetId &id) const
bool tobIsZPlusSide(const DetId &id) const
bool tecIsRPhi(const DetId &id) const
unsigned int tibModule(const DetId &id) const
unsigned int tecModule(const DetId &id) const
bool tecIsFrontPetal(const DetId &id) const
Detector identifier class for the strip tracker.
Definition: SiStripDetId.h:17
bool tidIsRPhi(const DetId &id) const
bool tidIsZPlusSide(const DetId &id) const
bool tidIsDoubleSide(const DetId &id) const
unsigned int tobModule(const DetId &id) const
bool tecIsZPlusSide(const DetId &id) const
unsigned int tecPetalNumber(const DetId &id) const
unsigned int tobRod(const DetId &id) const
unsigned int tecWheel(const DetId &id) const
unsigned int tobLayer(const DetId &id) const

Member Data Documentation

float TrackerDpgAnalysis::alpha_
private

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::angle_
private

Definition at line 175 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::aplanarity_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::beta_
private

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsDxdz_
private

Definition at line 198 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsDydz_
private

Definition at line 198 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsSigmaZ_
private

Definition at line 198 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<reco::BeamSpot> TrackerDpgAnalysis::bsToken_
private

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsX0_
private

Definition at line 198 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsY0_
private

Definition at line 198 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsZ0_
private

Definition at line 198 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::bx_
private

Definition at line 201 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::ESHandle<SiStripFedCabling> TrackerDpgAnalysis::cabling_
private

Definition at line 153 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

std::string TrackerDpgAnalysis::cablingFileName_
private

Definition at line 204 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::ccuAdd_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::ccuChan_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::charge_
private

Definition at line 197 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::chargeCorr_
private

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::chi2_
private

Definition at line 180 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clBareCharge_
private

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clBareNoise_
private

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clCorrectedCharge_
private

Definition at line 176 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clCorrectedSignalOverNoise_
private

Definition at line 176 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clNormalizedCharge_
private

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clNormalizedNoise_
private

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clPosition_
private

Definition at line 179 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clPositionX_
private

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clPositionY_
private

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clSignalOverNoise_
private

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::clSize_
private

Definition at line 189 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::clSizeX_
private

Definition at line 189 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::clSizeY_
private

Definition at line 189 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::clusters_
private

Definition at line 158 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<edmNew::DetSetVector<SiStripCluster> > TrackerDpgAnalysis::clusterToken_
private

Definition at line 138 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::clWidth_
private

Definition at line 179 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

std::multimap<const uint32_t,const FedChannelConnection*> TrackerDpgAnalysis::connections_
private

Definition at line 155 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

uint32_t TrackerDpgAnalysis::dcuId_
private

Definition at line 182 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dedx1_
private

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<edm::ValueMap<reco::DeDxData> > TrackerDpgAnalysis::dedx1Token_
private

Definition at line 140 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dedx2_
private

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<edm::ValueMap<reco::DeDxData> > TrackerDpgAnalysis::dedx2Token_
private

Definition at line 141 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dedx3_
private

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<edm::ValueMap<reco::DeDxData> > TrackerDpgAnalysis::dedx3Token_
private

Definition at line 142 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::dedxNoM_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::delay_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

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

std::vector<std::string> TrackerDpgAnalysis::delayFileNames_
private

Definition at line 205 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::detid_
private

Definition at line 182 of file TrackerDpgAnalysis.cc.

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

float TrackerDpgAnalysis::distance_
private

Definition at line 179 of file TrackerDpgAnalysis.cc.

float TrackerDpgAnalysis::dxy_
private

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dxyCorr_
private

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dxyerr_
private

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dz_
private

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dzCorr_
private

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dzerr_
private

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::errorX_
private

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::errorY_
private

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::eta_
private

Definition at line 180 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::etaerr_
private

Definition at line 193 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::event_
private

Definition at line 164 of file TrackerDpgAnalysis.cc.

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

edm::EventNumber_t TrackerDpgAnalysis::eventid_
private

Definition at line 169 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::fBz_
private

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fecCrate_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fecRing_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fecSlot_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fedCh_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fedId_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fiberLength_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::foundhits_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::foundhitsPixels_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::foundhitsStrips_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_events_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_missingHits_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_offtrackClusters_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_ontrackClusters_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_pixclusters_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_pixvertices_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_tracks_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::functionality_vertices_
private

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t* TrackerDpgAnalysis::globaltrackid_
private

Definition at line 172 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::globalvertexid_
private

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::globalX_
private

Definition at line 173 of file TrackerDpgAnalysis.cc.

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

float TrackerDpgAnalysis::globalY_
private

Definition at line 173 of file TrackerDpgAnalysis.cc.

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

float TrackerDpgAnalysis::globalZ_
private

Definition at line 173 of file TrackerDpgAnalysis.cc.

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

std::vector<std::string> TrackerDpgAnalysis::hlNames_
private

Definition at line 207 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

HLTConfigProvider TrackerDpgAnalysis::hltConfig_
private

Definition at line 208 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

bool TrackerDpgAnalysis::HLTDecisionBits_[256]
private

Definition at line 200 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::InputTag TrackerDpgAnalysis::HLTTag_
private

Definition at line 147 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

edm::EDGetTokenT<edm::TriggerResults> TrackerDpgAnalysis::HLTToken_
private

Definition at line 148 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::isFake_pvtx_
private

Definition at line 196 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::isValid_pvtx_
private

Definition at line 196 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::L1DecisionBits_[192]
private

Definition at line 200 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::L1TechnicalBits_[64]
private

Definition at line 200 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<L1GlobalTriggerReadoutRecord> TrackerDpgAnalysis::L1Token_
private

Definition at line 146 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::lldChannel_
private

Definition at line 183 of file TrackerDpgAnalysis.cc.

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

uint32_t TrackerDpgAnalysis::lostHits_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::losthitsPixels_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::losthitsStrips_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float* TrackerDpgAnalysis::lowPixelProbabilityFraction_
private

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::lumiSegment_
private

Definition at line 202 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::maxCharge_
private

Definition at line 175 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::measX_
private

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::measY_
private

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

std::vector<TTree*> TrackerDpgAnalysis::missingHits_
private

Definition at line 161 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

char * TrackerDpgAnalysis::moduleId_
private

Definition at line 203 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), TrackerDpgAnalysis(), and ~TrackerDpgAnalysis().

char* TrackerDpgAnalysis::moduleName_
private

Definition at line 203 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), TrackerDpgAnalysis(), and ~TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nclusters_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nclustersOntrack_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::ndof_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nLayers_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

const int TrackerDpgAnalysis::nMaxPVs_ = 50
staticprivate

Definition at line 136 of file TrackerDpgAnalysis.cc.

uint32_t TrackerDpgAnalysis::npixClusters_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::npixClustersOntrack_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nPixelVertices_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze().

uint32_t* TrackerDpgAnalysis::ntracks_
private

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nTracks_pvtx_
private

Definition at line 188 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t * TrackerDpgAnalysis::ntrajs_
private

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nVertices_
private

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

bool TrackerDpgAnalysis::onTrack_
private

Definition at line 167 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::orbit_
private

Definition at line 201 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::orbitL1_
private

Definition at line 201 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::p_
private

Definition at line 197 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::phi_
private

Definition at line 180 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::phierr_
private

Definition at line 193 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::physicsDeclared_
private

Definition at line 202 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::pixclusters_
private

Definition at line 159 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<edmNew::DetSetVector<SiPixelCluster> > TrackerDpgAnalysis::pixelclusterToken_
private

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<reco::VertexCollection> TrackerDpgAnalysis::pixelVertexToken_
private

Definition at line 143 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::pixelVertices_
private

Definition at line 163 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::planarity_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::ParameterSet TrackerDpgAnalysis::pset_
private

Definition at line 206 of file TrackerDpgAnalysis.cc.

Referenced by TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::psumap_
private

Definition at line 165 of file TrackerDpgAnalysis.cc.

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

char * TrackerDpgAnalysis::PSUname_
private

Definition at line 203 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::pt_
private

Definition at line 197 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::pterr_
private

Definition at line 193 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::qoverp_
private

Definition at line 195 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::quality_
private

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::readoutmap_
private

Definition at line 166 of file TrackerDpgAnalysis.cc.

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

float TrackerDpgAnalysis::recx_err_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::recx_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::recy_err_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::recy_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::recz_err_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::recz_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::runid_
private

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::sphericity_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::store_
private

Definition at line 201 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::stripLength_
private

Definition at line 179 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<SiStripEventSummary> TrackerDpgAnalysis::summaryToken_
private

Definition at line 137 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::sumptsq_pvtx_
private

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::thickness_
private

Definition at line 179 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::thrustValue_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::thrustX_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::thrustY_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::thrustZ_
private

Definition at line 199 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::time_
private

Definition at line 201 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::ESHandle<TrackerGeometry> TrackerDpgAnalysis::tracker_
private

Definition at line 154 of file TrackerDpgAnalysis.cc.

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

uint32_t * TrackerDpgAnalysis::trackid_
private

Definition at line 172 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

std::vector<edm::InputTag> TrackerDpgAnalysis::trackLabels_
private

Definition at line 149 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

std::vector<TTree*> TrackerDpgAnalysis::tracks_
private

Definition at line 160 of file TrackerDpgAnalysis.cc.

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

std::vector<edm::EDGetTokenT<reco::TrackCollection> > TrackerDpgAnalysis::trackTokens_
private

Definition at line 150 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

std::vector<edm::EDGetTokenT<std::vector<Trajectory> > > TrackerDpgAnalysis::trajectoryTokens_
private

Definition at line 151 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

std::vector<edm::EDGetTokenT<TrajTrackAssociationCollection> > TrackerDpgAnalysis::trajTrackAssoTokens_
private

Definition at line 152 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::trkWeightpvtx_
private

Definition at line 195 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::type_
private
uint32_t TrackerDpgAnalysis::vertexid_
private

Definition at line 168 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

edm::EDGetTokenT<reco::VertexCollection> TrackerDpgAnalysis::vertexToken_
private

Definition at line 144 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::vertices_
private

Definition at line 162 of file TrackerDpgAnalysis.cc.

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

float TrackerDpgAnalysis::xPCA_
private

Definition at line 195 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::yPCA_
private

Definition at line 195 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::zPCA_
private

Definition at line 195 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().