CMS 3D CMS Logo

/afs/cern.ch/work/a/aaltunda/public/www/CMSSW_6_2_7/src/MuonAnalysis/MomentumScaleCalibration/plugins/MuScleFitPlotter.h

Go to the documentation of this file.
00001 #ifndef MuScleFitPlotter_H
00002 #define MuScleFitPlotter_H
00003 
00012 // #include "SimDataFormats/HepMCProduct/interface/HepMCProduct.h"
00013 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00014 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
00015 #include "SimDataFormats/Track/interface/SimTrackContainer.h"
00016 #include "Histograms.h"
00017 
00018 namespace edm {
00019   class ParameterSet;
00020   class Event;
00021   class EventSetup;
00022 }
00023 
00024 class TFile;
00025 class LeafCandidate;
00026 
00027 class MuScleFitPlotter{
00028 
00029  public:
00030   // Constructor
00031   // -----------
00032   MuScleFitPlotter(std::string);
00033 
00034   // Destructor
00035   // ----------
00036   virtual ~MuScleFitPlotter();
00037 
00038   // Operations
00039   // ----------
00040   void fillGen(const reco::GenParticleCollection* genParticles, bool=false);
00041   void fillGen(const edm::HepMCProduct* evtMC, bool sherpaFlag_);
00042   void fillSim(edm::Handle<edm::SimTrackContainer> simTracks);
00043   void fillGenSim(edm::Handle<edm::HepMCProduct> evtMC, edm::Handle<edm::SimTrackContainer> simTracks);
00044   void fillRec(std::vector<reco::LeafCandidate>& muons);
00045 
00046   // Root tree specific
00047   void fillTreeRec( const std::vector<std::pair<reco::Particle::LorentzVector, reco::Particle::LorentzVector> > & savedPairs );
00048   void fillTreeGen( const std::vector<std::pair<reco::Particle::LorentzVector, reco::Particle::LorentzVector> > & genPairs );
00049 
00050   void fillHistoMap();
00051   void writeHistoMap();
00052 
00053   bool debug;
00054 
00055  protected:
00056 
00057  private:
00058   // The map of histograms
00059   // ---------------------
00060   std::map<std::string, Histograms*> mapHisto;
00061   TFile * outputFile;
00062 
00063 };
00064 #endif
00065 
00066