CMS 3D CMS Logo

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

List of all members.

Public Member Functions

 TrackerDpgAnalysis (const edm::ParameterSet &)
 ~TrackerDpgAnalysis ()

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< int, int > > &, const TrackingRecHit *, int)
void insertMeasurement (std::multimap< const uint32_t, std::pair< std::pair< float, float >, 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< LocalPoint, double > > &, const TransientTrackingRecHit *, double)
std::map< size_t, int > inVertex (const reco::TrackCollection &, const reco::VertexCollection &, uint32_t)
std::vector< int > onTrack (edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &, const reco::TrackCollection &, uint32_t)
std::vector< int > onTrack (edm::Handle< edmNew::DetSetVector< SiStripCluster > > &, 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)

Private Member Functions

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

Private Attributes

float alpha_
float angle_
float aplanarity_
float beta_
float bsDxdz_
float bsDydz_
edm::InputTag bsLabel_
float bsSigmaZ_
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_
edm::InputTag clusterLabel_
TTree * clusters_
float clWidth_
std::multimap< const uint32_t,
const FedChannelConnection * > 
connections_
uint32_t dcuId_
float dedx1_
edm::InputTag dedx1Label_
float dedx2_
edm::InputTag dedx2Label_
float dedx3_
edm::InputTag dedx3Label_
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_
uint32_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 HLTLabel_
bool isFake_pvtx_
bool isValid_pvtx_
bool L1DecisionBits_ [192]
edm::InputTag L1Label_
bool L1TechnicalBits_ [64]
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::InputTag pixelclusterLabel_
edm::InputTag pixelVertexLabel_
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_
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::InputTagtrackLabel_
std::vector< TTree * > tracks_
float trkWeightpvtx_
uint32_t type_
uint32_t vertexid_
edm::InputTag vertexLabel_
TTree * vertices_
float xPCA_
float yPCA_
float zPCA_

Static Private Attributes

static const int nMaxPVs_ = 50

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 111 of file TrackerDpgAnalysis.cc.


Constructor & Destructor Documentation

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

Definition at line 202 of file TrackerDpgAnalysis.cc.

