CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_6_1_2_SLHC2/src/Calibration/IsolatedParticles/interface/GenSimInfo.h

Go to the documentation of this file.
00001 /* 
00002 Functions to give the details of parent track of Generator Tracks
00003 
00004 Authors:  Seema Sharma, Sunanda Banerjee
00005 Created: August 2009
00006 */
00007 
00008 #ifndef CalibrationIsolatedParticlesGenSimInfo_h
00009 #define CalibrationIsolatedParticlesGenSimInfo_h
00010 
00011 // system include files
00012 #include <memory>
00013 #include <map>
00014 #include <vector>
00015 #include <string>
00016 
00017 // user include files
00018 #include "FWCore/Framework/interface/Frameworkfwd.h"
00019 
00020 #include "FWCore/Framework/interface/Event.h"
00021 
00022 #include "DataFormats/Common/interface/Handle.h"
00023 #include "DataFormats/DetId/interface/DetId.h"
00024 #include "DataFormats/GeometryVector/interface/GlobalVector.h"
00025 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
00026 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
00027 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"
00028 
00029 #include "Geometry/CaloGeometry/interface/CaloGeometry.h"
00030 #include "Geometry/CaloTopology/interface/CaloTopology.h"
00031 #include "Geometry/CaloTopology/interface/HcalTopology.h"
00032 
00033 #include "Calibration/IsolatedParticles/interface/CaloPropagateTrack.h"
00034 
00035 namespace spr{
00036 
00037   struct genSimInfo {
00038     genSimInfo() {
00039       maxNearP=-1.0;
00040       cHadronEne=nHadronEne=eleEne=muEne=photonEne=0.0;
00041       isChargedIso=true;
00042       for (int i=0; i<3; ++i) cHadronEne_[i]=0.0;
00043     }
00044     double   maxNearP;
00045     double   cHadronEne, nHadronEne, eleEne, muEne, photonEne;
00046     bool     isChargedIso;
00047     double   cHadronEne_[3];
00048   };
00049 
00050   void eGenSimInfo(const DetId& coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector<spr::propagatedGenTrackID>& trackIds, const CaloGeometry* geo, const CaloTopology* caloTopology, int ieta, int iphi, spr::genSimInfo & info, bool debug=false);
00051 
00052   void eGenSimInfo(const DetId& coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector<spr::propagatedGenTrackID>& trackIds, const CaloGeometry* geo, const CaloTopology* caloTopology, double dR, const GlobalVector& trackMom, spr::genSimInfo & info, bool debug=false);
00053 
00054   void eGenSimInfo(const DetId& coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector<spr::propagatedGenParticleID>& trackIds, const CaloGeometry* geo, const CaloTopology* caloTopology, int ieta, int iphi, spr::genSimInfo & info, bool debug=false);
00055 
00056   void eGenSimInfo(const DetId& coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector<spr::propagatedGenParticleID>& trackIds, const CaloGeometry* geo, const CaloTopology* caloTopology, double dR, const GlobalVector& trackMom, spr::genSimInfo & info, bool debug=false);
00057 
00058   void hGenSimInfo(const DetId& coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector<spr::propagatedGenTrackID>& trackIds, const HcalTopology* topology, int ieta, int iphi, spr::genSimInfo & info, bool includeHO=false, bool debug=false);
00059 
00060   void hGenSimInfo(const DetId& coreDet, HepMC::GenEvent::particle_const_iterator trkItr, std::vector<spr::propagatedGenTrackID>& trackIds, const CaloGeometry* geo, const HcalTopology* topology, double dR, const GlobalVector& trackMom, spr::genSimInfo & info, bool includeHO=false, bool debug=false);
00061 
00062   void hGenSimInfo(const DetId& coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector<spr::propagatedGenParticleID>& trackIds, const HcalTopology* topology, int ieta, int iphi, spr::genSimInfo & info, bool includeHO=false, bool debug=false);
00063 
00064   void hGenSimInfo(const DetId& coreDet, reco::GenParticleCollection::const_iterator trkItr, std::vector<spr::propagatedGenParticleID>& trackIds, const CaloGeometry* geo, const HcalTopology* topology, double dR, const GlobalVector& trackMom, spr::genSimInfo & info, bool includeHO=false, bool debug=false);
00065 
00066   void cGenSimInfo(std::vector<DetId>& vdets, HepMC::GenEvent::particle_const_iterator trkItr, std::vector<spr::propagatedGenTrackID>& trackIds, bool ifECAL, spr::genSimInfo & info, bool debug=false);
00067 
00068   void cGenSimInfo(std::vector<DetId>& vdets, reco::GenParticleCollection::const_iterator trkItr, std::vector<spr::propagatedGenParticleID>& trackIds, bool ifECAL, spr::genSimInfo & info, bool debug=false);
00069 
00070   void cGenSimInfo(int charge, int pdgid, double p, spr::genSimInfo & info, bool debug=false);
00071 }
00072 
00073 #endif