1 #ifndef FULLLDCTRACKING_H
2 #define FULLLDCTRACKING_H 1
4 #include "marlin/Processor.h"
7 #include "ClusterExtended.h"
8 #include "TrackExtended.h"
9 #include "TrackerHitExtended.h"
10 #include "TrackHitPair.h"
11 #include "HelixClass.h"
12 #include "ClusterShapes.h"
13 #include "GroupTracks.h"
14 #include "../../BrahmsTracking/include/MarlinTrackFit.h"
18 using namespace lcio ;
19 using namespace marlin ;
307 virtual void init() ;
308 virtual void processRunHeader( LCRunHeader* run ) ;
309 virtual void processEvent( LCEvent * evt ) ;
310 virtual void check( LCEvent * evt ) ;
315 void prepareVectors( LCEvent * evt );
317 void MergeTPCandSiTracks();
318 void MergeTPCandSiTracksII();
319 TrackExtended * CombineTracks(TrackExtended * tpcTrk, TrackExtended * siTrk);
320 TrackExtended * TrialCombineTracks(TrackExtended * tpcTrk, TrackExtended * siTrk);
321 void Sorting(TrackExtendedVec & trackVec);
322 void SelectCombinedTracks();
323 void AddNotCombinedTracks();
325 void AddNotAssignedHits();
326 void RemoveSplitTracks();
327 void AddTrackColToEvt(LCEvent * evt, TrackExtendedVec & trkVec,
328 std::string TrkColName, std::string RelColName);
329 float CompareTrk(TrackExtended * first, TrackExtended * second,
330 float d0Cut,
float z0Cut,
int iopt);
332 float CompareTrkII(TrackExtended * first, TrackExtended * second,
333 float d0Cut,
float z0Cut,
int iopt,
float &Angle);
334 float CompareTrkIII(TrackExtended * first, TrackExtended * second,
335 float d0Cut,
float z0Cut,
int iopt,
float &Angle);
337 void SortingTrackHitPairs(TrackHitPairVec & trackHitPairVec);
339 void AssignSiHitsToTracks(TrackerHitExtendedVec hitVec,
342 void AssignTPCHitsToTracks(TrackerHitExtendedVec hitVec,
345 void AssignOuterHitsToTracks(TrackerHitExtendedVec hitVec,
float dcut,
int refit);
347 void CreateExtrapolations();
349 void CleanUpExtrapolations();
351 HelixClass * GetExtrapolationHelix(TrackExtended * track);
353 void PrintOutMerging(TrackExtended * firstTrackExt, TrackExtended * secondTrackExt,
356 void GeneralSorting(
int * index,
float * val,
int direct,
int nVal);
358 int SegmentRadialOverlap(TrackExtended* pTracki, TrackExtended* pTrackj);
359 bool VetoMerge(TrackExtended* firstTrackExt, TrackExtended* secondTrackExt);
365 std::string _TPCTrackCollection;
366 std::string _SiTrackCollection;
367 std::string _TPCTrackMCPCollName;
368 std::string _SiTrackMCPCollName;
370 std::string _VTXTrackerHitCollection;
371 std::string _SITTrackerHitCollection;
372 std::string _SETTrackerHitCollection;
373 std::string _FTDTrackerHitCollection;
374 std::string _TPCTrackerHitCollection;
375 std::string _ETDTrackerHitCollection;
377 std::string _LDCTrackCollection;
378 std::string _LDCTrackMCPCollection;
380 std::string _RefittedTPCTrackCollection;
381 std::string _RefittedTPCTrackMCPCollection;
382 std::string _RefittedSiTrackCollection;
383 std::string _RefittedSiTrackMCPCollection;
385 TrackExtendedVec _allSiTracks;
386 TrackExtendedVec _allTPCTracks;
387 TrackExtendedVec _allCombinedTracks;
388 TrackExtendedVec _allNonCombinedTPCTracks;
389 TrackExtendedVec _allNonCombinedSiTracks;
390 TrackExtendedVec _trkImplVec;
391 TrackerHitExtendedVec _allTPCHits;
392 TrackerHitExtendedVec _allVTXHits;
393 TrackerHitExtendedVec _allFTDHits;
394 TrackerHitExtendedVec _allSITHits;
395 TrackerHitExtendedVec _allSETHits;
396 TrackerHitExtendedVec _allETDHits;
398 float _resolutionRPhi_TPC,_resolutionZ_TPC;
399 float _resolutionRPhi_VTX,_resolutionZ_VTX;
400 float _resolutionRPhi_FTD,_resolutionZ_FTD;
401 float _resolutionRPhi_SIT,_resolutionZ_SIT;
402 float PI, PIOVER2, TWOPI;
405 float _chi2PrefitCut;
410 int _useExtraPoint,_optFit;
412 float _dPCutForMerging;
413 float _d0CutForMerging;
414 float _z0CutForMerging;
415 float _dOmegaForMerging;
416 float _angleForMerging;
420 float _dPCutForForcedMerging;
421 float _d0CutForForcedMerging;
422 float _z0CutForForcedMerging;
423 float _dOmegaForForcedMerging;
424 float _angleForForcedMerging;
427 int _mergeTPCSegments;
428 float _dPCutToMergeTPC;
429 float _PtCutToMergeTPC;
430 float _d0CutToMergeTPC;
431 float _z0CutToMergeTPC;
433 float _cosThetaCutHighPtMerge;
434 float _cosThetaCutSoftHighPtMerge;
435 float _momDiffCutHighPtMerge;
436 float _momDiffCutSoftHighPtMerge;
437 float _hitDistanceCutHighPtMerge;
438 float _maxHitDistanceCutHighPtMerge;
439 float _maxFractionOfOutliersCutHighPtMerge;
445 int _storeRefittedTPCTracks;
446 int _storeRefittedSiTracks;
449 int _nHitsExtrapolation;
454 float _aParIpReso,_bParIpReso,_sParIpReso;
456 int _assignVTXHits,_assignFTDHits,_assignSITHits,_assignTPCHits;
458 int _assignSETHits, _assignETDHits;
460 float _distCutForVTXHits,_distCutForFTDHits,_distCutForSITHits,_distCutForTPCHits;
462 float _distCutForSETHits, _distCutForETDHits;
464 int _optFitTPC,_optFitSi;
466 float _d0TrkCut,_z0TrkCut;
468 int _forbidOverlapInZTPC,_forbidOverlapInZComb;
472 std::map<TrackExtended*,HelixClass*> _trackExtrapolatedHelix;
473 std::set<TrackExtended*> _candidateCombinedTracks;
=== FullLDCTracking Processor === Processor performing track finding procedure in the entire LDC de...
Definition: FullLDCTracking.h:301
Definition: MarlinTrackFit.h:26