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
GlobalHitsProducer Class Reference

#include <GlobalHitsProducer.h>

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

Public Types

typedef std::vector< float > FloatVector
 
- 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 (void) override
 
void endJob () override
 
 GlobalHitsProducer (const edm::ParameterSet &)
 
void produce (edm::Event &, const edm::EventSetup &) override
 
 ~GlobalHitsProducer () 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 fillECal (edm::Event &, const edm::EventSetup &)
 
void fillG4MC (edm::Event &)
 
void fillHCal (edm::Event &, const edm::EventSetup &)
 
void fillMuon (edm::Event &, const edm::EventSetup &)
 
void fillTrk (edm::Event &, const edm::EventSetup &)
 
void storeECal (PGlobalSimHit &)
 
void storeG4MC (PGlobalSimHit &)
 
void storeHCal (PGlobalSimHit &)
 
void storeMuon (PGlobalSimHit &)
 
void storeTrk (PGlobalSimHit &)
 

Private Attributes

edm::ESGetToken< CaloGeometry,
CaloGeometryRecord
caloGeomToken_
 
unsigned int count
 
edm::ESGetToken< CSCGeometry,
MuonGeometryRecord
cscGeomToken_
 
edm::ESGetToken< DTGeometry,
MuonGeometryRecord
dtGeomToken_
 
FloatVector ECalE
 
edm::InputTag ECalEBSrc_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
ECalEBSrc_Token_
 
edm::InputTag ECalEESrc_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
ECalEESrc_Token_
 
edm::InputTag ECalESSrc_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
ECalESSrc_Token_
 
FloatVector ECalEta
 
FloatVector ECalPhi
 
FloatVector ECalToF
 
std::string fName
 
int frequency
 
FloatVector G4TrkE
 
FloatVector G4TrkPt
 
edm::InputTag G4TrkSrc_
 
edm::EDGetTokenT
< edm::SimTrackContainer
G4TrkSrc_Token_
 
edm::InputTag G4VtxSrc_
 
edm::EDGetTokenT
< edm::SimVertexContainer
G4VtxSrc_Token_
 
FloatVector G4VtxX
 
FloatVector G4VtxY
 
FloatVector G4VtxZ
 
bool getAllProvenances
 
FloatVector HCalE
 
FloatVector HCalEta
 
FloatVector HCalPhi
 
edm::InputTag HCalSrc_
 
edm::EDGetTokenT
< edm::PCaloHitContainer
HCalSrc_Token_
 
FloatVector HCalToF
 
std::string label
 
FloatVector MuonCscEta
 
FloatVector MuonCscPhi
 
edm::InputTag MuonCscSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
MuonCscSrc_Token_
 
FloatVector MuonCscToF
 
FloatVector MuonCscZ
 
FloatVector MuonDtEta
 
FloatVector MuonDtPhi
 
FloatVector MuonDtR
 
edm::InputTag MuonDtSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
MuonDtSrc_Token_
 
FloatVector MuonDtToF
 
FloatVector MuonRpcBrlEta
 
FloatVector MuonRpcBrlPhi
 
FloatVector MuonRpcBrlR
 
FloatVector MuonRpcBrlToF
 
FloatVector MuonRpcFwdEta
 
FloatVector MuonRpcFwdPhi
 
FloatVector MuonRpcFwdToF
 
FloatVector MuonRpcFwdZ
 
edm::InputTag MuonRpcSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
MuonRpcSrc_Token_
 
int nRawGenPart
 
FloatVector PreShE
 
FloatVector PreShEta
 
FloatVector PreShPhi
 
FloatVector PreShToF
 
bool printProvenanceInfo
 
FloatVector PxlBrlEta
 
edm::InputTag PxlBrlHighSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
PxlBrlHighSrc_Token_
 
edm::InputTag PxlBrlLowSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
PxlBrlLowSrc_Token_
 
FloatVector PxlBrlPhi
 
FloatVector PxlBrlR
 
FloatVector PxlBrlToF
 
FloatVector PxlFwdEta
 
edm::InputTag PxlFwdHighSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
PxlFwdHighSrc_Token_
 
edm::InputTag PxlFwdLowSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
PxlFwdLowSrc_Token_
 
FloatVector PxlFwdPhi
 
FloatVector PxlFwdToF
 
FloatVector PxlFwdZ
 
edm::ESGetToken< RPCGeometry,
MuonGeometryRecord
rpcGeomToken_
 
FloatVector SiBrlEta
 
FloatVector SiBrlPhi
 
FloatVector SiBrlR
 
FloatVector SiBrlToF
 
FloatVector SiFwdEta
 
FloatVector SiFwdPhi
 
FloatVector SiFwdToF
 
FloatVector SiFwdZ
 
edm::InputTag SiTECHighSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTECHighSrc_Token_
 
edm::InputTag SiTECLowSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTECLowSrc_Token_
 
edm::InputTag SiTIBHighSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTIBHighSrc_Token_
 
edm::InputTag SiTIBLowSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTIBLowSrc_Token_
 
edm::InputTag SiTIDHighSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTIDHighSrc_Token_
 
edm::InputTag SiTIDLowSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTIDLowSrc_Token_
 
edm::InputTag SiTOBHighSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTOBHighSrc_Token_
 
edm::InputTag SiTOBLowSrc_
 
edm::EDGetTokenT
< edm::PSimHitContainer
SiTOBLowSrc_Token_
 
edm::ESGetToken
< TrackerGeometry,
TrackerDigiGeometryRecord
tGeomToken_
 
int verbosity
 
int vtxunit
 

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< Bconsumes (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 ()
 
template<Transition Tr = Transition::Event>
auto esConsumes (ESInputTag tag)
 
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

Class to fill PGlobalDigis object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry

Author
M. Strang SUNY-Buffalo

Class to fill PGlobalSimHit object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry

Author
M. Strang SUNY-Buffalo

Class to fill PGlobalRecHit object to be inserted into data stream containing information about various sub-systems in global coordinates with full geometry

Author
M. Strang SUNY-Buffalo

Definition at line 75 of file GlobalHitsProducer.h.

Member Typedef Documentation

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

Definition at line 77 of file GlobalHitsProducer.h.

Constructor & Destructor Documentation

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

Definition at line 12 of file GlobalHitsProducer.cc.

References clear(), ECalEBSrc_, ECalEBSrc_Token_, ECalEESrc_, ECalEESrc_Token_, ECalESSrc_, ECalESSrc_Token_, fName, frequency, getAllProvenances, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), HCalSrc_, HCalSrc_Token_, edm::InputTag::instance(), edm::InputTag::label(), label, MuonCscSrc_, MuonCscSrc_Token_, MuonDtSrc_, MuonDtSrc_Token_, MuonRpcSrc_, MuonRpcSrc_Token_, printProvenanceInfo, PxlBrlHighSrc_, PxlBrlHighSrc_Token_, PxlBrlLowSrc_, PxlBrlLowSrc_Token_, PxlFwdHighSrc_, PxlFwdHighSrc_Token_, PxlFwdLowSrc_, PxlFwdLowSrc_Token_, SiTECHighSrc_, SiTECHighSrc_Token_, SiTECLowSrc_, SiTECLowSrc_Token_, SiTIBHighSrc_, SiTIBHighSrc_Token_, SiTIBLowSrc_, SiTIBLowSrc_Token_, SiTIDHighSrc_, SiTIDHighSrc_Token_, SiTIDLowSrc_, SiTIDLowSrc_Token_, SiTOBHighSrc_, SiTOBHighSrc_Token_, SiTOBLowSrc_, SiTOBLowSrc_Token_, AlCaHLTBitMon_QueryRunRegistry::string, verbosity, and vtxunit.

