CMS 3D CMS Logo

/data/refman/pasoursint/CMSSW_5_2_7_hltpatch1/src/SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h

Go to the documentation of this file.
00001 #ifndef PileupSummaryInfo_h
00002 #define PileupSummaryInfo_h
00003 // -*- C++ -*-
00004 //
00005 // Package:     PileupSummaryInfo
00006 // Class  :     PileupSummaryInfo
00007 // 
00013 //
00014 // Original Author:  Mike Hildreth, Notre Dame
00015 //         Created:  July 1, 2010
00016 // $Id: PileupSummaryInfo.h,v 1.4 2011/07/05 00:40:39 mikeh Exp $
00017 //
00018 
00019 #include "DataFormats/Provenance/interface/EventID.h"
00020 #include <vector>
00021 #include <string>
00022 
00023 
00024 
00025 class PileupSummaryInfo {
00026 
00027  public:
00028 
00029   PileupSummaryInfo(){};
00030 
00031   PileupSummaryInfo( const int num_PU_vertices,
00032                      std::vector<float>& zpositions,
00033                      std::vector<float>& sumpT_lowpT,
00034                      std::vector<float>& sumpT_highpT,
00035                      std::vector<int>& ntrks_lowpT,
00036                      std::vector<int>& ntrks_highpT );
00037 
00038   PileupSummaryInfo( const int num_PU_vertices,
00039                      std::vector<float>& zpositions,
00040                      std::vector<float>& sumpT_lowpT,
00041                      std::vector<float>& sumpT_highpT,
00042                      std::vector<int>& ntrks_lowpT,
00043                      std::vector<int>& ntrks_highpT,
00044                      int bunchCrossing);
00045 
00046 
00047   PileupSummaryInfo( const int num_PU_vertices,
00048                      std::vector<float>& zpositions,
00049                      std::vector<float>& sumpT_lowpT,
00050                      std::vector<float>& sumpT_highpT,
00051                      std::vector<int>& ntrks_lowpT,
00052                      std::vector<int>& ntrks_highpT,
00053                      int bunchCrossing,
00054                      float TrueNumInteractions);
00055 
00056   PileupSummaryInfo( const int num_PU_vertices,
00057                      std::vector<float>& instLumi,
00058                      std::vector<edm::EventID>& eventInfo );
00059 
00060 
00061   ~PileupSummaryInfo();
00062 
00063   const int getPU_NumInteractions() const { return num_PU_vertices_; }
00064   const std::vector<float>& getPU_zpositions() const { return zpositions_; }
00065   const std::vector<float>& getPU_sumpT_lowpT() const { return sumpT_lowpT_; }
00066   const std::vector<float>& getPU_sumpT_highpT() const { return sumpT_highpT_; }
00067   const std::vector<int>& getPU_ntrks_lowpT() const { return ntrks_lowpT_; }
00068   const std::vector<int>& getPU_ntrks_highpT() const { return ntrks_highpT_; }
00069   const std::vector<float>& getPU_instLumi() const { return instLumi_; }
00070   const std::vector<edm::EventID>& getPU_EventID() const { return eventInfo_; }
00071   const int getBunchCrossing() const { return bunchCrossing_;}
00072   const float getTrueNumInteractions() const { return TrueNumInteractions_;}
00073 
00074  private:
00075 
00076   // for "standard" pileup: we have MC Truth information for these
00077 
00078   int num_PU_vertices_;
00079   std::vector<float> zpositions_;
00080   std::vector<float> sumpT_lowpT_;
00081   std::vector<float> sumpT_highpT_;
00082   std::vector<int> ntrks_lowpT_;
00083   std::vector<int> ntrks_highpT_;
00084   int bunchCrossing_;
00085   float TrueNumInteractions_;
00086 
00087 
00088   // for DataMixer pileup, we only have raw information:
00089 
00090   std::vector<float> instLumi_;
00091   std::vector<edm::EventID> eventInfo_;
00092 
00093 };
00094 
00095 #endif