References alpha_, angle_, aplanarity_, beta_, bsDxdz_, bsDydz_, bsLabel_, bsSigmaZ_, bsX0_, bsY0_, bsZ0_, bx_, cablingFileName_, ccuAdd_, ccuChan_, charge_, chargeCorr_, chi2_, clBareCharge_, clBareNoise_, clCorrectedCharge_, clCorrectedSignalOverNoise_, clNormalizedCharge_, clNormalizedNoise_, clPosition_, clPositionX_, clPositionY_, clSignalOverNoise_, clSize_, clSizeX_, clSizeY_, clusterLabel_, clusters_, clWidth_, dcuId_, dedx1_, dedx1Label_, dedx2_, dedx2Label_, dedx3_, dedx3Label_, 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_, HLTLabel_, i, isFake_pvtx_, isValid_pvtx_, L1DecisionBits_, L1Label_, L1TechnicalBits_, lldChannel_, lostHits_, losthitsPixels_, losthitsStrips_, lowPixelProbabilityFraction_, lumiSegment_, TFileDirectory::make(), maxCharge_, measX_, measY_, missingHits_, moduleId_, moduleName_, nclusters_, nclustersOntrack_, ndof_, nLayers_, npixClusters_, npixClustersOntrack_, ntracks_, nTracks_pvtx_, ntrajs_, nVertices_, onTrack_, orbit_, orbitL1_, p_, phi_, phierr_, physicsDeclared_, pixclusters_, pixelclusterLabel_, pixelVertexLabel_, 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_, stripLength_, sumptsq_pvtx_, thickness_, thrustValue_, thrustX_, thrustY_, thrustZ_, time_, trackid_, trackLabel_, tracks_, trkWeightpvtx_, type_, vertexid_, vertexLabel_, vertices_, xPCA_, yPCA_, and zPCA_.

                                                                    :hltConfig_()
{
   // members
   moduleName_ = new char[256];
   moduleId_   = new char[256];
   PSUname_    = new char[256];
   pset_ = iConfig;

   // enable/disable functionalities
   functionality_offtrackClusters_ = iConfig.getUntrackedParameter<bool>("keepOfftrackClusters",true);
   functionality_ontrackClusters_  = iConfig.getUntrackedParameter<bool>("keepOntrackClusters",true);
   functionality_pixclusters_      = iConfig.getUntrackedParameter<bool>("keepPixelClusters",true);
   functionality_pixvertices_      = iConfig.getUntrackedParameter<bool>("keepPixelVertices",true);
   functionality_missingHits_      = iConfig.getUntrackedParameter<bool>("keepMissingHits",true);
   functionality_tracks_           = iConfig.getUntrackedParameter<bool>("keepTracks",true);
   functionality_vertices_         = iConfig.getUntrackedParameter<bool>("keepVertices",true);
   functionality_events_           = iConfig.getUntrackedParameter<bool>("keepEvents",true);

   // parameters
   clusterLabel_      = iConfig.getParameter<edm::InputTag>("ClustersLabel");
   pixelclusterLabel_ = iConfig.getParameter<edm::InputTag>("PixelClustersLabel");
   trackLabel_        = iConfig.getParameter<std::vector<edm::InputTag> >("TracksLabel");
   dedx1Label_        = iConfig.getParameter<edm::InputTag>("DeDx1Label");
   dedx2Label_        = iConfig.getParameter<edm::InputTag>("DeDx2Label");
   dedx3Label_        = iConfig.getParameter<edm::InputTag>("DeDx3Label");
   vertexLabel_       = iConfig.getParameter<edm::InputTag>("vertexLabel");
   pixelVertexLabel_  = iConfig.getParameter<edm::InputTag>("pixelVertexLabel");
   bsLabel_           = iConfig.getParameter<edm::InputTag>("beamSpotLabel");
   L1Label_           = iConfig.getParameter<edm::InputTag>("L1Label");
   HLTLabel_          = iConfig.getParameter<edm::InputTag>("HLTLabel");

   // initialize arrays
   ntracks_ = new uint32_t[trackLabel_.size()];
   ntrajs_ = new uint32_t[trackLabel_.size()];
   globaltrackid_  = new uint32_t[trackLabel_.size()];
   trackid_ = new uint32_t[trackLabel_.size()];
   lowPixelProbabilityFraction_ = new float[trackLabel_.size()];
   globalvertexid_ = iConfig.getParameter<uint32_t>("InitalCounter");
   for(size_t i = 0; i<trackLabel_.size();++i) { 
     ntracks_[i]=0; 
     ntrajs_[i]=0; 
     globaltrackid_[i]=iConfig.getParameter<uint32_t>("InitalCounter"); 
     trackid_[i]=0;
     lowPixelProbabilityFraction_[i]=0;
   }

   // create output
   edm::Service<TFileService> fileService;
   TFileDirectory* dir = new TFileDirectory(fileService->mkdir("trackerDPG"));
   
   // create a TTree for clusters
   clusters_ = dir->make<TTree>("clusters","cluster information");
   clusters_->Branch("eventid",&eventid_,"eventid/i");
   clusters_->Branch("runid",&runid_,"runid/i");
   for(size_t i = 0; i<trackLabel_.size(); ++i) {
     char buffer1[256];
     char buffer2[256];
     sprintf(buffer1,"trackid%lu",(unsigned long)i);
     sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
     clusters_->Branch(buffer1,trackid_+i,buffer2);
   }
   clusters_->Branch("onTrack",&onTrack_,"onTrack/O");
   clusters_->Branch("clWidth",&clWidth_,"clWidth/F");
   clusters_->Branch("clPosition",&clPosition_,"clPosition/F");
   clusters_->Branch("clglobalX",&globalX_,"clglobalX/F");
   clusters_->Branch("clglobalY",&globalY_,"clglobalY/F");
   clusters_->Branch("clglobalZ",&globalZ_,"clglobalZ/F");
   clusters_->Branch("angle",&angle_,"angle/F");
   clusters_->Branch("thickness",&thickness_,"thickness/F");
   clusters_->Branch("maxCharge",&maxCharge_,"maxCharge/F");
   clusters_->Branch("clNormalizedCharge",&clNormalizedCharge_,"clNormalizedCharge/F");
   clusters_->Branch("clNormalizedNoise",&clNormalizedNoise_,"clNormalizedNoise/F");
   clusters_->Branch("clSignalOverNoise",&clSignalOverNoise_,"clSignalOverNoise/F");
   clusters_->Branch("clCorrectedCharge",&clCorrectedCharge_,"clCorrectedCharge/F");
   clusters_->Branch("clCorrectedSignalOverNoise",&clCorrectedSignalOverNoise_,"clCorrectedSignalOverNoise/F");
   clusters_->Branch("clBareCharge",&clBareCharge_,"clBareCharge/F");
   clusters_->Branch("clBareNoise",&clBareNoise_,"clBareNoise/F");
   clusters_->Branch("stripLength",&stripLength_,"stripLength/F");
   clusters_->Branch("detid",&detid_,"detid/i");
   clusters_->Branch("lldChannel",&lldChannel_,"lldChannel/s");

   // create a TTree for pixel clusters
   pixclusters_ = dir->make<TTree>("pixclusters","pixel cluster information");
   pixclusters_->Branch("eventid",&eventid_,"eventid/i");
   pixclusters_->Branch("runid",&runid_,"runid/i");
   for(size_t i = 0; i<trackLabel_.size(); ++i) {
     char buffer1[256];
     char buffer2[256];
     sprintf(buffer1,"trackid%lu",(unsigned long)i);
     sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
     pixclusters_->Branch(buffer1,trackid_+i,buffer2);
   }
   pixclusters_->Branch("onTrack",&onTrack_,"onTrack/O");
   pixclusters_->Branch("clPositionX",&clPositionX_,"clPositionX/F");
   pixclusters_->Branch("clPositionY",&clPositionY_,"clPositionY/F");
   pixclusters_->Branch("clSize",&clSize_,"clSize/i");
   pixclusters_->Branch("clSizeX",&clSizeX_,"clSizeX/i");
   pixclusters_->Branch("clSizeY",&clSizeY_,"clSizeY/i");
   pixclusters_->Branch("alpha",&alpha_,"alpha/F");
   pixclusters_->Branch("beta",&beta_,"beta/F");
   pixclusters_->Branch("charge",&charge_,"charge/F");
   pixclusters_->Branch("chargeCorr",&chargeCorr_,"chargeCorr/F");
   pixclusters_->Branch("clglobalX",&globalX_,"clglobalX/F");
   pixclusters_->Branch("clglobalY",&globalY_,"clglobalY/F");
   pixclusters_->Branch("clglobalZ",&globalZ_,"clglobalZ/F");
   pixclusters_->Branch("detid",&detid_,"detid/i");
   
   // create a tree for tracks
   for(size_t i = 0; i<trackLabel_.size(); ++i) {
     char buffer1[256];
     char buffer2[256];
     sprintf(buffer1,"tracks%lu",(unsigned long)i);
     sprintf(buffer2,"track%lu information",(unsigned long)i);
     TTree* thetracks_ = dir->make<TTree>(buffer1,buffer2);
     sprintf(buffer1,"trackid%lu",(unsigned long)i);
     sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
     thetracks_->Branch(buffer1,globaltrackid_+i,buffer2);
     thetracks_->Branch("eventid",&eventid_,"eventid/i");
     thetracks_->Branch("runid",&runid_,"runid/i");
     thetracks_->Branch("chi2",&chi2_,"chi2/F");
     thetracks_->Branch("eta",&eta_,"eta/F");
     thetracks_->Branch("etaerr",&etaerr_,"etaerr/F");
     thetracks_->Branch("phi",&phi_,"phi/F");
     thetracks_->Branch("phierr",&phierr_,"phierr/F");
     thetracks_->Branch("dedx1",&dedx1_,"dedx1/F");
     thetracks_->Branch("dedx2",&dedx2_,"dedx2/F");
     thetracks_->Branch("dedx3",&dedx3_,"dedx3/F");
     thetracks_->Branch("dedxNoM",&dedxNoM_,"dedxNoM/i");
     thetracks_->Branch("charge",&charge_,"charge/F");
     thetracks_->Branch("quality",&quality_,"quality/i");
     thetracks_->Branch("foundhits",&foundhits_,"foundhits/i");
     thetracks_->Branch("lostHits",&lostHits_,"lostHits/i");
     thetracks_->Branch("foundhitsStrips",&foundhitsStrips_,"foundhitsStrips/i");
     thetracks_->Branch("foundhitsPixels",&foundhitsPixels_,"foundhitsPixels/i");
     thetracks_->Branch("losthitsStrips",&losthitsStrips_,"losthitsStrips/i");
     thetracks_->Branch("losthitsPixels",&losthitsPixels_,"losthitsPixels/i");
     thetracks_->Branch("p",&p_,"p/F");
     thetracks_->Branch("pt",&pt_,"pt/F");
     thetracks_->Branch("pterr",&pterr_,"pterr/F");
     thetracks_->Branch("ndof",&ndof_,"ndof/i");
     thetracks_->Branch("dz",&dz_,"dz/F");
     thetracks_->Branch("dzerr",&dzerr_,"dzerr/F");
     thetracks_->Branch("dzCorr",&dzCorr_,"dzCorr/F");
     thetracks_->Branch("dxy",&dxy_,"dxy/F");
     thetracks_->Branch("dxyerr",&dxyerr_,"dxyerr/F");
     thetracks_->Branch("dxyCorr",&dxyCorr_,"dxyCorr/F");
     thetracks_->Branch("qoverp",&qoverp_,"qoverp/F");
     thetracks_->Branch("xPCA",&xPCA_,"xPCA/F");
     thetracks_->Branch("yPCA",&yPCA_,"yPCA/F");
     thetracks_->Branch("zPCA",&zPCA_,"zPCA/F");
     thetracks_->Branch("nLayers",&nLayers_,"nLayers/i");
     thetracks_->Branch("trkWeightpvtx",&trkWeightpvtx_,"trkWeightpvtx/F");
     thetracks_->Branch("vertexid",&vertexid_,"vertexid/i");
     tracks_.push_back(thetracks_);
   }

   // create a tree for missing hits
   for(size_t i = 0; i<trackLabel_.size(); ++i) {
     char buffer1[256];
     char buffer2[256];
     sprintf(buffer1,"misingHits%lu",(unsigned long)i);
     sprintf(buffer2,"missing hits from track collection %lu",(unsigned long)i);
     TTree* themissingHits_ = dir->make<TTree>(buffer1,buffer2);
     sprintf(buffer1,"trackid%lu",(unsigned long)i);
     sprintf(buffer2,"trackid%lu/i",(unsigned long)i);
     themissingHits_->Branch(buffer1,globaltrackid_+i,buffer2);
     themissingHits_->Branch("eventid",&eventid_,"eventid/i");
     themissingHits_->Branch("runid",&runid_,"runid/i");
     themissingHits_->Branch("detid",&detid_,"detid/i");
     themissingHits_->Branch("type",&type_,"type/i");
     themissingHits_->Branch("localX",&clPositionX_,"localX/F");
     themissingHits_->Branch("localY",&clPositionY_,"localY/F");
     themissingHits_->Branch("globalX",&globalX_,"globalX/F");
     themissingHits_->Branch("globalY",&globalY_,"globalY/F");
     themissingHits_->Branch("globalZ",&globalZ_,"globalZ/F");
     themissingHits_->Branch("measX",&measX_,"measX/F");
     themissingHits_->Branch("measY",&measY_,"measY/F");
     themissingHits_->Branch("errorX",&errorX_,"errorX/F");
     themissingHits_->Branch("errorY",&errorY_,"errorY/F");
     missingHits_.push_back(themissingHits_);
   }

   // create a tree for the vertices
   vertices_ = dir->make<TTree>("vertices","vertex information");
   vertices_->Branch("vertexid",&globalvertexid_,"vertexid/i");
   vertices_->Branch("eventid",&eventid_,"eventid/i");
   vertices_->Branch("runid",&runid_,"runid/i");
   vertices_->Branch("nTracks",&nTracks_pvtx_,"nTracks/i");
   vertices_->Branch("sumptsq",&sumptsq_pvtx_,"sumptsq/F");
   vertices_->Branch("isValid",&isValid_pvtx_,"isValid/O");
   vertices_->Branch("isFake",&isFake_pvtx_,"isFake/O");
   vertices_->Branch("recx",&recx_pvtx_,"recx/F");
   vertices_->Branch("recy",&recy_pvtx_,"recy/F");
   vertices_->Branch("recz",&recz_pvtx_,"recz/F");
   vertices_->Branch("recx_err",&recx_err_pvtx_,"recx_err/F");
   vertices_->Branch("recy_err",&recy_err_pvtx_,"recy_err/F");
   vertices_->Branch("recz_err",&recz_err_pvtx_,"recz_err/F");

   // create a tree for the vertices
   pixelVertices_ = dir->make<TTree>("pixelVertices","pixel vertex information");
   pixelVertices_->Branch("eventid",&eventid_,"eventid/i");
   pixelVertices_->Branch("runid",&runid_,"runid/i");
   pixelVertices_->Branch("nTracks",&nTracks_pvtx_,"nTracks/i");
   pixelVertices_->Branch("sumptsq",&sumptsq_pvtx_,"sumptsq/F");
   pixelVertices_->Branch("isValid",&isValid_pvtx_,"isValid/O");
   pixelVertices_->Branch("isFake",&isFake_pvtx_,"isFake/O");
   pixelVertices_->Branch("recx",&recx_pvtx_,"recx/F");
   pixelVertices_->Branch("recy",&recy_pvtx_,"recy/F");
   pixelVertices_->Branch("recz",&recz_pvtx_,"recz/F");
   pixelVertices_->Branch("recx_err",&recx_err_pvtx_,"recx_err/F");
   pixelVertices_->Branch("recy_err",&recy_err_pvtx_,"recy_err/F");
   pixelVertices_->Branch("recz_err",&recz_err_pvtx_,"recz_err/F");

   // create a tree for the events
   event_ = dir->make<TTree>("events","event information");
   event_->Branch("eventid",&eventid_,"eventid/i");
   event_->Branch("runid",&runid_,"runid/i");
   event_->Branch("L1DecisionBits",L1DecisionBits_,"L1DecisionBits[192]/O");
   event_->Branch("L1TechnicalBits",L1TechnicalBits_,"L1TechnicalBits[64]/O");
   event_->Branch("orbit",&orbit_,"orbit/i");
   event_->Branch("orbitL1",&orbitL1_,"orbitL1/i");
   event_->Branch("bx",&bx_,"bx/i");
   event_->Branch("store",&store_,"store/i");
   event_->Branch("time",&time_,"time/i");
   event_->Branch("delay",&delay_,"delay/F");
   event_->Branch("lumiSegment",&lumiSegment_,"lumiSegment/s");
   event_->Branch("physicsDeclared",&physicsDeclared_,"physicsDeclared/s");
   event_->Branch("HLTDecisionBits",HLTDecisionBits_,"HLTDecisionBits[256]/O");
   char buffer[256];
   sprintf(buffer,"ntracks[%lu]/i",(unsigned long)trackLabel_.size());
   event_->Branch("ntracks",ntracks_,buffer);
   sprintf(buffer,"ntrajs[%lu]/i",(unsigned long)trackLabel_.size());
   event_->Branch("ntrajs",ntrajs_,buffer);
   sprintf(buffer,"lowPixelProbabilityFraction[%lu]/F",(unsigned long)trackLabel_.size());
   event_->Branch("lowPixelProbabilityFraction",lowPixelProbabilityFraction_,buffer);
   event_->Branch("nclusters",&nclusters_,"nclusters/i");
   event_->Branch("npixClusters",&npixClusters_,"npixClusters/i");
   event_->Branch("nclustersOntrack",&nclustersOntrack_,"nclustersOntrack/i");
   event_->Branch("npixClustersOntrack",&npixClustersOntrack_,"npixClustersOntrack/i");
   event_->Branch("bsX0",&bsX0_,"bsX0/F");
   event_->Branch("bsY0",&bsY0_,"bsY0/F");
   event_->Branch("bsZ0",&bsZ0_,"bsZ0/F");
   event_->Branch("bsSigmaZ",&bsSigmaZ_,"bsSigmaZ/F");
   event_->Branch("bsDxdz",&bsDxdz_,"bsDxdz/F");
   event_->Branch("bsDydz",&bsDydz_,"bsDydz/F");
   event_->Branch("nVertices",&nVertices_,"nVertices/i");
   event_->Branch("thrustValue",&thrustValue_,"thrustValue/F");
   event_->Branch("thrustX",&thrustX_,"thrustX/F");
   event_->Branch("thrustY",&thrustY_,"thrustY/F");
   event_->Branch("thrustZ",&thrustZ_,"thrustZ/F");
   event_->Branch("sphericity",&sphericity_,"sphericity/F");
   event_->Branch("planarity",&planarity_,"planarity/F");
   event_->Branch("aplanarity",&aplanarity_,"aplanarity/F");
   event_->Branch("MagneticField",&fBz_,"MagneticField/F");
   
   // cabling
   cablingFileName_ = iConfig.getUntrackedParameter<std::string>("PSUFileName","PSUmapping.csv");
   delayFileNames_  = iConfig.getUntrackedParameter<std::vector<std::string> >("DelayFileNames",std::vector<std::string>(0));
   psumap_ = dir->make<TTree>("psumap","PSU map");
   psumap_->Branch("PSUname",PSUname_,"PSUname/C");
   psumap_->Branch("dcuId",&dcuId_,"dcuId/i");
   readoutmap_ = dir->make<TTree>("readoutMap","cabling map");
   readoutmap_->Branch("detid",&detid_,"detid/i");
   readoutmap_->Branch("dcuId",&dcuId_,"dcuId/i");
   readoutmap_->Branch("fecCrate",&fecCrate_,"fecCrate/s");
   readoutmap_->Branch("fecSlot",&fecSlot_,"fecSlot/s");
   readoutmap_->Branch("fecRing",&fecRing_,"fecRing/s");
   readoutmap_->Branch("ccuAdd",&ccuAdd_,"ccuAdd/s");
   readoutmap_->Branch("ccuChan",&ccuChan_,"ccuChan/s");
   readoutmap_->Branch("lldChannel",&lldChannel_,"lldChannel/s");
   readoutmap_->Branch("fedId",&fedId_,"fedId/s");
   readoutmap_->Branch("fedCh",&fedCh_,"fedCh/s");
   readoutmap_->Branch("fiberLength",&fiberLength_,"fiberLength/s");
   readoutmap_->Branch("moduleName",moduleName_,"moduleName/C");
   readoutmap_->Branch("moduleId",moduleId_,"moduleId/C");
   readoutmap_->Branch("delay",&delay_,"delay/F");
   readoutmap_->Branch("globalX",&globalX_,"globalX/F");
   readoutmap_->Branch("globalY",&globalY_,"globalY/F");
   readoutmap_->Branch("globalZ",&globalZ_,"globalZ/F");
}
TrackerDpgAnalysis::~TrackerDpgAnalysis ( )

