|
 |
#include <CtfSpecialSeedGenerator.h>
Definition at line 40 of file CtfSpecialSeedGenerator.h.
◆ TSOS
◆ CtfSpecialSeedGenerator()
◆ ~CtfSpecialSeedGenerator()
CtfSpecialSeedGenerator::~CtfSpecialSeedGenerator |
( |
| ) |
|
|
overridedefault |
◆ beginRun()
Definition at line 47 of file CtfSpecialSeedGenerator.cc.
63 edm::LogVerbatim(
"CtfSpecialSeedGenerator") <<
"Upper Scintillator position x, y, z " << upperPosition.x() <<
", "
64 << upperPosition.y() <<
", " << upperPosition.z();
66 lowerScintPar.getParameter<
double>(
"WidthInX"), lowerScintPar.getParameter<
double>(
"LenghtInZ"), 1);
67 GlobalPoint lowerPosition(lowerScintPar.getParameter<
double>(
"GlobalX"),
68 lowerScintPar.getParameter<
double>(
"GlobalY"),
69 lowerScintPar.getParameter<
double>(
"GlobalZ"));
70 edm::LogVerbatim(
"CtfSpecialSeedGenerator") <<
"Lower Scintillator position x, y, z " << lowerPosition.x() <<
", "
71 << lowerPosition.y() <<
", " << lowerPosition.z();
82 std::vector<edm::ParameterSet> pSets =
conf_.
getParameter<std::vector<edm::ParameterSet>>(
"OrderedHitsFactoryPSets");
83 std::vector<edm::ParameterSet>::const_iterator iPSet;
84 for (iPSet = pSets.begin(); iPSet != pSets.end(); iPSet++) {
86 if (propagationDirection ==
"alongMomentum")
91 if (navigationDirection ==
"insideOut")
105 propagatorAlongHandle.
product(),
106 propagatorOppositeHandle.
product(),
References alongMomentum, newFWLiteAna::build, CosmicGenFilterHelix_cfi::charges, conf_, edm::EventSetup::get(), get, edm::ParameterSet::getParameter(), insideOut, lowerScintillator, oppositeToMomentum, outsideIn, AlCaHLTBitMon_ParallelJobs::p, edm::ESHandle< T >::product(), makeMuonMisalignmentScenario::rot, AlCaHLTBitMon_QueryRunRegistry::string, theBuilder, theMagfield, theNavDirs, thePropDirs, theSeedBuilder, theTracker, upperScintillator, useScintillatorsConstraint, PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().
◆ buildSeeds()
◆ endRun()
◆ postCheck()
bool CtfSpecialSeedGenerator::postCheck |
( |
const TrajectorySeed & |
seed | ) |
|
|
private |
Definition at line 242 of file CtfSpecialSeedGenerator.cc.
254 std::pair<bool, StraightLinePlaneCrossing::PositionType> positionUpper =
256 std::pair<bool, StraightLinePlaneCrossing::PositionType> positionLower =
258 if (!(positionUpper.first && positionLower.first)) {
259 edm::LogVerbatim(
"CtfSpecialSeedGenerator::checkDirection") <<
"Scintillator plane not crossed";
267 <<
"position on Upper scintillator " << positionUpper.second;
269 <<
"position on Lower scintillator " << positionLower.second;
274 <<
"scintillator not crossed in bounds: position on Upper scintillator " << positionUpper.second
275 <<
" position on Lower scintillator " << positionLower.second;
References alongMomentum, PTrajectoryStateOnDet::detId(), TrajectoryStateOnSurface::freeState(), TrackerGeometry::idToDet(), lowerScintillator, oppositeToMomentum, StraightLinePlaneCrossing::position(), fileCollector::seed, GeomDet::surface(), theMagfield, theTracker, trajectoryStateTransform::transientState(), upperScintillator, and useScintillatorsConstraint.
Referenced by buildSeeds().
◆ preliminaryCheck()
Definition at line 190 of file CtfSpecialSeedGenerator.cc.
194 std::vector<std::pair<unsigned int, unsigned int>> vSubdetLayer;
200 bool checkHitsOnDifferentLayers =
conf_.
getParameter<
bool>(
"CheckHitsAreOnDifferentLayers");
202 for (
unsigned int iHit = 0; iHit <
nHits; ++iHit) {
204 auto trh = shs[iHit];
209 if (checkHitsAtPositiveY) {
214 if (checkHitsAtNegativeY) {
221 unsigned int subid = (*trh).geographicalId().subdetId();
222 unsigned int layer = tTopo->
layer((*trh).geographicalId());
223 std::vector<std::pair<unsigned int, unsigned int>>::const_iterator iter;
225 if (checkHitsOnDifferentLayers) {
226 for (iter = vSubdetLayer.begin(); iter != vSubdetLayer.end(); iter++) {
227 if (iter->first == subid && iter->second ==
layer)
237 vSubdetLayer.push_back(std::make_pair(subid,
layer));
References conf_, edm::EventSetup::get(), get, edm::ParameterSet::getParameter(), phase1PixelTopology::layer, TrackerTopology::layer(), nHits, rpcPointValidation_cfi::recHit, SeedingHitSet::size(), and PV3DBase< T, PVType, FrameType >::y().
Referenced by buildSeeds().
◆ produce()
Definition at line 117 of file CtfSpecialSeedGenerator.cc.
119 auto output = std::make_unique<TrajectorySeedCollection>();
129 edm::LogError(
"TooManyClusters") <<
"Found too many clusters (" << clustsOrZero <<
"), bailing out.\n";
References check, MillePedeFileConverter_cfg::e, MagneticField::inTesla(), PV3DBase< T, PVType, FrameType >::mag(), eostools::move(), convertSQLiteXML::ok, convertSQLitetoXML_cfg::output, requireBOFF, run(), theMagfield, and ClusterChecker::tooManyClusters().
◆ run()
◆ check
◆ conf_
◆ lowerScintillator
◆ requireBOFF
bool CtfSpecialSeedGenerator::requireBOFF |
|
private |
◆ theBuilder
◆ theGenerators
◆ theMagfield
◆ theMaxSeeds
int32_t CtfSpecialSeedGenerator::theMaxSeeds |
|
private |
◆ theNavDirs
◆ thePropDirs
◆ theRegionProducer
◆ theSeedBuilder
◆ theTracker
◆ upperScintillator
◆ useScintillatorsConstraint
bool CtfSpecialSeedGenerator::useScintillatorsConstraint |
|
private |
const TrackerGeomDet * idToDet(DetId) const override
T const * product() const
charges
only generated particles of these IDs are considered
virtual GlobalVector inTesla(const GlobalPoint &gp) const =0
Field value ad specified global point, in Tesla.
std::vector< std::unique_ptr< OrderedHitsGenerator > > theGenerators
bool buildSeeds(const edm::EventSetup &iSetup, const edm::Event &e, const OrderedSeedingHits &osh, const NavigationDirection &navdir, const PropagationDirection &dir, TrajectorySeedCollection &output)
std::unique_ptr< SeedFromGenericPairOrTriplet > theSeedBuilder
bool useScintillatorsConstraint
unsigned int layer(const DetId &id) const
BoundPlane::BoundPlanePointer lowerScintillator
BoundPlane::BoundPlanePointer upperScintillator
Log< level::Info, false > LogInfo
def create(alignables, pedeDump, additionalData, outputFile, config)
Log< level::Warning, false > LogWarning
const Plane & surface() const
The nominal surface of the GeomDet.
unsigned int detId() const
FreeTrajectoryState const * freeState(bool withErrors=true) const
const caConstants::TupleMultiplicity *__restrict__ const HitsOnGPU *__restrict__ double *__restrict__ float *__restrict__ double *__restrict__ uint32_t nHits
bool run(const edm::EventSetup &c, const edm::Event &e, TrajectorySeedCollection &output)
constexpr std::array< uint8_t, layerIndexSize > layer
bool postCheck(const TrajectorySeed &seed)
virtual unsigned int size() const =0
Log< level::Error, false > LogError
bool preliminaryCheck(const SeedingHitSet &shs, const edm::EventSetup &es)
edm::ESHandle< MagneticField > theMagfield
unsigned int size() const
std::vector< NavigationDirection > theNavDirs
Log< level::Info, true > LogVerbatim
T getParameter(std::string const &) const
size_t tooManyClusters(const edm::Event &e) const
edm::ESHandle< TrackerGeometry > theTracker
edm::ESHandle< TransientTrackingRecHitBuilder > theBuilder
std::unique_ptr< TrackingRegionProducer > theRegionProducer
std::vector< PropagationDirection > thePropDirs