CMS 3D CMS Logo

List of all members | Public Types | Public Member Functions | Private Member Functions | Private Attributes
TrackerHitProducer Class Reference

#include <TrackerHitProducer.h>

Inheritance diagram for TrackerHitProducer:
edm::one::EDProducer<> edm::one::EDProducerBase edm::ProducerBase edm::EDConsumerBase edm::ProductRegistryHelper

Public Types

typedef std::vector< float > FloatVector
 
typedef std::vector< int > IntegerVector
 
- Public Types inherited from edm::one::EDProducerBase
typedef EDProducerBase ModuleType
 
- Public Types inherited from edm::ProducerBase
using ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > >
 
typedef ProductRegistryHelper::TypeLabelList TypeLabelList
 
- Public Types inherited from edm::EDConsumerBase
typedef ProductLabels Labels
 

Public Member Functions

void beginJob () override
 
void endJob () override
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 TrackerHitProducer (const edm::ParameterSet &)
 
 ~TrackerHitProducer () override
 
- Public Member Functions inherited from edm::one::EDProducer<>
 EDProducer ()=default
 
 EDProducer (const EDProducer &)=delete
 
SerialTaskQueueglobalLuminosityBlocksQueue () final
 
SerialTaskQueueglobalRunsQueue () final
 
bool hasAbilityToProduceInBeginLumis () const final
 
bool hasAbilityToProduceInBeginProcessBlocks () const final
 
bool hasAbilityToProduceInBeginRuns () const final
 
bool hasAbilityToProduceInEndLumis () const final
 
bool hasAbilityToProduceInEndProcessBlocks () const final
 
bool hasAbilityToProduceInEndRuns () const final
 
const EDProduceroperator= (const EDProducer &)=delete
 
bool wantsGlobalLuminosityBlocks () const final
 
bool wantsGlobalRuns () const final
 
bool wantsInputProcessBlocks () const final
 
bool wantsProcessBlocks () const final
 
- Public Member Functions inherited from edm::one::EDProducerBase
 EDProducerBase ()
 
ModuleDescription const & moduleDescription () const
 
bool wantsStreamLuminosityBlocks () const
 
bool wantsStreamRuns () const
 
 ~EDProducerBase () override
 
- Public Member Functions inherited from edm::ProducerBase
void callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func)
 
std::vector< edm::ProductResolverIndex > const & indiciesForPutProducts (BranchType iBranchType) const
 
 ProducerBase ()
 
std::vector< edm::ProductResolverIndex > const & putTokenIndexToProductResolverIndex () const
 
std::vector< bool > const & recordProvenanceList () const
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
std::function< void(BranchDescription const &)> registrationCallback () const
 used by the fwk to register list of products More...
 
void resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel)
 
TypeLabelList const & typeLabelList () const
 used by the fwk to register the list of products of this module More...
 
 ~ProducerBase () noexcept(false) override
 
- Public Member Functions inherited from edm::EDConsumerBase
std::vector< ConsumesInfoconsumesInfo () const
 
void convertCurrentProcessAlias (std::string const &processName)
 Convert "@currentProcess" in InputTag process names to the actual current process name. More...
 
 EDConsumerBase ()
 
 EDConsumerBase (EDConsumerBase &&)=default
 
 EDConsumerBase (EDConsumerBase const &)=delete
 
ESProxyIndex const * esGetTokenIndices (edm::Transition iTrans) const
 
std::vector< ESProxyIndex > const & esGetTokenIndicesVector (edm::Transition iTrans) const
 
std::vector< ESRecordIndex > const & esGetTokenRecordIndicesVector (edm::Transition iTrans) const
 
ProductResolverIndexAndSkipBit indexFrom (EDGetToken, BranchType, TypeID const &) const
 
void itemsMayGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
void itemsToGet (BranchType, std::vector< ProductResolverIndexAndSkipBit > &) const
 
std::vector< ProductResolverIndexAndSkipBit > const & itemsToGetFrom (BranchType iType) const
 
void labelsForToken (EDGetToken iToken, Labels &oLabels) const
 
void modulesWhoseProductsAreConsumed (std::array< std::vector< ModuleDescription const * > *, NumBranchTypes > &modulesAll, std::vector< ModuleProcessName > &modulesInPreviousProcesses, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
bool registeredToConsume (ProductResolverIndex, bool, BranchType) const
 
bool registeredToConsumeMany (TypeID const &, BranchType) const
 
void selectInputProcessBlocks (ProductRegistry const &productRegistry, ProcessBlockHelperBase const &processBlockHelperBase)
 
ProductResolverIndexAndSkipBit uncheckedIndexFrom (EDGetToken) const
 
void updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet)
 
void updateLookup (eventsetup::ESRecordsToProxyIndices const &)
 
virtual ~EDConsumerBase () noexcept(false)
 

Private Member Functions

void clear ()
 
void fillG4MC (edm::Event &)
 
void fillTrk (edm::Event &, const edm::EventSetup &)
 
void storeG4MC (PTrackerSimHit &)
 
void storeTrk (PTrackerSimHit &)
 

Private Attributes

edm::ParameterSet config_
 
unsigned int count
 
edm::EDGetTokenT< edm::HepMCProductedmHepMCProductToken_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_pxlBrlHigh_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_pxlBrlLow_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_pxlFwdHigh_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_pxlFwdLow_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTECHigh_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTECLow_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTIBHigh_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTIBLow_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTIDHigh_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTIDLow_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTOBHigh_Token_
 
edm::EDGetTokenT< edm::PSimHitContaineredmPSimHitContainer_siTOBLow_Token_
 
edm::EDGetTokenT< edm::SimTrackContaineredmSimTrackContainerToken_
 
edm::EDGetTokenT< edm::SimVertexContaineredmSimVertexContainerToken_
 
std::string fName
 
FloatVector G4TrkE
 
FloatVector G4TrkEta
 
FloatVector G4TrkPhi
 
FloatVector G4TrkPt
 
FloatVector G4VtxX
 
FloatVector G4VtxY
 
FloatVector G4VtxZ
 
bool getAllProvenances
 
FloatVector HitsDuID
 
FloatVector HitsEloss
 
FloatVector HitsEnPx
 
FloatVector HitsEnPy
 
FloatVector HitsEnPz
 
FloatVector HitsExPx
 
FloatVector HitsExPy
 
FloatVector HitsExPz
 
FloatVector HitsLdPhi
 
FloatVector HitsLdTheta
 
FloatVector HitsLdX
 
FloatVector HitsLdY
 
FloatVector HitsLdZ
 
FloatVector HitsLpX
 
FloatVector HitsLpY
 
FloatVector HitsLpZ
 
FloatVector HitsP
 
FloatVector HitsParT
 
FloatVector HitsProT
 
IntegerVector HitsSysID
 
FloatVector HitsTkID
 
FloatVector HitsToF
 
std::string label
 
int nRawGenPart
 
bool printProvenanceInfo
 
int verbosity
 

Additional Inherited Members

- Static Public Member Functions inherited from edm::one::EDProducerBase
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
static void prevalidate (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::ProducerBase
template<class ProductType >
BranchAliasSetterT< ProductType > produces ()
 declare what type of product will make and with which optional label More...
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces ()
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces ()
 
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<BranchType B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<Transition B>
BranchAliasSetter produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true)
 
template<typename ProductType , Transition B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<class ProductType >
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
template<typename ProductType , BranchType B>
BranchAliasSetterT< ProductType > produces (std::string instanceName)
 
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
template<BranchType B>
EDGetToken consumes (TypeToGet const &id, edm::InputTag const &tag)
 
ConsumesCollector consumesCollector ()
 Use a ConsumesCollector to gather consumes information from helper functions. More...
 
template<typename ProductType , BranchType B = InEvent>
void consumesMany ()
 
void consumesMany (const TypeToGet &id)
 
template<BranchType B>
void consumesMany (const TypeToGet &id)
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes ()
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
template<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag) noexcept
 
template<Transition Tr = Transition::Event>
ESGetTokenGeneric esConsumes (eventsetup::EventSetupRecordKey const &iRecord, eventsetup::DataKey const &iKey)
 Used with EventSetupRecord::doGet. More...
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 

Detailed Description

Definition at line 21 of file TrackerHitProducer.h.

Member Typedef Documentation

◆ FloatVector

typedef std::vector<float> TrackerHitProducer::FloatVector

Definition at line 23 of file TrackerHitProducer.h.

◆ IntegerVector

typedef std::vector<int> TrackerHitProducer::IntegerVector

Definition at line 24 of file TrackerHitProducer.h.

Constructor & Destructor Documentation

◆ TrackerHitProducer()

TrackerHitProducer::TrackerHitProducer ( const edm::ParameterSet iPSet)
explicit

Definition at line 36 of file TrackerHitProducer.cc.

