CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
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
 
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)
 
 ~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 const &)=delete
 
 EDConsumerBase (EDConsumerBase &&)=default
 
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
 
EDConsumerBase const & operator= (EDConsumerBase const &)=delete
 
EDConsumerBaseoperator= (EDConsumerBase &&)=default
 
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::HepMCProduct
edmHepMCProductToken_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_pxlBrlHigh_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_pxlBrlLow_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_pxlFwdHigh_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_pxlFwdLow_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTECHigh_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTECLow_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTIBHigh_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTIBLow_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTIDHigh_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTIDLow_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTOBHigh_Token_
 
edm::EDGetTokenT
< edm::PSimHitContainer
edmPSimHitContainer_siTOBLow_Token_
 
edm::EDGetTokenT
< edm::SimTrackContainer
edmSimTrackContainerToken_
 
edm::EDGetTokenT
< edm::SimVertexContainer
edmSimVertexContainerToken_
 
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
ProducesCollector producesCollector ()
 
- Protected Member Functions inherited from edm::EDConsumerBase
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > consumes (edm::InputTag const &tag)
 
template<BranchType B = InEvent>
EDConsumerBaseAdaptor< B > consumes (edm::InputTag tag) noexcept
 
EDGetToken consumes (const TypeToGet &id, edm::InputTag const &tag)
 
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<typename ESProduct , typename ESRecord , Transition Tr = Transition::Event>
auto esConsumes (ESInputTag const &tag)
 
template<Transition Tr = Transition::Event>
constexpr auto esConsumes () noexcept
 
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...
 
template<typename ProductType , BranchType B = InEvent>
EDGetTokenT< ProductType > mayConsume (edm::InputTag const &tag)
 
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
template<BranchType B>
EDGetToken mayConsume (const TypeToGet &id, edm::InputTag const &tag)
 
void resetItemsToGetFrom (BranchType iType)
 

Detailed Description

Definition at line 21 of file TrackerHitProducer.h.

Member Typedef Documentation

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

Definition at line 23 of file TrackerHitProducer.h.

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

Definition at line 24 of file TrackerHitProducer.h.

Constructor & Destructor Documentation

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

Definition at line 36 of file TrackerHitProducer.cc.

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

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 }
T getUntrackedParameter(std::string const &, T const &) const
static PFTauRenderPlugin instance
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBLow_Token_
edm::EDGetTokenT< edm::HepMCProduct > edmHepMCProductToken_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDHigh_Token_
Log< level::Info, false > LogInfo
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_
edm::ParameterSet config_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECLow_Token_
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlLow_Token_
TrackerHitProducer::~TrackerHitProducer ( )
override

Definition at line 121 of file TrackerHitProducer.cc.

121 {}

Member Function Documentation

void TrackerHitProducer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 123 of file TrackerHitProducer.cc.

References clear(), and verbosity.

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

Definition at line 1050 of file TrackerHitProducer.cc.

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().

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 }
Log< level::Info, false > LogInfo
IntegerVector HitsSysID
void TrackerHitProducer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 130 of file TrackerHitProducer.cc.

References count, and verbosity.

130  {
131  if (verbosity > 0)
132  edm::LogInfo("TrackerHitProducer::endJob") << "Terminating having processed" << count << "events.";
133  return;
134 }
Log< level::Info, false > LogInfo
void TrackerHitProducer::fillG4MC ( edm::Event iEvent)
private

Definition at line 215 of file TrackerHitProducer.cc.

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

Referenced by produce().

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 }
static std::vector< std::string > checklist log
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
Geom::Theta< T > theta() const
T Min(T a, T b)
Definition: MathUtil.h:39
Log< level::Error, false > LogError
T sqrt(T t)
Definition: SSEVec.h:19
edm::EDGetTokenT< edm::HepMCProduct > edmHepMCProductToken_
Tan< T >::type tan(const T &t)
Definition: Tan.h:22
bool isValid() const
Definition: HandleBase.h:70
Log< level::Info, false > LogInfo
T Max(T a, T b)
Definition: MathUtil.h:44
edm::EDGetTokenT< edm::SimVertexContainer > edmSimVertexContainerToken_
edm::EDGetTokenT< edm::SimTrackContainer > edmSimTrackContainerToken_
void TrackerHitProducer::fillTrk ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 348 of file TrackerHitProducer.cc.

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_, edm::Event::getByToken(), HitsDuID, HitsEloss, HitsEnPx, HitsEnPy, HitsEnPz, HitsExPx, HitsExPy, HitsExPz, HitsLdPhi, HitsLdTheta, HitsLdX, HitsLdY, HitsLdZ, HitsLpX, HitsLpY, HitsLpZ, HitsP, HitsParT, HitsProT, HitsSysID, HitsTkID, HitsToF, edm::HandleBase::isValid(), dqmiolumiharvest::j, and verbosity.