13  : fName(""),
14  verbosity(0),
15  frequency(0),
16  vtxunit(0),
17  label(""),
18  getAllProvenances(false),
19  printProvenanceInfo(false),
20  nRawGenPart(0),
21  G4VtxSrc_Token_(consumes<edm::SimVertexContainer>((iPSet.getParameter<edm::InputTag>("G4VtxSrc")))),
22  G4TrkSrc_Token_(consumes<edm::SimTrackContainer>(iPSet.getParameter<edm::InputTag>("G4TrkSrc"))),
28  count(0) {
29  std::string MsgLoggerCat = "GlobalHitsProducer_GlobalHitsProducer";
30 
31  // get information from parameter set
32  fName = iPSet.getUntrackedParameter<std::string>("Name");
33  verbosity = iPSet.getUntrackedParameter<int>("Verbosity");
34  frequency = iPSet.getUntrackedParameter<int>("Frequency");
35  vtxunit = iPSet.getUntrackedParameter<int>("VtxUnit");
36  label = iPSet.getParameter<std::string>("Label");
37  edm::ParameterSet m_Prov = iPSet.getParameter<edm::ParameterSet>("ProvenanceLookup");
38  getAllProvenances = m_Prov.getUntrackedParameter<bool>("GetAllProvenances");
39  printProvenanceInfo = m_Prov.getUntrackedParameter<bool>("PrintProvenanceInfo");
40 
41  // get Labels to use to extract information
42  PxlBrlLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc");
43  PxlBrlHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc");
44  PxlFwdLowSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc");
45  PxlFwdHighSrc_ = iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc");
46 
47  SiTIBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBLowSrc");
48  SiTIBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIBHighSrc");
49  SiTOBLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBLowSrc");
50  SiTOBHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTOBHighSrc");
51  SiTIDLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDLowSrc");
52  SiTIDHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTIDHighSrc");
53  SiTECLowSrc_ = iPSet.getParameter<edm::InputTag>("SiTECLowSrc");
54  SiTECHighSrc_ = iPSet.getParameter<edm::InputTag>("SiTECHighSrc");
55 
56  MuonCscSrc_ = iPSet.getParameter<edm::InputTag>("MuonCscSrc");
57  MuonDtSrc_ = iPSet.getParameter<edm::InputTag>("MuonDtSrc");
58  MuonRpcSrc_ = iPSet.getParameter<edm::InputTag>("MuonRpcSrc");
59 
60  ECalEBSrc_ = iPSet.getParameter<edm::InputTag>("ECalEBSrc");
61  ECalEESrc_ = iPSet.getParameter<edm::InputTag>("ECalEESrc");
62  ECalESSrc_ = iPSet.getParameter<edm::InputTag>("ECalESSrc");
63 
64  HCalSrc_ = iPSet.getParameter<edm::InputTag>("HCalSrc");
65 
66  // fix for consumes
67  PxlBrlLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlBrlLowSrc"));
68  PxlBrlHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlBrlHighSrc"));
69  PxlFwdLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlFwdLowSrc"));
70  PxlFwdHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("PxlFwdHighSrc"));
71 
72  SiTIBLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIBLowSrc"));
73  SiTIBHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIBHighSrc"));
74  SiTOBLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTOBLowSrc"));
75  SiTOBHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTOBHighSrc"));
76  SiTIDLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIDLowSrc"));
77  SiTIDHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTIDHighSrc"));
78  SiTECLowSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTECLowSrc"));
79  SiTECHighSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("SiTECHighSrc"));
80 
81  MuonCscSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuonCscSrc"));
82  MuonDtSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuonDtSrc"));
83  MuonRpcSrc_Token_ = consumes<edm::PSimHitContainer>(iPSet.getParameter<edm::InputTag>("MuonRpcSrc"));
84 
85  ECalEBSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("ECalEBSrc"));
86  ECalEESrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("ECalEESrc"));
87  ECalESSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("ECalESSrc"));
88  HCalSrc_Token_ = consumes<edm::PCaloHitContainer>(iPSet.getParameter<edm::InputTag>("HCalSrc"));
89 
90  // use value of first digit to determine default output level (inclusive)
91  // 0 is none, 1 is basic, 2 is fill output, 3 is gather output
92  verbosity %= 10;
93 
94  // create persistent object
95  produces<PGlobalSimHit>(label);
96 
97  // print out Parameter Set information being used
98  if (verbosity >= 0) {
99  edm::LogInfo(MsgLoggerCat)
100  << "\n===============================\n"
101  << "Initialized as EDProducer with parameter values:\n"
102  << " Name = " << fName << "\n"
103  << " Verbosity = " << verbosity << "\n"
104  << " Frequency = " << frequency << "\n"
105  << " VtxUnit = " << vtxunit << "\n"
106  << " Label = " << label << "\n"
107  << " GetProv = " << getAllProvenances << "\n"
108  << " PrintProv = " << printProvenanceInfo << "\n"
109  << " PxlBrlLowSrc = " << PxlBrlLowSrc_.label() << ":" << PxlBrlLowSrc_.instance() << "\n"
110  << " PxlBrlHighSrc = " << PxlBrlHighSrc_.label() << ":" << PxlBrlHighSrc_.instance() << "\n"
111  << " PxlFwdLowSrc = " << PxlFwdLowSrc_.label() << ":" << PxlBrlLowSrc_.instance() << "\n"
112  << " PxlFwdHighSrc = " << PxlFwdHighSrc_.label() << ":" << PxlBrlHighSrc_.instance() << "\n"
113  << " SiTIBLowSrc = " << SiTIBLowSrc_.label() << ":" << SiTIBLowSrc_.instance() << "\n"
114  << " SiTIBHighSrc = " << SiTIBHighSrc_.label() << ":" << SiTIBHighSrc_.instance() << "\n"
115  << " SiTOBLowSrc = " << SiTOBLowSrc_.label() << ":" << SiTOBLowSrc_.instance() << "\n"
116  << " SiTOBHighSrc = " << SiTOBHighSrc_.label() << ":" << SiTOBHighSrc_.instance() << "\n"
117  << " SiTIDLowSrc = " << SiTIDLowSrc_.label() << ":" << SiTIDLowSrc_.instance() << "\n"
118  << " SiTIDHighSrc = " << SiTIDHighSrc_.label() << ":" << SiTIDHighSrc_.instance() << "\n"
119  << " SiTECLowSrc = " << SiTECLowSrc_.label() << ":" << SiTECLowSrc_.instance() << "\n"
120  << " SiTECHighSrc = " << SiTECHighSrc_.label() << ":" << SiTECHighSrc_.instance() << "\n"
121  << " MuonCscSrc = " << MuonCscSrc_.label() << ":" << MuonCscSrc_.instance() << "\n"
122  << " MuonDtSrc = " << MuonDtSrc_.label() << ":" << MuonDtSrc_.instance() << "\n"
123  << " MuonRpcSrc = " << MuonRpcSrc_.label() << ":" << MuonRpcSrc_.instance() << "\n"
124  << " ECalEBSrc = " << ECalEBSrc_.label() << ":" << ECalEBSrc_.instance() << "\n"
125  << " ECalEESrc = " << ECalEESrc_.label() << ":" << ECalEESrc_.instance() << "\n"
126  << " ECalESSrc = " << ECalESSrc_.label() << ":" << ECalESSrc_.instance() << "\n"
127  << " HCalSrc = " << HCalSrc_.label() << ":" << HCalSrc_.instance() << "\n"
128  << "===============================\n";
129  }
130 
131  // migrated here from beginJob
132  clear();
133 }
edm::InputTag ECalESSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBHighSrc_Token_
T getUntrackedParameter(std::string const &, T const &) const
edm::EDGetTokenT< edm::PSimHitContainer > SiTECHighSrc_Token_
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
edm::InputTag ECalEESrc_
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
edm::EDGetTokenT< edm::PSimHitContainer > MuonRpcSrc_Token_
edm::InputTag MuonCscSrc_
edm::InputTag MuonDtSrc_
edm::InputTag SiTOBHighSrc_
edm::InputTag PxlBrlHighSrc_
edm::InputTag PxlBrlLowSrc_
edm::InputTag PxlFwdLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlHighSrc_Token_
edm::InputTag SiTIDLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdHighSrc_Token_
edm::InputTag SiTECHighSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBLowSrc_Token_
edm::InputTag ECalEBSrc_
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > MuonCscSrc_Token_
edm::InputTag SiTIBLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDLowSrc_Token_
edm::InputTag SiTECLowSrc_
edm::InputTag SiTIDHighSrc_
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBLowSrc_Token_
edm::EDGetTokenT< edm::SimTrackContainer > G4TrkSrc_Token_
edm::InputTag PxlFwdHighSrc_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalESSrc_Token_
Log< level::Info, false > LogInfo
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBHighSrc_Token_
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
T getParameter(std::string const &) const
Definition: ParameterSet.h:303
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDHighSrc_Token_
edm::InputTag SiTOBLowSrc_
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdLowSrc_Token_
std::string const & label() const
Definition: InputTag.h:36
edm::EDGetTokenT< edm::PSimHitContainer > MuonDtSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlLowSrc_Token_
edm::EDGetTokenT< edm::SimVertexContainer > G4VtxSrc_Token_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEBSrc_Token_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEESrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > SiTECLowSrc_Token_
edm::InputTag SiTIBHighSrc_
std::string const & instance() const
Definition: InputTag.h:37
edm::InputTag MuonRpcSrc_
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
GlobalHitsProducer::~GlobalHitsProducer ( )
override

Definition at line 135 of file GlobalHitsProducer.cc.

135 {}

Member Function Documentation

void GlobalHitsProducer::beginJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 137 of file GlobalHitsProducer.cc.

137 { return; }
void GlobalHitsProducer::clear ( void  )
private

Definition at line 1356 of file GlobalHitsProducer.cc.

References ECalE, ECalEta, ECalPhi, ECalToF, G4TrkE, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, HCalE, HCalEta, HCalPhi, HCalToF, MuonCscEta, MuonCscPhi, MuonCscToF, MuonCscZ, MuonDtEta, MuonDtPhi, MuonDtR, MuonDtToF, MuonRpcBrlEta, MuonRpcBrlPhi, MuonRpcBrlR, MuonRpcBrlToF, MuonRpcFwdEta, MuonRpcFwdPhi, MuonRpcFwdToF, MuonRpcFwdZ, nRawGenPart, PreShE, PreShEta, PreShPhi, PreShToF, PxlBrlEta, PxlBrlPhi, PxlBrlR, PxlBrlToF, PxlFwdEta, PxlFwdPhi, PxlFwdToF, PxlFwdZ, SiBrlEta, SiBrlPhi, SiBrlR, SiBrlToF, SiFwdEta, SiFwdPhi, SiFwdToF, SiFwdZ, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by GlobalHitsProducer(), and produce().

1356  {
1357  std::string MsgLoggerCat = "GlobalHitsProducer_clear";
1358 
1359  if (verbosity > 0)
1360  edm::LogInfo(MsgLoggerCat) << "Clearing event holders";
1361 
1362  // reset G4MC info
1363  nRawGenPart = 0;
1364  G4VtxX.clear();
1365  G4VtxY.clear();
1366  G4VtxZ.clear();
1367  G4TrkPt.clear();
1368  G4TrkE.clear();
1369 
1370  // reset electromagnetic info
1371  // reset ECal info
1372  ECalE.clear();
1373  ECalToF.clear();
1374  ECalPhi.clear();
1375  ECalEta.clear();
1376  // reset Preshower info
1377  PreShE.clear();
1378  PreShToF.clear();
1379  PreShPhi.clear();
1380  PreShEta.clear();
1381 
1382  // reset hadronic info
1383  // reset HCal info
1384  HCalE.clear();
1385  HCalToF.clear();
1386  HCalPhi.clear();
1387  HCalEta.clear();
1388 
1389  // reset tracker info
1390  // reset Pixel info
1391  PxlBrlToF.clear();
1392  PxlBrlR.clear();
1393  PxlBrlPhi.clear();
1394  PxlBrlEta.clear();
1395  PxlFwdToF.clear();
1396  PxlFwdZ.clear();
1397  PxlFwdPhi.clear();
1398  PxlFwdEta.clear();
1399  // reset strip info
1400  SiBrlToF.clear();
1401  SiBrlR.clear();
1402  SiBrlPhi.clear();
1403  SiBrlEta.clear();
1404  SiFwdToF.clear();
1405  SiFwdZ.clear();
1406  SiFwdPhi.clear();
1407  SiFwdEta.clear();
1408 
1409  // reset muon info
1410  // reset muon DT info
1411  MuonDtToF.clear();
1412  MuonDtR.clear();
1413  MuonDtPhi.clear();
1414  MuonDtEta.clear();
1415  // reset muon CSC info
1416  MuonCscToF.clear();
1417  MuonCscZ.clear();
1418  MuonCscPhi.clear();
1419  MuonCscEta.clear();
1420  // rest muon RPC info
1421  MuonRpcBrlToF.clear();
1422  MuonRpcBrlR.clear();
1423  MuonRpcBrlPhi.clear();
1424  MuonRpcBrlEta.clear();
1425  MuonRpcFwdToF.clear();
1426  MuonRpcFwdZ.clear();
1427  MuonRpcFwdPhi.clear();
1428  MuonRpcFwdEta.clear();
1429 
1430  return;
1431 }
Log< level::Info, false > LogInfo
void GlobalHitsProducer::endJob ( void  )
overridevirtual

Reimplemented from edm::one::EDProducerBase.

Definition at line 139 of file GlobalHitsProducer.cc.

References count, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

139  {
140  std::string MsgLoggerCat = "GlobalHitsProducer_endJob";
141  if (verbosity >= 0)
142  edm::LogInfo(MsgLoggerCat) << "Terminating having processed " << count << " events.";
143  return;
144 }
Log< level::Info, false > LogInfo
void GlobalHitsProducer::fillECal ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1068 of file GlobalHitsProducer.cc.

References caloGeomToken_, dEcal, DetId::det(), ECalE, ECalEBSrc_Token_, ECalEESrc_Token_, ECalESSrc_Token_, ECalEta, ECalPhi, ECalToF, PV3DBase< T, PVType, FrameType >::eta(), edm::Event::getByToken(), edm::EventSetup::getHandle(), CaloGeometry::getSubdetectorGeometry(), mps_fire::i, edm::HandleBase::isValid(), dqmiolumiharvest::j, PV3DBase< T, PVType, FrameType >::phi(), PreShE, PreShEta, PreShPhi, PreShToF, sdEcalBrl, sdEcalFwd, sdEcalPS, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, and verbosity.

Referenced by produce().