37  : getAllProvenances(iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup")
38  .getUntrackedParameter<bool>("GetAllProvenances", false)),
39  printProvenanceInfo(iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup")
40  .getUntrackedParameter<bool>("PrintProvenanceInfo", false)),
41  verbosity(iPSet.getUntrackedParameter<int>("Verbosity", 0)),
42  count(0),
43  nRawGenPart(0),
44  config_(iPSet),
45  edmHepMCProductToken_(consumes<edm::HepMCProduct>(
46  edm::InputTag(iPSet.getUntrackedParameter<std::string>("HepMCProductLabel", "source"),
47  iPSet.getUntrackedParameter<std::string>("HepMCInputInstance", "")))),
48  edmSimVertexContainerToken_(consumes<edm::SimVertexContainer>(iPSet.getParameter<edm::InputTag>("G4VtxSrc"))),
49  edmSimTrackContainerToken_(consumes<edm::SimTrackContainer>(iPSet.getParameter<edm::InputTag>("G4TrkSrc"))),
51  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc"))),
53  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc"))),
55  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc"))),
57  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc"))),
59  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIBLowSrc"))),
61  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIBHighSrc"))),
63  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTOBLowSrc"))),
65  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTOBHighSrc"))),
67  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIDLowSrc"))),
69  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIDHighSrc"))),
71  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTECLowSrc"))),
73  consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTECHighSrc"))),
74  fName(iPSet.getUntrackedParameter<std::string>("Name", "")),
75  label(iPSet.getParameter<std::string>("Label")) {
76  // use value of first digit to determine default output level (inclusive)
77  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
78  verbosity %= 10;
79 
80  // create persistent object
81  produces<PTrackerSimHit>(label);
82 
83  // print out Parameter Set information being used
84  if (verbosity > 0) {
85  edm::LogInfo("TrackerHitProducer::TrackerHitProducer")
86  << "\n===============================\n"
87  << "Initialized as EDProducer with parameter values:\n"
88  << " Name =" << fName << "\n"
89  << " Verbosity =" << verbosity << "\n"
90  << " Label =" << label << "\n"
91  << " GetProv =" << getAllProvenances << "\n"
92  << " PrintProv =" << printProvenanceInfo << "\n"
93  << " PxlBrlLowSrc = " << iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc").label() << ":"
94  << iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc").instance() << "\n"
95  << " PxlBrlHighSrc = " << iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc").label() << ":"
96  << iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc").instance() << "\n"
97  << " PxlFwdLowSrc = " << iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc").label() << ":"
98  << iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc").instance() << "\n"
99  << " PxlFwdHighSrc = " << iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc").label() << ":"
100  << iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc").instance() << "\n"
101  << " SiTIBLowSrc = " << iPSet.getParameter<edm::InputTag>("SiTIBLowSrc").label() << ":"
102  << iPSet.getParameter<edm::InputTag>("SiTIBLowSrc").instance() << "\n"
103  << " SiTIBHighSrc = " << iPSet.getParameter<edm::InputTag>("SiTIBHighSrc").label() << ":"
104  << iPSet.getParameter<edm::InputTag>("SiTIBHighSrc").instance() << "\n"
105  << " SiTOBLowSrc = " << iPSet.getParameter<edm::InputTag>("SiTOBLowSrc").label() << ":"
106  << iPSet.getParameter<edm::InputTag>("SiTOBLowSrc").instance() << "\n"
107  << " SiTOBHighSrc = " << iPSet.getParameter<edm::InputTag>("SiTOBHighSrc").label() << ":"
108  << iPSet.getParameter<edm::InputTag>("SiTOBHighSrc").instance() << "\n"
109  << " SiTIDLowSrc = " << iPSet.getParameter<edm::InputTag>("SiTIDLowSrc").label() << ":"
110  << iPSet.getParameter<edm::InputTag>("SiTIDLowSrc").instance() << "\n"
111  << " SiTIDHighSrc = " << iPSet.getParameter<edm::InputTag>("SiTIDHighSrc").label() << ":"
112  << iPSet.getParameter<edm::InputTag>("SiTIDHighSrc").instance() << "\n"
113  << " SiTECLowSrc = " << iPSet.getParameter<edm::InputTag>("SiTECLowSrc").label() << ":"
114  << iPSet.getParameter<edm::InputTag>("SiTECLowSrc").instance() << "\n"
115  << " SiTECHighSrc = " << iPSet.getParameter<edm::InputTag>("SiTECHighSrc").label() << ":"
116  << iPSet.getParameter<edm::InputTag>("SiTECHighSrc").instance() << "\n"
117  << "===============================\n";
118  }
119 }

References fName, getAllProvenances, edm::ParameterSet::getParameter(), instance, label, printProvenanceInfo, and verbosity.

◆ ~TrackerHitProducer()

TrackerHitProducer::~TrackerHitProducer ( )
override

Definition at line 121 of file TrackerHitProducer.cc.

121 {}

Member Function Documentation

◆ beginJob()

void TrackerHitProducer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 123 of file TrackerHitProducer.cc.

123  {
124  if (verbosity > 0)
125  edm::LogInfo("TrackerHitProducer::beginJob") << "Starting the job...";
126  clear();
127  return;
128 }

References clear(), and verbosity.

◆ clear()

void TrackerHitProducer::clear ( void  )
private

Definition at line 1050 of file TrackerHitProducer.cc.

1050  {
1051  if (verbosity > 0)
1052  edm::LogInfo("GlobalValProducer::clear") << "Clearing event holders";
1053 
1054  // reset G4MC info
1055  nRawGenPart = 0;
1056  G4VtxX.clear();
1057  G4VtxY.clear();
1058  G4VtxZ.clear();
1059  G4TrkPt.clear();
1060  G4TrkE.clear();
1061  G4TrkEta.clear();
1062  G4TrkPhi.clear();
1063  // reset tracker info
1064  HitsSysID.clear();
1065  HitsDuID.clear();
1066  HitsTkID.clear();
1067  HitsProT.clear();
1068  HitsParT.clear();
1069  HitsP.clear();
1070  HitsLpX.clear();
1071  HitsLpY.clear();
1072  HitsLpZ.clear();
1073  HitsLdX.clear();
1074  HitsLdY.clear();
1075  HitsLdZ.clear();
1076  HitsLdTheta.clear();
1077  HitsLdPhi.clear();
1078  HitsExPx.clear();
1079  HitsExPy.clear();
1080  HitsExPz.clear();
1081  HitsEnPx.clear();
1082  HitsEnPy.clear();
1083  HitsEnPz.clear();
1084  HitsEloss.clear();
1085  HitsToF.clear();
1086 
1087  return;
1088 }

References G4TrkE, G4TrkEta, G4TrkPhi, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, nRawGenPart, and verbosity.

Referenced by beginJob(), and produce().

◆ endJob()

void TrackerHitProducer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 130 of file TrackerHitProducer.cc.

130  {
131  if (verbosity > 0)
132  edm::LogInfo("TrackerHitProducer::endJob") << "Terminating having processed" << count << "events.";
133  return;
134 }

References count, and verbosity.

◆ fillG4MC()

void TrackerHitProducer::fillG4MC ( edm::Event iEvent)
private

Definition at line 215 of file TrackerHitProducer.cc.

215  {
216  TString eventout;
217  if (verbosity > 0)
218  eventout = "\nGathering info:";
219 
221  // get MC information
224  iEvent.getByToken(edmHepMCProductToken_, HepMCEvt_);
225  if (!HepMCEvt_.isValid()) {
226  edm::LogError("TrackerHitProducer::fillG4MC") << "Unable to find HepMCProduct in event!";
227  return;
228  }
229  const HepMC::GenEvent *MCEvt = HepMCEvt_->GetEvent();
230  nRawGenPart = MCEvt->particles_size();
231 
232  if (verbosity > 1) {
233  eventout += "\n Number of Raw Particles collected: ";
234  eventout += nRawGenPart;
235  }
236 
238  // get G4Vertex information
241  iEvent.getByToken(edmSimVertexContainerToken_, G4VtxContainer);
242  if (!G4VtxContainer.isValid()) {
243  edm::LogError("TrackerHitProducer::fillG4MC") << "Unable to find SimVertex in event!";
244  return;
245  }
246  int i = 0;
247  edm::SimVertexContainer::const_iterator itVtx;
248  for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); ++itVtx) {
249  ++i;
250 
251  const CLHEP::HepLorentzVector &G4Vtx = CLHEP::HepLorentzVector(
252  itVtx->position().x(), itVtx->position().y(), itVtx->position().z(), itVtx->position().e());
253  G4VtxX.push_back(G4Vtx[0] / micrometer); // cm from code -> micrometer
254  // *10000
255  G4VtxY.push_back(G4Vtx[1] / micrometer); // cm from code -> micrometer
256  // *10000
257  G4VtxZ.push_back(G4Vtx[2] / millimeter); // cm from code -> millimeter *10
258  }
259 
260  if (verbosity > 1) {
261  eventout += "\n Number of G4Vertices collected: ";
262  eventout += i;
263  }
264 
266  // get G4Track information
269  iEvent.getByToken(edmSimTrackContainerToken_, G4TrkContainer);
270  if (!G4TrkContainer.isValid()) {
271  edm::LogError("TrackerHitProducer::fillG4MC") << "Unable to find SimTrack in event!";
272  return;
273  }
274  i = 0;
275  edm::SimTrackContainer::const_iterator itTrk;
276  for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
277  ++i;
278 
279  double etaInit = 0, phiInit = 0, pInit = 0;
280  const CLHEP::HepLorentzVector &G4Trk = CLHEP::HepLorentzVector(
281  itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
282  pInit = sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1] + G4Trk[2] * G4Trk[2]);
283  if (pInit == 0)
284  edm::LogError("TrackerHitProducer::fillG4MC") << "TrackerTest::INFO: Primary has p = 0 ";
285  else {
286  double costheta = G4Trk[2] / pInit;
287  double theta = acos(TMath::Min(TMath::Max(costheta, -1.), 1.));
288  etaInit = -log(tan(theta / 2));
289 
290  if (G4Trk[0] != 0 || G4Trk[1] != 0)
291  phiInit = atan2(G4Trk[1], G4Trk[0]);
292  }
293  G4TrkPt.push_back(sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1])); // GeV
294  G4TrkE.push_back(G4Trk[3]); // GeV
295  G4TrkEta.push_back(etaInit);
296  G4TrkPhi.push_back(phiInit);
297  }
298 
299  if (verbosity > 1) {
300  eventout += "\n Number of G4Tracks collected: ";
301  eventout += i;
302  }
303 
304  if (verbosity > 0)
305  edm::LogInfo("TrackerHitProducer::fillG4MC") << eventout;
306 
307  return;
308 }

