10 #define _KalmanDSTrk_H
13 #include <jobopts_svc/JobOptsSvc.h>
28 #include <Math/Factory.h>
29 #include <Math/Minimizer.h>
30 #include <Math/Functor.h>
49 const TGeoManager *geom,
50 bool enable_KF =
true,
52 const std::string sim_db_name =
"",
53 const std::string pattern_db_name =
""
130 void chi2fit(
int n,
double x[],
double y[],
double& a,
double& b);
133 return _pattern_db_name;
137 _pattern_db_name = patternDbName;
145 _sim_db_name = simDbName;
154 std::vector<Hit> hitAll;
158 std::list<Tracklet> trackletsInSt[5];
161 std::list<SRecTrack> stracks;
165 std::list<PropSegment> propSegs[2];
169 std::vector<int> detectorIDs_mask[4];
170 std::vector<int> detectorIDs_maskX[4];
171 std::vector<int> detectorIDs_maskY[4];
172 std::list<int> hitIDs_mask[4];
173 std::vector<int> detectorIDs_muidHodoAid[2];
176 std::vector<int> stationIDs_mask[
nStations];
179 int detectorIDs_muid[2][4];
180 double z_ref_muid[2][4];
181 std::list<int> hitIDs_muid[2][4];
182 std::list<int> hitIDs_muidHodoAid[2];
227 ROOT::Math::Minimizer* minimizer[2];
228 ROOT::Math::Functor fcn;
237 JobOptsSvc* p_jobOptsSvc;
240 const bool _enable_KF;
244 std::string _sim_db_name;
245 std::string _pattern_db_name;
279 std::map< std::string, PHTimer* > _timers;
284 TNtuple *_tana_Event;
289 TNtuple *_tana_St123;
User interface class about the geometry of detector planes.
Pattern Dictionary Filter built based on Kun Liu's ktracker.
void chi2fit(int n, double x[], double y[], double &a, double &b)
const std::string & get_pattern_db_name() const
void buildBackPartialTracks()
void resolveSingleLeftRight(Tracklet &tracklet)
std::list< Tracklet > & getTrackletList(int i)
KalmanDSTrk(const PHField *field, const TGeoManager *geom, bool enable_KF=true, int DS_level=KalmanDSTrk::NO_DS, const std::string sim_db_name="", const std::string pattern_db_name="")
std::list< Tracklet > & getFinalTracklets()
Final output.
void removeBadHits(Tracklet &tracklet)
bool acceptEvent(SRawEvent *rawEvent)
void printAtDetectorBack(int stationID, std::string outputFileName)
bool muonID_hodoAid(Tracklet &tracklet)
bool muonID_comp(Tracklet &tracklet)
int setRawEventWorker(SRawEvent *event_input)
void set_sim_db_name(const std::string &simDbName)
int setRawEvent(SRawEvent *event_input)
void resolveLeftRight(SRawEvent::hit_pair hpair, int &LR1, int &LR2)
bool fitTrack(KalmanTrack &kmtrk)
std::list< Tracklet > & getBackPartials()
void set_pattern_db_name(const std::string &patternDbName)
int fitTracklet(Tracklet &tracklet)
void setRawEventDebug(SRawEvent *event_input)
void getSagittaWindowsInSt1(Tracklet &tracklet, double *pos_exp, double *window, int st1ID)
std::list< PropSegment > & getPropSegments(int i)
void buildTrackletsInStation(int stationID, int listID, double *pos_exp=NULL, double *window=NULL)
Tracklet finding stuff.
bool acceptTracklet(Tracklet &tracklet)
void Verbosity(const int a)
void getExtrapoWindowsInSt1(Tracklet &tracklet, double *pos_exp, double *window, int st1ID)
SRecTrack processOneTracklet(Tracklet &tracklet)
Track fitting stuff.
bool hodoMask(Tracklet &tracklet)
bool muonID_search(Tracklet &tracklet)
const std::string & get_sim_db_name() const
std::list< SRecTrack > & getSRecTracks()
int reduceTrackletList(std::list< Tracklet > &tracklets)
transient DST object for field storage and access
PatternDB interface objects.
std::pair< Int_t, Int_t > hit_pair
Type of pair with two adjacent wires.