Definition at line 483 of file TrackerDpgAnalysis.cc.

References moduleId_, and moduleName_.

{
  delete[] moduleName_;
  delete[] moduleId_;
}

Member Function Documentation

void TrackerDpgAnalysis::analyze ( const edm::Event iEvent,
const edm::EventSetup iSetup 
) [private, virtual]

Implements edm::EDAnalyzer.

Definition at line 495 of file TrackerDpgAnalysis.cc.

References alpha_, angle_, EventShape::aplanarity(), aplanarity_, SiStripClusterInfo::baryStrip(), SiPixelRawToDigiRegional_cfi::beamSpot, begin, beta_, bsDxdz_, bsDydz_, bsLabel_, bsSigmaZ_, bsX0_, bsY0_, bsZ0_, edm::EventAuxiliary::bunchCrossing(), bx_, SiStripClusterInfo::charge(), charge_, chargeCorr_, chi2_, clBareCharge_, clBareNoise_, clCorrectedCharge_, clCorrectedSignalOverNoise_, clNormalizedCharge_, clNormalizedNoise_, clPosition_, clPositionX_, clPositionY_, clSignalOverNoise_, clSize_, clSizeX_, clSizeY_, clusterLabel_, clusters_, clWidth_, coll, funct::cos(), dedx1_, dedx1Label_, dedx2_, dedx2Label_, dedx3_, dedx3Label_, dedxNoM_, delay(), delay_, cond::rpcobgas::detid, detid_, dxy_, dxyCorr_, dxyerr_, dz_, dzCorr_, dzerr_, end, error, errorX_, errorY_, eta_, etaerr_, edm::EventID::event(), event_, edm::Event::eventAuxiliary(), eventid_, fBz_, foundhits_, foundhitsPixels_, foundhitsStrips_, functionality_events_, functionality_missingHits_, functionality_offtrackClusters_, functionality_ontrackClusters_, functionality_pixclusters_, functionality_pixvertices_, functionality_tracks_, functionality_vertices_, edm::EventSetup::get(), edm::Event::getByLabel(), globaltrackid_, globalvertexid_, globalX_, globalY_, globalZ_, L1GtFdlWord::gtDecisionWord(), HLTDecisionBits_, HLTLabel_, i, edm::EventBase::id(), TrackingRecHit::inactive, getHLTprescales::index, inVertex(), isFake_pvtx_, GeomDetType::isTracker(), isValid_pvtx_, edm::Ref< C, T, F >::key(), L1DecisionBits_, L1Label_, L1TechnicalBits_, label, lldChannel_, Topology::localPosition(), StripTopology::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_, edm::EventAuxiliary::orbitNumber(), p_, phi_, phierr_, physicsDeclared_, pixclusters_, GeomDetEnumerators::PixelBarrel, pixelclusterLabel_, pixelVertexLabel_, pixelVertices_, EventShape::planarity(), planarity_, funct::pow(), pt_, pterr_, qoverp_, quality_, dt_dqm_sourceclient_common_cff::reco, recx_err_pvtx_, recx_pvtx_, recy_err_pvtx_, recy_pvtx_, recz_err_pvtx_, recz_pvtx_, edm::EventID::run(), runid_, SiStripClusterInfo::signalOverNoise(), StripGeomDetUnit::specificTopology(), PixelGeomDetUnit::specificTopology(), EventShape::sphericity(), sphericity_, mathSSE::sqrt(), store_, edm::EventAuxiliary::storeNumber(), stripLength_, DetId::subdetId(), summarizeEdmComparisonLogfiles::summary, sumptsq_pvtx_, sumPtSquared(), GeomDet::surface(), funct::tan(), thickness_, EventShape::thrust(), thrustValue_, thrustX_, thrustY_, thrustZ_, edm::EventAuxiliary::time(), time_, Surface::toGlobal(), GeomDetUnit::topology(), tracker_, trackid_, trackLabel_, tracks_, trkWeightpvtx_, GeomDetUnit::type(), type_, v, edm::Timestamp::value(), vertexid_, vertexLabel_, vertices_, SiStripClusterInfo::width(), PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), xPCA_, LocalError::xx(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), yPCA_, LocalError::yy(), PV3DBase< T, PVType, FrameType >::z(), and zPCA_.