1068  {
1069  std::string MsgLoggerCat = "GlobalHitsProducer_fillECal";
1070 
1071  TString eventout;
1072  if (verbosity > 0)
1073  eventout = "\nGathering info:";
1074 
1075  // access the calorimeter geometry
1076  const auto &theCaloGeometry = iSetup.getHandle(caloGeomToken_);
1077  if (!theCaloGeometry.isValid()) {
1078  edm::LogWarning(MsgLoggerCat) << "Unable to find CaloGeometryRecord in event!";
1079  return;
1080  }
1081  const CaloGeometry &theCalo(*theCaloGeometry);
1082 
1083  // iterator to access containers
1084  edm::PCaloHitContainer::const_iterator itHit;
1085 
1087  // get ECal information
1089  edm::PCaloHitContainer theECalHits;
1090  // extract EB container
1092  iEvent.getByToken(ECalEBSrc_Token_, EBContainer);
1093  if (!EBContainer.isValid()) {
1094  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalHitsEB in event!";
1095  return;
1096  }
1097  // extract EE container
1099  iEvent.getByToken(ECalEESrc_Token_, EEContainer);
1100  if (!EEContainer.isValid()) {
1101  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalHitsEE in event!";
1102  return;
1103  }
1104  // place both containers into new container
1105  theECalHits.insert(theECalHits.end(), EBContainer->begin(), EBContainer->end());
1106  theECalHits.insert(theECalHits.end(), EEContainer->begin(), EEContainer->end());
1107 
1108  // cycle through new container
1109  int i = 0, j = 0;
1110  for (itHit = theECalHits.begin(); itHit != theECalHits.end(); ++itHit) {
1111  ++i;
1112 
1113  // create a DetId from the detUnitId
1114  DetId theDetUnitId(itHit->id());
1115  int detector = theDetUnitId.det();
1116  int subdetector = theDetUnitId.subdetId();
1117 
1118  // check that expected detector is returned
1119  if ((detector == dEcal) && ((subdetector == sdEcalBrl) || (subdetector == sdEcalFwd))) {
1120  // get the Cell geometry
1121  auto theDet = (theCalo.getSubdetectorGeometry(theDetUnitId))->getGeometry(theDetUnitId);
1122 
1123  if (!theDet) {
1124  edm::LogWarning(MsgLoggerCat) << "Unable to get CaloCellGeometry from ECalHits for Hit " << i;
1125  continue;
1126  }
1127 
1128  ++j;
1129 
1130  // get the global position of the cell
1131  const GlobalPoint &globalposition = theDet->getPosition();
1132 
1133  // gather necessary information
1134  ECalE.push_back(itHit->energy());
1135  ECalToF.push_back(itHit->time());
1136  ECalPhi.push_back(globalposition.phi());
1137  ECalEta.push_back(globalposition.eta());
1138 
1139  } else {
1140  edm::LogWarning(MsgLoggerCat) << "ECal PCaloHit " << i << " is expected to be (det,subdet) = (" << dEcal << ","
1141  << sdEcalBrl << " || " << sdEcalFwd << "); value returned is: (" << detector << ","
1142  << subdetector << ")";
1143  continue;
1144  } // end detector type check
1145  } // end loop through ECal Hits
1146 
1147  if (verbosity > 1) {
1148  eventout += "\n Number of ECal Hits collected:............. ";
1149  eventout += j;
1150  }
1151 
1153  // Get Preshower information
1155  // extract PreShower container
1156  edm::Handle<edm::PCaloHitContainer> PreShContainer;
1157  iEvent.getByToken(ECalESSrc_Token_, PreShContainer);
1158  if (!PreShContainer.isValid()) {
1159  edm::LogWarning(MsgLoggerCat) << "Unable to find EcalHitsES in event!";
1160  return;
1161  }
1162 
1163  // cycle through container
1164  i = 0, j = 0;
1165  for (itHit = PreShContainer->begin(); itHit != PreShContainer->end(); ++itHit) {
1166  ++i;
1167 
1168  // create a DetId from the detUnitId
1169  DetId theDetUnitId(itHit->id());
1170  int detector = theDetUnitId.det();
1171  int subdetector = theDetUnitId.subdetId();
1172 
1173  // check that expected detector is returned
1174  if ((detector == dEcal) && (subdetector == sdEcalPS)) {
1175  // get the Cell geometry
1176  auto theDet = (theCalo.getSubdetectorGeometry(theDetUnitId))->getGeometry(theDetUnitId);
1177 
1178  if (!theDet) {
1179  edm::LogWarning(MsgLoggerCat) << "Unable to get CaloCellGeometry from PreShContainer for Hit " << i;
1180  continue;
1181  }
1182 
1183  ++j;
1184 
1185  // get the global position of the cell
1186  const GlobalPoint &globalposition = theDet->getPosition();
1187 
1188  // gather necessary information
1189  PreShE.push_back(itHit->energy());
1190  PreShToF.push_back(itHit->time());
1191  PreShPhi.push_back(globalposition.phi());
1192  PreShEta.push_back(globalposition.eta());
1193 
1194  } else {
1195  edm::LogWarning(MsgLoggerCat) << "PreSh PCaloHit " << i << " is expected to be (det,subdet) = (" << dEcal << ","
1196  << sdEcalPS << "); value returned is: (" << detector << "," << subdetector << ")";
1197  continue;
1198  } // end detector type check
1199  } // end loop through PreShower Hits
1200 
1201  if (verbosity > 1) {
1202  eventout += "\n Number of PreSh Hits collected:............ ";
1203  eventout += j;
1204  }
1205 
1206  if (verbosity > 0)
1207  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1208 
1209  return;
1210 }
static const int dEcal
std::vector< PCaloHit > PCaloHitContainer
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
TString subdetector
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
static const int sdEcalPS
static const int sdEcalFwd
static const int sdEcalBrl
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::PCaloHitContainer > ECalESSrc_Token_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
T eta() const
Definition: PV3DBase.h:73
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEBSrc_Token_
edm::EDGetTokenT< edm::PCaloHitContainer > ECalEESrc_Token_
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
Log< level::Warning, false > LogWarning
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void GlobalHitsProducer::fillG4MC ( edm::Event iEvent)
private

Definition at line 239 of file GlobalHitsProducer.cc.

References edm::Provenance::branchDescription(), G4TrkE, G4TrkPt, G4TrkSrc_Token_, G4VtxSrc_Token_, G4VtxX, G4VtxY, G4VtxZ, edm::Event::getByToken(), edm::Event::getManyByType(), mps_fire::i, edm::HandleBase::isValid(), nRawGenPart, edm::HandleBase::provenance(), mathSSE::sqrt(), AlCaHLTBitMon_QueryRunRegistry::string, unit(), verbosity, and vtxunit.

Referenced by produce().

239  {
240  std::string MsgLoggerCat = "GlobalHitsProducer_fillG4MC";
241 
242  TString eventout;
243  if (verbosity > 0)
244  eventout = "\nGathering info:";
245 
247  // get MC information
250  std::vector<edm::Handle<edm::HepMCProduct>> AllHepMCEvt;
251  iEvent.getManyByType(AllHepMCEvt);
252 
253  // loop through products and extract VtxSmearing if available. Any of them
254  // should have the information needed
255  for (unsigned int i = 0; i < AllHepMCEvt.size(); ++i) {
256  HepMCEvt = AllHepMCEvt[i];
257  if ((HepMCEvt.provenance()->branchDescription()).moduleLabel() == "generatorSmeared")
258  break;
259  }
260 
261  if (!HepMCEvt.isValid()) {
262  edm::LogWarning(MsgLoggerCat) << "Unable to find HepMCProduct in event!";
263  return;
264  } else {
265  eventout += "\n Using HepMCProduct: ";
266  eventout += (HepMCEvt.provenance()->branchDescription()).moduleLabel();
267  }
268  const HepMC::GenEvent *MCEvt = HepMCEvt->GetEvent();
269  nRawGenPart = MCEvt->particles_size();
270 
271  if (verbosity > 1) {
272  eventout += "\n Number of Raw Particles collected:......... ";
273  eventout += nRawGenPart;
274  }
275 
277  // get G4Vertex information
279  // convert unit stored in SimVertex to mm
280  float unit = 0.;
281  if (vtxunit == 0)
282  unit = 1.; // already in mm
283  if (vtxunit == 1)
284  unit = 10.; // stored in cm, convert to mm
285 
287  iEvent.getByToken(G4VtxSrc_Token_, G4VtxContainer);
288  if (!G4VtxContainer.isValid()) {
289  edm::LogWarning(MsgLoggerCat) << "Unable to find SimVertex in event!";
290  return;
291  }
292  int i = 0;
293  edm::SimVertexContainer::const_iterator itVtx;
294  for (itVtx = G4VtxContainer->begin(); itVtx != G4VtxContainer->end(); ++itVtx) {
295  ++i;
296 
297  const math::XYZTLorentzVector G4Vtx1(
298  itVtx->position().x(), itVtx->position().y(), itVtx->position().z(), itVtx->position().e());
299  double G4Vtx[4];
300  G4Vtx1.GetCoordinates(G4Vtx);
301 
302  G4VtxX.push_back((G4Vtx[0] * unit) / micrometer);
303  G4VtxY.push_back((G4Vtx[1] * unit) / micrometer);
304  G4VtxZ.push_back((G4Vtx[2] * unit) / millimeter);
305  }
306 
307  if (verbosity > 1) {
308  eventout += "\n Number of G4Vertices collected:............ ";
309  eventout += i;
310  }
311 
313  // get G4Track information
316  iEvent.getByToken(G4TrkSrc_Token_, G4TrkContainer);
317 
318  if (!G4TrkContainer.isValid()) {
319  edm::LogWarning(MsgLoggerCat) << "Unable to find SimTrack in event!";
320  return;
321  }
322  i = 0;
323  edm::SimTrackContainer::const_iterator itTrk;
324  for (itTrk = G4TrkContainer->begin(); itTrk != G4TrkContainer->end(); ++itTrk) {
325  ++i;
326 
327  const math::XYZTLorentzVector G4Trk1(
328  itTrk->momentum().x(), itTrk->momentum().y(), itTrk->momentum().z(), itTrk->momentum().e());
329  double G4Trk[4];
330  G4Trk1.GetCoordinates(G4Trk);
331 
332  G4TrkPt.push_back(sqrt(G4Trk[0] * G4Trk[0] + G4Trk[1] * G4Trk[1])); // GeV
333  G4TrkE.push_back(G4Trk[3]); // GeV
334  }
335 
336  if (verbosity > 1) {
337  eventout += "\n Number of G4Tracks collected:.............. ";
338  eventout += i;
339  }
340 
341  if (verbosity > 0)
342  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
343 
344  return;
345 }
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
void getManyByType(std::vector< Handle< PROD >> &results) const
Definition: Event.h:530
XYZTLorentzVectorD XYZTLorentzVector
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:29
T sqrt(T t)
Definition: SSEVec.h:19
bool isValid() const
Definition: HandleBase.h:70
edm::EDGetTokenT< edm::SimTrackContainer > G4TrkSrc_Token_
Log< level::Info, false > LogInfo
BranchDescription const & branchDescription() const
Definition: Provenance.h:45
edm::EDGetTokenT< edm::SimVertexContainer > G4VtxSrc_Token_
Log< level::Warning, false > LogWarning
Provenance const * provenance() const
Definition: HandleBase.h:74
Basic3DVector unit() const
void GlobalHitsProducer::fillHCal ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 1251 of file GlobalHitsProducer.cc.

References caloGeomToken_, DetId::det(), dHcal, PV3DBase< T, PVType, FrameType >::eta(), edm::Event::getByToken(), edm::EventSetup::getHandle(), HcalGeometry::getPosition(), CaloGeometry::getSubdetectorGeometry(), HCalE, HCalEta, HCalPhi, HCalSrc_Token_, HCalToF, mps_fire::i, edm::HandleBase::isValid(), dqmiolumiharvest::j, PV3DBase< T, PVType, FrameType >::phi(), sdHcalBrl, sdHcalEC, sdHcalFwd, sdHcalOut, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, and verbosity.

Referenced by produce().

