genSimInfo

Macros

Line Code
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150
/* 
Functions to give the details of parent track of Generator Tracks

Authors:  Seema Sharma, Sunanda Banerjee
Created: August 2009
*/

#ifndef CalibrationIsolatedParticlesGenSimInfo_h
#define CalibrationIsolatedParticlesGenSimInfo_h

// system include files
#include <memory>
#include <map>
#include <vector>
#include <string>

// user include files
#include "FWCore/Framework/interface/Frameworkfwd.h"

#include "FWCore/Framework/interface/Event.h"

#include "DataFormats/Common/interface/Handle.h"
#include "DataFormats/DetId/interface/DetId.h"
#include "DataFormats/GeometryVector/interface/GlobalVector.h"
#include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
#include "DataFormats/HepMCCandidate/interface/GenParticle.h"
#include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h"

#include "Geometry/CaloGeometry/interface/CaloGeometry.h"
#include "Geometry/CaloTopology/interface/CaloTopology.h"
#include "Geometry/CaloTopology/interface/HcalTopology.h"

#include "Calibration/IsolatedParticles/interface/CaloPropagateTrack.h"

namespace spr {

  struct genSimInfo {
    genSimInfo() {
      maxNearP = -1.0;
      cHadronEne = nHadronEne = eleEne = muEne = photonEne = 0.0;
      isChargedIso = true;
      for (int i = 0; i < 3; ++i)
        cHadronEne_[i] = 0.0;
    }
    double maxNearP;
    double cHadronEne, nHadronEne, eleEne, muEne, photonEne;
    bool isChargedIso;
    double cHadronEne_[3];
  };

  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);

  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);

  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);

  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);

  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);

  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);

  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);

  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);

  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);

  void cGenSimInfo(std::vector<DetId>& vdets,
                   reco::GenParticleCollection::const_iterator trkItr,
                   std::vector<spr::propagatedGenParticleID>& trackIds,
                   bool ifECAL,
                   spr::genSimInfo& info,
                   bool debug = false);

  void cGenSimInfo(int charge, int pdgid, double p, spr::genSimInfo& info, bool debug = false);
}  // namespace spr

#endif