{
   using namespace edm;
   using namespace reco;
   using namespace std;
   using reco::TrackCollection;
   
   // load event info
   eventid_     = iEvent.id().event();
   runid_       = iEvent.id().run();
   bx_          = iEvent.eventAuxiliary().bunchCrossing();
   orbit_       = iEvent.eventAuxiliary().orbitNumber();
   store_       = iEvent.eventAuxiliary().storeNumber();
   time_        = iEvent.eventAuxiliary().time().value();
   lumiSegment_ = iEvent.eventAuxiliary().luminosityBlock();

   // Retrieve commissioning information from "event summary", when available (for standard fine delay)
   edm::Handle<SiStripEventSummary> summary;
   iEvent.getByLabel( "siStripDigis", summary );
   if(summary.isValid())
     delay_ = delay(*summary.product());
   else
     delay_ = 0.;

   // -- Magnetic field
   ESHandle<MagneticField> MF;
   iSetup.get<IdealMagneticFieldRecord>().get(MF);
   const MagneticField* theMagneticField = MF.product();
   fBz_   = fabs(theMagneticField->inTesla(GlobalPoint(0,0,0)).z());

   // load trigger info
   edm::Handle<L1GlobalTriggerReadoutRecord> gtrr_handle;
   iEvent.getByLabel(L1Label_, gtrr_handle);
   L1GlobalTriggerReadoutRecord const* gtrr = gtrr_handle.product();
   L1GtFdlWord fdlWord = gtrr->gtFdlWord();
   DecisionWord L1decision = fdlWord.gtDecisionWord();
   for(int bit=0;bit<128;++bit) {
     L1DecisionBits_[bit] = L1decision[bit];
   }
   DecisionWordExtended L1decisionE = fdlWord.gtDecisionWordExtended();
   for(int bit=0;bit<64;++bit) {
     L1DecisionBits_[bit+128] = L1decisionE[bit];
   }
   TechnicalTriggerWord L1technical = fdlWord.gtTechnicalTriggerWord();
   for(int bit=0;bit<64;++bit) {
     L1TechnicalBits_[bit] = L1technical[bit];
   }
   orbitL1_ = fdlWord.orbitNr();
   physicsDeclared_ = fdlWord.physicsDeclared();
   edm::Handle<edm::TriggerResults> trh;
   iEvent.getByLabel(HLTLabel_, trh);
   size_t ntrh = trh->size();
   for(size_t bit=0;bit<256;++bit)
     HLTDecisionBits_[bit] = bit<ntrh ? (bool)(trh->accept(bit)): false;
     
   // load beamspot
   edm::Handle<reco::BeamSpot> recoBeamSpotHandle;
   iEvent.getByLabel(bsLabel_,recoBeamSpotHandle);
   reco::BeamSpot bs = *recoBeamSpotHandle; 
   const Point beamSpot = recoBeamSpotHandle.isValid() ? 
                           Point(recoBeamSpotHandle->x0(), recoBeamSpotHandle->y0(), recoBeamSpotHandle->z0()) : 
                           Point(0, 0, 0);
   if(recoBeamSpotHandle.isValid()) {
     bsX0_ = bs.x0();
     bsY0_ = bs.y0();
     bsZ0_ = bs.z0();
     bsSigmaZ_ = bs.sigmaZ();
     bsDxdz_ = bs.dxdz();
     bsDydz_ = bs.dydz();
   } else { 
     bsX0_ = 0.;
     bsY0_ = 0.;
     bsZ0_ = 0.;
     bsSigmaZ_ = 0.;
     bsDxdz_ = 0.;
     bsDydz_ = 0.;
   }
   
   // load primary vertex
   static const reco::VertexCollection s_empty_vertexColl;
   edm::Handle<reco::VertexCollection> vertexCollectionHandle;
   iEvent.getByLabel(vertexLabel_,vertexCollectionHandle);
   const reco::VertexCollection vertexColl = *(vertexCollectionHandle.product());
   nVertices_ = 0;
   for(reco::VertexCollection::const_iterator v=vertexColl.begin(); 
       v!=vertexColl.end(); ++v) {
     if(v->isValid() && !v->isFake()) ++nVertices_;
   }

   // load pixel vertices
   // Pixel vertices are handled as primary vertices, but not linked to tracks.
    edm::Handle<reco::VertexCollection>  pixelVertexCollectionHandle;
    iEvent.getByLabel(pixelVertexLabel_, pixelVertexCollectionHandle);
    const reco::VertexCollection pixelVertexColl = *(pixelVertexCollectionHandle.product());
    nPixelVertices_ = pixelVertexColl.size();
   
   // load the clusters
   edm::Handle<edmNew::DetSetVector<SiStripCluster> > clusters;
   iEvent.getByLabel(clusterLabel_,clusters);
   edm::Handle<edmNew::DetSetVector<SiPixelCluster> > pixelclusters;
   iEvent.getByLabel(pixelclusterLabel_,pixelclusters  );
   
   // load dedx info
   Handle<ValueMap<DeDxData> > dEdx1Handle;
   Handle<ValueMap<DeDxData> > dEdx2Handle;
   Handle<ValueMap<DeDxData> > dEdx3Handle;
   try {iEvent.getByLabel(dedx1Label_, dEdx1Handle);} catch (...) {;}
   try {iEvent.getByLabel(dedx2Label_, dEdx2Handle);} catch (...) {;}
   try {iEvent.getByLabel(dedx3Label_, dEdx3Handle);} catch (...) {;}
   const ValueMap<DeDxData> dEdxTrack1 = *dEdx1Handle.product();
   const ValueMap<DeDxData> dEdxTrack2 = *dEdx2Handle.product();
   const ValueMap<DeDxData> dEdxTrack3 = *dEdx3Handle.product();
   
   // load track collections
   std::vector<reco::TrackCollection> trackCollection;
   std::vector<edm::Handle<reco::TrackCollection> > trackCollectionHandle;
   trackCollectionHandle.resize(trackLabel_.size());
   size_t index = 0;
   for(std::vector<edm::InputTag>::const_iterator label = trackLabel_.begin();label!=trackLabel_.end();++label,++index) {
     try {iEvent.getByLabel(*label,trackCollectionHandle[index]);} catch (...) {;}
     trackCollection.push_back(*trackCollectionHandle[index].product());
     ntracks_[index] = trackCollection[index].size();
   }

   // load the trajectory collections
   std::vector<std::vector<Trajectory> > trajectoryCollection;
   std::vector<edm::Handle<std::vector<Trajectory> > > trajectoryCollectionHandle;
   trajectoryCollectionHandle.resize(trackLabel_.size());
   index = 0;
   for(std::vector<edm::InputTag>::const_iterator label = trackLabel_.begin();label!=trackLabel_.end();++label,++index) {
     try {iEvent.getByLabel(*label,trajectoryCollectionHandle[index]);} catch (...) {;}
     trajectoryCollection.push_back(*trajectoryCollectionHandle[index].product());
     ntrajs_[index] = trajectoryCollection[index].size();
   }

   // load the tracks/traj association maps
   std::vector<TrajTrackAssociationCollection> TrajToTrackMap;
   Handle<TrajTrackAssociationCollection> trajTrackAssociationHandle;
   for(std::vector<edm::InputTag>::const_iterator label = trackLabel_.begin();label!=trackLabel_.end();++label) {
     try {iEvent.getByLabel(*label,trajTrackAssociationHandle);} catch (...) {;}
     TrajToTrackMap.push_back(*trajTrackAssociationHandle.product());
   }
     
   // sanity check
   if(!(trackCollection.size()>0 && trajectoryCollection.size()>0)) return;

   // build the reverse map tracks -> vertex
   std::vector<std::map<size_t,int> > trackVertices;
   for(size_t i=0;i<trackLabel_.size();++i) {
     trackVertices.push_back(inVertex(trackCollection[0], vertexColl, globalvertexid_+1));
   }

   // iterate over vertices
   if(functionality_vertices_) {
     for(reco::VertexCollection::const_iterator v=vertexColl.begin(); 
         v!=vertexColl.end(); ++v) {
       nTracks_pvtx_ = v->tracksSize();        
       sumptsq_pvtx_ = sumPtSquared(*v);
       isValid_pvtx_ = int(v->isValid());
       isFake_pvtx_ =  int(v->isFake());
       recx_pvtx_ = v->x();
       recy_pvtx_ = v->y();
       recz_pvtx_ = v->z();
       recx_err_pvtx_ = v->xError();
       recy_err_pvtx_ = v->yError();
       recz_err_pvtx_ = v->zError();
       globalvertexid_++;
       vertices_->Fill();
     }
   }

   // iterate over pixel vertices
   if(functionality_pixvertices_) {
     for(reco::VertexCollection::const_iterator v=pixelVertexColl.begin(); 
         v!=pixelVertexColl.end(); ++v) {
       nTracks_pvtx_ = v->tracksSize();        
       sumptsq_pvtx_ = sumPtSquared(*v);
       isValid_pvtx_ = int(v->isValid());
       isFake_pvtx_ =  int(v->isFake());
       recx_pvtx_ = v->x();
       recy_pvtx_ = v->y();
       recz_pvtx_ = v->z();
       recx_err_pvtx_ = v->xError();
       recy_err_pvtx_ = v->yError();
       recz_err_pvtx_ = v->zError();
       pixelVertices_->Fill();
     }
   }

   // determine if each cluster is on a track or not, and record the local angle
   // to do this, we use the first track/traj collection
   std::vector<double> clusterOntrackAngles = onTrackAngles(clusters,trajectoryCollection[0]);
   std::vector<std::pair<double,double> > pixclusterOntrackAngles = onTrackAngles(pixelclusters,trajectoryCollection[0]);
   
/*
  // iterate over trajectories
  // note: when iterating over trajectories, it might be simpler to use the tracks/trajectories association map
  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
  }
  // loop over all rechits from trajectories
  //iterate over trajectories
  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
    Trajectory::DataContainer measurements = traj->measurements();
    // iterate over measurements
    for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
    } 
  }
*/

   // determine if each cluster is on a track or not, and record the trackid
   std::vector< std::vector<int> > stripClusterOntrackIndices;
   for(size_t i = 0; i<trackLabel_.size(); ++i) {
     stripClusterOntrackIndices.push_back(onTrack(clusters,trackCollection[i],globaltrackid_[i]+1));
   }
   std::vector< std::vector<int> > pixelClusterOntrackIndices;
   for(size_t i = 0; i<trackLabel_.size(); ++i) {
     pixelClusterOntrackIndices.push_back(onTrack(pixelclusters,trackCollection[i],globaltrackid_[i]+1));
   }
   nclustersOntrack_    = count_if(stripClusterOntrackIndices[0].begin(),stripClusterOntrackIndices[0].end(),bind2nd(not_equal_to<int>(), -1));
   npixClustersOntrack_ = count_if(pixelClusterOntrackIndices[0].begin(),pixelClusterOntrackIndices[0].end(),bind2nd(not_equal_to<int>(), -1));
   
   // iterate over tracks
   for (size_t coll = 0; coll<trackCollection.size(); ++coll) {
     uint32_t n_hits_barrel=0;
     uint32_t n_hits_lowprob=0;
     for(TrajTrackAssociationCollection::const_iterator it = TrajToTrackMap[coll].begin(); it!=TrajToTrackMap[coll].end(); ++it) {
       reco::TrackRef itTrack  = it->val;
       edm::Ref<std::vector<Trajectory> > traj  = it->key; // bug to find type of the key
       eta_   = itTrack->eta();
       phi_   = itTrack->phi();
       try { // not all track collections have the dedx info... indeed at best one.
         dedxNoM_ = dEdxTrack1[itTrack].numberOfMeasurements();
         dedx1_ = dEdxTrack1[itTrack].dEdx();
         dedx2_ = dEdxTrack2[itTrack].dEdx();
         dedx3_ = dEdxTrack3[itTrack].dEdx();
       } catch (...) {
         dedxNoM_ = 0;
         dedx1_ = 0.;
         dedx2_ = 0.;
         dedx3_ = 0.;
       }
       charge_ = itTrack->charge();
       quality_ = itTrack->qualityMask();
       foundhits_ = itTrack->found();
       lostHits_  = itTrack->lost();
       foundhitsStrips_ = itTrack->hitPattern().numberOfValidStripHits();
       foundhitsPixels_ = itTrack->hitPattern().numberOfValidPixelHits();
       losthitsStrips_  = itTrack->hitPattern().numberOfLostStripHits();
       losthitsPixels_  = itTrack->hitPattern().numberOfLostPixelHits();
       p_ = itTrack->p();
       pt_ = itTrack->pt();
       chi2_  = itTrack->chi2();
       ndof_ = (uint32_t)itTrack->ndof();
       dz_ = itTrack->dz();
       dzerr_ = itTrack->dzError();
       dzCorr_ = itTrack->dz(beamSpot);
       dxy_ = itTrack->dxy();
       dxyerr_ = itTrack->dxyError();
       dxyCorr_ = itTrack->dxy(beamSpot);
       pterr_ = itTrack->ptError();
       etaerr_ = itTrack->etaError();
       phierr_ = itTrack->phiError();
       qoverp_ = itTrack->qoverp();
       xPCA_ = itTrack->vertex().x();
       yPCA_ = itTrack->vertex().y();
       zPCA_ = itTrack->vertex().z();
       nLayers_ = uint32_t(itTrack->hitPattern().trackerLayersWithMeasurement());
       try { // only one track collection (at best) is connected to the main vertex
         if(vertexColl.size()>0 && !vertexColl.begin()->isFake()) {
           trkWeightpvtx_ =  vertexColl.begin()->trackWeight(itTrack);
         } else
           trkWeightpvtx_ = 0.;
       } catch (...) {
         trkWeightpvtx_ = 0.;
       }
       globaltrackid_[coll]++;
       std::map<size_t,int>::const_iterator theV = trackVertices[coll].find(itTrack.key());
       vertexid_ = (theV!=trackVertices[coll].end()) ? theV->second : 0;
       // add missing hits (separate tree, common strip + pixel)
       Trajectory::DataContainer const & measurements = traj->measurements();
       if(functionality_missingHits_) {
         for(Trajectory::DataContainer::const_iterator it = measurements.begin(); it!=measurements.end(); ++it) {
           TrajectoryMeasurement::ConstRecHitPointer rechit = it->recHit();
           if(!rechit->isValid()) {
             // detid
             detid_ = rechit->geographicalId();
             // status
             type_ = rechit->getType();
             // position
             LocalPoint local = it->predictedState().localPosition();
             clPositionX_ = local.x();
             clPositionY_ = local.y();
             // global position
             GlobalPoint global = it->predictedState().globalPosition();
             globalX_ = global.x();
             globalY_ = global.y();
             globalZ_ = global.z();
             // position in the measurement frame
             measX_ = 0;
             measY_ = 0;
             if(type_ != TrackingRecHit::inactive ) {
               const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(tracker_->idToDetUnit(detid_));
               if(gdu && gdu->type().isTracker()) {
                 const Topology& topo = gdu->topology();
                 MeasurementPoint meas = topo.measurementPosition(local);
                 measX_ = meas.x();
                 measY_ = meas.y();
               }
             }
             // local error
             LocalError error = it->predictedState().localError().positionError();
             errorX_ = error.xx();
             errorY_ = error.yy();
             // fill
             missingHits_[coll]->Fill();
           }
         }
       }
       // compute the fraction of low probability pixels... will be added to the event tree
       for(trackingRecHit_iterator it = itTrack->recHitsBegin(); it!=itTrack->recHitsEnd(); ++it) {
            const TrackingRecHit* hit = &(**it);
            const SiPixelRecHit* pixhit = dynamic_cast<const SiPixelRecHit*>(hit);
            if(pixhit) {
               DetId detId = pixhit->geographicalId();
               if(detId.subdetId()==PixelSubdetector::PixelBarrel) {
                 ++n_hits_barrel;
                 double proba = pixhit->clusterProbability(0);
                 if(proba<=0.0) ++n_hits_lowprob;
               }
            }
       }
       // fill the track tree
       if(functionality_tracks_) tracks_[coll]->Fill();
     }
     lowPixelProbabilityFraction_[coll] = n_hits_barrel>0 ? (float)n_hits_lowprob/n_hits_barrel : -1.;
   }
   
   // iterate over clusters
   nclusters_ = 0;
   std::vector<double>::const_iterator angleIt = clusterOntrackAngles.begin();
   uint32_t localCounter = 0;
   for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
     edmNew::DetSet<SiStripCluster>::const_iterator begin=DSViter->begin();
     edmNew::DetSet<SiStripCluster>::const_iterator end  =DSViter->end();
     uint32_t detid = DSViter->id();
     nclusters_ += DSViter->size();
     if(functionality_offtrackClusters_||functionality_ontrackClusters_) {
       for(edmNew::DetSet<SiStripCluster>::const_iterator iter=begin;iter!=end;++iter,++angleIt,++localCounter) {
         SiStripClusterInfo* siStripClusterInfo = new SiStripClusterInfo(*iter,iSetup,detid,std::string("")); //string = quality label
         // general quantities
         for(size_t i=0; i< trackLabel_.size(); ++i) {
           trackid_[i] = stripClusterOntrackIndices[i][localCounter];
         }
         onTrack_ = (trackid_[0] != (uint32_t)-1);
         clWidth_ = siStripClusterInfo->width();
         clPosition_ = siStripClusterInfo->baryStrip();
         angle_ = *angleIt;
         thickness_ =  ((((DSViter->id()>>25)&0x7f)==0xd) ||
                       ((((DSViter->id()>>25)&0x7f)==0xe) && (((DSViter->id()>>5)&0x7)>4))) ? 500 : 300;
         stripLength_ = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid))->specificTopology().stripLength();
         int nstrips  = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid))->specificTopology().nstrips();
         maxCharge_ = siStripClusterInfo->maxCharge();
         // signal and noise with gain corrections
         clNormalizedCharge_ = siStripClusterInfo->charge() ;
         clNormalizedNoise_  = siStripClusterInfo->noiseRescaledByGain() ;
         clSignalOverNoise_  = siStripClusterInfo->signalOverNoise() ;
         // signal and noise with gain corrections and angle corrections
         clCorrectedCharge_ = clNormalizedCharge_ * fabs(cos(angle_)); // corrected for track angle
         clCorrectedSignalOverNoise_ = clSignalOverNoise_ * fabs(cos(angle_)); // corrected for track angle
         // signal and noise without gain corrections
         clBareNoise_  = siStripClusterInfo->noise();
         clBareCharge_ = clSignalOverNoise_*clBareNoise_;
         // global position
         const StripGeomDetUnit* sgdu = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid));
         Surface::GlobalPoint gp = sgdu->surface().toGlobal(sgdu->specificTopology().localPosition(MeasurementPoint(clPosition_,0)));
         globalX_ = gp.x();
         globalY_ = gp.y();
         globalZ_ = gp.z();
         // cabling
         detid_ = detid;
         lldChannel_ = 1+(int(floor(iter->barycenter()))/256);
         if(lldChannel_==2 && nstrips==512) lldChannel_=3;
         if((functionality_offtrackClusters_&&!onTrack_)||(functionality_ontrackClusters_&&onTrack_)) clusters_->Fill();
         delete siStripClusterInfo;
       }
     }
   }
   
   // iterate over pixel clusters
   npixClusters_ = 0;
   std::vector<std::pair<double,double> >::const_iterator pixAngleIt = pixclusterOntrackAngles.begin();
   localCounter = 0;
   for (edmNew::DetSetVector<SiPixelCluster>::const_iterator DSViter=pixelclusters->begin(); DSViter!=pixelclusters->end();DSViter++ ) {
     edmNew::DetSet<SiPixelCluster>::const_iterator begin=DSViter->begin();
     edmNew::DetSet<SiPixelCluster>::const_iterator end  =DSViter->end();
     uint32_t detid = DSViter->id();
     npixClusters_ += DSViter->size();
     if(functionality_pixclusters_) {
       for(edmNew::DetSet<SiPixelCluster>::const_iterator iter=begin;iter!=end;++iter,++pixAngleIt,++localCounter) {
         // general quantities
         for(size_t i=0; i< trackLabel_.size(); ++i) {
           trackid_[i] = pixelClusterOntrackIndices[i][localCounter];
         }
         onTrack_ = (trackid_[0] != (uint32_t)-1);
         clPositionX_ = iter->x();
         clPositionY_ = iter->y();
         clSize_  = iter->size();
         clSizeX_ = iter->sizeX();
         clSizeY_ = iter->sizeY();
         alpha_ = pixAngleIt->first;
         beta_  = pixAngleIt->second;
         charge_ = (iter->charge())/1000.;
         chargeCorr_ = charge_ * sqrt( 1.0 / ( 1.0/pow( tan(alpha_), 2 ) + 1.0/pow( tan(beta_), 2 ) + 1.0 ))/1000.;
         // global position
         const PixelGeomDetUnit* pgdu = static_cast<const PixelGeomDetUnit*>(tracker_->idToDet(detid));
         Surface::GlobalPoint gp = pgdu->surface().toGlobal(pgdu->specificTopology().localPosition(MeasurementPoint(clPositionX_,clPositionY_)));
         globalX_ = gp.x();
         globalY_ = gp.y();
         globalZ_ = gp.z();
         // cabling
         detid_ = detid;
         // fill
         pixclusters_->Fill();
       }
     }
   }

   // topological quantities - uses the first track collection
   EventShape shape(trackCollection[0]);
   math::XYZTLorentzVectorF thrust = shape.thrust();
   thrustValue_ = thrust.t();
   thrustX_ = thrust.x();
   thrustY_ = thrust.y();
   thrustZ_ = thrust.z();
   sphericity_ = shape.sphericity();
   planarity_  = shape.planarity();
   aplanarity_ = shape.aplanarity();
   
   // fill event tree
   if(functionality_events_) event_->Fill();
  
}
void TrackerDpgAnalysis::beginRun ( const edm::Run iRun,
const edm::EventSetup iSetup 
) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 940 of file TrackerDpgAnalysis.cc.