1251  {
1252  std::string MsgLoggerCat = "GlobalHitsProducer_fillHCal";
1253 
1254  TString eventout;
1255  if (verbosity > 0)
1256  eventout = "\nGathering info:";
1257 
1258  // access the calorimeter geometry
1259  const auto &theCaloGeometry = iSetup.getHandle(caloGeomToken_);
1260  if (!theCaloGeometry.isValid()) {
1261  edm::LogWarning(MsgLoggerCat) << "Unable to find CaloGeometryRecord in event!";
1262  return;
1263  }
1264  const CaloGeometry &theCalo(*theCaloGeometry);
1265 
1266  // iterator to access containers
1267  edm::PCaloHitContainer::const_iterator itHit;
1268 
1270  // get HCal information
1272  // extract HCal container
1274  iEvent.getByToken(HCalSrc_Token_, HCalContainer);
1275  if (!HCalContainer.isValid()) {
1276  edm::LogWarning(MsgLoggerCat) << "Unable to find HCalHits in event!";
1277  return;
1278  }
1279 
1280  // cycle through container
1281  int i = 0, j = 0;
1282  for (itHit = HCalContainer->begin(); itHit != HCalContainer->end(); ++itHit) {
1283  ++i;
1284 
1285  // create a DetId from the detUnitId
1286  DetId theDetUnitId(itHit->id());
1287  int detector = theDetUnitId.det();
1288  int subdetector = theDetUnitId.subdetId();
1289 
1290  // check that expected detector is returned
1291  if ((detector == dHcal) && ((subdetector == sdHcalBrl) || (subdetector == sdHcalEC) || (subdetector == sdHcalOut) ||
1292  (subdetector == sdHcalFwd))) {
1293  // get the Cell geometry
1294  const HcalGeometry *theDet = dynamic_cast<const HcalGeometry *>(theCalo.getSubdetectorGeometry(theDetUnitId));
1295 
1296  if (!theDet) {
1297  edm::LogWarning(MsgLoggerCat) << "Unable to get CaloCellGeometry from HCalContainer for Hit " << i;
1298  continue;
1299  }
1300 
1301  ++j;
1302 
1303  // get the global position of the cell
1304  const GlobalPoint &globalposition = theDet->getPosition(theDetUnitId);
1305 
1306  // gather necessary information
1307  HCalE.push_back(itHit->energy());
1308  HCalToF.push_back(itHit->time());
1309  HCalPhi.push_back(globalposition.phi());
1310  HCalEta.push_back(globalposition.eta());
1311 
1312  } else {
1313  edm::LogWarning(MsgLoggerCat) << "HCal PCaloHit " << i << " is expected to be (det,subdet) = (" << dHcal << ","
1314  << sdHcalBrl << " || " << sdHcalEC << " || " << sdHcalOut << " || " << sdHcalFwd
1315  << "); value returned is: (" << detector << "," << subdetector << ")";
1316  continue;
1317  } // end detector type check
1318  } // end loop through HCal Hits
1319 
1320  if (verbosity > 1) {
1321  eventout += "\n Number of HCal Hits collected:............. ";
1322  eventout += j;
1323  }
1324 
1325  if (verbosity > 0)
1326  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1327 
1328  return;
1329 }
edm::ESGetToken< CaloGeometry, CaloGeometryRecord > caloGeomToken_
static const int sdHcalOut
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
TString subdetector
Geom::Phi< T > phi() const
Definition: PV3DBase.h:66
edm::EDGetTokenT< edm::PCaloHitContainer > HCalSrc_Token_
bool isValid() const
Definition: HandleBase.h:70
GlobalPoint getPosition(const DetId &id) const
Log< level::Info, false > LogInfo
Definition: DetId.h:17
static const int dHcal
static const int sdHcalFwd
static const int sdHcalBrl
T eta() const
Definition: PV3DBase.h:73
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
Log< level::Warning, false > LogWarning
static const int sdHcalEC
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void GlobalHitsProducer::fillMuon ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 769 of file GlobalHitsProducer.cc.

References cscGeomToken_, DetId::det(), dMuon, dtGeomToken_, PVValHelper::eta, edm::Event::getByToken(), edm::EventSetup::getHandle(), mps_fire::i, RPCGeometry::idToDetUnit(), CSCGeometry::idToDetUnit(), edm::HandleBase::isValid(), dqmiolumiharvest::j, DTGeometry::layer(), MuonCscEta, MuonCscPhi, MuonCscSrc_Token_, MuonCscToF, MuonCscZ, MuonDtEta, MuonDtPhi, MuonDtR, MuonDtSrc_Token_, MuonDtToF, MuonRpcBrlEta, MuonRpcBrlPhi, MuonRpcBrlR, MuonRpcBrlToF, MuonRpcFwdEta, MuonRpcFwdPhi, MuonRpcFwdToF, MuonRpcFwdZ, MuonRpcSrc_Token_, perp(), phi, HLT_FULL_cff::region, rpcGeomToken_, sdMuonCSC, sdMuonDT, sdMuonRPC, sdMuonRPCRgnBrl, sdMuonRPCRgnFwdn, sdMuonRPCRgnFwdp, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, GeomDet::surface(), verbosity, and z.

Referenced by produce().

769  {
770  std::string MsgLoggerCat = "GlobalHitsProducer_fillMuon";
771 
772  TString eventout;
773  if (verbosity > 0)
774  eventout = "\nGathering info:";
775 
776  // iterator to access containers
777  edm::PSimHitContainer::const_iterator itHit;
778 
779  // int i = 0, j = 0;
781  // access the CSC Muon
783  // access the CSC Muon geometry
784  const auto &theCSCGeometry = iSetup.getHandle(cscGeomToken_);
785  if (!theCSCGeometry.isValid()) {
786  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonGeometryRecord for the CSCGeometry in event!";
787  return;
788  }
789  const CSCGeometry &theCSCMuon(*theCSCGeometry);
790 
791  // get Muon CSC information
792  edm::Handle<edm::PSimHitContainer> MuonCSCContainer;
793  iEvent.getByToken(MuonCscSrc_Token_, MuonCSCContainer);
794  if (!MuonCSCContainer.isValid()) {
795  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonCSCHits in event!";
796  return;
797  }
798 
799  // cycle through container
800  int i = 0, j = 0;
801  for (itHit = MuonCSCContainer->begin(); itHit != MuonCSCContainer->end(); ++itHit) {
802  ++i;
803 
804  // create a DetId from the detUnitId
805  DetId theDetUnitId(itHit->detUnitId());
806  int detector = theDetUnitId.det();
807  int subdetector = theDetUnitId.subdetId();
808 
809  // check that expected detector is returned
810  if ((detector == dMuon) && (subdetector == sdMuonCSC)) {
811  // get the GeomDetUnit from the geometry using theDetUnitID
812  const GeomDetUnit *theDet = theCSCMuon.idToDetUnit(theDetUnitId);
813 
814  if (!theDet) {
815  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from theCSCMuon for hit " << i;
816  continue;
817  }
818 
819  ++j;
820 
821  // get the Surface of the hit (knows how to go from local <-> global)
822  const BoundPlane &bSurface = theDet->surface();
823 
824  // gather necessary information
825  MuonCscToF.push_back(itHit->tof());
826  MuonCscZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
827  MuonCscPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
828  MuonCscEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
829  } else {
830  edm::LogWarning(MsgLoggerCat) << "MuonCsc PSimHit " << i << " is expected to be (det,subdet) = (" << dMuon << ","
831  << sdMuonCSC << "); value returned is: (" << detector << "," << subdetector << ")";
832  continue;
833  } // end detector type check
834  } // end loop through CSC Hits
835 
836  if (verbosity > 1) {
837  eventout += "\n Number of CSC muon Hits collected:......... ";
838  eventout += j;
839  }
840 
841  // i = 0, j = 0;
843  // access the DT Muon
845  // access the DT Muon geometry
846  const auto &theDTGeometry = iSetup.getHandle(dtGeomToken_);
847  if (!theDTGeometry.isValid()) {
848  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonGeometryRecord for the DTGeometry in event!";
849  return;
850  }
851  const DTGeometry &theDTMuon(*theDTGeometry);
852 
853  // get Muon DT information
854  edm::Handle<edm::PSimHitContainer> MuonDtContainer;
855  iEvent.getByToken(MuonDtSrc_Token_, MuonDtContainer);
856  if (!MuonDtContainer.isValid()) {
857  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonDTHits in event!";
858  return;
859  }
860 
861  // cycle through container
862  i = 0, j = 0;
863  for (itHit = MuonDtContainer->begin(); itHit != MuonDtContainer->end(); ++itHit) {
864  ++i;
865 
866  // create a DetId from the detUnitId
867  DetId theDetUnitId(itHit->detUnitId());
868  int detector = theDetUnitId.det();
869  int subdetector = theDetUnitId.subdetId();
870 
871  // check that expected detector is returned
872  if ((detector == dMuon) && (subdetector == sdMuonDT)) {
873  // CSC uses wires and layers rather than the full detID
874  // get the wireId
875  DTWireId wireId(itHit->detUnitId());
876 
877  // get the DTLayer from the geometry using the wireID
878  const DTLayer *theDet = theDTMuon.layer(wireId.layerId());
879 
880  if (!theDet) {
881  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from theDtMuon for hit " << i;
882  continue;
883  }
884 
885  ++j;
886 
887  // get the Surface of the hit (knows how to go from local <-> global)
888  const BoundPlane &bSurface = theDet->surface();
889 
890  // gather necessary information
891  MuonDtToF.push_back(itHit->tof());
892  MuonDtR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
893  MuonDtPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
894  MuonDtEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
895  } else {
896  edm::LogWarning(MsgLoggerCat) << "MuonDt PSimHit " << i << " is expected to be (det,subdet) = (" << dMuon << ","
897  << sdMuonDT << "); value returned is: (" << detector << "," << subdetector << ")";
898  continue;
899  } // end detector type check
900  } // end loop through DT Hits
901 
902  if (verbosity > 1) {
903  eventout += "\n Number of DT muon Hits collected:.......... ";
904  eventout += j;
905  }
906 
907  // i = 0, j = 0;
908  // int RPCBrl = 0, RPCFwd = 0;
910  // access the RPC Muon
912  // access the RPC Muon geometry
913  const auto &theRPCGeometry = iSetup.getHandle(rpcGeomToken_);
914  if (!theRPCGeometry.isValid()) {
915  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonGeometryRecord for the RPCGeometry in event!";
916  return;
917  }
918  const RPCGeometry &theRPCMuon(*theRPCGeometry);
919 
920  // get Muon RPC information
921  edm::Handle<edm::PSimHitContainer> MuonRPCContainer;
922  iEvent.getByToken(MuonRpcSrc_Token_, MuonRPCContainer);
923  if (!MuonRPCContainer.isValid()) {
924  edm::LogWarning(MsgLoggerCat) << "Unable to find MuonRPCHits in event!";
925  return;
926  }
927 
928  // cycle through container
929  i = 0, j = 0;
930  int RPCBrl = 0, RPCFwd = 0;
931  for (itHit = MuonRPCContainer->begin(); itHit != MuonRPCContainer->end(); ++itHit) {
932  ++i;
933 
934  // create a DetID from the detUnitId
935  DetId theDetUnitId(itHit->detUnitId());
936  int detector = theDetUnitId.det();
937  int subdetector = theDetUnitId.subdetId();
938 
939  // check that expected detector is returned
940  if ((detector == dMuon) && (subdetector == sdMuonRPC)) {
941  // get an RPCDetID from the detUnitID
942  RPCDetId RPCId(itHit->detUnitId());
943 
944  // find the region of the RPC hit
945  int region = RPCId.region();
946 
947  // get the GeomDetUnit from the geometry using the RPCDetId
948  const GeomDetUnit *theDet = theRPCMuon.idToDetUnit(theDetUnitId);
949 
950  if (!theDet) {
951  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from theRPCMuon for hit " << i;
952  continue;
953  }
954 
955  ++j;
956 
957  // get the Surface of the hit (knows how to go from local <-> global)
958  const BoundPlane &bSurface = theDet->surface();
959 
960  // gather necessary information
961  if ((region == sdMuonRPCRgnFwdp) || (region == sdMuonRPCRgnFwdn)) {
962  ++RPCFwd;
963 
964  MuonRpcFwdToF.push_back(itHit->tof());
965  MuonRpcFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
966  MuonRpcFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
967  MuonRpcFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
968  } else if (region == sdMuonRPCRgnBrl) {
969  ++RPCBrl;
970 
971  MuonRpcBrlToF.push_back(itHit->tof());
972  MuonRpcBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
973  MuonRpcBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
974  MuonRpcBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
975  } else {
976  edm::LogWarning(MsgLoggerCat) << "Invalid region for RPC Muon hit" << i;
977  continue;
978  } // end check of region
979  } else {
980  edm::LogWarning(MsgLoggerCat) << "MuonRpc PSimHit " << i << " is expected to be (det,subdet) = (" << dMuon << ","
981  << sdMuonRPC << "); value returned is: (" << detector << "," << subdetector << ")";
982  continue;
983  } // end detector type check
984  } // end loop through RPC Hits
985 
986  if (verbosity > 1) {
987  eventout += "\n Number of RPC muon Hits collected:......... ";
988  eventout += j;
989  eventout += "\n RPC Barrel muon Hits:............ ";
990  eventout += RPCBrl;
991  eventout += "\n RPC Forward muon Hits:........... ";
992  eventout += RPCFwd;
993  }
994 
995  if (verbosity > 0)
996  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
997 
998  return;
999 }
static const int sdMuonRPCRgnFwdn
edm::ESGetToken< CSCGeometry, MuonGeometryRecord > cscGeomToken_
static const int sdMuonDT
edm::EDGetTokenT< edm::PSimHitContainer > MuonRpcSrc_Token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
TString subdetector
static const int sdMuonRPC
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::EDGetTokenT< edm::PSimHitContainer > MuonCscSrc_Token_
static const int sdMuonCSC
static const int sdMuonRPCRgnFwdp
static const int sdMuonRPCRgnBrl
bool isValid() const
Definition: HandleBase.h:70
Log< level::Info, false > LogInfo
Definition: DetId.h:17
edm::ESGetToken< RPCGeometry, MuonGeometryRecord > rpcGeomToken_
edm::EDGetTokenT< edm::PSimHitContainer > MuonDtSrc_Token_
T perp() const
Magnitude of transverse component.
static const int dMuon
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
Log< level::Warning, false > LogWarning
edm::ESGetToken< DTGeometry, MuonGeometryRecord > dtGeomToken_
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void GlobalHitsProducer::fillTrk ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
private

