CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_4_1_8_patch9/src/Validation/RecoVertex/interface/TrackParameterAnalyzer.h

Go to the documentation of this file.
00001 // -*- C++ -*-
00002 //
00003 // Package:    TrackParameterAnalyzer
00004 // Class:      TrackParameterAnalyzer
00005 // 
00013 //
00014 // Original Author:  Wolfram Erdmann
00015 //         Created:  Fri Jun  2 10:54:05 CEST 2006
00016 // $Id: TrackParameterAnalyzer.h,v 1.13 2010/05/11 19:23:31 wmtan Exp $
00017 //
00018 //
00019 
00020 
00021 // system include files
00022 #include <memory>
00023 #include <string>
00024 #include <vector>
00025 
00026 // user include files
00027 #include "FWCore/Framework/interface/Frameworkfwd.h"
00028 #include "FWCore/Framework/interface/EDAnalyzer.h"
00029 
00030 #include "FWCore/Framework/interface/Event.h"
00031 #include "FWCore/Framework/interface/MakerMacros.h"
00032 
00033 #include "FWCore/ParameterSet/interface/ParameterSet.h"
00034 #include "FWCore/Utilities/interface/InputTag.h"
00035 #include "DataFormats/TrackReco/interface/Track.h"
00036 #include "FWCore/MessageLogger/interface/MessageLogger.h"
00037 
00038 // Hep MC stuff from CLHEP, add  <use name=clhep> to the buildfile
00039 #include "HepMC/GenEvent.h"
00040 #include "HepMC/GenVertex.h"
00041 #include "HepMC/GenParticle.h"
00042 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00043 #include "CLHEP/Vector/LorentzVector.h"
00044 
00045 // simulated vertices,..., add <use name=SimDataFormats/Vertex> and <../Track>
00046 #include <SimDataFormats/Vertex/interface/SimVertex.h>
00047 #include <SimDataFormats/Vertex/interface/SimVertexContainer.h>
00048 #include <SimDataFormats/Track/interface/SimTrack.h>
00049 #include <SimDataFormats/Track/interface/SimTrackContainer.h>
00050 
00051 // vertex stuff
00052 #include <DataFormats/VertexReco/interface/Vertex.h>
00053 #include "RecoVertex/VertexPrimitives/interface/TransientVertex.h"
00054 // perigee 
00055 #include <TrackingTools/TrajectoryParametrization/interface/PerigeeTrajectoryParameters.h>
00056 //#include <TrackingTools/TrajectoryState/interface/TrajectoryStateClosestToPoint.h>
00057 
00058 // Root
00059 #include <TH1.h>
00060 #include <TH2.h>
00061 #include <TFile.h>
00062 
00063 
00064 // class declaration
00065 //
00066 typedef reco::TrackBase::ParameterVector ParameterVector;
00067 
00068 class TrackParameterAnalyzer : public edm::EDAnalyzer {
00069    public:
00070       explicit TrackParameterAnalyzer(const edm::ParameterSet&);
00071       ~TrackParameterAnalyzer();
00072 
00073       virtual void analyze(const edm::Event&, const edm::EventSetup&);
00074       virtual void beginJob();
00075       virtual void endJob();
00076 
00077    private:
00078        bool match(const ParameterVector  &a, const ParameterVector &b);
00079       // ----------member data ---------------------------
00080       std::string recoTrackProducer_;
00081       // root file to store histograms
00082       std::string outputFile_; // output file
00083       TFile*  rootFile_;
00084       TH1*   h1_pull0_; 
00085       TH1*   h1_pull1_;
00086       TH1*   h1_pull2_;
00087       TH1*   h1_pull3_;
00088       TH1*   h1_pull4_;
00089       TH1*   h1_res0_; 
00090       TH1*   h1_res1_;
00091       TH1*   h1_res2_;
00092       TH1*   h1_res3_;
00093       TH1*   h1_res4_;
00094       TH1*   h1_Beff_;
00095       TH2*   h2_dvsphi_;
00096       TH1*   h1_par0_; 
00097       TH1*   h1_par1_;
00098       TH1*   h1_par2_;
00099       TH1*   h1_par3_;
00100       TH1*   h1_par4_;
00101 
00102       edm::InputTag simG4_;
00103       bool verbose_;
00104       double simUnit_;               
00105 };