References cabling_, cablingFileName_, ccuAdd_, ccuChan_, connections_, gather_cfg::cout, dcuId_, delay(), delay_, delayFileNames_, detid_, fecCrate_, fecRing_, fecSlot_, fedCh_, fedId_, fiberLength_, TrackerMap::fill_current_val(), edm::EventSetup::get(), globalX_, globalY_, globalZ_, hlNames_, hltConfig_, HLTLabel_, i, HLTConfigProvider::init(), geometryCSVtoXML::line, lldChannel_, moduleId_, moduleName_, mergeVDriftHistosByStation::name, edm::InputTag::process(), psumap_, PSUname_, readoutmap_, TrackerMap::save(), 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().

{

   //geometry
   iSetup.get<TrackerDigiGeometryRecord>().get(tracker_);

   //HLT names
   bool changed (true);
   if (hltConfig_.init(iRun,iSetup,HLTLabel_.process(),changed)) {
     if (changed) {
       hlNames_=hltConfig_.triggerNames();
     }
   }
   int i=0;
   for(std::vector<std::string>::const_iterator it = hlNames_.begin(); it<hlNames_.end();++it) {
     std::cout << (i++) << " = " << (*it) << std::endl;
   } 

   // read the delay offsets for each device from input files
   // this is only for the so-called "random delay" run
   std::map<uint32_t,float> delayMap = delay(delayFileNames_);
   TrackerMap tmap("Delays");

   // cabling I (readout)
   iSetup.get<SiStripFedCablingRcd>().get( cabling_ );
   const std::vector< uint16_t > & feds = cabling_->feds() ;
   for(std::vector< uint16_t >::const_iterator fedid = feds.begin();fedid<feds.end();++fedid) {
     const std::vector< FedChannelConnection > & connections = cabling_->connections(*fedid);
     for(std::vector< FedChannelConnection >::const_iterator conn=connections.begin();conn<connections.end();++conn) {
       // Fill the "old" map to be used for lookup during analysis
       if(conn->isConnected())
         connections_.insert(std::make_pair(conn->detId(),new FedChannelConnection(*conn)));
       // Fill the standalone tree (once for all)
       if(conn->isConnected()) {
         detid_ = conn->detId();
         strncpy(moduleName_,toStringName(detid_).c_str(),256);
         strncpy(moduleId_,toStringId(detid_).c_str(),256);
         lldChannel_ = conn->lldChannel();
         dcuId_ = conn->dcuId();
         fecCrate_ = conn->fecCrate();
         fecSlot_ = conn->fecSlot();
         fecRing_ = conn->fecRing();
         ccuAdd_ = conn->ccuAddr();
         ccuChan_ = conn->ccuChan();
         fedId_ = conn->fedId();
         fedCh_ = conn->fedCh();
         fiberLength_ = conn->fiberLength();
         delay_ = delayMap[dcuId_];
         const StripGeomDetUnit* sgdu = static_cast<const StripGeomDetUnit*>(tracker_->idToDet(detid_));
         Surface::GlobalPoint gp = sgdu->surface().toGlobal(LocalPoint(0,0));
         globalX_ = gp.x();
         globalY_ = gp.y();
         globalZ_ = gp.z();
         readoutmap_->Fill();
         tmap.fill_current_val(detid_,delay_);
       }
     }
   }
   if(delayMap.size()) tmap.save(true, 0, 0, "delaymap.png");

   // cabling II (DCU map)
   ifstream cablingFile(cablingFileName_.c_str());
   if(cablingFile.is_open()) {
     char buffer[1024];
     cablingFile.getline(buffer,1024);
     while(!cablingFile.eof()) {
       std::istringstream line(buffer);
       std::string name;
       // one line contains the PSU name + all dcuids connected to it.
       line >> name;
       strncpy(PSUname_,name.c_str(),256);
       while(!line.eof()) {
         line >> dcuId_;
         psumap_->Fill();
       }
       cablingFile.getline(buffer,1024);
     }
   } else {
     edm::LogWarning("BadConfig") << " The PSU file does not exist. The psumap tree will not be filled."
                                  << std::endl << " Looking for " << cablingFileName_.c_str() << "." 
                                  << std::endl << " Please specify a valid filename through the PSUFileName untracked parameter.";
   }
}
float TrackerDpgAnalysis::delay ( const SiStripEventSummary summary) [protected]