Definition at line 383 of file GlobalHitsProducer.cc.

References DetId::det(), dTrk, PVValHelper::eta, edm::Event::getByToken(), edm::EventSetup::getHandle(), mps_fire::i, TrackerGeometry::idToDetUnit(), edm::HandleBase::isValid(), dqmiolumiharvest::j, perp(), phi, PxlBrlEta, PxlBrlHighSrc_Token_, PxlBrlLowSrc_Token_, PxlBrlPhi, PxlBrlR, PxlBrlToF, PxlFwdEta, PxlFwdHighSrc_Token_, PxlFwdLowSrc_Token_, PxlFwdPhi, PxlFwdToF, PxlFwdZ, sdPxlBrl, sdPxlFwd, sdSiTEC, sdSiTIB, sdSiTID, sdSiTOB, SiBrlEta, SiBrlPhi, SiBrlR, SiBrlToF, SiFwdEta, SiFwdPhi, SiFwdToF, SiFwdZ, SiTECHighSrc_Token_, SiTECLowSrc_Token_, SiTIBHighSrc_Token_, SiTIBLowSrc_Token_, SiTIDHighSrc_Token_, SiTIDLowSrc_Token_, SiTOBHighSrc_Token_, SiTOBLowSrc_Token_, AlCaHLTBitMon_QueryRunRegistry::string, subdetector, GeomDet::surface(), tGeomToken_, verbosity, and z.

Referenced by produce().

