61 #include "CLHEP/Random/RandomEngine.h"
69 produces<edm::DetSetVector<SiStripDigi> >(ParamSet.getParameter<std::string>(
"ZSDigi")).setBranchAlias( ParamSet.getParameter<std::string>(
"ZSDigi") );
70 produces<edm::DetSetVector<StripDigiSimLink> >().setBranchAlias (
alias +
"siStripDigiSimLink");
71 produces<edm::DetSetVector<SiStripRawDigi> >(ParamSet.getParameter<std::string>(
"SCDigi")).setBranchAlias(
alias + ParamSet.getParameter<std::string>(
"SCDigi") );
72 produces<edm::DetSetVector<SiStripRawDigi> >(ParamSet.getParameter<std::string>(
"VRDigi")).setBranchAlias(
alias + ParamSet.getParameter<std::string>(
"VRDigi") );
73 produces<edm::DetSetVector<SiStripRawDigi> >(ParamSet.getParameter<std::string>(
"PRDigi")).setBranchAlias(
alias + ParamSet.getParameter<std::string>(
"PRDigi") );
79 if ( ! rng.isAvailable()) {
81 <<
"SiStripDigitizer requires the RandomNumberGeneratorService\n"
82 "which is not present in the configuration file. You must add the service\n"
83 "in the configuration file or remove the modules that require it.";
111 std::vector<const CrossingFrame<PSimHit> *> cf_simhitvec;
114 cf_simhitvec.push_back(cf_simhit.
product());
124 std::vector<std::pair<const PSimHit*,int> >::iterator isim;
125 for (isim=trackerHits.begin() ; isim!= trackerHits.end();isim++) {
127 SimHitMap[((*isim).first)->detUnitId()].push_back(*isim);
160 for(TrackingGeometry::DetUnitContainer::const_iterator iu = pDD->detUnits().begin(); iu != pDD->detUnits().end(); iu ++){
166 GlobalVector bfield=pSetup->inTesla((*iu)->surface().position());
172 float langle = (lorentzAngleHandle.
isValid()) ? lorentzAngleHandle->getLorentzAngle((*iu)->geographicalId().rawId()) : 0.;
174 gainHandle,thresholdHandle,noiseHandle,pedestalHandle, deadChannelHandle);
176 if(collectorZS.data.size()>0){
178 if(
SimHitMap[(*iu)->geographicalId().rawId()].size()>0){
180 if(linkcollector.data.size()>0)
185 if(collectorRaw.data.size()>0){
187 if(
SimHitMap[(*iu)->geographicalId().rawId()].size()>0){
189 if(linkcollector.data.size()>0)
207 iEvent.
put(outputlink);
208 iEvent.
put(output_scopemode, ParamSet.
getParameter<std::string>(
"SCDigi"));
209 iEvent.
put(output_virginraw, ParamSet.
getParameter<std::string>(
"VRDigi"));
210 iEvent.
put(output_processedraw,ParamSet.
getParameter<std::string>(
"PRDigi"));
221 iEvent.
put(outputlink);
222 iEvent.
put(output_scopemode, ParamSet.
getParameter<std::string>(
"SCDigi"));
223 iEvent.
put(output_virginraw, ParamSet.
getParameter<std::string>(
"VRDigi"));
224 iEvent.
put(output_processedraw,ParamSet.
getParameter<std::string>(
"PRDigi"));
T getParameter(std::string const &) const
SiStripDigitizer(const edm::ParameterSet &conf)
vstring trackerContainers
void getData(T &iHolder) const
std::map< uint32_t, std::vector< int > > theDetIdList
SiStripDigitizerAlgorithm * theDigiAlgo
virtual ~SiStripDigitizer()
std::vector< std::pair< const PSimHit *, int > > getSimHit(std::auto_ptr< MixCollection< PSimHit > > &, std::map< uint32_t, std::vector< int > > &)
std::vector< edm::DetSet< SiStripDigi > > theDigiVector
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void setParticleDataTable(const ParticleDataTable *pardt)
T const * product() const
std::vector< edm::DetSet< StripDigiSimLink > > theDigiLinkVector
std::vector< StripDigiSimLink > make_link()
SimHitSelectorFromDB SimHitSelectorFromDB_
void run(edm::DetSet< SiStripDigi > &, edm::DetSet< SiStripRawDigi > &, const std::vector< std::pair< const PSimHit *, int > > &, StripGeomDetUnit *, GlobalVector, float, edm::ESHandle< SiStripGain > &, edm::ESHandle< SiStripThreshold > &, edm::ESHandle< SiStripNoises > &, edm::ESHandle< SiStripPedestals > &, edm::ESHandle< SiStripBadStrip > &)
std::vector< edm::DetSet< SiStripRawDigi > > theRawDigiVector
virtual void produce(edm::Event &e, const edm::EventSetup &c)
CLHEP::HepRandomEngine * rndEngine