Definition at line 1368 of file TrackerDpgAnalysis.cc.

References summarizeEdmComparisonLogfiles::summary.

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

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

Definition at line 1379 of file TrackerDpgAnalysis.cc.

References delay(), mergeVDriftHistosByStation::file, geometryCSVtoXML::line, and pos.

                                                                                  {
   // prepare output
   uint32_t dcuid;
   float delay;
   std::map<uint32_t,float> delayMap;
   //iterator over input files
   for(std::vector<std::string>::const_iterator file=files.begin();file<files.end();++file){
     // open the file
     std::ifstream cablingFile(file->c_str());
     if(cablingFile.is_open()) {
       char buffer[1024];
       // read one line
       cablingFile.getline(buffer,1024);
       while(!cablingFile.eof()) {
         std::string line(buffer);
         size_t pos = line.find("dcuid");
         // one line containing dcuid
         if(pos != std::string::npos) {
           // decode dcuid
           std::string dcuids = line.substr(pos+7,line.find(" ",pos)-pos-8);
           std::istringstream dcuidstr(dcuids);
           dcuidstr >> std::hex >> dcuid;
           // decode delay
           pos = line.find("difpll");
           std::string diffs = line.substr(pos+8,line.find(" ",pos)-pos-9);
           std::istringstream diffstr(diffs);
           diffstr >> delay;
           // fill the map
           delayMap[dcuid] = delay;
         }
         // iterate
         cablingFile.getline(buffer,1024);
       }
     } else {
       edm::LogWarning("BadConfig") << " The delay file does not exist. The delay map will not be filled properly."
                                    << std::endl << " Looking for " << file->c_str() << "." 
                                    << std::endl << " Please specify valid filenames through the DelayFileNames untracked parameter.";
     }
   }
   return delayMap;
}
void TrackerDpgAnalysis::endJob ( void  ) [private, virtual]

Reimplemented from edm::EDAnalyzer.

Definition at line 1026 of file TrackerDpgAnalysis.cc.

References event_, i, psumap_, readoutmap_, tracks_, and vertices_.

                           {
  for(size_t i = 0; i<tracks_.size();++i) {
    char buffer[256];
    sprintf(buffer,"trackid%lu",(unsigned long)i);
    if(tracks_[i]->GetEntries()) tracks_[i]->BuildIndex(buffer,"eventid");
  }
  /* not needed: missing hits is a high-level quantity
  for(size_t i = 0; i<missingHits_.size();++i) {
    char buffer[256];
    sprintf(buffer,"trackid%lu",(unsigned long)i);
    if(missingHits_[i]->GetEntries()) missingHits_[i]->BuildIndex(buffer);
  }
  */
  if(vertices_->GetEntries()) vertices_->BuildIndex("vertexid","eventid");
  if(event_->GetEntries()) event_->BuildIndex("runid","eventid");
  if(psumap_->GetEntries()) psumap_->BuildIndex("dcuId");
  if(readoutmap_->GetEntries()) readoutmap_->BuildIndex("detid","lldChannel");
}
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 1251 of file TrackerDpgAnalysis.cc.

References runEdmFileComparison::collection.

{
      if(!hit) return;
      const SiPixelRecHit* pixhit = dynamic_cast<const SiPixelRecHit*>(hit);
      if(pixhit) {
        collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(std::make_pair(pixhit->cluster()->x(),pixhit->cluster()->y()),trackid)));
        }
}
void TrackerDpgAnalysis::insertMeasurement ( std::multimap< const uint32_t, std::pair< int, int > > &  collection,
const TrackingRecHit hit,
int  trackid 
) [protected]

Definition at line 1133 of file TrackerDpgAnalysis.cc.

References runEdmFileComparison::collection, insertMeasurement(), and SiTrackerMultiRecHit::recHits().

{
      if(!hit) return;
      const SiTrackerMultiRecHit* multihit=dynamic_cast<const SiTrackerMultiRecHit*>(hit);
      const SiStripRecHit2D* singlehit=dynamic_cast<const SiStripRecHit2D*>(hit);
      const SiStripRecHit1D* hit1d=dynamic_cast<const SiStripRecHit1D*>(hit);
      if(hit1d) { // 41X->...
        collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(int(hit1d->cluster()->barycenter()),trackid)));
      } else if(singlehit) { //...->33X
        collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(int(singlehit->cluster()->barycenter()),trackid)));
      }
      else if(multihit){
        std::vector< const TrackingRecHit * > childs = multihit->recHits();
        for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
           insertMeasurement(collection,*it,trackid);
        }
      }
}
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 1208 of file TrackerDpgAnalysis.cc.

References runEdmFileComparison::collection.

{
      if(!hit) return;
      const TSiPixelRecHit* pixhit = dynamic_cast<const TSiPixelRecHit*>(hit);
      if(pixhit) {
        collection.insert(std::make_pair(pixhit->geographicalId().rawId(),std::make_pair(pixhit->localPosition(),std::make_pair(alpha,beta))));
      }
}
void TrackerDpgAnalysis::insertMeasurement ( std::multimap< const uint32_t, std::pair< LocalPoint, double > > &  collection,
const TransientTrackingRecHit hit,
double  tla 
) [protected]

Definition at line 1080 of file TrackerDpgAnalysis.cc.

References runEdmFileComparison::collection.

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

