|
|
|
| MkFitInputConverter (edm::ParameterSet const &iConfig) |
|
| ~MkFitInputConverter () override=default |
|
| EDProducer ()=default |
|
bool | hasAbilityToProduceInBeginLumis () const final |
|
bool | hasAbilityToProduceInBeginRuns () const final |
|
bool | hasAbilityToProduceInEndLumis () const final |
|
bool | hasAbilityToProduceInEndRuns () const final |
|
bool | wantsGlobalLuminosityBlocks () const final |
|
bool | wantsGlobalRuns () const final |
|
bool | wantsStreamLuminosityBlocks () const final |
|
bool | wantsStreamRuns () const final |
|
| EDProducerBase () |
|
ModuleDescription const & | moduleDescription () const |
|
| ~EDProducerBase () override |
|
void | callWhenNewProductsRegistered (std::function< void(BranchDescription const &)> const &func) |
|
std::vector< edm::ProductResolverIndex > const & | indiciesForPutProducts (BranchType iBranchType) const |
|
| ProducerBase () |
|
std::vector< edm::ProductResolverIndex > const & | putTokenIndexToProductResolverIndex () const |
|
std::vector< bool > const & | recordProvenanceList () const |
|
void | registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &) |
|
std::function< void(BranchDescription const &)> | registrationCallback () const |
| used by the fwk to register list of products More...
|
|
void | resolvePutIndicies (BranchType iBranchType, ModuleToResolverIndicies const &iIndicies, std::string const &moduleLabel) |
|
TypeLabelList const & | typeLabelList () const |
| used by the fwk to register the list of products of this module More...
|
|
| ~ProducerBase () noexcept(false) override |
|
std::vector< ConsumesInfo > | consumesInfo () const |
|
void | convertCurrentProcessAlias (std::string const &processName) |
| Convert "@currentProcess" in InputTag process names to the actual current process name. More...
|
|
| EDConsumerBase () |
|
| EDConsumerBase (EDConsumerBase &&)=default |
|
| EDConsumerBase (EDConsumerBase const &)=delete |
|
ESProxyIndex const * | esGetTokenIndices (edm::Transition iTrans) const |
|
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::vector< ModuleDescription const * > &modules, ProductRegistry const &preg, std::map< std::string, ModuleDescription const * > const &labelsToDesc, std::string const &processName) const |
|
EDConsumerBase & | operator= (EDConsumerBase &&)=default |
|
EDConsumerBase const & | operator= (EDConsumerBase const &)=delete |
|
bool | registeredToConsume (ProductResolverIndex, bool, BranchType) const |
|
bool | registeredToConsumeMany (TypeID const &, BranchType) const |
|
ProductResolverIndexAndSkipBit | uncheckedIndexFrom (EDGetToken) const |
|
void | updateLookup (BranchType iBranchType, ProductResolverIndexHelper const &, bool iPrefetchMayGet) |
|
void | updateLookup (eventsetup::ESRecordsToProxyIndices const &) |
|
virtual | ~EDConsumerBase () noexcept(false) |
|
|
using | SMatrixSym33 = ROOT::Math::SMatrix< float, 3, 3, ROOT::Math::MatRepSym< float, 3 > > |
|
using | SMatrixSym66 = ROOT::Math::SMatrix< float, 6, 6, ROOT::Math::MatRepSym< float, 6 > > |
|
using | SVector3 = ROOT::Math::SVector< float, 3 > |
|
|
template<typename HitCollection > |
void | convertHits (const HitCollection &hits, std::vector< mkfit::HitVec > &mkFitHits, MkFitHitIndexMap &hitIndexMap, int &totalHits, const TrackerTopology &ttopo, const TransientTrackingRecHitBuilder &ttrhBuilder, const mkfit::LayerNumberConverter &lnc) const |
|
mkfit::TrackVec | convertSeeds (const edm::View< TrajectorySeed > &seeds, const MkFitHitIndexMap &hitIndexMap, const TransientTrackingRecHitBuilder &ttrhBuilder, const MagneticField &mf) const |
|
bool | passCCC (const SiPixelRecHit &hit, const DetId hitId) const |
|
bool | passCCC (const SiStripRecHit2D &hit, const DetId hitId) const |
|
void | produce (edm::StreamID, edm::Event &iEvent, const edm::EventSetup &iSetup) const override |
|
|
typedef EDProducerBase | ModuleType |
|
using | ModuleToResolverIndicies = std::unordered_multimap< std::string, std::tuple< edm::TypeID const *, const char *, edm::ProductResolverIndex > > |
|
typedef ProductRegistryHelper::TypeLabelList | TypeLabelList |
|
typedef ProductLabels | Labels |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces () |
| declare what type of product will make and with which optional label More...
|
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces () |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces () |
|
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<BranchType B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<Transition B> |
BranchAliasSetter | produces (const TypeID &id, std::string instanceName=std::string(), bool recordProvenance=true) |
|
template<typename ProductType , Transition B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<class ProductType > |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
template<typename ProductType , BranchType B> |
BranchAliasSetterT< ProductType > | produces (std::string instanceName) |
|
ProducesCollector | producesCollector () |
|
EDGetToken | consumes (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | consumes (edm::InputTag const &tag) |
|
template<BranchType B> |
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) |
|
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<BranchType B> |
EDGetToken | mayConsume (const TypeToGet &id, edm::InputTag const &tag) |
|
template<typename ProductType , BranchType B = InEvent> |
EDGetTokenT< ProductType > | mayConsume (edm::InputTag const &tag) |
|
Definition at line 35 of file MkFitInputConverter.cc.
◆ SMatrixSym33
◆ SMatrixSym66
◆ SVector3
◆ MkFitInputConverter()
◆ ~MkFitInputConverter()
MkFitInputConverter::~MkFitInputConverter |
( |
| ) |
|
|
overridedefault |
◆ convertHits()
template<typename HitCollection >
Definition at line 136 of file MkFitInputConverter.cc.
145 auto isPlusSide = [&ttopo](
const DetId& detid) {
152 lnc.convertLayerNumber(detid.subdetId(), ttopo.
layer(detid),
false, ttopo.
isStereo(detid), isPlusSide(detid));
154 const auto& lastClusterRef =
hits.data().back().firstClusterRef();
159 for (
const auto& detset :
hits) {
160 const DetId detid = detset.detId();
161 const auto subdet = detid.
subdetId();
162 const auto layer = ttopo.
layer(detid);
163 const auto isStereo = ttopo.
isStereo(detid);
164 const auto ilay = lnc.convertLayerNumber(subdet, layer,
false, isStereo, isPlusSide(detid));
167 for (
const auto&
hit : detset) {
171 const auto& gpos =
hit.globalPosition();
173 const auto& gerr =
hit.globalPositionError();
175 err.At(0, 0) = gerr.cxx();
176 err.At(1, 1) = gerr.cyy();
177 err.At(2, 2) = gerr.czz();
178 err.At(0, 1) = gerr.cyx();
179 err.At(0, 2) = gerr.czx();
180 err.At(1, 2) = gerr.czy();
182 LogTrace(
"MkFitInputConverter") <<
"Adding hit detid " << detid.
rawId() <<
" subdet " << subdet <<
" layer "
183 << layer <<
" isStereo " << isStereo <<
" zplus " << isPlusSide(detid) <<
" ilay "
187 hit.firstClusterRef().index(),
190 mkFitHits[ilay].emplace_back(
pos,
err, totalHits);
References runTheMatrix::err, hfClusterShapes_cfi::hits, hit::id, MkFitHitIndexMap::increaseLayerSize(), MkFitHitIndexMap::insert(), TrackerTopology::isStereo(), TrackerTopology::layer(), LogTrace, passCCC(), PosEndcap, DetId::rawId(), MkFitHitIndexMap::resizeByClusterIndex(), TrackerTopology::side(), findQualityFiles::size, and DetId::subdetId().
Referenced by produce().
◆ convertSeeds()
Definition at line 196 of file MkFitInputConverter.cc.
204 const auto hitRange =
seed.recHits();
205 const auto lastRecHit = ttrhBuilder.
build(&*(hitRange.second - 1));
208 const auto& gpos = stateGlobal.
position();
209 const auto& gmom = stateGlobal.momentum();
211 SVector3 mom(gmom.x(), gmom.y(), gmom.z());
213 const auto cartError = tsos.cartesianError();
214 const auto& cov = cartError.matrix();
216 for (
int i = 0;
i < 6; ++
i) {
217 for (
int j =
i;
j < 6; ++
j) {
222 mkfit::TrackState state(tsos.charge(),
pos, mom,
err);
223 state.convertFromCartesianToCCS();
224 ret.emplace_back(state, 0,
index, 0,
nullptr);
227 for (
auto iHit = hitRange.first; iHit != hitRange.second; ++iHit) {
229 throw cms::Exception(
"Assert") <<
"Encountered a seed with a hit which is not trackerHitRTTI::isFromDet()";
231 const auto& clusterRef = static_cast<const BaseTrackerRecHit&>(*iHit).firstClusterRef();
232 const auto& mkFitHit = hitIndexMap.
mkFitHit(clusterRef.id(), clusterRef.index());
233 ret.back().addHitIdx(mkFitHit.index(), mkFitHit.layer(), 0);
References TransientTrackingRecHitBuilder::build(), runTheMatrix::err, Exception, TrajectoryStateOnSurface::globalParameters(), mps_fire::i, trackerHitRTTI::isFromDet(), dqmiolumiharvest::j, MkFitHitIndexMap::mkFitHit(), GlobalTrajectoryParameters::position(), runTheMatrix::ret, SurveyInfoScenario_cff::seed, InitialStep_cff::seeds, and trajectoryStateTransform::transientState().
Referenced by produce().
◆ fillDescriptions()
◆ passCCC() [1/2]
◆ passCCC() [2/2]
◆ produce()
Implements edm::global::EDProducerBase.
Definition at line 108 of file MkFitInputConverter.cc.
109 mkfit::LayerNumberConverter lnc{mkfit::TkLayout::phase1};
115 std::vector<mkfit::HitVec> mkFitHits(lnc.nLayers());
References convertHits(), convertSeeds(), edm::EventSetup::getData(), iEvent, mfToken_, eostools::move(), pixelRecHitToken_, putToken_, seedToken_, stripRphiRecHitToken_, stripStereoRecHitToken_, ttopoToken_, and ttrhBuilderToken_.
◆ mfToken_
◆ minGoodStripCharge_
const float MkFitInputConverter::minGoodStripCharge_ |
|
private |
◆ pixelRecHitToken_
◆ putToken_
◆ seedToken_
◆ stripRphiRecHitToken_
◆ stripStereoRecHitToken_
◆ ttopoToken_
◆ ttrhBuilderToken_
ret
prodAgent to be discontinued
unsigned int side(const DetId &id) const
ParameterDescriptionBase * add(U const &iLabel, T const &value)
GlobalPoint position() const
unsigned int layer(const DetId &id) const
void resizeByClusterIndex(edm::ProductID id, size_t clusterIndex)
virtual RecHitPointer build(const TrackingRecHit *p) const =0
build a tracking rechit from an existing rechit
void increaseLayerSize(int layer, size_t additionalSize)
void add(std::string const &label, ParameterSetDescription const &psetDescription)
bool isStereo(const DetId &id) const
const MkFitHit & mkFitHit(edm::ProductID id, size_t clusterIndex) const
Get mkFit hit index and layer.
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
ROOT::Math::SVector< double, 3 > SVector3
std::vector< Track > TrackVec
void insert(edm::ProductID id, size_t clusterIndex, MkFitHit hit, const TrackingRecHit *hitPtr)
bool isFromDet(TrackingRecHit const &hit)
bool getData(T &iHolder) const
T getParameter(std::string const &) const
constexpr uint32_t rawId() const
get the raw id
const GlobalTrajectoryParameters & globalParameters() const