CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/Alignment/OfflineValidation/plugins/PrimaryVertexValidation.h

Go to the documentation of this file.
00001 #ifndef PrimaryVertexValidation_h
00002 #define PrimaryVertexValidation_h
00003 
00004 #include "FWCore/Framework/interface/Frameworkfwd.h"
00005 #include "FWCore/Framework/interface/EDAnalyzer.h"
00006 #include "FWCore/Framework/interface/Event.h"
00007 #include "FWCore/Framework/interface/ESHandle.h"
00008 #include "FWCore/Framework/interface/EventSetup.h"
00009 #include "FWCore/Framework/interface/MakerMacros.h"
00010 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00011 
00012 #include "TFile.h"
00013 #include "TH1D.h"
00014 #include "TH1I.h"
00015 #include "TH2D.h"
00016 #include "TTree.h"
00017 
00018 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
00019 
00020 #include "DataFormats/TrajectorySeed/interface/TrajectorySeed.h"
00021 #include "DataFormats/TrajectorySeed/interface/TrajectorySeedCollection.h"
00022 #include "DataFormats/RoadSearchCloud/interface/RoadSearchCloud.h"
00023 #include "DataFormats/RoadSearchCloud/interface/RoadSearchCloudCollection.h"
00024 #include "DataFormats/TrackCandidate/interface/TrackCandidate.h"
00025 #include "DataFormats/TrackCandidate/interface/TrackCandidateCollection.h"
00026 #include "DataFormats/TrackReco/interface/Track.h"
00027 #include "DataFormats/TrackReco/interface/TrackFwd.h"
00028 #include "DataFormats/TrackingRecHit/interface/TrackingRecHit.h"
00029 #include "DataFormats/DetId/interface/DetId.h"
00030 #include "DataFormats/SiStripDetId/interface/TIBDetId.h"
00031 #include "DataFormats/SiStripDetId/interface/TIDDetId.h"
00032 #include "DataFormats/SiStripDetId/interface/TOBDetId.h"
00033 #include "DataFormats/SiStripDetId/interface/TECDetId.h"
00034 #include "DataFormats/SiStripDetId/interface/StripSubdetector.h"
00035 #include "DataFormats/SiPixelDetId/interface/PixelSubdetector.h"
00036 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2DCollection.h"
00037 #include "DataFormats/TrackerRecHit2D/interface/SiStripMatchedRecHit2DCollection.h"
00038 #include "DataFormats/TrackerRecHit2D/interface/ProjectedSiStripRecHit2D.h"
00039 
00040 #include "DataFormats/SiStripDigi/interface/SiStripRawDigi.h"
00041 #include "DataFormats/TrackerRecHit2D/interface/SiStripRecHit2D.h"
00042 #include "DataFormats/SiStripDigi/interface/SiStripDigi.h"
00043 #include "DataFormats/SiStripCluster/interface/SiStripCluster.h"
00044 #include "DataFormats/Common/interface/DetSetVector.h"
00045 
00046 #include "Geometry/Records/interface/TrackerDigiGeometryRecord.h"
00047 #include "Geometry/TrackerGeometryBuilder/interface/TrackerGeometry.h"
00048 #include "DataFormats/GeometryVector/interface/GlobalPoint.h"
00049 #include "DataFormats/GeometryVector/interface/LocalPoint.h"
00050 #include "Geometry/CommonDetUnit/interface/GeomDetUnit.h"
00051 
00052 #include "DataFormats/Common/interface/EDProduct.h"
00053 
00054 #include "DataFormats/TrackReco/interface/Track.h"
00055 #include "SimDataFormats/TrackingHit/interface/PSimHit.h"
00056 #include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
00057 
00058 #include "RecoVertex/VertexPrimitives/interface/VertexFitter.h"
00059 #include "RecoVertex/AdaptiveVertexFit/interface/AdaptiveVertexFitter.h"
00060 
00061 #include "RecoVertex/PrimaryVertexProducer/interface/TrackFilterForPVFinding.h"
00062 
00063 // system include files
00064 #include <iostream>
00065 #include <memory>
00066 #include <string>
00067 #include <sstream>
00068 #include <vector>
00069 #include <map>
00070 
00071 //
00072 // class decleration
00073 //
00074 
00075 class PrimaryVertexValidation : public edm::EDAnalyzer {
00076 
00077  public:
00078   explicit PrimaryVertexValidation(const edm::ParameterSet&);
00079   ~PrimaryVertexValidation();
00080 
00081  private:
00082   virtual void beginJob();
00083   virtual void analyze(const edm::Event&, const edm::EventSetup&);
00084   virtual void endJob();
00085   bool isHit2D(const TrackingRecHit &hit) const;
00086   bool hasFirstLayerPixelHits(const reco::TrackRef track);
00087 
00088   // ----------member data ---------------------------
00089   edm::ParameterSet theConfig;
00090   edm::InputTag  TrackCollectionTag_;
00091   bool debug_;
00092   int Nevt_;
00093   TrackFilterForPVFinding theTrackFilter_;
00094 
00095   // Output
00096   std::string filename_;     
00097   TFile* rootFile_;
00098   TTree* rootTree_;
00099   
00100   // Root-Tuple variables :
00101   //=======================
00102   void SetVarToZero();  
00103 
00104   static const int nMaxtracks_ = 1000;
00105   int nTracks_;
00106   double pt_[nMaxtracks_];   
00107   double p_[nMaxtracks_];    
00108   int nhits_[nMaxtracks_];
00109   int nhits1D_[nMaxtracks_];
00110   int nhits2D_[nMaxtracks_];
00111   int nhitsBPIX_[nMaxtracks_]; 
00112   int nhitsFPIX_[nMaxtracks_];
00113   int nhitsTIB_[nMaxtracks_];
00114   int nhitsTID_[nMaxtracks_];
00115   int nhitsTOB_[nMaxtracks_];
00116   int nhitsTEC_[nMaxtracks_];       
00117   double eta_[nMaxtracks_];
00118   double phi_[nMaxtracks_];
00119   double chi2_[nMaxtracks_];
00120   double chi2ndof_[nMaxtracks_];
00121   int    charge_[nMaxtracks_];
00122   double qoverp_[nMaxtracks_];
00123   double dz_[nMaxtracks_];
00124   double dxy_[nMaxtracks_];
00125   double xPCA_[nMaxtracks_];
00126   double yPCA_[nMaxtracks_];
00127   double zPCA_[nMaxtracks_];
00128   double xUnbiasedVertex_[nMaxtracks_];
00129   double yUnbiasedVertex_[nMaxtracks_];
00130   double zUnbiasedVertex_[nMaxtracks_];
00131   float  chi2normUnbiasedVertex_[nMaxtracks_]; 
00132   float  chi2UnbiasedVertex_[nMaxtracks_];
00133   float  DOFUnbiasedVertex_[nMaxtracks_];
00134   float  sumOfWeightsUnbiasedVertex_[nMaxtracks_];
00135   int    tracksUsedForVertexing_[nMaxtracks_];
00136   double dxyFromMyVertex_[nMaxtracks_];
00137   double dzFromMyVertex_[nMaxtracks_];
00138   double dszFromMyVertex_[nMaxtracks_];
00139   int   hasRecVertex_[nMaxtracks_];
00140   int   isGoodTrack_[nMaxtracks_];
00141 
00142 };
00143 
00144 #endif