1 #ifndef SILICONTRACKINGCLIC_H
2 #define SILICONTRACKINGCLIC_H 1
4 #include "marlin/Processor.h"
8 #include <IMPL/TrackImpl.h>
9 #include "ClusterExtended.h"
10 #include "TrackExtended.h"
11 #include "TrackerHitExtended.h"
12 #include "HelixClass.h"
13 #include "../../BrahmsTracking/include/MarlinTrackFit.h"
15 using namespace lcio ;
16 using namespace marlin ;
191 virtual void init() ;
195 virtual void processRunHeader( LCRunHeader* run ) ;
199 virtual void processEvent( LCEvent * evt ) ;
202 virtual void check( LCEvent * evt ) ;
215 int _nDivisionsInPhi;
216 int _nDivisionsInTheta;
223 int _maxNumberOfFTDCombinations;
226 std::string _VTXHitCollection;
227 std::string _FTDHitCollection;
228 std::string _SITHitCollection;
229 std::string _siTrkCollection;
230 std::string _siTrkMCPCollection;
232 std::vector<TrackerHitExtendedVec> _sectors;
233 std::vector<TrackerHitExtendedVec> _sectorsFTD;
235 TrackExtendedVec _tracks12Hits;
236 TrackExtendedVec _tracks11Hits;
237 TrackExtendedVec _tracks10Hits;
238 TrackExtendedVec _tracks9Hits;
239 TrackExtendedVec _tracks8Hits;
240 TrackExtendedVec _tracks7Hits;
241 TrackExtendedVec _tracks6Hits;
242 TrackExtendedVec _tracks5Hits;
243 TrackExtendedVec _tracks4Hits;
244 TrackExtendedVec _tracks3Hits;
246 int InitialiseVTX(LCEvent * evt);
247 int InitialiseFTD(LCEvent * evt);
248 void ProcessOneSector(
int iSectorPhi,
int iSectorTheta);
250 TrackExtended * TestTriplet(TrackerHitExtended * outerHit,
251 TrackerHitExtended * middleHit,
252 TrackerHitExtended * innerHit,
254 int BuildTrack(TrackerHitExtended * outerHit,
255 TrackerHitExtended * middleHit,
256 TrackerHitExtended * innerHit,
259 int iPhiLow,
int iPhiUp,
260 int iTheta,
int iThetaUp,
261 TrackExtended * trackAR);
263 void Sorting( TrackExtendedVec & trackVec);
264 void CreateTrack(TrackExtended * trackAR );
265 void AttachRemainingVTXHitsSlow();
266 void AttachRemainingFTDHitsSlow();
267 void AttachRemainingVTXHitsFast();
268 void AttachRemainingFTDHitsFast();
269 void TrackingInFTD();
270 int BuildTrackFTD(TrackExtended * trackAR,
int * nLR,
int iS);
271 int AttachHitToTrack(TrackExtended * trackAR, TrackerHitExtended * hit);
275 float _chi2WRPhiTriplet;
276 float _chi2WRPhiQuartet;
277 float _chi2WRPhiSeptet;
278 float _chi2WZTriplet;
279 float _chi2WZQuartet;
281 float _minDistCutAttach;
282 int _minimalLayerToAttach;
284 double PI,TWOPI,PIOVER2;
291 std::vector<float> _zLayerFTD;
292 std::vector<int> _Combinations;
293 std::vector<int> _CombinationsFTD;
295 float _resolutionRPhiVTX;
296 float _resolutionZVTX;
298 float _resolutionRPhiFTD;
299 float _resolutionZFTD;
301 float _resolutionRPhiSIT;
302 float _resolutionZSIT;
304 float _phiCutForMerging;
305 float _tanlambdaCutForMerging;
306 float _angleCutForMerging;
310 float _minDistToDelta;
316 float _chi2PrefitCut;
318 TrackExtendedVec _trackImplVec;
320 float _cutOnD0, _cutOnZ0, _cutOnOmega, _cutOnPt;
325 int _nTotalVTXHits,_nTotalFTDHits,_nTotalSITHits;
326 int _optFit,_simpleHelixFit;
334 inline int min(
int a,
int b) {
339 inline int max(
int a,
int b) {
344 inline int abs(
int x) {
Definition: MarlinTrackFit.h:26
=== Silicon Tracking Processor === Processor performing stand-alone pattern recognition in the vert...
Definition: SiliconTrackingCLIC.h:179