Back to home page

Project CMSSW displayed by LXR

 
 

    


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

0001 #ifndef PileupMixingContent_h
0002 #define PileupMixingContent_h
0003 // -*- C++ -*-
0004 //
0005 // Package:     PileupMixingContent
0006 // Class  :     PileupMixingContent
0007 //
0008 /**\class PileupMixingContent PileupMixingContent.h SimDataFormats/PileupMixingContent/interface/PileupMixingContent.h
0009 
0010 Description: contains information related to the details of the pileup simulation for a given event, filled by MixingModule
0011 Usage: purely descriptive
0012 */
0013 //
0014 // Original Author:  Mike Hildreth, Notre Dame
0015 //         Created:  April 18, 2011
0016 //
0017 //
0018 
0019 #include <vector>
0020 #include <string>
0021 #include <iostream>
0022 #include "DataFormats/Provenance/interface/EventID.h"
0023 
0024 class PileupMixingContent {
0025 public:
0026   PileupMixingContent(){};
0027 
0028   PileupMixingContent(std::vector<int>& bunchCrossing,
0029                       std::vector<int>& n_interactions,
0030                       std::vector<float>& True_interactions,
0031                       std::vector<edm::EventID>& eventInfos,
0032                       int bunchSpacing)
0033       : eventInfos_(eventInfos), bunchSpacing_(bunchSpacing) {
0034     bunchCrossing_.reserve(bunchCrossing.size());
0035     n_interactions_.reserve(bunchCrossing.size());
0036     n_TrueInteractions_.reserve(bunchCrossing.size());
0037 
0038     for (int inter = 0; inter < (int)bunchCrossing.size(); ++inter) {
0039       bunchCrossing_.push_back(bunchCrossing[inter]);
0040       n_interactions_.push_back(n_interactions[inter]);
0041       n_TrueInteractions_.push_back(True_interactions[inter]);
0042     }
0043   };
0044 
0045   PileupMixingContent(std::vector<int>& bunchCrossing, std::vector<int>& n_interactions) {
0046     bunchCrossing_.reserve(bunchCrossing.size());
0047     n_interactions_.reserve(bunchCrossing.size());
0048 
0049     for (int inter = 0; inter < (int)bunchCrossing.size(); ++inter) {
0050       bunchCrossing_.push_back(bunchCrossing[inter]);
0051       n_interactions_.push_back(n_interactions[inter]);
0052       n_TrueInteractions_.push_back(-1.);
0053     }
0054   };
0055 
0056   ~PileupMixingContent() {
0057     bunchCrossing_.clear();
0058     n_interactions_.clear();
0059     n_TrueInteractions_.clear();
0060     eventInfos_.clear();
0061   };
0062 
0063   const std::vector<int>& getMix_Ninteractions() const { return n_interactions_; }
0064   const std::vector<float>& getMix_TrueInteractions() const { return n_TrueInteractions_; }
0065   const std::vector<int>& getMix_bunchCrossing() const { return bunchCrossing_; }
0066   const int& getMix_bunchSpacing() const { return bunchSpacing_; }
0067   const std::vector<edm::EventID> getMix_eventInfo() const { return eventInfos_; }
0068 
0069 private:
0070   // for "standard" pileup: we have MC Truth information for these
0071 
0072   std::vector<int> bunchCrossing_;
0073   std::vector<int> n_interactions_;
0074   std::vector<float> n_TrueInteractions_;
0075   std::vector<edm::EventID> eventInfos_;
0076   int bunchSpacing_;
0077 };
0078 
0079 #endif