{
      if(!hit) return;
      const TSiTrackerMultiRecHit* multihit=dynamic_cast<const TSiTrackerMultiRecHit*>(hit);
      const TSiStripRecHit2DLocalPos* singlehit=dynamic_cast<const TSiStripRecHit2DLocalPos*>(hit);
      const TSiStripRecHit1D* hit1d=dynamic_cast<const TSiStripRecHit1D*>(hit);
      if(hit1d) { //...->33X
        collection.insert(std::make_pair(hit1d->geographicalId().rawId(),std::make_pair(hit1d->localPosition(),tla)));
      } else if(singlehit) { // 41X->...
        collection.insert(std::make_pair(singlehit->geographicalId().rawId(),std::make_pair(singlehit->localPosition(),tla)));
      }
      else if(multihit){
        std::vector< const TrackingRecHit * > childs = multihit->recHits();
        for(std::vector<const TrackingRecHit*>::const_iterator it=childs.begin();it!=childs.end();++it) {
           insertMeasurement(collection,dynamic_cast<const TransientTrackingRecHit*>(*it),tla);
        }
      }
}
std::map< size_t, int > TrackerDpgAnalysis::inVertex ( const reco::TrackCollection tracks,
const reco::VertexCollection vertices,
uint32_t  firstVertex 
) [protected]

Definition at line 1152 of file TrackerDpgAnalysis.cc.

References convertSQLitetoXML_cfg::output, and v.

Referenced by analyze().

{
  // build reverse map track -> vertex
  std::map<size_t,int> output;
  uint32_t vertexid = firstVertex; 
  for(reco::VertexCollection::const_iterator v = vertices.begin(); v!=vertices.end(); ++v,++vertexid) {
    reco::Vertex::trackRef_iterator it = v->tracks_begin();
    reco::Vertex::trackRef_iterator lastTrack = v->tracks_end();
    for(;it!=lastTrack;++it) {
      output[it->key()] = vertexid;
    }
  }
  return output;
}
std::vector< int > TrackerDpgAnalysis::onTrack ( edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &  clusters,
const reco::TrackCollection trackVec,
uint32_t  firstTrack 
) [protected]

Definition at line 1217 of file TrackerDpgAnalysis.cc.

References begin, end, insertMeasurement(), and query::result.

{
  std::vector<int> result;
  // first, build a list of positions and trackid on tracks
  std::multimap<const uint32_t,std::pair<std::pair<float, float>,int> > onTrackPositions;
  uint32_t trackid = firstTrack;
  for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
    for(trackingRecHit_iterator it = itTrack->recHitsBegin(); it!=itTrack->recHitsEnd(); ++it) {
      const TrackingRecHit* hit = &(**it);
      insertMeasurement(onTrackPositions,hit,trackid);
    }
  }
  // then loop over the clusters to check
  int thetrackid = -1;
  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
    edmNew::DetSet<SiPixelCluster>::const_iterator begin=DSViter->begin();
    edmNew::DetSet<SiPixelCluster>::const_iterator end  =DSViter->end();
    for(edmNew::DetSet<SiPixelCluster>::const_iterator iter=begin;iter!=end;++iter) {
      thetrackid = -1;
      std::pair< std::multimap<uint32_t,std::pair<std::pair<float, float>,int> >::const_iterator,
                 std::multimap<uint32_t,std::pair<std::pair<float, float>,int> >::const_iterator> range =  
          onTrackPositions.equal_range(DSViter->id());
      for(std::multimap<uint32_t,std::pair<std::pair<float, float>,int> >::const_iterator cl = range.first; cl!= range.second; ++cl) {
        if((fabs(cl->second.first.first-iter->x())<2)&&(fabs(cl->second.first.second-iter->y())<2)) {
          thetrackid = cl->second.second;
        }
      }
      result.push_back(thetrackid);
    }
  }
  return result;
}
std::vector< int > TrackerDpgAnalysis::onTrack ( edm::Handle< edmNew::DetSetVector< SiStripCluster > > &  clusters,
const reco::TrackCollection trackVec,
uint32_t  firstTrack 
) [protected]

Definition at line 1099 of file TrackerDpgAnalysis.cc.

References begin, end, insertMeasurement(), and query::result.

Referenced by analyze().

{
  std::vector<int> result;
  // first, build a list of positions and trackid on tracks
  std::multimap<const uint32_t,std::pair<int,int> > onTrackPositions;
  uint32_t trackid = firstTrack;
  for(reco::TrackCollection::const_iterator itTrack = trackVec.begin(); itTrack!=trackVec.end();++itTrack,++trackid) {
    for(trackingRecHit_iterator it = itTrack->recHitsBegin(); it!=itTrack->recHitsEnd(); ++it) {
      const TrackingRecHit* hit = &(**it);
      insertMeasurement(onTrackPositions,hit,trackid);
    }
  }
  // then loop over the clusters to check
  int thetrackid = -1;
  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
    edmNew::DetSet<SiStripCluster>::const_iterator begin=DSViter->begin();
    edmNew::DetSet<SiStripCluster>::const_iterator end  =DSViter->end();
    std::pair< std::multimap<uint32_t,std::pair<int,int> >::const_iterator,
               std::multimap<uint32_t,std::pair<int,int> >::const_iterator> range =  
      onTrackPositions.equal_range(DSViter->id());
    for(edmNew::DetSet<SiStripCluster>::const_iterator iter=begin;iter!=end;++iter) {
      thetrackid = -1;
      for(std::multimap<uint32_t,std::pair<int,int> >::const_iterator cl = range.first; cl!= range.second; ++cl) {
        if(fabs(cl->second.first-iter->barycenter())<2) {
          thetrackid = cl->second.second;
        }
      }
      result.push_back(thetrackid);
    }
  }
  return result;
}
std::vector< std::pair< double, double > > TrackerDpgAnalysis::onTrackAngles ( edm::Handle< edmNew::DetSetVector< SiPixelCluster > > &  clusters,
const std::vector< Trajectory > &  trajVec 
) [protected]

Definition at line 1167 of file TrackerDpgAnalysis.cc.

References alpha, begin, beta, end, insertMeasurement(), Topology::measurementPosition(), query::result, GeomDetUnit::topology(), tracker_, PV3DBase< T, PVType, FrameType >::x(), PV2DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), PV2DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

{
  std::vector<std::pair<double,double> > result;
  // first, build a list of positions and angles on trajectories
  std::multimap<const uint32_t,std::pair<LocalPoint,std::pair<double,double> > > onTrackPositions;
  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
    Trajectory::DataContainer measurements = traj->measurements();
    for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
      LocalVector localDir = meas->updatedState().localDirection();
      double alpha = atan2(localDir.z(), localDir.x());
      double beta  = atan2(localDir.z(), localDir.y());
      insertMeasurement(onTrackPositions,&(*(meas->recHit())),alpha,beta);
    } 
  }
  // then loop over the clusters to check
  double alpha = 0.;
  double beta  = 0.;
  for (edmNew::DetSetVector<SiPixelCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
    edmNew::DetSet<SiPixelCluster>::const_iterator begin=DSViter->begin();
    edmNew::DetSet<SiPixelCluster>::const_iterator end  =DSViter->end();
    for(edmNew::DetSet<SiPixelCluster>::const_iterator iter=begin;iter!=end;++iter) {
      alpha = 0.;
      beta  = 0.;
      std::pair< std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator,
                 std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator> range =  
          onTrackPositions.equal_range(DSViter->id());
      const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(tracker_->idToDet(DSViter->id()));
      for(std::multimap<uint32_t,std::pair<LocalPoint,std::pair<double, double> > >::const_iterator cl = range.first; cl!= range.second; ++cl) {
        if(fabs(gdu->topology().measurementPosition(cl->second.first).x()-iter->x())<2 &&
           fabs(gdu->topology().measurementPosition(cl->second.first).y()-iter->y())<2    ) {
          alpha = cl->second.second.first;
          beta  = cl->second.second.second;
        }
      }
      result.push_back(std::make_pair(alpha,beta));
    }
  }
  return result;
}
std::vector< double > TrackerDpgAnalysis::onTrackAngles ( edm::Handle< edmNew::DetSetVector< SiStripCluster > > &  clusters,
const std::vector< Trajectory > &  trajVec 
) [protected]

Definition at line 1045 of file TrackerDpgAnalysis.cc.

References angle(), begin, end, insertMeasurement(), Topology::measurementPosition(), query::result, GeomDetUnit::topology(), tracker_, and PV2DBase< T, PVType, FrameType >::x().

Referenced by analyze().

{
  std::vector<double> result;
  // first, build a list of positions and angles on trajectories
  std::multimap<const uint32_t,std::pair<LocalPoint,double> > onTrackPositions;
  for(std::vector<Trajectory>::const_iterator traj = trajVec.begin(); traj< trajVec.end(); ++traj) {
    Trajectory::DataContainer measurements = traj->measurements();
    for(Trajectory::DataContainer::iterator meas = measurements.begin(); meas!= measurements.end(); ++meas) {
      double tla = meas->updatedState().localDirection().theta();
      insertMeasurement(onTrackPositions,&(*(meas->recHit())),tla);
    } 
  }
  // then loop over the clusters to check
  double angle = 0.;
  for (edmNew::DetSetVector<SiStripCluster>::const_iterator DSViter=clusters->begin(); DSViter!=clusters->end();DSViter++ ) {
    edmNew::DetSet<SiStripCluster>::const_iterator begin=DSViter->begin();
    edmNew::DetSet<SiStripCluster>::const_iterator end  =DSViter->end();
    std::pair< std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator,
               std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator> range =  
      onTrackPositions.equal_range(DSViter->id());
    const GeomDetUnit* gdu = static_cast<const GeomDetUnit*>(tracker_->idToDet(DSViter->id()));
    for(edmNew::DetSet<SiStripCluster>::const_iterator iter=begin;iter!=end;++iter) {
      angle = 0.;
      for(std::multimap<uint32_t,std::pair<LocalPoint,double> >::const_iterator cl = range.first; cl!= range.second; ++cl) {
        if(fabs(gdu->topology().measurementPosition(cl->second.first).x()-iter->barycenter())<2) {
          angle = cl->second.second;
        }
      }
      result.push_back(angle);
    }
  }
  return result;
}
double TrackerDpgAnalysis::sumPtSquared ( const reco::Vertex v) [protected]

