FairRoot/PandaRoot
PndStraightLineTrackFinderTask.h
Go to the documentation of this file.
1 // -------------------------------------------------------------------------
2 // ----- PndStraightLineTrackFinderTask -----
3 // ----- Created 22/10/09 by M. Michel -----
4 // -------------------------------------------------------------------------
5 
6 
7 #ifndef PndStraightLineTrackFinderTask_H
8 #define PndStraightLineTrackFinderTask_H
9 
10 #include "FairTask.h"
11 #include "PndMCTrack.h"
12 #include "PndSdsGeoPar.h"
13 #include "PndSdsHit.h"
14 #include "PndSdsMCPoint.h"
15 #include "PndSdsClusterStrip.h"
16 #include "TrackData/PndTrackCand.h"
17 
18 #include <string>
19 #include <vector>
20 #include <utility>
21 
22 class TClonesArray;
23 
24 class PndStraightLineTrackFinderTask : public FairTask
25 {
26  public:
27 
29  PndStraightLineTrackFinderTask(Int_t inFinderMode=0, TString hitBranch="LMDHitsStrip", TString clusterBranch="LMDStripClusterCand", TString digiBranch="LMDStripDigis", Int_t innSensPP=8);
32 
33 
35  virtual void SetParContainers();
36  virtual InitStatus Init();
37  virtual InitStatus ReInit();
38 
40  virtual void Exec(Option_t* opt);
41 
42  void SetVerbose(Int_t verbose){ fVerbose = verbose; };
43  void SetInaccuracy(Double_t accu) { dXY = accu; };
44  void SetSensStripFlag(bool fS){ flagStipSens = fS; };
45  void SetSensPixelFlag(bool fS){ flagPixelSens = fS; };
46 
47  private:
48 
49  bool flagStipSens;
52  Int_t fFinderMode;
53  Int_t nSensPP;
54 // std::vector<Int_t> GetHitPerCluster(PndSdsClusterStrip* clusterCand);
57 
61 
62 
63 
65  TClonesArray* fStripHitArray;
66  TClonesArray* fStripClusterArray;
67  TClonesArray* fStripDigiArray;
68 
70  TClonesArray* fTrackCandArray;
71 
72  void Register();
73  void Reset();
74  void ProduceHits();
75 
76  bool SortHitsByZ(std::vector< std::vector< std::pair<Int_t,bool> > > &hitsd, Int_t nStripHits);
77  bool SortHitsByDet(std::vector< std::vector< std::pair<Int_t,bool> > > &hitsd, Int_t nStripHits);
78  bool SortHitsByDet2(std::vector< std::vector< std::pair<Int_t,bool> > > &hitsd, Int_t nStripHits);//uses PndLmdDim
79  void FindHitsI(std::vector<PndTrackCand> &tofill, std::vector< std::vector< std::pair<Int_t,bool> > > &hitsd, Int_t nStripHits);
80  void FindHitsII(std::vector<PndTrackCand> &tofill, std::vector< std::vector< std::pair<Int_t,bool> > > &hitsd, Int_t nStripHits);
81  void FindHitsIII(std::vector<PndTrackCand> &tofill, std::vector< std::vector< std::pair<Int_t,bool> > > &hitsd, Int_t nStripHits);
82 
84 
85 };
86 
87 #endif /* PndStraightLineTrackFinderTask_H */
88 
int fVerbose
Definition: poormantracks.C:24
ClassDef(PndStraightLineTrackFinderTask, 2)
#define verbose
void FindHitsII(std::vector< PndTrackCand > &tofill, std::vector< std::vector< std::pair< Int_t, bool > > > &hitsd, Int_t nStripHits)
bool SortHitsByDet2(std::vector< std::vector< std::pair< Int_t, bool > > > &hitsd, Int_t nStripHits)
void FindHitsIII(std::vector< PndTrackCand > &tofill, std::vector< std::vector< std::pair< Int_t, bool > > > &hitsd, Int_t nStripHits)
Double_t
bool SortHitsByDet(std::vector< std::vector< std::pair< Int_t, bool > > > &hitsd, Int_t nStripHits)
Double_t GetTrackCurvature(PndMCTrack *myTrack)
void FindHitsI(std::vector< PndTrackCand > &tofill, std::vector< std::vector< std::pair< Int_t, bool > > > &hitsd, Int_t nStripHits)
bool SortHitsByZ(std::vector< std::vector< std::pair< Int_t, bool > > > &hitsd, Int_t nStripHits)
PndStraightLineTrackFinderTask(Int_t inFinderMode=0, TString hitBranch="LMDHitsStrip", TString clusterBranch="LMDStripClusterCand", TString digiBranch="LMDStripDigis", Int_t innSensPP=8)