12#include <tracking/dataobjects/ExtHit.h>
13#include <tracking/dataobjects/RecoTrack.h>
14#include <tracking/dataobjects/TrackClusterSeparation.h>
17#include <framework/database/DBObjPtr.h>
18#include <framework/datastore/StoreArray.h>
19#include <framework/gearbox/Const.h>
20#include <ir/dbobjects/BeamPipeGeo.h>
21#include <klm/dataobjects/bklm/BKLMElementNumbers.h>
22#include <klm/dataobjects/eklm/EKLMElementNumbers.h>
23#include <klm/dataobjects/KLMElementNumbers.h>
24#include <klm/dataobjects/KLMHit2d.h>
25#include <klm/dbobjects/KLMChannelStatus.h>
26#include <klm/dbobjects/KLMStripEfficiency.h>
27#include <klm/dbobjects/KLMLikelihoodParameters.h>
28#include <klm/eklm/geometry/TransformDataGlobalAligned.h>
29#include <structure/dbobjects/COILGeometryPar.h>
32#include <G4ErrorTrajErr.hh>
33#include <G4ThreeVector.hh>
34#include <G4TouchableHandle.hh>
41class G4ErrorSymMatrix;
42class G4VPhysicalVolume;
43class G4ErrorFreeTrajState;
55 class KLMMuidLikelihood;
59 namespace Simulation {
60 class ExtCylSurfaceTarget;
184 std::vector<Const::ChargedStable>& hypotheses);
197 void initialize(
double meanDt,
double maxDt,
double maxSeparation,
198 double maxKLMTrackClusterDistance,
double maxECLTrackClusterDistance,
199 double minPt,
double minKE,
bool addHitsToRecoTrack, std::vector<Const::ChargedStable>& hypotheses);
207 void event(
bool flag);
225 const G4ThreeVector& position,
226 const G4ThreeVector& momentum,
227 const G4ErrorSymMatrix& covariance);
239 const std::vector<std::pair<ECLCluster*, G4ThreeVector> >*,
240 const std::vector<std::pair<KLMCluster*, G4ThreeVector> >*,
241 std::vector<std::map<const Track*, double> >*);
269 void createECLHit(
const ExtState&,
const G4ErrorFreeTrajState&,
const G4StepPoint*,
const G4StepPoint*,
const G4TouchableHandle&,
270 const std::pair<ECLCluster*, G4ThreeVector>&,
double,
double);
static constexpr int getMaximalLayerNumber()
Get maximal layer number (1-based).
static constexpr int getMaximalSectorNumber()
Get maximal sector number (1-based).
EDetector
Enum for identifying the detector components (detector and subdetector).
Class for accessing objects in the database.
Class to store the likelihoods from KLM with additional information related to the extrapolation.
Defines a closed cylinder for the geant4e "target", the surface that encloses the volume within which...
It is the main interface for the user to define the setup and start the propagation.
Accessor to arrays stored in the data store.
Class that bundles various TrackFitResults.
ExtHitStatus
Define state of extrapolation for each recorded hit.
VolTypes
Enumeration for G4VPhysicalVolume sensitive-volume categories.
@ VOLTYPE_ARICH2
ARICH Img plate.
@ VOLTYPE_TOP2
TOP quartz.
@ VOLTYPE_ARICH3
ARICH HAPD window.
@ VOLTYPE_BKLM2
BKLM scintillator.
@ VOLTYPE_ARICH1
ARICH aerogel.
@ VOLTYPE_TOP1
TOP container.
Abstract base class for different kinds of events.
Data structure to define extrapolation state.
int lastEndcapExtLayer
MUID: outermost endcap layer crossed by the extrapolated track.
double chi2
MUID: accumulated chi-squared of all in-plane transverse deviations between extrapolation and matchin...
G4ThreeVector directionAtIP
MUID: initial direction of track, used for KLID.
int nPoint
MUID: accumulated number of points with matching 2D hits.
int lastEndcapHitLayer
MUID: outermost endcap layer with a matching hit.
bool isCosmic
True for back-propagation of a cosmic ray.
int firstEndcapLayer
MUID: outermost barrel layer encountered by the extrapolated track in the prior steps.
int extLayerPattern
MUID: accumulated bit pattern of layers crossed by the extrapolated track.
int pdgCode
Particle hypothesis that is being extrapolated.
double length
Length from start of extrapolation (rad lengths), updated during extrapolation.
bool escaped
MUID: flag to indicate that the extrapolated track escaped from the KLM.
int firstBarrelLayer
MUID: outermost barrel layer encountered by the extrapolated track in the prior steps.
int lastBarrelHitLayer
MUID: outermost barrel layer with a matching hit.
int hitLayerPattern
MUID: accumulated bit pattern of layers with matching hits.
int lastBarrelExtLayer
MUID: outermost barrel layer crossed by the extrapolated track.
double tof
Time of flight from IP (ns), updated during extrapolation.
const Track * track
Pointer to the reconstructed track.
intersection of muid-extrapolated track with a KLM layer
int sector
sector number (0..7 for barrel, 0..3 for endcap) of this point
G4ThreeVector momentum
extrapolated-track momentum (GeV/c) at this intersection
double chi2
chi-squared value of transverse deviation between extrapolated and measured hit positions
bool inBarrel
flag to indicate if this point is in the barrel (true) or endcap (false)
int hit
index in {B,E}KLMHit2ds of matching hit
G4ThreeVector positionAtHitPlane
extrapolated-track position (cm) projected to the 2D hit's midplane
G4ThreeVector position
extrapolated-track global position (cm) of this intersection
G4ErrorSymMatrix covariance
extrapolated-track phase-space covariance matrix at this intersection
bool isForward
flag to indicate if this point is in the forward (true) or backward (false) end
double time
time (ns) of matching BKLMHit2d
int layer
layer number (0..14 for barrel, 0..13 for endcap) of this point