References edmHepMCProductToken_, edmSimTrackContainerToken_, edmSimVertexContainerToken_, G4TrkE, G4TrkEta, G4TrkPhi, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, edm::HepMCProduct::GetEvent(), mps_fire::i, iEvent, edm::HandleBase::isValid(), dqm-mbProfile::log, Max(), Min(), nRawGenPart, mathSSE::sqrt(), funct::tan(), theta(), and verbosity.

Referenced by produce().

◆ fillTrk()

void TrackerHitProducer::fillTrk ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 348 of file TrackerHitProducer.cc.

348  {
349  TString eventout;
350  int sysID = 0;
351  if (verbosity > 0)
352  eventout = "\nGathering info:";
354  // iterator to access containers
355  edm::PSimHitContainer::const_iterator itHit;
356  // edm::PSimHitContainer theHits;
357 
359  // get Pixel Barrel information
361 
362  // extract low container
363  edm::Handle<edm::PSimHitContainer> PxlBrlLowContainer;
364  iEvent.getByToken(edmPSimHitContainer_pxlBrlLow_Token_, PxlBrlLowContainer);
365  if (!PxlBrlLowContainer.isValid()) {
366  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsPixelBarrelLowTof in event!";
367  return;
368  }
369 
370  // place both containers into new container
371  // theHits.insert(theHits.end(),PxlBrlLowContainer->begin(),
372  // PxlBrlLowContainer->end());
373 
374  sysID = 100; // TrackerHitsPixelBarrelLowTof
375  int j = 0;
376  for (itHit = PxlBrlLowContainer->begin(); itHit != PxlBrlLowContainer->end(); ++itHit) {
377  // for (itHit = theHits.begin(); itHit != theHits.end(); ++itHit) {
378 
379  // gather necessary information
380  ++j;
381  HitsSysID.push_back(sysID);
382  HitsDuID.push_back(itHit->detUnitId());
383  HitsTkID.push_back(itHit->trackId());
384  HitsProT.push_back(itHit->processType());
385  HitsParT.push_back(itHit->particleType());
386  HitsP.push_back(itHit->pabs());
387 
388  HitsLpX.push_back(itHit->localPosition().x());
389  HitsLpY.push_back(itHit->localPosition().y());
390  HitsLpZ.push_back(itHit->localPosition().z());
391 
392  HitsLdX.push_back(itHit->localDirection().x());
393  HitsLdY.push_back(itHit->localDirection().y());
394  HitsLdZ.push_back(itHit->localDirection().z());
395  HitsLdTheta.push_back(itHit->localDirection().theta());
396  HitsLdPhi.push_back(itHit->localDirection().phi());
397 
398  HitsExPx.push_back(itHit->exitPoint().x());
399  HitsExPy.push_back(itHit->exitPoint().y());
400  HitsExPz.push_back(itHit->exitPoint().z());
401 
402  HitsEnPx.push_back(itHit->entryPoint().x());
403  HitsEnPy.push_back(itHit->entryPoint().y());
404  HitsEnPz.push_back(itHit->entryPoint().z());
405 
406  HitsEloss.push_back(itHit->energyLoss());
407  HitsToF.push_back(itHit->tof());
408 
409  } // end loop through PxlBrl Hits
410 
411  if (verbosity > 1) {
412  eventout += "\n Number of Pixel Barrel Low TOF Hits collected: ";
413  eventout += j;
414  }
415 
416  // theHits.clear();
417 
418  // extract high container
419  edm::Handle<edm::PSimHitContainer> PxlBrlHighContainer;
420  iEvent.getByToken(edmPSimHitContainer_pxlBrlHigh_Token_, PxlBrlHighContainer);
421  if (!PxlBrlHighContainer.isValid()) {
422  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsPixelBarrelHighTof in event!";
423  return;
424  }
425 
426  sysID = 200; // TrackerHitsPixelBarrelHighTof
427  j = 0;
428  for (itHit = PxlBrlHighContainer->begin(); itHit != PxlBrlHighContainer->end(); ++itHit) {
429  // gather necessary information
430  ++j;
431  HitsSysID.push_back(sysID);
432  HitsDuID.push_back(itHit->detUnitId());
433  HitsTkID.push_back(itHit->trackId());
434  HitsProT.push_back(itHit->processType());
435  HitsParT.push_back(itHit->particleType());
436  HitsP.push_back(itHit->pabs());
437 
438  HitsLpX.push_back(itHit->localPosition().x());
439  HitsLpY.push_back(itHit->localPosition().y());
440  HitsLpZ.push_back(itHit->localPosition().z());
441 
442  HitsLdX.push_back(itHit->localDirection().x());
443  HitsLdY.push_back(itHit->localDirection().y());
444  HitsLdZ.push_back(itHit->localDirection().z());
445  HitsLdTheta.push_back(itHit->localDirection().theta());
446  HitsLdPhi.push_back(itHit->localDirection().phi());
447 
448  HitsExPx.push_back(itHit->exitPoint().x());
449  HitsExPy.push_back(itHit->exitPoint().y());
450  HitsExPz.push_back(itHit->exitPoint().z());
451 
452  HitsEnPx.push_back(itHit->entryPoint().x());
453  HitsEnPy.push_back(itHit->entryPoint().y());
454  HitsEnPz.push_back(itHit->entryPoint().z());
455 
456  HitsEloss.push_back(itHit->energyLoss());
457  HitsToF.push_back(itHit->tof());
458 
459  } // end loop through PxlBrl Hits
460 
461  if (verbosity > 1) {
462  eventout += "\n Number of Pixel Barrel High TOF Hits collected: ";
463  eventout += j;
464  }
465 
467  // get Pixel Forward information
469  // extract low container
470  edm::Handle<edm::PSimHitContainer> PxlFwdLowContainer;
471  iEvent.getByToken(edmPSimHitContainer_pxlFwdLow_Token_, PxlFwdLowContainer);
472  if (!PxlFwdLowContainer.isValid()) {
473  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsPixelEndcapLowTof in event!";
474  return;
475  }
476 
477  sysID = 300; // TrackerHitsPixelEndcapLowTof
478  j = 0;
479  for (itHit = PxlFwdLowContainer->begin(); itHit != PxlFwdLowContainer->end(); ++itHit) {
480  // gather necessary information
481  ++j;
482  HitsSysID.push_back(sysID);
483  HitsDuID.push_back(itHit->detUnitId());
484  HitsTkID.push_back(itHit->trackId());
485  HitsProT.push_back(itHit->processType());
486  HitsParT.push_back(itHit->particleType());
487  HitsP.push_back(itHit->pabs());
488 
489  HitsLpX.push_back(itHit->localPosition().x());
490  HitsLpY.push_back(itHit->localPosition().y());
491  HitsLpZ.push_back(itHit->localPosition().z());
492 
493  HitsLdX.push_back(itHit->localDirection().x());
494  HitsLdY.push_back(itHit->localDirection().y());
495  HitsLdZ.push_back(itHit->localDirection().z());
496  HitsLdTheta.push_back(itHit->localDirection().theta());
497  HitsLdPhi.push_back(itHit->localDirection().phi());
498 
499  HitsExPx.push_back(itHit->exitPoint().x());
500  HitsExPy.push_back(itHit->exitPoint().y());
501  HitsExPz.push_back(itHit->exitPoint().z());
502 
503  HitsEnPx.push_back(itHit->entryPoint().x());
504  HitsEnPy.push_back(itHit->entryPoint().y());
505  HitsEnPz.push_back(itHit->entryPoint().z());
506 
507  HitsEloss.push_back(itHit->energyLoss());
508  HitsToF.push_back(itHit->tof());
509 
510  } // end loop through PxlFwd Hits
511 
512  if (verbosity > 1) {
513  eventout += "\n Number of Pixel Forward Low TOF Hits collected: ";
514  eventout += j;
515  }
516 
517  // extract high container
518  edm::Handle<edm::PSimHitContainer> PxlFwdHighContainer;
519  iEvent.getByToken(edmPSimHitContainer_pxlFwdHigh_Token_, PxlFwdHighContainer);
520  if (!PxlFwdHighContainer.isValid()) {
521  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsPixelEndcapHighTof in event!";
522  return;
523  }
524 
525  sysID = 400; // TrackerHitsPixelEndcapHighTof
526  j = 0;
527  for (itHit = PxlFwdHighContainer->begin(); itHit != PxlFwdHighContainer->end(); ++itHit) {
528  // gather necessary information
529  ++j;
530  HitsSysID.push_back(sysID);
531  HitsDuID.push_back(itHit->detUnitId());
532  HitsTkID.push_back(itHit->trackId());
533  HitsProT.push_back(itHit->processType());
534  HitsParT.push_back(itHit->particleType());
535  HitsP.push_back(itHit->pabs());
536 
537  HitsLpX.push_back(itHit->localPosition().x());
538  HitsLpY.push_back(itHit->localPosition().y());
539  HitsLpZ.push_back(itHit->localPosition().z());
540 
541  HitsLdX.push_back(itHit->localDirection().x());
542  HitsLdY.push_back(itHit->localDirection().y());
543  HitsLdZ.push_back(itHit->localDirection().z());
544  HitsLdTheta.push_back(itHit->localDirection().theta());
545  HitsLdPhi.push_back(itHit->localDirection().phi());
546 
547  HitsExPx.push_back(itHit->exitPoint().x());
548  HitsExPy.push_back(itHit->exitPoint().y());
549  HitsExPz.push_back(itHit->exitPoint().z());
550 
551  HitsEnPx.push_back(itHit->entryPoint().x());
552  HitsEnPy.push_back(itHit->entryPoint().y());
553  HitsEnPz.push_back(itHit->entryPoint().z());
554 
555  HitsEloss.push_back(itHit->energyLoss());
556  HitsToF.push_back(itHit->tof());
557 
558  } // end loop through PxlFwd Hits
559 
560  if (verbosity > 1) {
561  eventout += "\n Number of Pixel Forward High TOF Hits collected: ";
562  eventout += j;
563  }
564 
566  // get Silicon TIB information
568  // extract TIB low container
569  edm::Handle<edm::PSimHitContainer> SiTIBLowContainer;
570  iEvent.getByToken(edmPSimHitContainer_siTIBLow_Token_, SiTIBLowContainer);
571  if (!SiTIBLowContainer.isValid()) {
572  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTIBLowTof in event!";
573  return;
574  }
575 
576  sysID = 10; // TrackerHitsTIBLowTof
577  j = 0;
578  for (itHit = SiTIBLowContainer->begin(); itHit != SiTIBLowContainer->end(); ++itHit) {
579  // gather necessary information
580  ++j;
581  HitsSysID.push_back(sysID);
582  HitsDuID.push_back(itHit->detUnitId());
583  HitsTkID.push_back(itHit->trackId());
584  HitsProT.push_back(itHit->processType());
585  HitsParT.push_back(itHit->particleType());
586  HitsP.push_back(itHit->pabs());
587 
588  HitsLpX.push_back(itHit->localPosition().x());
589  HitsLpY.push_back(itHit->localPosition().y());
590  HitsLpZ.push_back(itHit->localPosition().z());
591 
592  HitsLdX.push_back(itHit->localDirection().x());
593  HitsLdY.push_back(itHit->localDirection().y());
594  HitsLdZ.push_back(itHit->localDirection().z());
595  HitsLdTheta.push_back(itHit->localDirection().theta());
596  HitsLdPhi.push_back(itHit->localDirection().phi());
597 
598  HitsExPx.push_back(itHit->exitPoint().x());
599  HitsExPy.push_back(itHit->exitPoint().y());
600  HitsExPz.push_back(itHit->exitPoint().z());
601 
602  HitsEnPx.push_back(itHit->entryPoint().x());
603  HitsEnPy.push_back(itHit->entryPoint().y());
604  HitsEnPz.push_back(itHit->entryPoint().z());
605 
606  HitsEloss.push_back(itHit->energyLoss());
607  HitsToF.push_back(itHit->tof());
608 
609  } // end loop through PxlFwd Hits
610 
611  if (verbosity > 1) {
612  eventout += "\n Number of TIB low TOF Hits collected: ";
613  eventout += j;
614  }
615 
616  // extract TIB high container
617  edm::Handle<edm::PSimHitContainer> SiTIBHighContainer;
618  iEvent.getByToken(edmPSimHitContainer_siTIBHigh_Token_, SiTIBHighContainer);
619  if (!SiTIBHighContainer.isValid()) {
620  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTIBHighTof in event!";
621  return;
622  }
623 
624  sysID = 20; // TrackerHitsTIBHighTof
625  j = 0;
626  for (itHit = SiTIBHighContainer->begin(); itHit != SiTIBHighContainer->end(); ++itHit) {
627  // gather necessary information
628  ++j;
629  HitsSysID.push_back(sysID);
630  HitsDuID.push_back(itHit->detUnitId());
631  HitsTkID.push_back(itHit->trackId());
632  HitsProT.push_back(itHit->processType());
633  HitsParT.push_back(itHit->particleType());
634  HitsP.push_back(itHit->pabs());
635 
636  HitsLpX.push_back(itHit->localPosition().x());
637  HitsLpY.push_back(itHit->localPosition().y());
638  HitsLpZ.push_back(itHit->localPosition().z());
639 
640  HitsLdX.push_back(itHit->localDirection().x());
641  HitsLdY.push_back(itHit->localDirection().y());
642  HitsLdZ.push_back(itHit->localDirection().z());
643  HitsLdTheta.push_back(itHit->localDirection().theta());
644  HitsLdPhi.push_back(itHit->localDirection().phi());
645 
646  HitsExPx.push_back(itHit->exitPoint().x());
647  HitsExPy.push_back(itHit->exitPoint().y());
648  HitsExPz.push_back(itHit->exitPoint().z());
649 
650  HitsEnPx.push_back(itHit->entryPoint().x());
651  HitsEnPy.push_back(itHit->entryPoint().y());
652  HitsEnPz.push_back(itHit->entryPoint().z());
653 
654  HitsEloss.push_back(itHit->energyLoss());
655  HitsToF.push_back(itHit->tof());
656 
657  } // end loop through PxlFwd Hits
658 
659  if (verbosity > 1) {
660  eventout += "\n Number of TIB high TOF Hits collected: ";
661  eventout += j;
662  }
663 
665  // get Silicon TOB information
667  // extract TOB low container
668  edm::Handle<edm::PSimHitContainer> SiTOBLowContainer;
669  iEvent.getByToken(edmPSimHitContainer_siTOBLow_Token_, SiTOBLowContainer);
670  if (!SiTOBLowContainer.isValid()) {
671  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTOBLowTof in event!";
672  return;
673  }
674 
675  sysID = 30; // TrackerHitsTOBLowTof
676  j = 0;
677  for (itHit = SiTOBLowContainer->begin(); itHit != SiTOBLowContainer->end(); ++itHit) {
678  // gather necessary information
679  ++j;
680  HitsSysID.push_back(sysID);
681  HitsDuID.push_back(itHit->detUnitId());
682  HitsTkID.push_back(itHit->trackId());
683  HitsProT.push_back(itHit->processType());
684  HitsParT.push_back(itHit->particleType());
685  HitsP.push_back(itHit->pabs());
686 
687  HitsLpX.push_back(itHit->localPosition().x());
688  HitsLpY.push_back(itHit->localPosition().y());
689  HitsLpZ.push_back(itHit->localPosition().z());
690 
691  HitsLdX.push_back(itHit->localDirection().x());
692  HitsLdY.push_back(itHit->localDirection().y());
693  HitsLdZ.push_back(itHit->localDirection().z());
694  HitsLdTheta.push_back(itHit->localDirection().theta());
695  HitsLdPhi.push_back(itHit->localDirection().phi());
696 
697  HitsExPx.push_back(itHit->exitPoint().x());
698  HitsExPy.push_back(itHit->exitPoint().y());
699  HitsExPz.push_back(itHit->exitPoint().z());
700 
701  HitsEnPx.push_back(itHit->entryPoint().x());
702  HitsEnPy.push_back(itHit->entryPoint().y());
703  HitsEnPz.push_back(itHit->entryPoint().z());
704 
705  HitsEloss.push_back(itHit->energyLoss());
706  HitsToF.push_back(itHit->tof());
707 
708  } // end loop through PxlFwd Hits
709 
710  if (verbosity > 1) {
711  eventout += "\n Number of TOB low TOF Hits collected: ";
712  eventout += j;
713  }
714 
715  // extract TOB high container
716  edm::Handle<edm::PSimHitContainer> SiTOBHighContainer;
717  iEvent.getByToken(edmPSimHitContainer_siTOBHigh_Token_, SiTOBHighContainer);
718  if (!SiTOBHighContainer.isValid()) {
719  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTOBHighTof in event!";
720  return;
721  }
722 
723  sysID = 40; // TrackerHitsTOBHighTof
724  j = 0;
725  for (itHit = SiTOBHighContainer->begin(); itHit != SiTOBHighContainer->end(); ++itHit) {
726  // gather necessary information
727  ++j;
728  HitsSysID.push_back(sysID);
729  HitsDuID.push_back(itHit->detUnitId());
730  HitsTkID.push_back(itHit->trackId());
731  HitsProT.push_back(itHit->processType());
732  HitsParT.push_back(itHit->particleType());
733  HitsP.push_back(itHit->pabs());
734 
735  HitsLpX.push_back(itHit->localPosition().x());
736  HitsLpY.push_back(itHit->localPosition().y());
737  HitsLpZ.push_back(itHit->localPosition().z());
738 
739  HitsLdX.push_back(itHit->localDirection().x());
740  HitsLdY.push_back(itHit->localDirection().y());
741  HitsLdZ.push_back(itHit->localDirection().z());
742  HitsLdTheta.push_back(itHit->localDirection().theta());
743  HitsLdPhi.push_back(itHit->localDirection().phi());
744 
745  HitsExPx.push_back(itHit->exitPoint().x());
746  HitsExPy.push_back(itHit->exitPoint().y());
747  HitsExPz.push_back(itHit->exitPoint().z());
748 
749  HitsEnPx.push_back(itHit->entryPoint().x());
750  HitsEnPy.push_back(itHit->entryPoint().y());
751  HitsEnPz.push_back(itHit->entryPoint().z());
752 
753  HitsEloss.push_back(itHit->energyLoss());
754  HitsToF.push_back(itHit->tof());
755 
756  } // end loop through SiTOB Hits
757 
758  if (verbosity > 1) {
759  eventout += "\n Number of TOB high TOF Hits collected: ";
760  eventout += j;
761  }
762 
764  // get Silicon TID information
766  // extract TID low container
767  edm::Handle<edm::PSimHitContainer> SiTIDLowContainer;
768  iEvent.getByToken(edmPSimHitContainer_siTIDLow_Token_, SiTIDLowContainer);
769  if (!SiTIDLowContainer.isValid()) {
770  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTIDLowTof in event!";
771  return;
772  }
773 
774  sysID = 50; // TrackerHitsTIDLowTof
775  j = 0;
776  for (itHit = SiTIDLowContainer->begin(); itHit != SiTIDLowContainer->end(); ++itHit) {
777  // gather necessary information
778  ++j;
779  HitsSysID.push_back(sysID);
780  HitsDuID.push_back(itHit->detUnitId());
781  HitsTkID.push_back(itHit->trackId());
782  HitsProT.push_back(itHit->processType());
783  HitsParT.push_back(itHit->particleType());
784  HitsP.push_back(itHit->pabs());
785 
786  HitsLpX.push_back(itHit->localPosition().x());
787  HitsLpY.push_back(itHit->localPosition().y());
788  HitsLpZ.push_back(itHit->localPosition().z());
789 
790  HitsLdX.push_back(itHit->localDirection().x());
791  HitsLdY.push_back(itHit->localDirection().y());
792  HitsLdZ.push_back(itHit->localDirection().z());
793  HitsLdTheta.push_back(itHit->localDirection().theta());
794  HitsLdPhi.push_back(itHit->localDirection().phi());
795 
796  HitsExPx.push_back(itHit->exitPoint().x());
797  HitsExPy.push_back(itHit->exitPoint().y());
798  HitsExPz.push_back(itHit->exitPoint().z());
799 
800  HitsEnPx.push_back(itHit->entryPoint().x());
801  HitsEnPy.push_back(itHit->entryPoint().y());
802  HitsEnPz.push_back(itHit->entryPoint().z());
803 
804  HitsEloss.push_back(itHit->energyLoss());
805  HitsToF.push_back(itHit->tof());
806 
807  } // end loop through SiTID Hits
808 
809  if (verbosity > 1) {
810  eventout += "\n Number of TID low TOF Hits collected: ";
811  eventout += j;
812  }
813 
814  // extract TID high container
815  edm::Handle<edm::PSimHitContainer> SiTIDHighContainer;
816  iEvent.getByToken(edmPSimHitContainer_siTIDHigh_Token_, SiTIDHighContainer);
817  if (!SiTIDHighContainer.isValid()) {
818  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTIDHighTof in event!";
819  return;
820  }
821 
822  sysID = 60; // TrackerHitsTIDHighTof
823  j = 0;
824  for (itHit = SiTIDHighContainer->begin(); itHit != SiTIDHighContainer->end(); ++itHit) {
825  // gather necessary information
826  ++j;
827  HitsSysID.push_back(sysID);
828  HitsDuID.push_back(itHit->detUnitId());
829  HitsTkID.push_back(itHit->trackId());
830  HitsProT.push_back(itHit->processType());
831  HitsParT.push_back(itHit->particleType());
832  HitsP.push_back(itHit->pabs());
833 
834  HitsLpX.push_back(itHit->localPosition().x());
835  HitsLpY.push_back(itHit->localPosition().y());
836  HitsLpZ.push_back(itHit->localPosition().z());
837 
838  HitsLdX.push_back(itHit->localDirection().x());
839  HitsLdY.push_back(itHit->localDirection().y());
840  HitsLdZ.push_back(itHit->localDirection().z());
841  HitsLdTheta.push_back(itHit->localDirection().theta());
842  HitsLdPhi.push_back(itHit->localDirection().phi());
843 
844  HitsExPx.push_back(itHit->exitPoint().x());
845  HitsExPy.push_back(itHit->exitPoint().y());
846  HitsExPz.push_back(itHit->exitPoint().z());
847 
848  HitsEnPx.push_back(itHit->entryPoint().x());
849  HitsEnPy.push_back(itHit->entryPoint().y());
850  HitsEnPz.push_back(itHit->entryPoint().z());
851 
852  HitsEloss.push_back(itHit->energyLoss());
853  HitsToF.push_back(itHit->tof());
854 
855  } // end loop through SiTID Hits
856 
857  if (verbosity > 1) {
858  eventout += "\n Number of TID high TOF Hits collected: ";
859  eventout += j;
860  }
861 
863  // get Silicon TEC information
865  // extract TEC low container
866  edm::Handle<edm::PSimHitContainer> SiTECLowContainer;
867  iEvent.getByToken(edmPSimHitContainer_siTECLow_Token_, SiTECLowContainer);
868  if (!SiTECLowContainer.isValid()) {
869  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTECLowTof in event!";
870  return;
871  }
872 
873  sysID = 70; // TrackerHitsTECLowTof
874  j = 0;
875  for (itHit = SiTECLowContainer->begin(); itHit != SiTECLowContainer->end(); ++itHit) {
876  // gather necessary information
877  ++j;
878  HitsSysID.push_back(sysID);
879  HitsDuID.push_back(itHit->detUnitId());
880  HitsTkID.push_back(itHit->trackId());
881  HitsProT.push_back(itHit->processType());
882  HitsParT.push_back(itHit->particleType());
883  HitsP.push_back(itHit->pabs());
884 
885  HitsLpX.push_back(itHit->localPosition().x());
886  HitsLpY.push_back(itHit->localPosition().y());
887  HitsLpZ.push_back(itHit->localPosition().z());
888 
889  HitsLdX.push_back(itHit->localDirection().x());
890  HitsLdY.push_back(itHit->localDirection().y());
891  HitsLdZ.push_back(itHit->localDirection().z());
892  HitsLdTheta.push_back(itHit->localDirection().theta());
893  HitsLdPhi.push_back(itHit->localDirection().phi());
894 
895  HitsExPx.push_back(itHit->exitPoint().x());
896  HitsExPy.push_back(itHit->exitPoint().y());
897  HitsExPz.push_back(itHit->exitPoint().z());
898 
899  HitsEnPx.push_back(itHit->entryPoint().x());
900  HitsEnPy.push_back(itHit->entryPoint().y());
901  HitsEnPz.push_back(itHit->entryPoint().z());
902 
903  HitsEloss.push_back(itHit->energyLoss());
904  HitsToF.push_back(itHit->tof());
905 
906  } // end loop through SiTEC Hits
907 
908  if (verbosity > 1) {
909  eventout += "\n Number of TEC low TOF Hits collected: ";
910  eventout += j;
911  }
912 
913  // extract TEC high container
914  edm::Handle<edm::PSimHitContainer> SiTECHighContainer;
915  iEvent.getByToken(edmPSimHitContainer_siTECHigh_Token_, SiTECHighContainer);
916  if (!SiTECHighContainer.isValid()) {
917  edm::LogError("TrackerHitProducer::fillTrk") << "Unable to find TrackerHitsTECHighTof in event!";
918  return;
919  }
920  sysID = 80; // TrackerHitsTECHighTof
921  j = 0;
922  for (itHit = SiTECHighContainer->begin(); itHit != SiTECHighContainer->end(); ++itHit) {
923  // gather necessary information
924  ++j;
925  HitsSysID.push_back(sysID);
926  HitsDuID.push_back(itHit->detUnitId());
927  HitsTkID.push_back(itHit->trackId());
928  HitsProT.push_back(itHit->processType());
929  HitsParT.push_back(itHit->particleType());
930  HitsP.push_back(itHit->pabs());
931 
932  HitsLpX.push_back(itHit->localPosition().x());
933  HitsLpY.push_back(itHit->localPosition().y());
934  HitsLpZ.push_back(itHit->localPosition().z());
935 
936  HitsLdX.push_back(itHit->localDirection().x());
937  HitsLdY.push_back(itHit->localDirection().y());
938  HitsLdZ.push_back(itHit->localDirection().z());
939  HitsLdTheta.push_back(itHit->localDirection().theta());
940  HitsLdPhi.push_back(itHit->localDirection().phi());
941 
942  HitsExPx.push_back(itHit->exitPoint().x());
943  HitsExPy.push_back(itHit->exitPoint().y());
944  HitsExPz.push_back(itHit->exitPoint().z());
945 
946  HitsEnPx.push_back(itHit->entryPoint().x());
947  HitsEnPy.push_back(itHit->entryPoint().y());
948  HitsEnPz.push_back(itHit->entryPoint().z());
949 
950  HitsEloss.push_back(itHit->energyLoss());
951  HitsToF.push_back(itHit->tof());
952 
953  } // end loop through SiTEC Hits
954 
955  if (verbosity > 1) {
956  eventout += "\n Number of TEC high TOF Hits collected: ";
957  eventout += j;
958  }
959 
960  if (verbosity > 0)
961  edm::LogInfo("TrackerHitProducer::fillTrk") << eventout;
962 
963  return;
964 }

