![]() |
![]() |
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