12 #include <klm/dataobjects/bklm/BKLMHit2d.h>
13 #include <klm/dataobjects/bklm/BKLMTrack.h>
14 #include <klm/bklm/geometry/GeometryPar.h>
17 #include <framework/core/Module.h>
18 #include <framework/datastore/StoreArray.h>
19 #include <tracking/dataobjects/RecoTrack.h>
22 #include <TEfficiency.h>
54 void event()
override;
135 void runTracking(
int mode,
int section,
int sector,
int layer);
Store one BKLM strip hit as a ROOT object.
Store one BKLM Track as a ROOT object.
This module perform straight line track finding and fitting for BKLM.
bool m_MatchToRecoTrack
whether match BKLMTrack to RecoTrack
~BKLMTrackingModule()
Destructor.
TEfficiency * m_effiVsLayer[2][8]
Efficieny of each layer.
std::vector< int > m_runNumber
run number
bool findClosestRecoTrack(BKLMTrack *bklmTrk, RecoTrack *&closestTrack)
find the closest RecoTrack, match BKLMTrack to RecoTrack, if the matched RecoTrack is found,...
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
double m_maxAngleRequired
angle required between RecoTrack and BKLMTrack, if openangle is larger than m_maxAngleRequired,...
void initialize() override
Initialize at start of job.
std::string m_outPath
output file name containing efficiencies plots
void event() override
Unpack one event and create digits.
void endRun() override
end run stuff
StoreArray< RecoTrack > recoTracks
RecoTrack StoreArray.
void runTracking(int mode, int section, int sector, int layer)
run the track finding and fitting
void terminate() override
Terminate at the end of job.
bklm::GeometryPar * m_GeoPar
bklm GeometryPar
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
StoreArray< BKLMHit2d > hits2D
BKLMHit2d StoreArray.
TFile * m_file
TFile that store efficieny plots.
std::vector< int > m_totalEvents
total number of processed events
double distanceToHit(BKLMTrack *track, BKLMHit2d *hit, double &error, double &sigma)
calculate distance from track to hit
TH1F * m_total[2][8]
Denominator of each layer.
bool isLayerUnderStudy(int section, int iSector, int iLayer, BKLMHit2d *hit)
judge whether the current layer is understudy
StoreArray< BKLMTrack > m_storeTracks
BKLMTrack StoreArray.
bool m_globalFit
do the BKLMTrack fitting in global system (multi-sectors track) or local system (sector by sector)
bool sameSector(BKLMHit2d *hit1, BKLMHit2d *hit2)
Judge if two hits come from the same sector.
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.
TH2F * m_totalYZ
total event at global position Y vs Z
bool isSectorUnderStudy(int section, int iSector, BKLMHit2d *hit)
judge whether the hits come from the sctor understudy
BKLMTrackingModule()
Constructor.
static bool sortByLayer(BKLMHit2d *hit1, BKLMHit2d *hit2)
my defined sort function using layer number
int m_runTotalEvents
total number of processed events in the run
TH2F * m_passYX
passed event at global position Y vs X
void generateEffi(int section, int sector, int layer)
calculate efficiency
This is the Reconstruction Event-Data Model Track.
Accessor to arrays stored in the data store.
Provides BKLM geometry parameters for simulation, reconstruction etc (from Gearbox or DataBase)
Abstract base class for different kinds of events.