References edmPSimHitContainer_pxlBrlHigh_Token_, edmPSimHitContainer_pxlBrlLow_Token_, edmPSimHitContainer_pxlFwdHigh_Token_, edmPSimHitContainer_pxlFwdLow_Token_, edmPSimHitContainer_siTECHigh_Token_, edmPSimHitContainer_siTECLow_Token_, edmPSimHitContainer_siTIBHigh_Token_, edmPSimHitContainer_siTIBLow_Token_, edmPSimHitContainer_siTIDHigh_Token_, edmPSimHitContainer_siTIDLow_Token_, edmPSimHitContainer_siTOBHigh_Token_, edmPSimHitContainer_siTOBLow_Token_, HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, iEvent, edm::HandleBase::isValid(), dqmiolumiharvest::j, and verbosity.

Referenced by produce().

◆ produce()

void TrackerHitProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::one::EDProducerBase.

Definition at line 136 of file TrackerHitProducer.cc.

136  {
137  // keep track of number of events processed
138  ++count;
139 
140  // get event id information
141  edm::RunNumber_t nrun = iEvent.id().run();
142  edm::EventNumber_t nevt = iEvent.id().event();
143 
144  // get event setup information
145  // edm::ESHandle<edm::SetupData> pSetup;
146  // iSetup.get<edm::SetupRecord>().get(pSetup);
147 
148  if (verbosity > 0) {
149  edm::LogInfo("TrackerHitProducer::produce") << "Processing run" << nrun << ","
150  << "event " << nevt;
151  }
152 
153  // clear event holders
154  clear();
155 
156  // look at information available in the event
157  if (getAllProvenances) {
158  std::vector<const edm::StableProvenance *> AllProv;
159  iEvent.getAllStableProvenance(AllProv);
160 
161  if (verbosity > 0)
162  edm::LogInfo("TrackerHitProducer::produce") << "Number of Provenances =" << AllProv.size();
163 
164  if (printProvenanceInfo && (verbosity > 0)) {
165  TString eventout("\nProvenance info:\n");
166 
167  for (unsigned int i = 0; i < AllProv.size(); ++i) {
168  eventout += "\n ******************************";
169  eventout += "\n Module : ";
170  eventout += AllProv[i]->moduleLabel();
171  eventout += "\n ProductID process index: ";
172  eventout += AllProv[i]->productID().processIndex();
173  eventout += "\n ProductID product index: ";
174  eventout += AllProv[i]->productID().productIndex();
175  eventout += "\n ClassName : ";
176  eventout += AllProv[i]->className();
177  eventout += "\n InstanceName : ";
178  eventout += AllProv[i]->productInstanceName();
179  eventout += "\n BranchName : ";
180  eventout += AllProv[i]->branchName();
181  }
182  eventout += " ******************************\n";
183  edm::LogInfo("TrackerHitProducer::produce") << eventout;
184  }
185  }
186 
187  // call fill functions
188  // gather G4MC information from event
189  fillG4MC(iEvent);
190  // gather Tracker information from event
191  fillTrk(iEvent, iSetup);
192 
193  if (verbosity > 0)
194  edm::LogInfo("TrackerHitProducer::produce") << "Done gathering data from event.";
195 
196  // produce object to put into event
197  std::unique_ptr<PTrackerSimHit> pOut(new PTrackerSimHit);
198 
199  if (verbosity > 2)
200  edm::LogInfo("TrackerHitProducer::produce") << "Saving event contents:";
201 
202  // call store functions
203  // store G4MC information in product
204  storeG4MC(*pOut);
205  // store Tracker information in produce
206  storeTrk(*pOut);
207 
208  // store information in event
209  iEvent.put(std::move(pOut), label);
210 
211  return;
212 }

