12#include <klm/bklm/geometry/GeometryPar.h>
13#include <klm/dataobjects/bklm/BKLMHit1d.h>
14#include <klm/dataobjects/eklm/EKLMAlignmentHit.h>
15#include <klm/dataobjects/KLMDigit.h>
16#include <klm/dataobjects/KLMHit2d.h>
17#include <klm/dbobjects/KLMTimeCableDelay.h>
18#include <klm/dbobjects/KLMTimeConstants.h>
19#include <klm/dbobjects/KLMTimeResolution.h>
20#include <klm/dbobjects/KLMChannelStatus.h>
21#include <klm/dbobjects/KLMTimeWindow.h>
22#include <klm/eklm/geometry/GeometryData.h>
23#include <klm/eklm/geometry/TransformData.h>
26#include <framework/core/Module.h>
27#include <framework/database/DBObjPtr.h>
28#include <framework/dataobjects/EventT0.h>
29#include <framework/datastore/StoreArray.h>
30#include <framework/datastore/StoreObjPtr.h>
31#include <mdst/dataobjects/EventLevelClusteringInfo.h>
70 void event()
override;
Class for accessing objects in the database.
KLM digit (class representing a digitized hit in RPCs or scintillators).
Create BKLMHit1ds from BKLMDigits and then create KLMHit2ds from BKLMHit1ds; create KLMHit2ds from EK...
OptionalDBObjPtr< KLMTimeResolution > m_TimeResolution
KLM time resolution.
void reconstructEKLMHits()
Reconstruct EKLNM 2d hits.
bool m_TimeCableDelayCorrection
Perform cable delay time correction (true) or not (false).
StoreArray< KLMDigit > m_Digits
KLM digits.
DBObjPtr< KLMChannelStatus > m_ChannelStatus
Channel status.
EKLM::TransformData * m_eklmTransformData
Transformation data.
void initialize() override
Initializer.
~KLMReconstructorModule()
Destructor.
void event() override
Called for each event.
const KLMElementNumbers * m_ElementNumbers
KLM element numbers.
bklm::GeometryPar * m_bklmGeoPar
BKLM GeometryPar singleton.
StoreArray< EKLMAlignmentHit > m_eklmAlignmentHits
Alignment Hits.
double m_CoincidenceWindow
Half-width of the time coincidence window used to create a 2D hit from 1D digits/hits.
void endRun() override
Called if the current run ends.
const EKLMElementNumbers * m_eklmElementNumbers
EKLM element numbers.
double m_DelayBKLMScintillators
Delay (ns / cm) for BKLM scintillators.
void terminate() override
Called at the end of the event processing.
KLMReconstructorModule()
Constructor.
bool m_bklmIfAlign
Perform alignment correction (true) or not (false).
StoreObjPtr< EventLevelClusteringInfo > m_EventLevelClusteringInfo
EventLevelClusteringInfo.
double m_EventT0Value
Value of the EventT0.
void reconstructBKLMHits()
Reconstruct BKLM 2d hits.
double m_PromptTime
Nominal time of prompt KLMHit2ds.
double m_DelayRPCPhi
Delay (ns / cm) for RPC phi plane.
void beginRun() override
Called when entering a new run.
bool isNormal(const KLMDigit *digit) const
Check if channel is normal or dead.
OptionalDBObjPtr< KLMTimeCableDelay > m_TimeCableDelay
KLM time cable delay.
void correctCableDelay(double &td, const KLMDigit *digit)
Time correction by subtract cable delay.
double m_PromptWindow
Half-width of the time window relative to the prompt time for KLMHit2ds.
int m_eklmNStrip
Number of strips.
StoreArray< BKLMHit1d > m_bklmHit1ds
BKLM 1d hits.
const EKLM::GeometryData * m_eklmGeoDat
Geometry data.
double m_DelayEKLMScintillators
Delay (ns / cm) for EKLM scintillators.
StoreObjPtr< EventT0 > m_EventT0
EventT0.
bool m_EventT0Correction
Perform EventT0 correction (true) or not (false).
bool m_bklmIgnoreScintillators
Ignore scintillators (to debug their electronics mapping).
bool m_IgnoreHotChannels
Use only normal and dead (for debugging) channels during 2d hit reconstruction.
OptionalDBObjPtr< KLMTimeConstants > m_TimeConstants
KLM time constants.
double m_DelayRPCZ
Delay (ns / cm) for RPC Z plane.
DBObjPtr< KLMTimeWindow > m_TimeWindow
KLM time window.
bool m_eklmCheckSegmentIntersection
Check if segments intersect.
StoreArray< KLMHit2d > m_Hit2ds
KLM 2d hits.
Optional DBObjPtr: This class behaves the same as the DBObjPtr except that it will not raise errors w...
Accessor to arrays stored in the data store.
Type-safe access to single objects in the data store.
Provides BKLM geometry parameters for simulation, reconstruction etc (from Gearbox or DataBase)
Abstract base class for different kinds of events.