12#include <klm/dataobjects/KLMTrack.h>
13#include <klm/dataobjects/KLMHit2d.h>
14#include <klm/geometry/KLMGeometryPar.h>
17#include <framework/core/Module.h>
18#include <framework/datastore/StoreArray.h>
19#include <tracking/dataobjects/RecoTrack.h>
22#include <TEfficiency.h>
51 void event()
override;
182 void runTracking(
int mode,
int iSubdetector,
int section,
int sector,
int layer);
185 void generateEffi(
int iSubdetector,
int section,
int sector,
int layer);
Store one KLM Track as a ROOT object.
This module perform straight line track finding and fitting for BKLM/EKLM.
void generateEffi(int iSubdetector, int section, int sector, int layer)
calculate efficiency
bool m_MatchToRecoTrack
whether match KLMTrack to RecoTrack
TEfficiency * m_effiVsLayer[2][8]
Efficieny of each layer.
std::vector< int > m_runNumber
run number
TH2F * m_passYZ
passed event at global position Y vs Z
TH2F * m_effiYX
Efficieny at global position Y vs X.
bool m_studyEffi
option for efficieny study mode, in this mode, the layer under study should not be used in tracking
TH2F * m_totalYZE
total event at global position Y vs Z
TEfficiency * m_effiVsLayerE[2][8]
Efficieny of each layer.
TH2F * m_totalYXE
total event at global position Y vs X
double m_maxSigma
maximum sigma for hit acceptance during efficiency calculation
void runTracking(int mode, int iSubdetector, int section, int sector, int layer)
run the track finding and fitting
double m_maxAngleRequired
angle required between RecoTrack and KLMTrack, if openangle is larger than m_maxAngleRequired,...
int m_minNLayer
minimum number of layers for track finder to run
void initialize() override
Initialize at start of job.
unsigned int m_minHitList
minimum number of hits in sector for track finder to run (-2 from initial seed)
std::string m_outPath
output file name containing efficiencies plots
TH2F * m_passYZE
passed event at global position Y vs Z
void event() override
Unpack one event and create digits.
Belle2::KLM::KLMGeometryPar * m_GeoPar
KLMGeometryPar to call on B/E-KLM.
bool findClosestRecoTrack(KLMTrack *klmTrk, RecoTrack *&closestTrack)
find the closest RecoTrack, match KLMTrack to RecoTrack, if the matched RecoTrack is found,...
void endRun() override
end run stuff
StoreArray< RecoTrack > recoTracks
RecoTrack StoreArray.
void terminate() override
Terminate at the end of job.
TH2F * m_effiYXE
Efficieny at global position Y vs X.
TH1F * m_pass[2][8]
Numerator of each layer.
TH2F * m_totalYX
total event at global position Y vs X
StoreArray< RecoHitInformation > recoHitInformation
RecoHitInformation StoreArray.
int m_runTotalEventsWithTracks
total number of processed events in the run with at lease one BKLMTrack
void beginRun() override
begin run stuff
KLMTrackingModule()
Constructor.
double m_maxDistance
maximum distance required between track and KLMHit2d to be accepted for efficiency calculation
StoreArray< KLMTrack > m_storeTracks
KLMTrack StoreArray.
StoreArray< KLMHit2d > hits2D
KLMHit2d StoreArray.
TFile * m_file
TFile that store efficieny plots.
std::vector< int > m_totalEvents
total number of processed events
bool isLayerUnderStudy(int section, int iSector, int iLayer, KLMHit2d *hit)
judge whether the current layer is understudy
TH1F * m_total[2][8]
Denominator of each layer.
TH1F * m_totalE[2][8]
Denominator of each layer.
double distanceToHit(KLMTrack *track, KLMHit2d *hit, double &error, double &sigma)
calculate distance from track to hit
TH2F * m_passYXE
passed event at global position Y vs X
unsigned int m_maxHitList
max number of hits in sector for track finder to run
std::vector< int > m_totalEventsWithTracks
total number of processed events with at least one BKLMTrack
TH2F * m_effiYZ
Efficieny at global position Y vs Z.
bool isSectorUnderStudy(int section, int iSector, KLMHit2d *hit)
judge whether the hits come from the sctor under study
static bool sortByLayer(KLMHit2d *hit1, KLMHit2d *hit2)
my defined sort function using layer number
TH2F * m_totalYZ
total event at global position Y vs Z
TH2F * m_effiYZE
Efficieny at global position Y vs Z.
~KLMTrackingModule()
Destructor.
bool sameSector(KLMHit2d *hit1, KLMHit2d *hit2)
Judge if two hits come from the same sector.
int m_runTotalEvents
total number of processed events in the run
TH2F * m_passYX
passed event at global position Y vs X
TH1F * m_passE[2][8]
Numerator of each layer.
Wrapper class around bklm::GeometryPar and EKLM::GeometryData.
This is the Reconstruction Event-Data Model Track.
Accessor to arrays stored in the data store.
Abstract base class for different kinds of events.