References clear(), count, fillG4MC(), fillTrk(), getAllProvenances, mps_fire::i, iEvent, label, eostools::move(), nevt, L1TrackObjectNtupleMaker_cfg::pOut, printProvenanceInfo, storeG4MC(), storeTrk(), and verbosity.

◆ storeG4MC()

void TrackerHitProducer::storeG4MC ( PTrackerSimHit product)
private

Definition at line 310 of file TrackerHitProducer.cc.

310  {
311  if (verbosity > 2) {
312  TString eventout("\nnRawGenPart = ");
313  eventout += nRawGenPart;
314  eventout += "\n nG4Vtx = ";
315  eventout += G4VtxX.size();
316  for (unsigned int i = 0; i < G4VtxX.size(); ++i) {
317  eventout += "\n (x,y,z) = (";
318  eventout += G4VtxX[i];
319  eventout += ", ";
320  eventout += G4VtxY[i];
321  eventout += ", ";
322  eventout += G4VtxZ[i];
323  eventout += ")";
324  }
325  eventout += "\n nG4Trk = ";
326  eventout += G4TrkPt.size();
327  for (unsigned int i = 0; i < G4TrkPt.size(); ++i) {
328  eventout += "\n (pt,e,eta,phi) = (";
329  eventout += G4TrkPt[i];
330  eventout += ", ";
331  eventout += G4TrkE[i];
332  eventout += ")";
333  eventout += G4TrkEta[i];
334  eventout += ")";
335  eventout += G4TrkPhi[i];
336  eventout += ")";
337  }
338  edm::LogInfo("TrackerHitProducer::storeG4MC") << eventout;
339  } // end verbose output
340 
341  product.putRawGenPart(nRawGenPart);
342  product.putG4Vtx(G4VtxX, G4VtxY, G4VtxZ);
344 
345  return;
346 }

