#include <TrajectoryManager.h>
Public Types | |
typedef ROOT::Math::AxisAngle | Rotation |
Public Member Functions | |
void | createPSimHits (const TrackerLayer &layer, const ParticlePropagator &P_before, std::map< double, PSimHit > &theHitMap, int trackID, int partID, const TrackerTopology *tTopo) |
Create a vector of PSimHits. More... | |
void | initializeRecoGeometry (const GeometricSearchTracker *geomSearchTracker, const TrackerInteractionGeometry *interactionGeometry, const MagneticFieldMap *aFieldMap) |
Initialize the Reconstruction Geometry. More... | |
void | initializeTrackerGeometry (const TrackerGeometry *geomTracker) |
Initialize the full Tracker Geometry. More... | |
void | loadSimHits (edm::PSimHitContainer &c) const |
void | propagateToCalorimeters (ParticlePropagator &PP, int fsimi, RandomEngineAndDistribution const *) |
Propagate the particle through the calorimeters. More... | |
bool | propagateToLayer (ParticlePropagator &PP, unsigned layer) |
void | reconstruct (const TrackerTopology *tTopo, RandomEngineAndDistribution const *) |
Does the real job. More... | |
const TrackerInteractionGeometry * | theGeometry () |
Returns the pointer to geometry. More... | |
TrajectoryManager () | |
Default Constructor. More... | |
TrajectoryManager (FSimEvent *aSimEvent, const edm::ParameterSet &matEff, const edm::ParameterSet &simHits, const edm::ParameterSet &decays) | |
Constructor from a FSimEvent. More... | |
~TrajectoryManager () | |
Default Destructor. More... | |
Private Member Functions | |
const DetLayer * | detLayer (const TrackerLayer &layer, float zpos) const |
Returns the DetLayer pointer corresponding to the FAMOS layer. More... | |
void | initializeLayerMap () |
Initialize correspondence map between Famos interaction geometry and tracker reco geometry. More... | |
void | makePSimHits (const GeomDet *det, const TrajectoryStateOnSurface &ts, std::map< double, PSimHit > &theHitMap, int tkID, float el, float thick, int pID, const TrackerTopology *tTopo) |
and there More... | |
std::pair< double, PSimHit > | makeSinglePSimHit (const GeomDetUnit &det, const TrajectoryStateOnSurface &ts, int tkID, float el, float thick, int pID, const TrackerTopology *tTopo) const |
and there More... | |
TrajectoryStateOnSurface | makeTrajectoryState (const DetLayer *layer, const ParticlePropagator &pp, const MagneticField *field) const |
Teddy, you must put comments there. More... | |
void | moveAllDaughters (int fsimi, const Rotation &r, double rescale) |
Move, rescale and rotate all daughters after propagation, material effects and decay of the mother. More... | |
void | updateWithDaughters (ParticlePropagator &PP, int fsimi, RandomEngineAndDistribution const *) |
Decay the particle and update the SimEvent with daughters. More... | |
Private Attributes | |
const MagneticFieldMap * | _theFieldMap |
const TrackerInteractionGeometry * | _theGeometry |
std::string | decayer |
double | distCut |
bool | firstLoop |
PythiaDecays * | myDecayEngine |
FSimEvent * | mySimEvent |
double | pTmin |
const GeometricSearchTracker * | theGeomSearchTracker |
const TrackerGeometry * | theGeomTracker |
std::vector< const DetLayer * > | theLayerMap |
MaterialEffects * | theMaterialEffects |
int | theNegLayerOffset |
std::map< unsigned, std::map < double, PSimHit > > | thePSimHits |
bool | use_hardcoded |
Definition at line 60 of file TrajectoryManager.h.
typedef ROOT::Math::AxisAngle TrajectoryManager::Rotation |
Definition at line 65 of file TrajectoryManager.h.
|
inline |
TrajectoryManager::TrajectoryManager | ( | FSimEvent * | aSimEvent, |
const edm::ParameterSet & | matEff, | ||
const edm::ParameterSet & | simHits, | ||
const edm::ParameterSet & | decays | ||
) |
Constructor from a FSimEvent.
Definition at line 46 of file TrajectoryManager.cc.
References gather_cfg::cout, decayer, distCut, firstLoop, edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), myDecayEngine, pTmin, AlCaHLTBitMon_QueryRunRegistry::string, theMaterialEffects, and use_hardcoded.
TrajectoryManager::~TrajectoryManager | ( | ) |
Default Destructor.
Definition at line 133 of file TrajectoryManager.cc.
References myDecayEngine, and theMaterialEffects.
void TrajectoryManager::createPSimHits | ( | const TrackerLayer & | layer, |
const ParticlePropagator & | P_before, | ||
std::map< double, PSimHit > & | theHitMap, | ||
int | trackID, | ||
int | partID, | ||
const TrackerTopology * | tTopo | ||
) |
Create a vector of PSimHits.
Definition at line 552 of file TrajectoryManager.cc.
References anyDirection, GeometricSearchDet::compatibleDets(), detLayer(), MaterialEffects::energyLoss(), BaseParticlePropagator::getMagneticField(), i, makePSimHits(), makeTrajectoryState(), theMaterialEffects, MaterialEffects::thickness(), and RawParticle::Z().
Referenced by reconstruct().
|
private |
Returns the DetLayer pointer corresponding to the FAMOS layer.
Definition at line 926 of file TrajectoryManager.cc.
References TrackerLayer::forward(), TrackerLayer::layerNumber(), theLayerMap, and theNegLayerOffset.
Referenced by createPSimHits().
|
private |
Initialize correspondence map between Famos interaction geometry and tracker reco geometry.
ATTENTION: HARD CODED LOGIC! If Famos layer numbering changes this logic needs to be adapted to the new numbering!
Definition at line 818 of file TrajectoryManager.cc.
References _theGeometry, GeometricSearchTracker::barrelLayers(), TrackerInteractionGeometry::cylinderBegin(), TrackerInteractionGeometry::cylinderEnd(), newFWLiteAna::found, i, LogDebug, GeometricSearchTracker::negForwardLayers(), GeometricSearchTracker::posForwardLayers(), theGeomSearchTracker, theLayerMap, and theNegLayerOffset.
Referenced by initializeRecoGeometry().
void TrajectoryManager::initializeRecoGeometry | ( | const GeometricSearchTracker * | geomSearchTracker, |
const TrackerInteractionGeometry * | interactionGeometry, | ||
const MagneticFieldMap * | aFieldMap | ||
) |
Initialize the Reconstruction Geometry.
Definition at line 103 of file TrajectoryManager.cc.
References _theFieldMap, _theGeometry, initializeLayerMap(), and theGeomSearchTracker.
Referenced by FamosManager::setupGeometryAndField().
void TrajectoryManager::initializeTrackerGeometry | ( | const TrackerGeometry * | geomTracker | ) |
Initialize the full Tracker Geometry.
Definition at line 122 of file TrajectoryManager.cc.
References theGeomTracker.
Referenced by FamosManager::setupGeometryAndField().
void TrajectoryManager::loadSimHits | ( | edm::PSimHitContainer & | c | ) | const |
Definition at line 933 of file TrajectoryManager.cc.
References begin, end, and thePSimHits.
|
private |
and there
Definition at line 605 of file TrajectoryManager.cc.
References AlCaHLTBitMon_QueryRunRegistry::comp, GeomDet::components(), i, and makeSinglePSimHit().
Referenced by createPSimHits().
|
private |
and there
Definition at line 630 of file TrajectoryManager.cc.
References anyDirection, PV3DBase< T, PVType, FrameType >::basicVector(), Surface::bounds(), FSimTrack::closestDaughterId(), gather_cfg::cout, cond::rpcobgas::detid, cmsRelvalreport::exit, GeomDet::geographicalId(), TrajectoryStateOnSurface::globalMomentum(), TrajectoryStateOnSurface::globalPosition(), FSimTrack::id(), listHistos::IP, Bounds::length(), TrajectoryStateOnSurface::localMomentum(), TrajectoryStateOnSurface::localPosition(), PV3DBase< T, PVType, FrameType >::mag(), FSimTrack::mother(), mySimEvent, FSimTrack::noMother(), cmsHarvester::path, FSimVertex::position(), TrackerTopology::pxbLayer(), TrackerTopology::pxfDisk(), DetId::rawId(), GeomDet::surface(), TrackerTopology::tecRing(), TrackerTopology::tecWheel(), TrackerTopology::tibLayer(), TrackerTopology::tidRing(), TrackerTopology::tidWheel(), TrackerTopology::tobLayer(), TrackerTopology::tobStereo(), Surface::toGlobal(), GeomDet::toLocal(), FBaseSimEvent::track(), TrajectoryStateOnSurface::transverseCurvature(), Vector3DBase< T, FrameTag >::unit(), FSimTrack::vertex(), Bounds::width(), hit::x, hit::y, detailsBasic3DVector::z, PV3DBase< T, PVType, FrameType >::z(), and hit::z.
Referenced by makePSimHits().
|
private |
Teddy, you must put comments there.
Definition at line 593 of file TrajectoryManager.cc.
References RawParticle::charge(), GeometricSearchDet::surface(), Surface::tangentPlane(), RawParticle::X(), RawParticle::Y(), and RawParticle::Z().
Referenced by createPSimHits().
|
private |
Move, rescale and rotate all daughters after propagation, material effects and decay of the mother.
Definition at line 533 of file TrajectoryManager.cc.
References FSimTrack::daughter(), FSimTrack::id(), FSimTrack::momentum(), mySimEvent, FSimTrack::nDaughters(), FSimTrack::setMomentum(), mathSSE::sqrt(), and FBaseSimEvent::track().
Referenced by updateWithDaughters().
void TrajectoryManager::propagateToCalorimeters | ( | ParticlePropagator & | PP, |
int | fsimi, | ||
RandomEngineAndDistribution const * | random | ||
) |
Propagate the particle through the calorimeters.
Definition at line 378 of file TrajectoryManager.cc.
References BaseParticlePropagator::getSuccess(), BaseParticlePropagator::hasDecayed(), RawParticle::momentum(), mySimEvent, FSimTrack::notYetToEndVertex(), BaseParticlePropagator::propagateToEcalEntrance(), BaseParticlePropagator::propagateToHcalEntrance(), BaseParticlePropagator::propagateToPreshowerLayer1(), BaseParticlePropagator::propagateToPreshowerLayer2(), BaseParticlePropagator::propagateToVFcalEntrance(), FSimTrack::setEcal(), FSimTrack::setHcal(), FSimTrack::setLayer1(), FSimTrack::setLayer2(), SimTrack::setTkMomentum(), SimTrack::setTkPosition(), FSimTrack::setVFcal(), FBaseSimEvent::track(), updateWithDaughters(), and RawParticle::vertex().
Referenced by reconstruct().
bool TrajectoryManager::propagateToLayer | ( | ParticlePropagator & | PP, |
unsigned | layer | ||
) |
Propagate a particle to a given tracker layer (for electron pixel matching mostly)
Definition at line 434 of file TrajectoryManager.cc.
References _theGeometry, TrackerInteractionGeometry::cylinderBegin(), TrackerInteractionGeometry::cylinderEnd(), run_regression::done, BaseParticlePropagator::getSuccess(), BaseParticlePropagator::onFiducial(), ParticlePropagator::propagateToBoundSurface(), and ParticlePropagator::setPropagationConditions().
void TrajectoryManager::reconstruct | ( | const TrackerTopology * | tTopo, |
RandomEngineAndDistribution const * | random | ||
) |
Does the real job.
Definition at line 146 of file TrajectoryManager.cc.
References _theFieldMap, _theGeometry, BaseRawParticleFilter::accept(), FBaseSimEvent::addSimVertex(), createPSimHits(), TrackerInteractionGeometry::cylinderBegin(), TrackerInteractionGeometry::cylinderEnd(), FSimVertexType::END_VERTEX, FBaseSimEvent::filter(), firstLoop, MaterialEffects::interact(), cmsHarvester::loop, mySimEvent, FSimTrack::nDaughters(), FSimTrack::notYetToEndVertex(), FSimEvent::nTracks(), propagateToCalorimeters(), pTmin, random, MaterialEffects::save(), FSimTrack::setPropagate(), summarizeEdmComparisonLogfiles::success, theGeomTracker, theMaterialEffects, thePSimHits, FBaseSimEvent::track(), CoreSimTrack::type(), updateWithDaughters(), and use_hardcoded.
Referenced by FamosManager::reconstruct().
const TrackerInteractionGeometry * TrajectoryManager::theGeometry | ( | ) |
Returns the pointer to geometry.
Definition at line 129 of file TrajectoryManager.cc.
References _theGeometry.
|
private |
Decay the particle and update the SimEvent with daughters.
Definition at line 463 of file TrajectoryManager.cc.
References FBaseSimEvent::addSimTrack(), FBaseSimEvent::addSimVertex(), angle(), RawParticle::charge(), FSimVertexType::DECAY_VERTEX, decayer, distCut, FSimTrack::endVertex(), FSimVertex::id(), FSimTrack::momentum(), RawParticle::momentum(), moveAllDaughters(), myDecayEngine, mySimEvent, FSimTrack::nDaughters(), PythiaDecays::particleDaughtersPy6(), PythiaDecays::particleDaughtersPy8(), alignCSCRings::r, FSimTrack::setClosestDaughterId(), FSimVertex::setPosition(), mathSSE::sqrt(), RandomEngineAndDistribution::theEngine(), FBaseSimEvent::track(), FBaseSimEvent::vertex(), and RawParticle::vertex().
Referenced by propagateToCalorimeters(), and reconstruct().
|
private |
Definition at line 144 of file TrajectoryManager.h.
Referenced by initializeRecoGeometry(), and reconstruct().
|
private |
Definition at line 143 of file TrajectoryManager.h.
Referenced by initializeLayerMap(), initializeRecoGeometry(), propagateToLayer(), reconstruct(), and theGeometry().
|
private |
Definition at line 149 of file TrajectoryManager.h.
Referenced by TrajectoryManager(), and updateWithDaughters().
|
private |
Definition at line 150 of file TrajectoryManager.h.
Referenced by TrajectoryManager(), and updateWithDaughters().
|
private |
Definition at line 153 of file TrajectoryManager.h.
Referenced by reconstruct(), and TrajectoryManager().
|
private |
Definition at line 148 of file TrajectoryManager.h.
Referenced by TrajectoryManager(), updateWithDaughters(), and ~TrajectoryManager().
|
private |
Definition at line 141 of file TrajectoryManager.h.
Referenced by makeSinglePSimHit(), moveAllDaughters(), propagateToCalorimeters(), reconstruct(), and updateWithDaughters().
|
private |
Definition at line 152 of file TrajectoryManager.h.
Referenced by reconstruct(), and TrajectoryManager().
|
private |
Definition at line 157 of file TrajectoryManager.h.
Referenced by initializeLayerMap(), and initializeRecoGeometry().
|
private |
Definition at line 156 of file TrajectoryManager.h.
Referenced by initializeTrackerGeometry(), and reconstruct().
|
private |
Definition at line 158 of file TrajectoryManager.h.
Referenced by detLayer(), and initializeLayerMap().
|
private |
Definition at line 146 of file TrajectoryManager.h.
Referenced by createPSimHits(), reconstruct(), TrajectoryManager(), and ~TrajectoryManager().
|
private |
Definition at line 159 of file TrajectoryManager.h.
Referenced by detLayer(), and initializeLayerMap().
|
private |
Definition at line 154 of file TrajectoryManager.h.
Referenced by loadSimHits(), and reconstruct().
|
private |
Definition at line 163 of file TrajectoryManager.h.
Referenced by reconstruct(), and TrajectoryManager().