Skip to content

Commit

Permalink
Merge CMSSW_9_4_X into CMSSW_9_4_AN_X.
Browse files Browse the repository at this point in the history
  • Loading branch information
cmsbuild committed Aug 28, 2018
2 parents 3dd5c7e + 994fca2 commit b842efe
Show file tree
Hide file tree
Showing 8 changed files with 28 additions and 38 deletions.
6 changes: 5 additions & 1 deletion FastSimulation/Calorimetry/src/CalorimetryManager.cc
Expand Up @@ -172,7 +172,7 @@ CalorimetryManager::~CalorimetryManager()

void CalorimetryManager::reconstruct(RandomEngineAndDistribution const* random)
{

theHFShowerLibrary->SetRandom(random);
if(!evtsToDebug_.empty())
{
std::vector<unsigned int>::const_iterator itcheck=find(evtsToDebug_.begin(),evtsToDebug_.end(),mySimEvent->id().event());
Expand All @@ -196,6 +196,8 @@ void CalorimetryManager::reconstruct(RandomEngineAndDistribution const* random)
initialized_=true;
}
clean();



LogInfo("FastCalorimetry") << "Reconstructing " << (int) mySimEvent->nTracks() << " tracks." << std::endl;
for( int fsimi=0; fsimi < (int) mySimEvent->nTracks() ; ++fsimi) {
Expand Down Expand Up @@ -555,6 +557,8 @@ void CalorimetryManager::reconstructHCAL(const FSimTrack& myTrack,
void CalorimetryManager::HDShowerSimulation(const FSimTrack& myTrack, RandomEngineAndDistribution const* random){//,
// const edm::ParameterSet& fastCalo){

theHFShowerLibrary->SetRandom(random);

// TimeMe t(" FASTEnergyReconstructor::HDShower");
const XYZTLorentzVector& moment = myTrack.momentum();

Expand Down
4 changes: 2 additions & 2 deletions FastSimulation/EventProducer/src/FamosProducer.cc
Expand Up @@ -2,6 +2,7 @@
#include "FWCore/Framework/interface/MakerMacros.h"
#include "FWCore/Framework/interface/EventSetup.h"
#include "FWCore/Framework/interface/ESHandle.h"
#include "FWCore/MessageLogger/interface/MessageLogger.h"

#include "SimDataFormats/CaloHit/interface/PCaloHitContainer.h"
#include "SimDataFormats/TrackingHit/interface/PSimHitContainer.h"
Expand Down Expand Up @@ -52,7 +53,7 @@ FamosProducer::FamosProducer(edm::ParameterSet const & p)
}

FamosProducer::~FamosProducer()
{ if ( famosManager_ ) delete famosManager_; }
{ delete famosManager_; }

void
FamosProducer::beginRun(edm::Run const& run, const edm::EventSetup & es) {
Expand Down Expand Up @@ -117,7 +118,6 @@ void FamosProducer::produce(edm::Event & iEvent, const edm::EventSetup & es)
iEvent.put(std::move(p5),"EcalHitsEE");
iEvent.put(std::move(p6),"EcalHitsES");
iEvent.put(std::move(p7),"HcalHits");

}

DEFINE_FWK_MODULE(FamosProducer);
Expand Up @@ -36,6 +36,7 @@ class DDCompactView;
class FSimEvent;
class FSimTrack;
class HFShowerLibrary;
class RandomEngineAndDistribution;

class FastHFShowerLibrary {

Expand All @@ -52,6 +53,8 @@ class FastHFShowerLibrary {
void modifyDepth(uint32_t &id);
const std::map<CaloHitID,float>& getHitsMap() { return hitMap; };

void SetRandom(const RandomEngineAndDistribution *);

private:

const edm::ParameterSet fast;
Expand Down
10 changes: 10 additions & 0 deletions FastSimulation/ShowerDevelopment/src/FastHFShowerLibrary.cc
Expand Up @@ -6,6 +6,7 @@
#include "FastSimulation/ShowerDevelopment/interface/FastHFShowerLibrary.h"
#include "FastSimulation/Event/interface/FSimEvent.h"
#include "FastSimulation/Event/interface/FSimTrack.h"
#include "FastSimulation/Utilities/interface/RandomEngineAndDistribution.h"
#include "SimG4CMS/Calo/interface/HFFibreFiducial.h"
#include "DetectorDescription/Core/interface/DDFilter.h"
#include "DetectorDescription/Core/interface/DDFilteredView.h"
Expand Down Expand Up @@ -72,6 +73,15 @@ void const FastHFShowerLibrary::initHFShowerLibrary(const edm::EventSetup& iSetu
hfshower->initRun(partTable, hcalConstants); // init particle code
}

void FastHFShowerLibrary::SetRandom(const RandomEngineAndDistribution * rnd)
{
// define Geant4 engine per thread
G4Random::setTheEngine(&(rnd->theEngine()));
LogDebug("FastHFShowerLibrary::recoHFShowerLibrary")
<< "Begin of event " << G4UniformRand() << " "
<< rnd->theEngine().name() << " " << rnd->theEngine();
}

void FastHFShowerLibrary::recoHFShowerLibrary(const FSimTrack& myTrack) {

#ifdef DebugLog
Expand Down
Expand Up @@ -6,10 +6,8 @@

#include "FastSimulation/TrackingRecHitProducer/interface/TrackingRecHitProduct.h"

//#include "CLHEP/Random/RandomEngine.h"
#include "FastSimulation/Utilities/interface/RandomEngineAndDistribution.h"


#include <string>
#include <memory>

Expand Down
Expand Up @@ -20,7 +20,7 @@

#include "FWCore/Utilities/interface/Exception.h"


#include "FWCore/MessageLogger/interface/MessageLogger.h"

TrackingRecHitAlgorithm::TrackingRecHitAlgorithm(
const std::string& name,
Expand Down Expand Up @@ -74,7 +74,7 @@ const RandomEngineAndDistribution& TrackingRecHitAlgorithm::getRandomEngine() co

void TrackingRecHitAlgorithm::beginStream(const edm::StreamID& id)
{
_randomEngine = std::make_shared<RandomEngineAndDistribution>(id);
_randomEngine = std::make_shared<RandomEngineAndDistribution>(id);
}

void TrackingRecHitAlgorithm::beginEvent(edm::Event& event, const edm::EventSetup& eventSetup)
Expand All @@ -90,6 +90,7 @@ void TrackingRecHitAlgorithm::beginEvent(edm::Event& event, const edm::EventSetu
_trackerTopology = trackerTopologyHandle.product();
_trackerGeometry = trackerGeometryHandle.product();
_misalignedTrackerGeometry = misalignedGeometryHandle.product();

}

TrackingRecHitProductPtr TrackingRecHitAlgorithm::process(TrackingRecHitProductPtr product) const
Expand Down
22 changes: 3 additions & 19 deletions FastSimulation/Utilities/interface/RandomEngineAndDistribution.h
Expand Up @@ -27,35 +27,19 @@ class RandomEngineAndDistribution {
CLHEP::HepRandomEngine& theEngine() const { return *engine_; }

inline double flatShoot(double xmin=0.0, double xmax=1.0) const {
if(rootEngine_) {
return xmin + (xmax - xmin) * rootEngine_->Rndm();
} else {
CLHEP::RandFlat flatDistribution(*engine_);
return xmin + (xmax - xmin) * flatDistribution.fire();
}
return xmin + (xmax - xmin) * engine_->flat();
}

inline double gaussShoot(double mean=0.0, double sigma=1.0) const {
if(rootEngine_) {
return rootEngine_->Gaus(mean,sigma);
} else {
CLHEP::RandGaussQ gaussianDistribution(*engine_);
return mean + sigma * gaussianDistribution.fire();
}
return CLHEP::RandGauss::shoot(engine_, mean, sigma);
}

inline unsigned int poissonShoot(double mean) const{
if(rootEngine_) {
return rootEngine_->Poisson(mean);
} else {
CLHEP::RandPoissonQ poissonDistribution(*engine_);
return poissonDistribution.fire(mean);
}
return CLHEP::RandPoissonQ::shoot(engine_, mean);
}

private:

CLHEP::HepRandomEngine* engine_;
TRandom3* rootEngine_;
};
#endif // FastSimulation_Utilities_RandomEngineAndDistribution_H
14 changes: 2 additions & 12 deletions FastSimulation/Utilities/src/RandomEngineAndDistribution.cc
Expand Up @@ -8,8 +8,7 @@
#include "CLHEP/Random/RandomEngine.h"

RandomEngineAndDistribution::RandomEngineAndDistribution(edm::StreamID const& streamID) :
engine_(nullptr),
rootEngine_(nullptr) {
engine_(nullptr) {
edm::Service<edm::RandomNumberGenerator> rng;
if ( ! rng.isAvailable() ) {
throw cms::Exception("Configuration") <<
Expand All @@ -18,15 +17,10 @@ RandomEngineAndDistribution::RandomEngineAndDistribution(edm::StreamID const& st
"or remove the module that requires it.";
}
engine_ = &rng->getEngine(streamID);

// Get the TRandom3 egine, to benefit from Root functional random generation
if ( engine_->name() == "TRandom3" )
rootEngine_ = ( (edm::TRandomAdaptor*) engine_ )->getRootEngine();
}

RandomEngineAndDistribution::RandomEngineAndDistribution(edm::LuminosityBlockIndex const& luminosityBlockIndex) :
engine_(nullptr),
rootEngine_(nullptr) {
engine_(nullptr) {
edm::Service<edm::RandomNumberGenerator> rng;
if ( ! rng.isAvailable() ) {
throw cms::Exception("Configuration") <<
Expand All @@ -35,10 +29,6 @@ RandomEngineAndDistribution::RandomEngineAndDistribution(edm::LuminosityBlockInd
"or remove the module that requires it.";
}
engine_ = &rng->getEngine(luminosityBlockIndex);

// Get the TRandom3 egine, to benefit from Root functional random generation
if ( engine_->name() == "TRandom3" )
rootEngine_ = ( (edm::TRandomAdaptor*) engine_ )->getRootEngine();
}

RandomEngineAndDistribution::~RandomEngineAndDistribution() {
Expand Down

0 comments on commit b842efe

Please sign in to comment.