References G4TrkE, G4TrkEta, G4TrkPhi, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, mps_fire::i, nRawGenPart, PTrackerSimHit::putG4Trk(), PTrackerSimHit::putG4Vtx(), PTrackerSimHit::putRawGenPart(), and verbosity.

Referenced by produce().

◆ storeTrk()

void TrackerHitProducer::storeTrk ( PTrackerSimHit product)
private

Definition at line 966 of file TrackerHitProducer.cc.

966  {
967  /*
968  if (verbosity > 2) {
969  TString eventout("\nnPxlBrlHits = ");
970  eventout += PxlBrlToF.size();
971  for (unsigned int i = 0; i < PxlBrlToF.size(); ++i) {
972  eventout += "\n (tof,r,phi,eta) = (";
973  eventout += PxlBrlToF[i];
974  eventout += ", ";
975  eventout += PxlBrlR[i];
976  eventout += ", ";
977  eventout += PxlBrlPhi[i];
978  eventout += ", ";
979  eventout += PxlBrlEta[i];
980  eventout += ")";
981  } // end PxlBrl output
982  eventout += "\n nPxlFwdHits = ";
983  eventout += PxlFwdToF.size();
984  for (unsigned int i = 0; i < PxlFwdToF.size(); ++i) {
985  eventout += "\n (tof,z,phi,eta) = (";
986  eventout += PxlFwdToF[i];
987  eventout += ", ";
988  eventout += PxlFwdZ[i];
989  eventout += ", ";
990  eventout += PxlFwdPhi[i];
991  eventout += ", ";
992  eventout += PxlFwdEta[i];
993  eventout += ")";
994  } // end PxlFwd output
995  eventout += "\n nSiBrlHits = ";
996  eventout += SiBrlToF.size();
997  for (unsigned int i = 0; i < SiBrlToF.size(); ++i) {
998  eventout += "\n (tof,r,phi,eta) = (";
999  eventout += SiBrlToF[i];
1000  eventout += ", ";
1001  eventout += SiBrlR[i];
1002  eventout += ", ";
1003  eventout += SiBrlPhi[i];
1004  eventout += ", ";
1005  eventout += SiBrlEta[i];
1006  eventout += ")";
1007  } // end SiBrl output
1008  eventout += "\n nSiFwdHits = ";
1009  eventout += SiFwdToF.size();
1010  for (unsigned int i = 0; i < SiFwdToF.size(); ++i) {
1011  eventout += "\n (tof,z,phi,eta) = (";
1012  eventout += SiFwdToF[i];
1013  eventout += ", ";
1014  eventout += SiFwdZ[i];
1015  eventout += ", ";
1016  eventout += SiFwdPhi[i];
1017  eventout += ", ";
1018  eventout += SiFwdEta[i];
1019  eventout += ")";
1020  } // end SiFwd output
1021  edm::LogInfo("TrackerHitProducer::storeTrk") << eventout;
1022  } // end verbose output
1023  */
1024  product.putHits(HitsSysID,
1025  HitsDuID,
1026  HitsTkID,
1027  HitsProT,
1028  HitsParT,
1029  HitsP,
1030  HitsLpX,
1031  HitsLpY,
1032  HitsLpZ,
1033  HitsLdX,
1034  HitsLdY,
1035  HitsLdZ,
1036  HitsLdTheta,
1037  HitsLdPhi,
1038  HitsExPx,
1039  HitsExPy,
1040  HitsExPz,
1041  HitsEnPx,
1042  HitsEnPy,
1043  HitsEnPz,
1044  HitsEloss,
1045  HitsToF);
1046 
1047  return;
1048 }

References HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, and PTrackerSimHit::putHits().

Referenced by produce().

Member Data Documentation

◆ config_

edm::ParameterSet TrackerHitProducer::config_
private

Definition at line 52 of file TrackerHitProducer.h.

◆ count

unsigned int TrackerHitProducer::count
private

Definition at line 48 of file TrackerHitProducer.h.

Referenced by endJob(), and produce().

◆ edmHepMCProductToken_

edm::EDGetTokenT<edm::HepMCProduct> TrackerHitProducer::edmHepMCProductToken_
private

Definition at line 54 of file TrackerHitProducer.h.

Referenced by fillG4MC().

◆ edmPSimHitContainer_pxlBrlHigh_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_pxlBrlHigh_Token_
private

Definition at line 57 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_pxlBrlLow_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_pxlBrlLow_Token_
private

Definition at line 57 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_pxlFwdHigh_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_pxlFwdHigh_Token_
private

Definition at line 58 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_pxlFwdLow_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_pxlFwdLow_Token_
private

Definition at line 58 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTECHigh_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTECHigh_Token_
private

Definition at line 62 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTECLow_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTECLow_Token_
private

Definition at line 62 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTIBHigh_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTIBHigh_Token_
private

Definition at line 59 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTIBLow_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTIBLow_Token_
private

Definition at line 59 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTIDHigh_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTIDHigh_Token_
private

Definition at line 61 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTIDLow_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTIDLow_Token_
private

Definition at line 61 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTOBHigh_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTOBHigh_Token_
private

Definition at line 60 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmPSimHitContainer_siTOBLow_Token_

edm::EDGetTokenT<edm::PSimHitContainer> TrackerHitProducer::edmPSimHitContainer_siTOBLow_Token_
private

Definition at line 60 of file TrackerHitProducer.h.

Referenced by fillTrk().

◆ edmSimTrackContainerToken_

edm::EDGetTokenT<edm::SimTrackContainer> TrackerHitProducer::edmSimTrackContainerToken_
private

Definition at line 56 of file TrackerHitProducer.h.

Referenced by fillG4MC().

◆ edmSimVertexContainerToken_

edm::EDGetTokenT<edm::SimVertexContainer> TrackerHitProducer::edmSimVertexContainerToken_
private

Definition at line 55 of file TrackerHitProducer.h.

Referenced by fillG4MC().

◆ fName

std::string TrackerHitProducer::fName
private

Definition at line 99 of file TrackerHitProducer.h.

Referenced by TrackerHitProducer().

◆ G4TrkE

FloatVector TrackerHitProducer::G4TrkE
private

Definition at line 69 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ G4TrkEta

FloatVector TrackerHitProducer::G4TrkEta
private

Definition at line 70 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ G4TrkPhi

FloatVector TrackerHitProducer::G4TrkPhi
private

Definition at line 71 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ G4TrkPt

FloatVector TrackerHitProducer::G4TrkPt
private

Definition at line 68 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ G4VtxX

FloatVector TrackerHitProducer::G4VtxX
private

Definition at line 65 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ G4VtxY

FloatVector TrackerHitProducer::G4VtxY
private

Definition at line 66 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ G4VtxZ

FloatVector TrackerHitProducer::G4VtxZ
private

Definition at line 67 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ getAllProvenances

bool TrackerHitProducer::getAllProvenances
private

Definition at line 43 of file TrackerHitProducer.h.

Referenced by produce(), and TrackerHitProducer().

◆ HitsDuID

FloatVector TrackerHitProducer::HitsDuID
private

Definition at line 77 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsEloss

FloatVector TrackerHitProducer::HitsEloss
private

Definition at line 96 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsEnPx

FloatVector TrackerHitProducer::HitsEnPx
private

Definition at line 93 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsEnPy

FloatVector TrackerHitProducer::HitsEnPy
private

Definition at line 94 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsEnPz

FloatVector TrackerHitProducer::HitsEnPz
private

Definition at line 95 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsExPx

FloatVector TrackerHitProducer::HitsExPx
private

Definition at line 90 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsExPy

FloatVector TrackerHitProducer::HitsExPy
private

Definition at line 91 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsExPz

FloatVector TrackerHitProducer::HitsExPz
private

Definition at line 92 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLdPhi

FloatVector TrackerHitProducer::HitsLdPhi
private

Definition at line 89 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLdTheta

FloatVector TrackerHitProducer::HitsLdTheta
private

Definition at line 88 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLdX

FloatVector TrackerHitProducer::HitsLdX
private

Definition at line 85 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLdY

FloatVector TrackerHitProducer::HitsLdY
private

Definition at line 86 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLdZ

FloatVector TrackerHitProducer::HitsLdZ
private

Definition at line 87 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLpX

FloatVector TrackerHitProducer::HitsLpX
private

Definition at line 82 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLpY

FloatVector TrackerHitProducer::HitsLpY
private

Definition at line 83 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsLpZ

FloatVector TrackerHitProducer::HitsLpZ
private

Definition at line 84 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsP

FloatVector TrackerHitProducer::HitsP
private

Definition at line 81 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsParT

FloatVector TrackerHitProducer::HitsParT
private

Definition at line 80 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsProT

FloatVector TrackerHitProducer::HitsProT
private

Definition at line 79 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsSysID

IntegerVector TrackerHitProducer::HitsSysID
private

Definition at line 76 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsTkID

FloatVector TrackerHitProducer::HitsTkID
private

Definition at line 78 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ HitsToF

FloatVector TrackerHitProducer::HitsToF
private

Definition at line 97 of file TrackerHitProducer.h.

Referenced by clear(), fillTrk(), and storeTrk().

◆ label

std::string TrackerHitProducer::label
private

Definition at line 100 of file TrackerHitProducer.h.

Referenced by produce(), and TrackerHitProducer().

◆ nRawGenPart

int TrackerHitProducer::nRawGenPart
private

Definition at line 50 of file TrackerHitProducer.h.

Referenced by clear(), fillG4MC(), and storeG4MC().

◆ printProvenanceInfo

bool TrackerHitProducer::printProvenanceInfo
private

Definition at line 44 of file TrackerHitProducer.h.

Referenced by produce(), and TrackerHitProducer().

◆ verbosity

