00001 #ifndef SimGeneral_PileupInformation_h 00002 #define SimGeneral_PileupInformation_h 00003 00004 #include <map> 00005 00006 #include "DataFormats/Common/interface/Handle.h" 00007 00008 #include "FWCore/Framework/interface/EDProducer.h" 00009 #include "FWCore/Framework/interface/Event.h" 00010 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00011 00012 #include "CommonTools/RecoAlgos/interface/TrackingParticleSelector.h" 00013 00014 #include "SimDataFormats/CrossingFrame/interface/CrossingFrame.h" 00015 #include "SimDataFormats/CrossingFrame/interface/MixCollection.h" 00016 #include "SimDataFormats/GeneratorProducts/interface/HepMCProduct.h" 00017 #include "SimDataFormats/Track/interface/SimTrack.h" 00018 #include "SimDataFormats/Vertex/interface/SimVertex.h" 00019 #include "SimDataFormats/TrackingAnalysis/interface/TrackingParticleFwd.h" 00020 #include "SimDataFormats/TrackingAnalysis/interface/TrackingVertexContainer.h" 00021 #include "SimDataFormats/TrackingHit/interface/PSimHit.h" 00022 #include "SimDataFormats/PileupSummaryInfo/interface/PileupSummaryInfo.h" 00023 00024 #include "SimGeneral/TrackingAnalysis/interface/EncodedTruthId.h" 00025 00026 #include "Utilities/Timing/interface/TimingReport.h" 00027 #include "Utilities/Timing/interface/TimerStack.h" 00028 00029 class PileupInformation : public edm::EDProducer 00030 { 00031 00032 public: 00033 00034 explicit PileupInformation( const edm::ParameterSet & ); 00035 00036 private: 00037 00038 void produce( edm::Event &, const edm::EventSetup & ); 00039 00040 edm::ParameterSet conf_; 00041 00042 typedef std::map<EncodedEventId, unsigned int> EncodedEventIdToIndex; 00043 typedef std::map< int, int > myindex; 00044 myindex event_index_; 00045 00046 std::vector<float> zpositions; 00047 std::vector<float> sumpT_lowpT; 00048 std::vector<float> sumpT_highpT; 00049 std::vector<int> ntrks_lowpT; 00050 std::vector<int> ntrks_highpT; 00051 00052 00053 double distanceCut_; 00054 double volumeRadius_; 00055 double volumeZ_; 00056 double pTcut_1_; 00057 double pTcut_2_; 00058 00059 edm::InputTag trackingTruth_; 00060 edm::InputTag PileupInfoLabel_; 00061 00062 std::string MessageCategory_; 00063 std::string simHitLabel_; 00064 std::auto_ptr<MixCollection<SimTrack> > simTracks_; 00065 std::auto_ptr<MixCollection<SimVertex> > simVertexes_; 00066 00067 00068 00069 }; 00070 00071 00072 #endif