383  {
384  std::string MsgLoggerCat = "GlobalHitsProducer_fillTrk";
385 
386  TString eventout;
387  if (verbosity > 0)
388  eventout = "\nGathering info:";
389 
390  // access the tracker geometry
391  const auto &theTrackerGeometry = iSetup.getHandle(tGeomToken_);
392  if (!theTrackerGeometry.isValid()) {
393  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerDigiGeometryRecord in event!";
394  return;
395  }
396  const TrackerGeometry &theTracker(*theTrackerGeometry);
397 
398  // iterator to access containers
399  edm::PSimHitContainer::const_iterator itHit;
400 
402  // get Pixel Barrel information
404  edm::PSimHitContainer thePxlBrlHits;
405  // extract low container
406  edm::Handle<edm::PSimHitContainer> PxlBrlLowContainer;
407  iEvent.getByToken(PxlBrlLowSrc_Token_, PxlBrlLowContainer);
408  if (!PxlBrlLowContainer.isValid()) {
409  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsPixelBarrelLowTof in event!";
410  return;
411  }
412  // extract high container
413  edm::Handle<edm::PSimHitContainer> PxlBrlHighContainer;
414  iEvent.getByToken(PxlBrlHighSrc_Token_, PxlBrlHighContainer);
415  if (!PxlBrlHighContainer.isValid()) {
416  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsPixelBarrelHighTof in event!";
417  return;
418  }
419  // place both containers into new container
420  thePxlBrlHits.insert(thePxlBrlHits.end(), PxlBrlLowContainer->begin(), PxlBrlLowContainer->end());
421  thePxlBrlHits.insert(thePxlBrlHits.end(), PxlBrlHighContainer->begin(), PxlBrlHighContainer->end());
422 
423  // cycle through new container
424  int i = 0, j = 0;
425  for (itHit = thePxlBrlHits.begin(); itHit != thePxlBrlHits.end(); ++itHit) {
426  ++i;
427 
428  // create a DetId from the detUnitId
429  DetId theDetUnitId(itHit->detUnitId());
430  int detector = theDetUnitId.det();
431  int subdetector = theDetUnitId.subdetId();
432 
433  // check that expected detector is returned
434  if ((detector == dTrk) && (subdetector == sdPxlBrl)) {
435  // get the GeomDetUnit from the geometry using theDetUnitID
436  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
437 
438  if (!theDet) {
439  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from PxlBrlHits for Hit " << i;
440  continue;
441  }
442 
443  ++j;
444 
445  // get the Surface of the hit (knows how to go from local <-> global)
446  const BoundPlane &bSurface = theDet->surface();
447 
448  // gather necessary information
449  PxlBrlToF.push_back(itHit->tof());
450  PxlBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
451  PxlBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
452  PxlBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
453 
454  } else {
455  edm::LogWarning(MsgLoggerCat) << "PxlBrl PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
456  << sdPxlBrl << "); value returned is: (" << detector << "," << subdetector << ")";
457  continue;
458  } // end detector type check
459  } // end loop through PxlBrl Hits
460 
461  if (verbosity > 1) {
462  eventout += "\n Number of Pixel Barrel Hits collected:..... ";
463  eventout += j;
464  }
465 
467  // get Pixel Forward information
469  edm::PSimHitContainer thePxlFwdHits;
470  // extract low container
471  edm::Handle<edm::PSimHitContainer> PxlFwdLowContainer;
472  iEvent.getByToken(PxlFwdLowSrc_Token_, PxlFwdLowContainer);
473  if (!PxlFwdLowContainer.isValid()) {
474  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsPixelEndcapLowTof in event!";
475  return;
476  }
477  // extract high container
478  edm::Handle<edm::PSimHitContainer> PxlFwdHighContainer;
479  iEvent.getByToken(PxlFwdHighSrc_Token_, PxlFwdHighContainer);
480  if (!PxlFwdHighContainer.isValid()) {
481  edm::LogWarning("GlobalHitsProducer_fillTrk") << "Unable to find TrackerHitsPixelEndcapHighTof in event!";
482  return;
483  }
484  // place both containers into new container
485  thePxlFwdHits.insert(thePxlFwdHits.end(), PxlFwdLowContainer->begin(), PxlFwdLowContainer->end());
486  thePxlFwdHits.insert(thePxlFwdHits.end(), PxlFwdHighContainer->begin(), PxlFwdHighContainer->end());
487 
488  // cycle through new container
489  i = 0;
490  j = 0;
491  for (itHit = thePxlFwdHits.begin(); itHit != thePxlFwdHits.end(); ++itHit) {
492  ++i;
493 
494  // create a DetId from the detUnitId
495  DetId theDetUnitId(itHit->detUnitId());
496  int detector = theDetUnitId.det();
497  int subdetector = theDetUnitId.subdetId();
498 
499  // check that expected detector is returned
500  if ((detector == dTrk) && (subdetector == sdPxlFwd)) {
501  // get the GeomDetUnit from the geometry using theDetUnitID
502  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
503 
504  if (!theDet) {
505  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from PxlFwdHits for Hit " << i;
506  ;
507  continue;
508  }
509 
510  ++j;
511 
512  // get the Surface of the hit (knows how to go from local <-> global)
513  const BoundPlane &bSurface = theDet->surface();
514 
515  // gather necessary information
516  PxlFwdToF.push_back(itHit->tof());
517  PxlFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
518  PxlFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
519  PxlFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
520  } else {
521  edm::LogWarning(MsgLoggerCat) << "PxlFwd PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
522  << sdPxlFwd << "); value returned is: (" << detector << "," << subdetector << ")";
523  continue;
524  } // end detector type check
525  } // end loop through PxlFwd Hits
526 
527  if (verbosity > 1) {
528  eventout += "\n Number of Pixel Forward Hits collected:.... ";
529  eventout += j;
530  }
531 
533  // get Silicon Barrel information
535  edm::PSimHitContainer theSiBrlHits;
536  // extract TIB low container
537  edm::Handle<edm::PSimHitContainer> SiTIBLowContainer;
538  iEvent.getByToken(SiTIBLowSrc_Token_, SiTIBLowContainer);
539  if (!SiTIBLowContainer.isValid()) {
540  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTIBLowTof in event!";
541  return;
542  }
543  // extract TIB high container
544  edm::Handle<edm::PSimHitContainer> SiTIBHighContainer;
545  iEvent.getByToken(SiTIBHighSrc_Token_, SiTIBHighContainer);
546  if (!SiTIBHighContainer.isValid()) {
547  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTIBHighTof in event!";
548  return;
549  }
550  // extract TOB low container
551  edm::Handle<edm::PSimHitContainer> SiTOBLowContainer;
552  iEvent.getByToken(SiTOBLowSrc_Token_, SiTOBLowContainer);
553  if (!SiTOBLowContainer.isValid()) {
554  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTOBLowTof in event!";
555  return;
556  }
557  // extract TOB high container
558  edm::Handle<edm::PSimHitContainer> SiTOBHighContainer;
559  iEvent.getByToken(SiTOBHighSrc_Token_, SiTOBHighContainer);
560  if (!SiTOBHighContainer.isValid()) {
561  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTOBHighTof in event!";
562  return;
563  }
564  // place all containers into new container
565  theSiBrlHits.insert(theSiBrlHits.end(), SiTIBLowContainer->begin(), SiTIBLowContainer->end());
566  theSiBrlHits.insert(theSiBrlHits.end(), SiTIBHighContainer->begin(), SiTIBHighContainer->end());
567  theSiBrlHits.insert(theSiBrlHits.end(), SiTOBLowContainer->begin(), SiTOBLowContainer->end());
568  theSiBrlHits.insert(theSiBrlHits.end(), SiTOBHighContainer->begin(), SiTOBHighContainer->end());
569 
570  // cycle through new container
571  i = 0;
572  j = 0;
573  for (itHit = theSiBrlHits.begin(); itHit != theSiBrlHits.end(); ++itHit) {
574  ++i;
575 
576  // create a DetId from the detUnitId
577  DetId theDetUnitId(itHit->detUnitId());
578  int detector = theDetUnitId.det();
579  int subdetector = theDetUnitId.subdetId();
580 
581  // check that expected detector is returned
582  if ((detector == dTrk) && ((subdetector == sdSiTIB) || (subdetector == sdSiTOB))) {
583  // get the GeomDetUnit from the geometry using theDetUnitID
584  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
585 
586  if (!theDet) {
587  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from SiBrlHits for Hit " << i;
588  continue;
589  }
590 
591  ++j;
592 
593  // get the Surface of the hit (knows how to go from local <-> global)
594  const BoundPlane &bSurface = theDet->surface();
595 
596  // gather necessary information
597  SiBrlToF.push_back(itHit->tof());
598  SiBrlR.push_back(bSurface.toGlobal(itHit->localPosition()).perp());
599  SiBrlPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
600  SiBrlEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
601  } else {
602  edm::LogWarning(MsgLoggerCat) << "SiBrl PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
603  << sdSiTIB << " || " << sdSiTOB << "); value returned is: (" << detector << ","
604  << subdetector << ")";
605  continue;
606  } // end detector type check
607  } // end loop through SiBrl Hits
608 
609  if (verbosity > 1) {
610  eventout += "\n Number of Silicon Barrel Hits collected:... ";
611  eventout += j;
612  }
613 
615  // get Silicon Forward information
617  edm::PSimHitContainer theSiFwdHits;
618  // extract TID low container
619  edm::Handle<edm::PSimHitContainer> SiTIDLowContainer;
620  iEvent.getByToken(SiTIDLowSrc_Token_, SiTIDLowContainer);
621  if (!SiTIDLowContainer.isValid()) {
622  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTIDLowTof in event!";
623  return;
624  }
625  // extract TID high container
626  edm::Handle<edm::PSimHitContainer> SiTIDHighContainer;
627  iEvent.getByToken(SiTIDHighSrc_Token_, SiTIDHighContainer);
628  if (!SiTIDHighContainer.isValid()) {
629  edm::LogWarning("GlobalHitsProducer_fillTrk") << "Unable to find TrackerHitsTIDHighTof in event!";
630  return;
631  }
632  // extract TEC low container
633  edm::Handle<edm::PSimHitContainer> SiTECLowContainer;
634  iEvent.getByToken(SiTECLowSrc_Token_, SiTECLowContainer);
635  if (!SiTECLowContainer.isValid()) {
636  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTECLowTof in event!";
637  return;
638  }
639  // extract TEC high container
640  edm::Handle<edm::PSimHitContainer> SiTECHighContainer;
641  iEvent.getByToken(SiTECHighSrc_Token_, SiTECHighContainer);
642  if (!SiTECHighContainer.isValid()) {
643  edm::LogWarning(MsgLoggerCat) << "Unable to find TrackerHitsTECHighTof in event!";
644  return;
645  }
646  // place all containers into new container
647  theSiFwdHits.insert(theSiFwdHits.end(), SiTIDLowContainer->begin(), SiTIDLowContainer->end());
648  theSiFwdHits.insert(theSiFwdHits.end(), SiTIDHighContainer->begin(), SiTIDHighContainer->end());
649  theSiFwdHits.insert(theSiFwdHits.end(), SiTECLowContainer->begin(), SiTECLowContainer->end());
650  theSiFwdHits.insert(theSiFwdHits.end(), SiTECHighContainer->begin(), SiTECHighContainer->end());
651 
652  // cycle through container
653  i = 0;
654  j = 0;
655  for (itHit = theSiFwdHits.begin(); itHit != theSiFwdHits.end(); ++itHit) {
656  ++i;
657 
658  // create a DetId from the detUnitId
659  DetId theDetUnitId(itHit->detUnitId());
660  int detector = theDetUnitId.det();
661  int subdetector = theDetUnitId.subdetId();
662 
663  // check that expected detector is returned
664  if ((detector == dTrk) && ((subdetector == sdSiTID) || (subdetector == sdSiTEC))) {
665  // get the GeomDetUnit from the geometry using theDetUnitID
666  const GeomDetUnit *theDet = theTracker.idToDetUnit(theDetUnitId);
667 
668  if (!theDet) {
669  edm::LogWarning(MsgLoggerCat) << "Unable to get GeomDetUnit from SiFwdHits Hit " << i;
670  return;
671  }
672 
673  ++j;
674 
675  // get the Surface of the hit (knows how to go from local <-> global)
676  const BoundPlane &bSurface = theDet->surface();
677 
678  // gather necessary information
679  SiFwdToF.push_back(itHit->tof());
680  SiFwdZ.push_back(bSurface.toGlobal(itHit->localPosition()).z());
681  SiFwdPhi.push_back(bSurface.toGlobal(itHit->localPosition()).phi());
682  SiFwdEta.push_back(bSurface.toGlobal(itHit->localPosition()).eta());
683  } else {
684  edm::LogWarning(MsgLoggerCat) << "SiFwd PSimHit " << i << " is expected to be (det,subdet) = (" << dTrk << ","
685  << sdSiTOB << " || " << sdSiTEC << "); value returned is: (" << detector << ","
686  << subdetector << ")";
687  continue;
688  } // end check detector type
689  } // end loop through SiFwd Hits
690 
691  if (verbosity > 1) {
692  eventout += "\n Number of Silicon Forward Hits collected:.. ";
693  eventout += j;
694  }
695 
696  if (verbosity > 0)
697  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
698 
699  return;
700 }
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBHighSrc_Token_
static const int dTrk
edm::EDGetTokenT< edm::PSimHitContainer > SiTECHighSrc_Token_
bool getByToken(EDGetToken token, Handle< PROD > &result) const
Definition: Event.h:539
TString subdetector
static const int sdSiTID
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlHighSrc_Token_
const Plane & surface() const
The nominal surface of the GeomDet.
Definition: GeomDet.h:37
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdHighSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIBLowSrc_Token_
static const int sdSiTIB
static const int sdPxlBrl
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDLowSrc_Token_
static const int sdSiTOB
bool isValid() const
Definition: HandleBase.h:70
edm::ESGetToken< TrackerGeometry, TrackerDigiGeometryRecord > tGeomToken_
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBLowSrc_Token_
Log< level::Info, false > LogInfo
Definition: DetId.h:17
edm::EDGetTokenT< edm::PSimHitContainer > SiTOBHighSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > SiTIDHighSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > PxlFwdLowSrc_Token_
edm::EDGetTokenT< edm::PSimHitContainer > PxlBrlLowSrc_Token_
static const int sdSiTEC
T perp() const
Magnitude of transverse component.
std::vector< PSimHit > PSimHitContainer
edm::EDGetTokenT< edm::PSimHitContainer > SiTECLowSrc_Token_
static const int sdPxlFwd
ESHandle< T > getHandle(const ESGetToken< T, R > &iToken) const
Definition: EventSetup.h:151
Log< level::Warning, false > LogWarning
constexpr Detector det() const
get the detector field from this detid
Definition: DetId.h:46
void GlobalHitsProducer::produce ( edm::Event iEvent,
const edm::EventSetup iSetup 
)
overridevirtual

Implements edm::one::EDProducerBase.

Definition at line 146 of file GlobalHitsProducer.cc.

