Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:29:43

0001 #ifndef SimDataFormats_GenHIEvent_h
0002 #define SimDataFormats_GenHIEvent_h
0003 
0004 #include "DataFormats/HepMCCandidate/interface/GenParticle.h"
0005 #include "DataFormats/HepMCCandidate/interface/GenParticleFwd.h"
0006 
0007 namespace edm {
0008   class GenHIEvent {
0009   public:
0010     typedef std::vector<std::vector<reco::GenParticleRef> > SubEventCollection;
0011 
0012     GenHIEvent()
0013         : b_(-99),
0014           npart_(-99),
0015           ncoll_(-99),
0016           nhard_(-99),
0017           phi_(-99),
0018           eccentricity_(-99),
0019           nCharged_(-99),
0020           nChargedMR_(-99),
0021           meanPt_(-99),
0022           meanPtMR_(-99),
0023           EtMR_(-99),
0024           nChargedPtCut_(-99),
0025           nChargedPtCutMR_(-99) {
0026       subevents_.reserve(0);
0027       ;
0028     }
0029 
0030     GenHIEvent(double b,
0031                int npart,
0032                int ncoll,
0033                int nhard,
0034                double phi,
0035                double ecc = -99,
0036                double nCharged = -99,
0037                double nChargedMR = -99,
0038                double meanPt = -99,
0039                double meanPtMR = -99,
0040                double EtMR = -99,
0041                int nChargedPtCut = -99,
0042                int nChargedPtCutMR = -99)
0043         : b_(b),
0044           npart_(npart),
0045           ncoll_(ncoll),
0046           nhard_(nhard),
0047           phi_(phi),
0048           eccentricity_(ecc),
0049           nCharged_(nCharged),
0050           nChargedMR_(nChargedMR),
0051           meanPt_(meanPt),
0052           meanPtMR_(meanPtMR),
0053           EtMR_(EtMR),
0054           nChargedPtCut_(nChargedPtCut),
0055           nChargedPtCutMR_(nChargedPtCutMR) {
0056       subevents_.reserve(0);
0057       ;
0058     }
0059 
0060     virtual ~GenHIEvent() {}
0061 
0062     double b() const { return b_; }
0063     int Npart() const { return npart_; }
0064     int Ncoll() const { return ncoll_; }
0065     int Nhard() const { return nhard_; }
0066     double evtPlane() const { return phi_; }
0067     double eccentricity() const { return eccentricity_; }
0068     int Ncharged() const { return nCharged_; }
0069     int NchargedMR() const { return nChargedMR_; }
0070     double MeanPt() const { return meanPt_; }
0071     double MeanPtMR() const { return meanPtMR_; }
0072     double EtMR() const { return EtMR_; }
0073     int NchargedPtCut() const { return nChargedPtCut_; }
0074     int NchargedPtCutMR() const { return nChargedPtCutMR_; }
0075     void setGenParticles(const reco::GenParticleCollection*);
0076     const std::vector<reco::GenParticleRef> getSubEvent(unsigned int sub_id) const;
0077 
0078     int getNsubs() const { return subevents_.size(); }
0079 
0080   private:
0081     SubEventCollection subevents_;
0082     int sel_;
0083 
0084     double b_;
0085     int npart_;
0086     int ncoll_;
0087     int nhard_;
0088     double phi_;
0089     double eccentricity_;
0090     int nCharged_;
0091     int nChargedMR_;
0092     double meanPt_;
0093     double meanPtMR_;
0094     double EtMR_;
0095     int nChargedPtCut_;
0096     int nChargedPtCutMR_;
0097   };
0098 }  // namespace edm
0099 #endif