int TrackerHitProducer::verbosity
private
TrackerHitProducer::HitsProT
FloatVector HitsProT
Definition: TrackerHitProducer.h:79
TrackerHitProducer::edmPSimHitContainer_siTOBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBHigh_Token_
Definition: TrackerHitProducer.h:60
edm::RunNumber_t
unsigned int RunNumber_t
Definition: RunLumiEventNumber.h:14
mps_fire.i
i
Definition: mps_fire.py:428
TrackerHitProducer::HitsDuID
FloatVector HitsDuID
Definition: TrackerHitProducer.h:77
TrackerHitProducer::HitsExPx
FloatVector HitsExPx
Definition: TrackerHitProducer.h:90
PTrackerSimHit::putHits
void putHits(const std::vector< int > &_sysID, const std::vector< float > &_detUnitId, const std::vector< float > &_trackId, const std::vector< float > &_processType, const std::vector< float > &_particleType, const std::vector< float > &_pabs, const std::vector< float > &_lpx, const std::vector< float > &_lpy, const std::vector< float > &_lpz, const std::vector< float > &_ldx, const std::vector< float > &_ldy, const std::vector< float > &_ldz, const std::vector< float > &_ldtheta, const std::vector< float > &_ldphi, const std::vector< float > &_exx, const std::vector< float > &_exy, const std::vector< float > &_exz, const std::vector< float > &_enx, const std::vector< float > &_eny, const std::vector< float > &_enz, const std::vector< float > &_eloss, const std::vector< float > &_tof)
Definition: PValidationFormats.cc:1591
TrackerHitProducer::printProvenanceInfo
bool printProvenanceInfo
Definition: TrackerHitProducer.h:44
TrackerHitProducer::edmPSimHitContainer_pxlFwdLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdLow_Token_
Definition: TrackerHitProducer.h:58
TrackerHitProducer::label
std::string label
Definition: TrackerHitProducer.h:100
TrackerHitProducer::edmPSimHitContainer_siTIDHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDHigh_Token_
Definition: TrackerHitProducer.h:61
TrackerHitProducer::HitsLpZ
FloatVector HitsLpZ
Definition: TrackerHitProducer.h:84
TrackerHitProducer::HitsLdTheta
FloatVector HitsLdTheta
Definition: TrackerHitProducer.h:88
TrackerHitProducer::edmPSimHitContainer_pxlBrlLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlLow_Token_
Definition: TrackerHitProducer.h:57
L1TrackObjectNtupleMaker_cfg.pOut
pOut
Definition: L1TrackObjectNtupleMaker_cfg.py:172
TrackerHitProducer::fillG4MC
void fillG4MC(edm::Event &)
Definition: TrackerHitProducer.cc:215
TrackerHitProducer::HitsSysID
IntegerVector HitsSysID
Definition: TrackerHitProducer.h:76
edm::ParameterSet::getUntrackedParameter
T getUntrackedParameter(std::string const &, T const &) const
PTrackerSimHit::putG4Trk
void putG4Trk(const std::vector< float > &pt, const std::vector< float > &e, const std::vector< float > &eta, const std::vector< float > &phi)
Definition: PValidationFormats.cc:1575
edm::LogInfo
Log< level::Info, false > LogInfo
Definition: MessageLogger.h:125
TrackerHitProducer::edmPSimHitContainer_siTIBLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBLow_Token_
Definition: TrackerHitProducer.h:59
edm::Handle< edm::HepMCProduct >
TrackerHitProducer::count
unsigned int count
Definition: TrackerHitProducer.h:48
TrackerHitProducer::edmSimVertexContainerToken_
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_
Definition: TrackerHitProducer.h:55
PTrackerSimHit::putRawGenPart
void putRawGenPart(int n)
Definition: PValidationFormats.cc:1558
HepMC::GenEvent
Definition: hepmc_rootio.cc:9
TrackerHitProducer::clear
void clear()
Definition: TrackerHitProducer.cc:1050
TrackerHitProducer::edmHepMCProductToken_
edm::EDGetTokenT< edm::HepMCProduct > edmHepMCProductToken_
Definition: TrackerHitProducer.h:54
TrackerHitProducer::HitsEnPz
FloatVector HitsEnPz
Definition: TrackerHitProducer.h:95
TrackerHitProducer::config_
edm::ParameterSet config_
Definition: TrackerHitProducer.h:52
TrackerHitProducer::HitsEloss
FloatVector HitsEloss
Definition: TrackerHitProducer.h:96
mathSSE::sqrt
T sqrt(T t)
Definition: SSEVec.h:19
TrackerHitProducer::edmPSimHitContainer_siTIBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBHigh_Token_
Definition: TrackerHitProducer.h:59
TrackerHitProducer::nRawGenPart
int nRawGenPart
Definition: TrackerHitProducer.h:50
TrackerHitProducer::HitsToF
FloatVector HitsToF
Definition: TrackerHitProducer.h:97
TrackerHitProducer::HitsLpX
FloatVector HitsLpX
Definition: TrackerHitProducer.h:82
TrackerHitProducer::storeTrk
void storeTrk(PTrackerSimHit &)
Definition: TrackerHitProducer.cc:966
theta
Geom::Theta< T > theta() const
Definition: Basic3DVectorLD.h:150
TrackerHitProducer::G4VtxY
FloatVector G4VtxY
Definition: TrackerHitProducer.h:66
edm::EventNumber_t
unsigned long long EventNumber_t
Definition: RunLumiEventNumber.h:12
TrackerHitProducer::HitsLdZ
FloatVector HitsLdZ
Definition: TrackerHitProducer.h:87
TrackerHitProducer::HitsLpY
FloatVector HitsLpY
Definition: TrackerHitProducer.h:83
TrackerHitProducer::fillTrk
void fillTrk(edm::Event &, const edm::EventSetup &)
Definition: TrackerHitProducer.cc:348
TrackerHitProducer::edmSimTrackContainerToken_
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
Definition: TrackerHitProducer.h:56
TrackerHitProducer::edmPSimHitContainer_siTECLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECLow_Token_
Definition: TrackerHitProducer.h:62
TrackerHitProducer::G4VtxZ
FloatVector G4VtxZ
Definition: TrackerHitProducer.h:67
TrackerHitProducer::edmPSimHitContainer_siTOBLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBLow_Token_
Definition: TrackerHitProducer.h:60
TrackerHitProducer::HitsLdX
FloatVector HitsLdX
Definition: TrackerHitProducer.h:85
edm::ParameterSet
Definition: ParameterSet.h:47
TrackerHitProducer::G4TrkPhi
FloatVector G4TrkPhi
Definition: TrackerHitProducer.h:71
TrackerHitProducer::G4VtxX
FloatVector G4VtxX
Definition: TrackerHitProducer.h:65
TrackerHitProducer::edmPSimHitContainer_siTECHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECHigh_Token_
Definition: TrackerHitProducer.h:62
TrackerHitProducer::storeG4MC
void storeG4MC(PTrackerSimHit &)
Definition: TrackerHitProducer.cc:310
funct::tan
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
TrackerHitProducer::HitsLdPhi
FloatVector HitsLdPhi
Definition: TrackerHitProducer.h:89
TrackerHitProducer::getAllProvenances
bool getAllProvenances
Definition: TrackerHitProducer.h:43
iEvent
int iEvent
Definition: GenABIO.cc:224
TrackerHitProducer::G4TrkPt
FloatVector G4TrkPt
Definition: TrackerHitProducer.h:68
TrackerHitProducer::HitsTkID
FloatVector HitsTkID
Definition: TrackerHitProducer.h:78
TrackerHitProducer::G4TrkEta
FloatVector G4TrkEta
Definition: TrackerHitProducer.h:70
TrackerHitProducer::HitsExPy
FloatVector HitsExPy
Definition: TrackerHitProducer.h:91
Max
T Max(T a, T b)
Definition: MathUtil.h:44
PTrackerSimHit
Definition: PValidationFormats.h:1771
edm::HepMCProduct::GetEvent
const HepMC::GenEvent * GetEvent() const
Definition: HepMCProduct.h:37
edm::LogError
Log< level::Error, false > LogError
Definition: MessageLogger.h:123
AlCaHLTBitMon_QueryRunRegistry.string
string string
Definition: AlCaHLTBitMon_QueryRunRegistry.py:256
TrackerHitProducer::HitsEnPx
FloatVector HitsEnPx
Definition: TrackerHitProducer.h:93
instance
static PFTauRenderPlugin instance
Definition: PFTauRenderPlugin.cc:70
PTrackerSimHit::putG4Vtx
void putG4Vtx(const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z)
Definition: PValidationFormats.cc:1563
nevt
int nevt
Definition: ReggeGribovPartonMCHadronizer.h:66
TrackerHitProducer::edmPSimHitContainer_pxlBrlHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlHigh_Token_
Definition: TrackerHitProducer.h:57
TrackerHitProducer::HitsExPz
FloatVector HitsExPz
Definition: TrackerHitProducer.h:92
TrackerHitProducer::fName
std::string fName
Definition: TrackerHitProducer.h:99
eostools.move
def move(src, dest)
Definition: eostools.py:511
TrackerHitProducer::G4TrkE
FloatVector G4TrkE
Definition: TrackerHitProducer.h:69
TrackerHitProducer::verbosity
int verbosity
Definition: TrackerHitProducer.h:45
TrackerHitProducer::HitsP
FloatVector HitsP
Definition: TrackerHitProducer.h:81
TrackerHitProducer::edmPSimHitContainer_pxlFwdHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdHigh_Token_
Definition: TrackerHitProducer.h:58
edm::ParameterSet::getParameter
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
dqm-mbProfile.log
log
Definition: dqm-mbProfile.py:17
TrackerHitProducer::HitsParT
FloatVector HitsParT
Definition: TrackerHitProducer.h:80
Min
T Min(T a, T b)
Definition: MathUtil.h:39
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
edm::HandleBase::isValid
bool isValid() const
Definition: HandleBase.h:70
edm::InputTag
Definition: InputTag.h:15
TrackerHitProducer::edmPSimHitContainer_siTIDLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDLow_Token_
Definition: TrackerHitProducer.h:61
TrackerHitProducer::HitsEnPy
FloatVector HitsEnPy
Definition: TrackerHitProducer.h:94
TrackerHitProducer::HitsLdY
FloatVector HitsLdY
Definition: TrackerHitProducer.h:86