Referenced by produce().

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 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
Log< level::Error, false > LogError
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdLow_Token_
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTIDHigh_Token_
Log< level::Info, false > LogInfo
IntegerVector HitsSysID
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTOBHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_siTECLow_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlFwdHigh_Token_
edm::EDGetTokenT< edm::PSimHitContainer > edmPSimHitContainer_pxlBrlLow_Token_
void TrackerHitProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::one::EDProducerBase.

Definition at line 136 of file TrackerHitProducer.cc.

References clear(), count, edm::EventID::event(), fillG4MC(), fillTrk(), getAllProvenances, edm::Event::getAllStableProvenance(), mps_fire::i, edm::EventBase::id(), label, eostools::move(), nevt, printProvenanceInfo, edm::Event::put(), edm::EventID::run(), storeG4MC(), storeTrk(), and verbosity.

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 }
RunNumber_t run() const
Definition: EventID.h:38
void fillG4MC(edm::Event &)
void storeTrk(PTrackerSimHit &)
EventNumber_t event() const
Definition: EventID.h:40
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
void storeG4MC(PTrackerSimHit &)
unsigned long long EventNumber_t
def move
Definition: eostools.py:511
Log< level::Info, false > LogInfo
edm::EventID id() const
Definition: EventBase.h:59
unsigned int RunNumber_t
void fillTrk(edm::Event &, const edm::EventSetup &)
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Event.cc:136
void TrackerHitProducer::storeG4MC ( PTrackerSimHit product)
private

Definition at line 310 of file TrackerHitProducer.cc.

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

Referenced by produce().

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 }
void putRawGenPart(int n)
void putG4Vtx(const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z)
Log< level::Info, false > LogInfo
void putG4Trk(const std::vector< float > &pt, const std::vector< float > &e, const std::vector< float > &eta, const std::vector< float > &phi)
void TrackerHitProducer::storeTrk ( PTrackerSimHit product)
private

Definition at line 966 of file TrackerHitProducer.cc.

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().

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 }
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)
IntegerVector HitsSysID

Member Data Documentation

edm::ParameterSet TrackerHitProducer::config_
private

Definition at line 52 of file TrackerHitProducer.h.

unsigned int TrackerHitProducer::count
private

Definition at line 48 of file TrackerHitProducer.h.

Referenced by endJob(), and produce().

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

Definition at line 54 of file TrackerHitProducer.h.

Referenced by fillG4MC().

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

Definition at line 57 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 57 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 58 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 58 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 62 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 62 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 59 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 59 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 61 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 61 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 60 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 60 of file TrackerHitProducer.h.

Referenced by fillTrk().

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

Definition at line 56 of file TrackerHitProducer.h.

Referenced by fillG4MC().

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

Definition at line 55 of file TrackerHitProducer.h.

Referenced by fillG4MC().

std::string TrackerHitProducer::fName
private

Definition at line 99 of file TrackerHitProducer.h.

Referenced by TrackerHitProducer().

FloatVector TrackerHitProducer::G4TrkE
private

Definition at line 69 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::G4TrkEta
private

Definition at line 70 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::G4TrkPhi
private

Definition at line 71 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::G4TrkPt
private

Definition at line 68 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::G4VtxX
private

Definition at line 65 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::G4VtxY
private

Definition at line 66 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::G4VtxZ
private

Definition at line 67 of file TrackerHitProducer.h.

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

bool TrackerHitProducer::getAllProvenances
private

Definition at line 43 of file TrackerHitProducer.h.

Referenced by produce(), and TrackerHitProducer().

FloatVector TrackerHitProducer::HitsDuID
private

Definition at line 77 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsEloss
private

Definition at line 96 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsEnPx
private

Definition at line 93 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsEnPy
private

Definition at line 94 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsEnPz
private

Definition at line 95 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsExPx
private

Definition at line 90 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsExPy
private

Definition at line 91 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsExPz
private

Definition at line 92 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLdPhi
private

Definition at line 89 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLdTheta
private

Definition at line 88 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLdX
private

Definition at line 85 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLdY
private

Definition at line 86 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLdZ
private

Definition at line 87 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLpX
private

Definition at line 82 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLpY
private

Definition at line 83 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsLpZ
private

Definition at line 84 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsP
private

Definition at line 81 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsParT
private

Definition at line 80 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsProT
private

Definition at line 79 of file TrackerHitProducer.h.

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

IntegerVector TrackerHitProducer::HitsSysID
private

Definition at line 76 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsTkID
private

Definition at line 78 of file TrackerHitProducer.h.

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

FloatVector TrackerHitProducer::HitsToF
private

Definition at line 97 of file TrackerHitProducer.h.

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

std::string TrackerHitProducer::label
private

Definition at line 100 of file TrackerHitProducer.h.

Referenced by produce(), and TrackerHitProducer().

int TrackerHitProducer::nRawGenPart
private

Definition at line 50 of file TrackerHitProducer.h.

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

bool TrackerHitProducer::printProvenanceInfo
private

Definition at line 44 of file TrackerHitProducer.h.

Referenced by produce(), and TrackerHitProducer().

int TrackerHitProducer::verbosity
private