LSSTApplications  1.1.2+25,10.0+13,10.0+132,10.0+133,10.0+224,10.0+41,10.0+8,10.0-1-g0f53050+14,10.0-1-g4b7b172+19,10.0-1-g61a5bae+98,10.0-1-g7408a83+3,10.0-1-gc1e0f5a+19,10.0-1-gdb4482e+14,10.0-11-g3947115+2,10.0-12-g8719d8b+2,10.0-15-ga3f480f+1,10.0-2-g4f67435,10.0-2-gcb4bc6c+26,10.0-28-gf7f57a9+1,10.0-3-g1bbe32c+14,10.0-3-g5b46d21,10.0-4-g027f45f+5,10.0-4-g86f66b5+2,10.0-4-gc4fccf3+24,10.0-40-g4349866+2,10.0-5-g766159b,10.0-5-gca2295e+25,10.0-6-g462a451+1
LSSTDataManagementBasePackage
Classes | Namespaces | Typedefs | Functions
Stages.cc File Reference

Implementation of association pipeline stages. More...

#include <algorithm>
#include <memory>
#include <utility>
#include "boost/format.hpp"
#include "boost/scoped_array.hpp"
#include "lsst/daf/persistence/LogicalLocation.h"
#include "lsst/pex/exceptions.h"
#include "lsst/pex/logging/Log.h"
#include "lsst/afw/detection/DiaSource.h"
#include "lsst/afw/image/Filter.h"
#include "lsst/mops/MovingObjectPrediction.h"
#include "lsst/ap/ChunkManager.h"
#include "lsst/ap/Match.h"
#include "lsst/ap/Point.h"
#include "lsst/ap/Stages.h"
#include "lsst/ap/Time.h"
#include "lsst/ap/Utils.h"

Go to the source code of this file.

Classes

class  lsst::ap::detail::ObjectMatchProcessor< ZoneEntryT >
 Processor for lists of objects matching a difference source. More...
 
struct  lsst::ap::detail::MovingObjectPredictionMatchProcessor
 Processor for matches between moving object predictions and difference sources. More...
 
struct  lsst::ap::detail::DiscardKnownVariableFilter
 Filter which discards difference sources matching known variable objects. More...
 
struct  lsst::ap::detail::DiscardLargeEllipseFilter
 Filter which discards predicted moving objects with large position error ellipses. More...
 
struct  lsst::ap::detail::NewObjectCreator
 Records ids of difference sources with no matches. More...
 

Namespaces

 lsst
 < multiple inclusion guard macro
 
 lsst::ap
 
 lsst::ap::detail
 @ endcond
 

Typedefs

typedef
SharedObjectChunkManager::ObjectChunk 
lsst::ap::detail::ObjectChunk
 
typedef std::vector< ObjectChunk > lsst::ap::detail::ObjectChunkVector
 
typedef ZoneEntry< ObjectChunk > lsst::ap::detail::ObjectEntry
 
typedef ZoneEntry< DiaSourceChunk > lsst::ap::detail::DiaSourceEntry
 
typedef Ellipse
< MovingObjectPrediction > 
lsst::ap::detail::MovingObjectEllipse
 

Functions

std::pair< double, double > lsst::ap::detail::correctProperMotion (Object const &obj, double const epoch)
 
template<typename EntryT >
void lsst::ap::detail::buildZoneIndex (ZoneIndex< EntryT > &index, std::vector< typename EntryT::Chunk > const &chunks, double const epoch)
 
void lsst::ap::initialize (std::string const &runId)
 
void lsst::ap::registerVisit (VisitProcessingContext &context)
 
void lsst::ap::loadSliceObjects (VisitProcessingContext &context)
 
void lsst::ap::buildObjectIndex (VisitProcessingContext &context)
 
void lsst::ap::matchDiaSources (MatchPairVector &matches, VisitProcessingContext &context)
 
void lsst::ap::matchMops (MatchPairVector &matches, IdPairVector &newObjects, VisitProcessingContext &context, lsst::mops::MovingObjectPredictionVector &predictions)
 
void lsst::ap::storeSliceObjects (VisitProcessingContext &context)
 
void lsst::ap::failVisit (VisitProcessingContext &context)
 
bool lsst::ap::endVisit (VisitProcessingContext &context, bool const rollback)
 

Detailed Description

Implementation of association pipeline stages.

Todo:
How is the time of observation for a visit specified? And how is the association pipeline deadline derived from this? Possibly post-DC2.
Todo:
[Post DC3a] How are variability probabilities set for new objects? Currently, the probability is set to 100% for any new Object.
Todo:
[Post DC3a] StoreStage can issue multiple database requests in parallel
Todo:
The end of the pipeline needs to send out a 'triggerAlertGeneration' event. Post-DC3a, since there is no alert generation pipeline.
Todo:
[Post DC3a] Add a version number to chunk delta file names. Use a database table to track the version numbers of valid delta files in transactional fashion. Note that the transaction which updates these version numbers should include the insert to the object table as well as the append to the historical DIASource table. Use MySQL API directly for this?

Definition in file Stages.cc.