Definition at line 1358 of file TrackerDpgAnalysis.cc.

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

Referenced by analyze().

                                                             {
  double sum = 0.;
  double pT;
  for (reco::Vertex::trackRef_iterator it = v.tracks_begin(); it != v.tracks_end(); it++) {
    pT = (**it).pt();
    sum += pT*pT;
  }
  return sum;
}
std::string TrackerDpgAnalysis::toStringId ( uint32_t  rawid) [protected]

Definition at line 1350 of file TrackerDpgAnalysis.cc.

References dbtoconf::out, and convertSQLitetoXML_cfg::output.

Referenced by beginRun().

                                                       {
   std::string out;
   std::stringstream output;
   output << rawid << " (0x" << std::hex << rawid << std::dec << ")";
   out = output.str();
   return out;
}
std::string TrackerDpgAnalysis::toStringName ( uint32_t  rawid) [protected]

Definition at line 1260 of file TrackerDpgAnalysis.cc.

References cond::rpcobgas::detid, TIDDetId::diskNumber(), TIBDetId::isDoubleSide(), TOBDetId::isDoubleSide(), TECDetId::isDoubleSide(), TIDDetId::isDoubleSide(), TIBDetId::isExternalString(), TECDetId::isFrontPetal(), TIDDetId::isFrontRing(), TECDetId::isRPhi(), TOBDetId::isRPhi(), TIBDetId::isRPhi(), TIDDetId::isRPhi(), TIDDetId::isZPlusSide(), TIBDetId::isZPlusSide(), TECDetId::isZPlusSide(), TOBDetId::isZPlusSide(), TOBDetId::layerNumber(), TIBDetId::layerNumber(), TIDDetId::moduleNumber(), TECDetId::moduleNumber(), TOBDetId::moduleNumber(), TIBDetId::moduleNumber(), dbtoconf::out, convertSQLitetoXML_cfg::output, TECDetId::petalNumber(), TIDDetId::ringNumber(), TECDetId::ringNumber(), TOBDetId::rodNumber(), TIBDetId::stringNumber(), SiStripDetId::subDetector(), and TECDetId::wheelNumber().

Referenced by beginRun().

                                                         {
   SiStripDetId detid(rawid);
   std::string out;
   std::stringstream output;
   switch(detid.subDetector()) {
     case 3:
     {
       output << "TIB";
       TIBDetId tib(rawid);
       output << (tib.isZPlusSide() ? "+" : "-");
       output << " layer ";
       output << tib.layerNumber();
       output << ", string ";
       output << tib.stringNumber();
       output << (tib.isExternalString() ? " external" : " internal");
       output << ", module ";
       output << tib.moduleNumber();
       if(tib.isDoubleSide()) {
         output << " (double)";
       } else {
         output << (tib.isRPhi() ? " (rphi)" : " (stereo)");
       }
       break;
     }
     case 4:
     {
       output << "TID";
       TIDDetId tid(rawid);
       output << (tid.isZPlusSide() ? "+" : "-");
       output << " disk ";
       output << tid.diskNumber();
       output << ", ring ";
       output << tid.ringNumber();
       output << (tid.isFrontRing() ? " front" : " back");
       output << ", module ";
       output << tid.moduleNumber();
       if(tid.isDoubleSide()) {
         output << " (double)";
       } else {
         output << (tid.isRPhi() ? " (rphi)" : " (stereo)");
       }
       break;
     }
     case 5:
     {
       output << "TOB";
       TOBDetId tob(rawid);
       output << (tob.isZPlusSide() ? "+" : "-");
       output << " layer ";
       output << tob.layerNumber();
       output << ", rod ";
       output << tob.rodNumber();
       output << ", module ";
       output << tob.moduleNumber();
       if(tob.isDoubleSide()) {
         output << " (double)";
       } else {
         output << (tob.isRPhi() ? " (rphi)" : " (stereo)");
       }
       break;
     }
     case 6:
     {
       output << "TEC";
       TECDetId tec(rawid);
       output << (tec.isZPlusSide() ? "+" : "-");
       output << " disk ";
       output << tec.wheelNumber();
       output << " sector ";
       output << tec.petalNumber();
       output << (tec.isFrontPetal() ? " Front Petal" : " Back Petal");
       output << ", module ";
       output << tec.ringNumber();
       output << tec.moduleNumber();
       if(tec.isDoubleSide()) {
         output << " (double)";
       } else {
         output << (tec.isRPhi() ? " (rphi)" : " (stereo)");
       }
       break;
     }
     default:
     {
       output << "UNKNOWN";
     }
   }
   out = output.str();
   return out;
}

Member Data Documentation

float TrackerDpgAnalysis::alpha_ [private]

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::angle_ [private]

Definition at line 162 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::beta_ [private]

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsDxdz_ [private]

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsDydz_ [private]

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsX0_ [private]

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsY0_ [private]

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::bsZ0_ [private]

Definition at line 185 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::bx_ [private]

Definition at line 188 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 142 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

std::string TrackerDpgAnalysis::cablingFileName_ [private]

Definition at line 191 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::ccuAdd_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::ccuChan_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::charge_ [private]

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::chi2_ [private]

Definition at line 167 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 165 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 165 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 163 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 163 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 164 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 164 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 166 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 164 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::clSize_ [private]

Definition at line 176 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::clSizeX_ [private]

Definition at line 176 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::clSizeY_ [private]

Definition at line 176 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 147 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 166 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

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

Definition at line 144 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

uint32_t TrackerDpgAnalysis::dcuId_ [private]

Definition at line 169 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dedx1_ [private]

Definition at line 168 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dedx2_ [private]

Definition at line 168 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dedx3_ [private]

Definition at line 168 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::dedxNoM_ [private]

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::delay_ [private]

Definition at line 186 of file TrackerDpgAnalysis.cc.

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

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

Definition at line 192 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::detid_ [private]

Definition at line 169 of file TrackerDpgAnalysis.cc.

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

Definition at line 166 of file TrackerDpgAnalysis.cc.

float TrackerDpgAnalysis::dxy_ [private]

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dxyerr_ [private]

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dz_ [private]

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dzCorr_ [private]

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::dzerr_ [private]

Definition at line 181 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::errorX_ [private]

Definition at line 161 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::errorY_ [private]

Definition at line 161 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::eta_ [private]

Definition at line 167 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::etaerr_ [private]

Definition at line 180 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::event_ [private]

Definition at line 153 of file TrackerDpgAnalysis.cc.

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

uint32_t TrackerDpgAnalysis::eventid_ [private]

Definition at line 157 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::fBz_ [private]

Definition at line 177 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fecCrate_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fecRing_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fecSlot_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fedCh_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::fedId_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

Definition at line 170 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::foundhits_ [private]

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 145 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 159 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 158 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 160 of file TrackerDpgAnalysis.cc.

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

Definition at line 160 of file TrackerDpgAnalysis.cc.

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

Definition at line 160 of file TrackerDpgAnalysis.cc.

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

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

Definition at line 194 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

Definition at line 195 of file TrackerDpgAnalysis.cc.

Referenced by beginRun().

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

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

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 183 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 187 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint16_t TrackerDpgAnalysis::lldChannel_ [private]

Definition at line 170 of file TrackerDpgAnalysis.cc.

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

uint32_t TrackerDpgAnalysis::lostHits_ [private]

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 173 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 189 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 162 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::measX_ [private]

Definition at line 161 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::measY_ [private]

Definition at line 161 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

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

Definition at line 150 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 190 of file TrackerDpgAnalysis.cc.

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

Definition at line 190 of file TrackerDpgAnalysis.cc.

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

uint32_t TrackerDpgAnalysis::nclusters_ [private]

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::ndof_ [private]

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nLayers_ [private]

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

const int TrackerDpgAnalysis::nMaxPVs_ = 50 [static, private]

Definition at line 138 of file TrackerDpgAnalysis.cc.

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze().

uint32_t* TrackerDpgAnalysis::ntracks_ [private]

Definition at line 172 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 175 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t * TrackerDpgAnalysis::ntrajs_ [private]

Definition at line 172 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::nVertices_ [private]

Definition at line 174 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 156 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::orbit_ [private]

Definition at line 188 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::orbitL1_ [private]

Definition at line 188 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::p_ [private]

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::phi_ [private]

Definition at line 167 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::phierr_ [private]

Definition at line 180 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 189 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 148 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 152 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 193 of file TrackerDpgAnalysis.cc.

Referenced by TrackerDpgAnalysis().

TTree* TrackerDpgAnalysis::psumap_ [private]

Definition at line 154 of file TrackerDpgAnalysis.cc.

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

char * TrackerDpgAnalysis::PSUname_ [private]

Definition at line 190 of file TrackerDpgAnalysis.cc.

Referenced by beginRun(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::pt_ [private]

Definition at line 184 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::pterr_ [private]

Definition at line 180 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::qoverp_ [private]

Definition at line 182 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::quality_ [private]

Definition at line 171 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 155 of file TrackerDpgAnalysis.cc.

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

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::runid_ [private]

Definition at line 157 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::store_ [private]

Definition at line 188 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 166 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 178 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 166 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 186 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::time_ [private]

Definition at line 188 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 143 of file TrackerDpgAnalysis.cc.

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

uint32_t * TrackerDpgAnalysis::trackid_ [private]

Definition at line 159 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 141 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

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

Definition at line 149 of file TrackerDpgAnalysis.cc.

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

Definition at line 182 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::type_ [private]

Definition at line 169 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

uint32_t TrackerDpgAnalysis::vertexid_ [private]

Definition at line 157 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 139 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

Definition at line 151 of file TrackerDpgAnalysis.cc.

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

float TrackerDpgAnalysis::xPCA_ [private]

Definition at line 182 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::yPCA_ [private]

Definition at line 182 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().

float TrackerDpgAnalysis::zPCA_ [private]

Definition at line 182 of file TrackerDpgAnalysis.cc.

Referenced by analyze(), and TrackerDpgAnalysis().