References clear(), count, edm::EventID::event(), fillECal(), fillG4MC(), fillHCal(), fillMuon(), fillTrk(), frequency, getAllProvenances, edm::Event::getAllStableProvenance(), mps_fire::i, edm::EventBase::id(), label, eostools::move(), nevt, printProvenanceInfo, edm::Event::put(), edm::EventID::run(), storeECal(), storeG4MC(), storeHCal(), storeMuon(), storeTrk(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

146  {
147  std::string MsgLoggerCat = "GlobalHitsProducer_produce";
148 
149  // keep track of number of events processed
150  ++count;
151 
152  // get event id information
153  edm::RunNumber_t nrun = iEvent.id().run();
154  edm::EventNumber_t nevt = iEvent.id().event();
155 
156  if (verbosity > 0) {
157  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count << " events total)";
158  } else if (verbosity == 0) {
159  if (nevt % frequency == 0 || nevt == 1) {
160  edm::LogInfo(MsgLoggerCat) << "Processing run " << nrun << ", event " << nevt << " (" << count
161  << " events total)";
162  }
163  }
164 
165  // clear event holders
166  clear();
167 
168  // look at information available in the event
169  if (getAllProvenances) {
170  std::vector<const edm::StableProvenance *> AllProv;
171  iEvent.getAllStableProvenance(AllProv);
172 
173  if (verbosity >= 0)
174  edm::LogInfo(MsgLoggerCat) << "Number of Provenances = " << AllProv.size();
175 
176  if (printProvenanceInfo && (verbosity >= 0)) {
177  TString eventout("\nProvenance info:\n");
178 
179  for (unsigned int i = 0; i < AllProv.size(); ++i) {
180  eventout += "\n ******************************";
181  eventout += "\n Module : ";
182  eventout += AllProv[i]->moduleLabel();
183  eventout += "\n ProductID : ";
184  eventout += AllProv[i]->productID().id();
185  eventout += "\n ClassName : ";
186  eventout += AllProv[i]->className();
187  eventout += "\n InstanceName : ";
188  eventout += AllProv[i]->productInstanceName();
189  eventout += "\n BranchName : ";
190  eventout += AllProv[i]->branchName();
191  }
192  eventout += "\n ******************************\n";
193  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
194  printProvenanceInfo = false;
195  }
196  getAllProvenances = false;
197  }
198 
199  // call fill functions
200  // gather G4MC information from event
201  fillG4MC(iEvent);
202  // gather Tracker information from event
203  fillTrk(iEvent, iSetup);
204  // gather muon information from event
205  fillMuon(iEvent, iSetup);
206  // gather Ecal information from event
207  fillECal(iEvent, iSetup);
208  // gather Hcal information from event
209  fillHCal(iEvent, iSetup);
210 
211  if (verbosity > 0)
212  edm::LogInfo(MsgLoggerCat) << "Done gathering data from event.";
213 
214  // produce object to put into event
215  std::unique_ptr<PGlobalSimHit> pOut(new PGlobalSimHit);
216 
217  if (verbosity > 2)
218  edm::LogInfo(MsgLoggerCat) << "Saving event contents:";
219 
220  // call store functions
221  // store G4MC information in product
222  storeG4MC(*pOut);
223  // store Tracker information in produce
224  storeTrk(*pOut);
225  // store Muon information in produce
226  storeMuon(*pOut);
227  // store ECal information in produce
228  storeECal(*pOut);
229  // store HCal information in produce
230  storeHCal(*pOut);
231 
232  // store information in event
233  iEvent.put(std::move(pOut), label);
234 
235  return;
236 }
RunNumber_t run() const
Definition: EventID.h:38
void storeECal(PGlobalSimHit &)
EventNumber_t event() const
Definition: EventID.h:40
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
Definition: Event.h:133
unsigned long long EventNumber_t
void storeMuon(PGlobalSimHit &)
void storeG4MC(PGlobalSimHit &)
void storeTrk(PGlobalSimHit &)
void fillMuon(edm::Event &, const edm::EventSetup &)
void fillTrk(edm::Event &, const edm::EventSetup &)
def move
Definition: eostools.py:511
Log< level::Info, false > LogInfo
void fillECal(edm::Event &, const edm::EventSetup &)
void fillHCal(edm::Event &, const edm::EventSetup &)
void storeHCal(PGlobalSimHit &)
edm::EventID id() const
Definition: EventBase.h:59
void fillG4MC(edm::Event &)
unsigned int RunNumber_t
void getAllStableProvenance(std::vector< StableProvenance const * > &provenances) const
Definition: Event.cc:136
void GlobalHitsProducer::storeECal ( PGlobalSimHit product)
private

Definition at line 1212 of file GlobalHitsProducer.cc.

References ECalE, ECalEta, ECalPhi, ECalToF, mps_fire::i, PreShE, PreShEta, PreShPhi, PreShToF, PGlobalSimHit::putECalHits(), PGlobalSimHit::putPreShHits(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by produce().

1212  {
1213  std::string MsgLoggerCat = "GlobalHitsProducer_storeECal";
1214 
1215  if (verbosity > 2) {
1216  TString eventout("\n nECalHits = ");
1217  eventout += ECalE.size();
1218  for (unsigned int i = 0; i < ECalE.size(); ++i) {
1219  eventout += "\n (e,tof,phi,eta) = (";
1220  eventout += ECalE[i];
1221  eventout += ", ";
1222  eventout += ECalToF[i];
1223  eventout += ", ";
1224  eventout += ECalPhi[i];
1225  eventout += ", ";
1226  eventout += ECalEta[i];
1227  eventout += ")";
1228  } // end ECal output
1229  eventout += "\n nPreShHits = ";
1230  eventout += PreShE.size();
1231  for (unsigned int i = 0; i < PreShE.size(); ++i) {
1232  eventout += "\n (e,tof,phi,eta) = (";
1233  eventout += PreShE[i];
1234  eventout += ", ";
1235  eventout += PreShToF[i];
1236  eventout += ", ";
1237  eventout += PreShPhi[i];
1238  eventout += ", ";
1239  eventout += PreShEta[i];
1240  eventout += ")";
1241  } // end PreShower output
1242  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1243  } // end verbose output
1244 
1245  product.putECalHits(ECalE, ECalToF, ECalPhi, ECalEta);
1247 
1248  return;
1249 }
void putECalHits(const std::vector< float > &e, const std::vector< float > &tof, const std::vector< float > &phi, const std::vector< float > &eta)
Log< level::Info, false > LogInfo
void putPreShHits(const std::vector< float > &e, const std::vector< float > &tof, const std::vector< float > &phi, const std::vector< float > &eta)
void GlobalHitsProducer::storeG4MC ( PGlobalSimHit product)
private

Definition at line 347 of file GlobalHitsProducer.cc.

References G4TrkE, G4TrkPt, G4VtxX, G4VtxY, G4VtxZ, mps_fire::i, nRawGenPart, PGlobalSimHit::putG4Trk(), PGlobalSimHit::putG4Vtx(), PGlobalSimHit::putRawGenPart(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by produce().

347  {
348  std::string MsgLoggerCat = "GlobalHitsProducer_storeG4MC";
349 
350  if (verbosity > 2) {
351  TString eventout("\n nRawGenPart = ");
352  eventout += nRawGenPart;
353  eventout += "\n nG4Vtx = ";
354  eventout += G4VtxX.size();
355  for (unsigned int i = 0; i < G4VtxX.size(); ++i) {
356  eventout += "\n (x,y,z) = (";
357  eventout += G4VtxX[i];
358  eventout += ", ";
359  eventout += G4VtxY[i];
360  eventout += ", ";
361  eventout += G4VtxZ[i];
362  eventout += ")";
363  }
364  eventout += "\n nG4Trk = ";
365  eventout += G4TrkPt.size();
366  for (unsigned int i = 0; i < G4TrkPt.size(); ++i) {
367  eventout += "\n (pt,e) = (";
368  eventout += G4TrkPt[i];
369  eventout += ", ";
370  eventout += G4TrkE[i];
371  eventout += ")";
372  }
373  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
374  } // end verbose output
375 
376  product.putRawGenPart(nRawGenPart);
377  product.putG4Vtx(G4VtxX, G4VtxY, G4VtxZ);
378  product.putG4Trk(G4TrkPt, G4TrkE);
379 
380  return;
381 }
void putG4Trk(const std::vector< float > &pt, const std::vector< float > &e)
Log< level::Info, false > LogInfo
void putRawGenPart(int n)
void putG4Vtx(const std::vector< float > &x, const std::vector< float > &y, const std::vector< float > &z)
void GlobalHitsProducer::storeHCal ( PGlobalSimHit product)
private

Definition at line 1331 of file GlobalHitsProducer.cc.

References HCalE, HCalEta, HCalPhi, HCalToF, mps_fire::i, PGlobalSimHit::putHCalHits(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by produce().

1331  {
1332  std::string MsgLoggerCat = "GlobalHitsProducer_storeHCal";
1333 
1334  if (verbosity > 2) {
1335  TString eventout("\n nHCalHits = ");
1336  eventout += HCalE.size();
1337  for (unsigned int i = 0; i < HCalE.size(); ++i) {
1338  eventout += "\n (e,tof,phi,eta) = (";
1339  eventout += HCalE[i];
1340  eventout += ", ";
1341  eventout += HCalToF[i];
1342  eventout += ", ";
1343  eventout += HCalPhi[i];
1344  eventout += ", ";
1345  eventout += HCalEta[i];
1346  eventout += ")";
1347  } // end HCal output
1348  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1349  } // end verbose output
1350 
1351  product.putHCalHits(HCalE, HCalToF, HCalPhi, HCalEta);
1352 
1353  return;
1354 }
void putHCalHits(const std::vector< float > &e, const std::vector< float > &tof, const std::vector< float > &phi, const std::vector< float > &eta)
Log< level::Info, false > LogInfo
void GlobalHitsProducer::storeMuon ( PGlobalSimHit product)
private

Definition at line 1001 of file GlobalHitsProducer.cc.

References mps_fire::i, MuonCscEta, MuonCscPhi, MuonCscToF, MuonCscZ, MuonDtEta, MuonDtPhi, MuonDtR, MuonDtToF, MuonRpcBrlEta, MuonRpcBrlPhi, MuonRpcBrlR, MuonRpcBrlToF, MuonRpcFwdEta, MuonRpcFwdPhi, MuonRpcFwdToF, MuonRpcFwdZ, PGlobalSimHit::putMuonCscHits(), PGlobalSimHit::putMuonDtHits(), PGlobalSimHit::putMuonRpcBrlHits(), PGlobalSimHit::putMuonRpcFwdHits(), AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by produce().

1001  {
1002  std::string MsgLoggerCat = "GlobalHitsProducer_storeMuon";
1003 
1004  if (verbosity > 2) {
1005  TString eventout("\n nMuonCSCHits = ");
1006  eventout += MuonCscToF.size();
1007  for (unsigned int i = 0; i < MuonCscToF.size(); ++i) {
1008  eventout += "\n (tof,z,phi,eta) = (";
1009  eventout += MuonCscToF[i];
1010  eventout += ", ";
1011  eventout += MuonCscZ[i];
1012  eventout += ", ";
1013  eventout += MuonCscPhi[i];
1014  eventout += ", ";
1015  eventout += MuonCscEta[i];
1016  eventout += ")";
1017  } // end MuonCsc output
1018  eventout += "\n nMuonDtHits = ";
1019  eventout += MuonDtToF.size();
1020  for (unsigned int i = 0; i < MuonDtToF.size(); ++i) {
1021  eventout += "\n (tof,r,phi,eta) = (";
1022  eventout += MuonDtToF[i];
1023  eventout += ", ";
1024  eventout += MuonDtR[i];
1025  eventout += ", ";
1026  eventout += MuonDtPhi[i];
1027  eventout += ", ";
1028  eventout += MuonDtEta[i];
1029  eventout += ")";
1030  } // end MuonDt output
1031  eventout += "\n nMuonRpcBrlHits = ";
1032  eventout += MuonRpcBrlToF.size();
1033  for (unsigned int i = 0; i < MuonRpcBrlToF.size(); ++i) {
1034  eventout += "\n (tof,r,phi,eta) = (";
1035  eventout += MuonRpcBrlToF[i];
1036  eventout += ", ";
1037  eventout += MuonRpcBrlR[i];
1038  eventout += ", ";
1039  eventout += MuonRpcBrlPhi[i];
1040  eventout += ", ";
1041  eventout += MuonRpcBrlEta[i];
1042  eventout += ")";
1043  } // end MuonRpcBrl output
1044  eventout += "\n nMuonRpcFwdHits = ";
1045  eventout += MuonRpcFwdToF.size();
1046  for (unsigned int i = 0; i < MuonRpcFwdToF.size(); ++i) {
1047  eventout += "\n (tof,z,phi,eta) = (";
1048  eventout += MuonRpcFwdToF[i];
1049  eventout += ", ";
1050  eventout += MuonRpcFwdZ[i];
1051  eventout += ", ";
1052  eventout += MuonRpcFwdPhi[i];
1053  eventout += ", ";
1054  eventout += MuonRpcFwdEta[i];
1055  eventout += ")";
1056  } // end MuonRpcFwd output
1057  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
1058  } // end verbose output
1059 
1064 
1065  return;
1066 }
void putMuonRpcFwdHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
void putMuonRpcBrlHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
void putMuonCscHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
Log< level::Info, false > LogInfo
void putMuonDtHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
void GlobalHitsProducer::storeTrk ( PGlobalSimHit product)
private

Definition at line 702 of file GlobalHitsProducer.cc.

References mps_fire::i, PGlobalSimHit::putPxlBrlHits(), PGlobalSimHit::putPxlFwdHits(), PGlobalSimHit::putSiBrlHits(), PGlobalSimHit::putSiFwdHits(), PxlBrlEta, PxlBrlPhi, PxlBrlR, PxlBrlToF, PxlFwdEta, PxlFwdPhi, PxlFwdToF, PxlFwdZ, SiBrlEta, SiBrlPhi, SiBrlR, SiBrlToF, SiFwdEta, SiFwdPhi, SiFwdToF, SiFwdZ, AlCaHLTBitMon_QueryRunRegistry::string, and verbosity.

Referenced by produce().

702  {
703  std::string MsgLoggerCat = "GlobalHitsProducer_storeTrk";
704 
705  if (verbosity > 2) {
706  TString eventout("\n nPxlBrlHits = ");
707  eventout += PxlBrlToF.size();
708  for (unsigned int i = 0; i < PxlBrlToF.size(); ++i) {
709  eventout += "\n (tof,r,phi,eta) = (";
710  eventout += PxlBrlToF[i];
711  eventout += ", ";
712  eventout += PxlBrlR[i];
713  eventout += ", ";
714  eventout += PxlBrlPhi[i];
715  eventout += ", ";
716  eventout += PxlBrlEta[i];
717  eventout += ")";
718  } // end PxlBrl output
719  eventout += "\n nPxlFwdHits = ";
720  eventout += PxlFwdToF.size();
721  for (unsigned int i = 0; i < PxlFwdToF.size(); ++i) {
722  eventout += "\n (tof,z,phi,eta) = (";
723  eventout += PxlFwdToF[i];
724  eventout += ", ";
725  eventout += PxlFwdZ[i];
726  eventout += ", ";
727  eventout += PxlFwdPhi[i];
728  eventout += ", ";
729  eventout += PxlFwdEta[i];
730  eventout += ")";
731  } // end PxlFwd output
732  eventout += "\n nSiBrlHits = ";
733  eventout += SiBrlToF.size();
734  for (unsigned int i = 0; i < SiBrlToF.size(); ++i) {
735  eventout += "\n (tof,r,phi,eta) = (";
736  eventout += SiBrlToF[i];
737  eventout += ", ";
738  eventout += SiBrlR[i];
739  eventout += ", ";
740  eventout += SiBrlPhi[i];
741  eventout += ", ";
742  eventout += SiBrlEta[i];
743  eventout += ")";
744  } // end SiBrl output
745  eventout += "\n nSiFwdHits = ";
746  eventout += SiFwdToF.size();
747  for (unsigned int i = 0; i < SiFwdToF.size(); ++i) {
748  eventout += "\n (tof,z,phi,eta) = (";
749  eventout += SiFwdToF[i];
750  eventout += ", ";
751  eventout += SiFwdZ[i];
752  eventout += ", ";
753  eventout += SiFwdPhi[i];
754  eventout += ", ";
755  eventout += SiFwdEta[i];
756  eventout += ")";
757  } // end SiFwd output
758  edm::LogInfo(MsgLoggerCat) << eventout << "\n";
759  } // end verbose output
760 
765 
766  return;
767 }
void putSiBrlHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)
void putPxlFwdHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
void putSiFwdHits(const std::vector< float > &tof, const std::vector< float > &z, const std::vector< float > &phi, const std::vector< float > &eta)
Log< level::Info, false > LogInfo
void putPxlBrlHits(const std::vector< float > &tof, const std::vector< float > &r, const std::vector< float > &phi, const std::vector< float > &eta)

Member Data Documentation

edm::ESGetToken<CaloGeometry, CaloGeometryRecord> GlobalHitsProducer::caloGeomToken_
private

Definition at line 130 of file GlobalHitsProducer.h.

Referenced by fillECal(), and fillHCal().

unsigned int GlobalHitsProducer::count
private

Definition at line 232 of file GlobalHitsProducer.h.

Referenced by endJob(), and produce().

edm::ESGetToken<CSCGeometry, MuonGeometryRecord> GlobalHitsProducer::cscGeomToken_
private

Definition at line 127 of file GlobalHitsProducer.h.

Referenced by fillMuon().

edm::ESGetToken<DTGeometry, MuonGeometryRecord> GlobalHitsProducer::dtGeomToken_
private

Definition at line 128 of file GlobalHitsProducer.h.

Referenced by fillMuon().

FloatVector GlobalHitsProducer::ECalE
private

Definition at line 133 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

edm::InputTag GlobalHitsProducer::ECalEBSrc_
private

Definition at line 137 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsProducer::ECalEBSrc_Token_
private

Definition at line 139 of file GlobalHitsProducer.h.

Referenced by fillECal(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::ECalEESrc_
private

Definition at line 138 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsProducer::ECalEESrc_Token_
private

Definition at line 140 of file GlobalHitsProducer.h.

Referenced by fillECal(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::ECalESSrc_
private

Definition at line 147 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsProducer::ECalESSrc_Token_
private

Definition at line 148 of file GlobalHitsProducer.h.

Referenced by fillECal(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::ECalEta
private

Definition at line 136 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::ECalPhi
private

Definition at line 135 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::ECalToF
private

Definition at line 134 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

std::string GlobalHitsProducer::fName
private

Definition at line 105 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

int GlobalHitsProducer::frequency
private

Definition at line 107 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::G4TrkE
private

Definition at line 119 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::G4TrkPt
private

Definition at line 118 of file GlobalHitsProducer.h.

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

edm::InputTag GlobalHitsProducer::G4TrkSrc_
private

Definition at line 122 of file GlobalHitsProducer.h.

edm::EDGetTokenT<edm::SimTrackContainer> GlobalHitsProducer::G4TrkSrc_Token_
private

Definition at line 124 of file GlobalHitsProducer.h.

Referenced by fillG4MC().

edm::InputTag GlobalHitsProducer::G4VtxSrc_
private

Definition at line 121 of file GlobalHitsProducer.h.

edm::EDGetTokenT<edm::SimVertexContainer> GlobalHitsProducer::G4VtxSrc_Token_
private

Definition at line 123 of file GlobalHitsProducer.h.

Referenced by fillG4MC().

FloatVector GlobalHitsProducer::G4VtxX
private

Definition at line 115 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::G4VtxY
private

Definition at line 116 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::G4VtxZ
private

Definition at line 117 of file GlobalHitsProducer.h.

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

bool GlobalHitsProducer::getAllProvenances
private

Definition at line 110 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::HCalE
private

Definition at line 152 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

FloatVector GlobalHitsProducer::HCalEta
private

Definition at line 155 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

FloatVector GlobalHitsProducer::HCalPhi
private

Definition at line 154 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

edm::InputTag GlobalHitsProducer::HCalSrc_
private

Definition at line 156 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PCaloHitContainer> GlobalHitsProducer::HCalSrc_Token_
private

Definition at line 157 of file GlobalHitsProducer.h.

Referenced by fillHCal(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::HCalToF
private

Definition at line 153 of file GlobalHitsProducer.h.

Referenced by clear(), fillHCal(), and storeHCal().

std::string GlobalHitsProducer::label
private

Definition at line 109 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::MuonCscEta
private

Definition at line 216 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonCscPhi
private

Definition at line 215 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

edm::InputTag GlobalHitsProducer::MuonCscSrc_
private

Definition at line 217 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::MuonCscSrc_Token_
private

Definition at line 218 of file GlobalHitsProducer.h.

Referenced by fillMuon(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::MuonCscToF
private

Definition at line 213 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonCscZ
private

Definition at line 214 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonDtEta
private

Definition at line 209 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonDtPhi
private

Definition at line 208 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonDtR
private

Definition at line 207 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

edm::InputTag GlobalHitsProducer::MuonDtSrc_
private

Definition at line 210 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::MuonDtSrc_Token_
private

Definition at line 211 of file GlobalHitsProducer.h.

Referenced by fillMuon(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::MuonDtToF
private

Definition at line 206 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlEta
private

Definition at line 223 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlPhi
private

Definition at line 222 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlR
private

Definition at line 221 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcBrlToF
private

Definition at line 220 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdEta
private

Definition at line 227 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdPhi
private

Definition at line 226 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdToF
private

Definition at line 224 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

FloatVector GlobalHitsProducer::MuonRpcFwdZ
private

Definition at line 225 of file GlobalHitsProducer.h.

Referenced by clear(), fillMuon(), and storeMuon().

edm::InputTag GlobalHitsProducer::MuonRpcSrc_
private

Definition at line 228 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::MuonRpcSrc_Token_
private

Definition at line 229 of file GlobalHitsProducer.h.

Referenced by fillMuon(), and GlobalHitsProducer().

int GlobalHitsProducer::nRawGenPart
private

Definition at line 114 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::PreShE
private

Definition at line 143 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::PreShEta
private

Definition at line 146 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::PreShPhi
private

Definition at line 145 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

FloatVector GlobalHitsProducer::PreShToF
private

Definition at line 144 of file GlobalHitsProducer.h.

Referenced by clear(), fillECal(), and storeECal().

bool GlobalHitsProducer::printProvenanceInfo
private

Definition at line 111 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer(), and produce().

FloatVector GlobalHitsProducer::PxlBrlEta
private

Definition at line 164 of file GlobalHitsProducer.h.

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

edm::InputTag GlobalHitsProducer::PxlBrlHighSrc_
private

Definition at line 170 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::PxlBrlHighSrc_Token_
private

Definition at line 174 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::PxlBrlLowSrc_
private

Definition at line 169 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::PxlBrlLowSrc_Token_
private

Definition at line 173 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::PxlBrlPhi
private

Definition at line 163 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::PxlBrlR
private

Definition at line 162 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::PxlBrlToF
private

Definition at line 161 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::PxlFwdEta
private

Definition at line 168 of file GlobalHitsProducer.h.

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

edm::InputTag GlobalHitsProducer::PxlFwdHighSrc_
private

Definition at line 172 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::PxlFwdHighSrc_Token_
private

Definition at line 176 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::PxlFwdLowSrc_
private

Definition at line 171 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::PxlFwdLowSrc_Token_
private

Definition at line 175 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

FloatVector GlobalHitsProducer::PxlFwdPhi
private

Definition at line 167 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::PxlFwdToF
private

Definition at line 165 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::PxlFwdZ
private

Definition at line 166 of file GlobalHitsProducer.h.

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

edm::ESGetToken<RPCGeometry, MuonGeometryRecord> GlobalHitsProducer::rpcGeomToken_
private

Definition at line 129 of file GlobalHitsProducer.h.

Referenced by fillMuon().

FloatVector GlobalHitsProducer::SiBrlEta
private

Definition at line 182 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiBrlPhi
private

Definition at line 181 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiBrlR
private

Definition at line 180 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiBrlToF
private

Definition at line 179 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiFwdEta
private

Definition at line 186 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiFwdPhi
private

Definition at line 185 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiFwdToF
private

Definition at line 183 of file GlobalHitsProducer.h.

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

FloatVector GlobalHitsProducer::SiFwdZ
private

Definition at line 184 of file GlobalHitsProducer.h.

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

edm::InputTag GlobalHitsProducer::SiTECHighSrc_
private

Definition at line 194 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTECHighSrc_Token_
private

Definition at line 202 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTECLowSrc_
private

Definition at line 193 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTECLowSrc_Token_
private

Definition at line 201 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIBHighSrc_
private

Definition at line 188 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTIBHighSrc_Token_
private

Definition at line 196 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIBLowSrc_
private

Definition at line 187 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTIBLowSrc_Token_
private

Definition at line 195 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIDHighSrc_
private

Definition at line 192 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTIDHighSrc_Token_
private

Definition at line 200 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTIDLowSrc_
private

Definition at line 191 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTIDLowSrc_Token_
private

Definition at line 199 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTOBHighSrc_
private

Definition at line 190 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTOBHighSrc_Token_
private

Definition at line 198 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::InputTag GlobalHitsProducer::SiTOBLowSrc_
private

Definition at line 189 of file GlobalHitsProducer.h.

Referenced by GlobalHitsProducer().

edm::EDGetTokenT<edm::PSimHitContainer> GlobalHitsProducer::SiTOBLowSrc_Token_
private

Definition at line 197 of file GlobalHitsProducer.h.

Referenced by fillTrk(), and GlobalHitsProducer().

edm::ESGetToken<TrackerGeometry, TrackerDigiGeometryRecord> GlobalHitsProducer::tGeomToken_
private

Definition at line 126 of file GlobalHitsProducer.h.

Referenced by fillTrk().

int GlobalHitsProducer::verbosity
private
int GlobalHitsProducer::vtxunit
private

Definition at line 108 of file GlobalHitsProducer.h.

Referenced by fillG4MC(), and GlobalHitsProducer().