CMS 3D CMS Logo

MCParton.h

Go to the documentation of this file.
00001 #ifndef MCPARTON_H
00002 #define MCPARTON_H
00003 
00004 // class for partons in the simulation allowing
00005 // to get the most important info for partons
00006 
00007 #include "RecoBTag/MCTools/interface/MCBaseParticle.h"
00008 
00009 class MCParton : public MCBaseParticle {
00010 
00011 public:
00012 
00013   MCParton();
00014 
00015   MCParton(const HepMC::GenParticle* particle, const HepMC::GenEvent* event,
00016                 const HepMC::GenParticle* lastParton);
00017 
00018   ~MCParton(){}
00019 
00020 
00021   // other info (isPrimary etc.) where the complete vector of generated particles is needed
00022   void setParticleProperties ();
00023 
00024   // print
00025   void print () const;
00026 
00027   // access to data members
00028   int  flavour            () const { return flavour_; }
00029   int  flavourAbs         () const { return flavourAbs_; }
00030   int  statusPythia       () const { return statusPythia_; }
00031   const HepMC::GenParticle* mother () const { return mother_; }
00032   int  motherLundCode     () const { return motherLundCode_; }
00033   int  motherStatusPythia () const { return motherStatusPythia_; }
00034   bool fromPrimaryProcess () const { return fromPrimaryProcess_; }
00035   bool fromRadiation      () const { return fromRadiation_; }
00036   bool fromGluonSplitting () const { return fromGluonSplitting_; }
00037   bool isFinalParton      () const { return isFinalParton_; }
00038   //  bool RadiatesGluon      () const { return radiatesGluon_; }
00039   bool splitsToD          () const { return splitsToD_; }
00040   bool splitsToU          () const { return splitsToU_; }
00041   bool splitsToS          () const { return splitsToS_; }
00042   bool splitsToC          () const { return splitsToC_; }
00043   bool splitsToB          () const { return splitsToB_; }
00044   //  bool getSplitsToGluon      () const { return splitsToGluon ; }
00045 
00046   const std::vector<const HepMC::GenParticle*> & daughters () const { return daughterLines_ ; }
00047   const math::XYZTLorentzVector & summedDaughterMomentum   () const { return summedDaughters_ ; }
00048 
00049   bool isInitialParton      () const { return isInitialParton_; }
00050   bool initialPartonHasCloseHF () const { return initialPartonHasCloseHF_; }
00051 
00052 private:
00053 
00054   void reset ();
00055   int  flavour_;     // 0: undef._; 12345: duscb_; 21: gluon // D
00056   int  flavourAbs_;                                          // D
00057   int  statusPythia_;                                        // D
00058   int  motherLundCode_;                                      // D
00059   int  motherStatusPythia_;
00060   bool fromPrimaryProcess_;                                  // D
00061   bool fromRadiation_;                                       // NOT YET
00062   bool fromGluonSplitting_;                                  // D
00063   bool isFinalParton_;                                       // D
00064   //  bool radiatesGluon_;
00065   bool splitsToD_;                                           // D
00066   bool splitsToU_;                                           // D
00067   bool splitsToS_;                                           // D
00068   bool splitsToC_;                                           // D
00069   bool splitsToB_;                                           // D
00070   //  bool splitsToGluon_;                                   // D
00071 
00072   const HepMC::GenParticle* lastParton_;
00073   const HepMC::GenParticle* mother_;
00074 
00075   std::vector<const HepMC::GenParticle*> daughterLines_;
00076   math::XYZTLorentzVector summedDaughters_;
00077 
00078   bool isInitialParton_;
00079   bool initialPartonHasCloseHF_;
00080 
00081 };
00082 
00083 #endif

Generated on Tue Jun 9 17:43:03 2009 for CMSSW by  doxygen 1.5.4