FairRoot/PandaRoot
PndTrkLegendreNew.h
Go to the documentation of this file.
1 #ifndef PNDTRKLEGENDRENEW_H
2 #define PNDTRKLEGENDRENEW_H
3 
5 // fairroot
6 #include "FairTask.h"
7 // pandaroot
8 #include "PndTrack.h"
9 #include "PndMCTrack.h"
10 // stt
11 #include "PndGeoSttPar.h"
12 #include "PndSttHit.h"
13 #include "PndSttMapCreator.h"
14 // tracking
15 #include "PndTrkSttHitList.h"
16 #include "PndTrkSdsHitList.h"
17 #include "PndTrkCluster.h"
18 #include "PndTrkClusterList.h"
19 #include "PndTrkTrack.h"
20 #include "PndTrkConformalHitList.h"
21 #include "PndTrkFitter.h"
22 #include "PndTrkNeighboringMap.h"
23 
24 // ROOT
25 #include "TH2F.h"
26 #include "TCanvas.h"
27 
28 
29 #define MAXNOFHITS 1000 // CHECK
30 
31 class TClonesArray;
32 class TObjectArray;
35 class PndTrkLegendreNew : public FairTask {
36 
37  public:
38 
42 
43 
46 
47 
49  virtual InitStatus Init();
50 
51 
53  virtual void Exec(Option_t* opt);
54 
55  void SetParContainers();
56 
57 
58  void Initialize();
59  void Reset();
60 
61  inline void SwitchOnDisplay() { fDisplayOn = kTRUE; }
62  void DrawGeometry();
63  void DrawHits(PndTrkHitList *hitlist);
64  void DrawLists();
65  void DrawNeighborings();
67  void Refresh();
68  void RefreshConf();
69  void DrawGeometryConf(double x1, double x2, double y1, double y2);
70  void DrawConfHit(double x, double y, double r, int marker = 2);
71 
72  void LightCluster(PndTrkCluster *cluster);
73  void DrawLegendreHisto();
74 
76 
77  Int_t FillConformalHitList(PndTrkCluster *cluster);
78  void FillLegendreHisto(PndTrkCluster *cluster);
79  void ComputeTraAndRot(PndTrkHit *hit, Double_t &delta, Double_t trasl[2]);
86 
87 
88  void RePrepareLegendre(PndTrkCluster *cluster);
89  Int_t ApplyLegendre(PndTrkCluster *cluster, double &theta_max, double &r_max);
90  Int_t ExtractLegendre(Int_t mode, double &theta_max, double &r_max);
91 
92  void FromConformalToRealTrack(double fitm, double fitp, double &x0, double &y0, double &R);
93  void FromRealToConformalTrack(double x0, double y0, double R, double &fitm, double &fitp);
94 
95  void SearchSecondaryTracks() { fSecondary = kTRUE; }
96 
99 
100  Int_t CountTracksInCluster(PndTrkCluster *cluster);
101  Int_t CountTracksInSkewSector(PndTrkCluster *cluster);
102  Int_t CountTracksInCluster(PndTrkCluster *cluster, Int_t where);
103 
104  Int_t ClusterToConformal(PndTrkCluster *cluster);
107 
108  void AnalyticalFit(PndTrkCluster *cluster, double xc, double yc, double R, double &fitm, double &fitq);
109  void AnalyticalFit2(PndTrkCluster *cluster, double fitm, double fitp, double &fitm2, double &fip2);
110  void IntersectionFinder(PndTrkHit *hit, double xc, double yc, double R);
111  void IntersectionFinder(PndTrkConformalHit *chit, double fitm, double fitp);
112 
113  void FillHitMap();
114 
115 
116 
117 
118  private:
119 
120 
122 
123 
125  TClonesArray* fSttPointArray;
127  TClonesArray* fSttHitArray;
128 
129 
131  TClonesArray* fMvdPixelHitArray;
133  TClonesArray* fMvdStripHitArray;
134 
135  TClonesArray* fTrackArray, * fTrackCandArray;
136 
137  TClonesArray* fTubeArray;
138 
139 
140  PndGeoSttPar *fSttParameters; // CHECK added
141  char fSttBranch[200],
142  fMvdPixelBranch[200],
143  fMvdStripBranch[200];
144 
146 
147  Int_t fEventCounter; // , fVerbose;
148 
149 
154 
155 
157  // TSpectrum2 *s;
160 
161 
162 
166 
168 
170 
171  std::vector< std::pair<double, double> > fFoundPeaks;
172  double fTime;
173  TStopwatch *fTimer;
175 
178 
179  // display
181  TH2F *hxy, *hxz, *hzphi;
182  TCanvas *display;
183  TH2F *huv;
184 
185 
186 
188 
189 };
190 
191 #endif
PndTrkSdsHitList * mvdstrhitlist
void AnalyticalFit(PndTrkCluster *cluster, double xc, double yc, double R, double &fitm, double &fitq)
void FillLegendreHisto(PndTrkCluster *cluster)
std::vector< std::pair< double, double > > fFoundPeaks
Double_t x0
Definition: checkhelixhit.C:70
void DrawConfHit(double x, double y, double r, int marker=2)
ClassDef(PndTrkLegendreNew, 1)
void DrawNeighboringsToHit(PndTrkHit *hit)
PndTrkFitter * fFitter
Int_t FillConformalHitList(PndTrkCluster *cluster)
double r
Definition: RiemannTest.C:14
void DrawHits(PndTrkHitList *hitlist)
Int_t CountTracksInCluster(PndTrkCluster *cluster)
PndTrkTrack * LegendreFit(PndTrkCluster *cluster)
PndTrkSttHitList * stthitlist
PndTrkNeighboringMap * fHitMap
void FromConformalToRealTrack(double fitm, double fitp, double &x0, double &y0, double &R)
#define verbose
TClonesArray * fSttPointArray
PndTrkSdsHitList * mvdpixhitlist
void IntersectionFinder(PndTrkHit *hit, double xc, double yc, double R)
PndTrkClusterList CreateFullClusterization2()
Double_t fMvdStr_RealDistLimit
PndTrkHit * FindMvdPixelReferenceHit()
void LightCluster(PndTrkCluster *cluster)
Double_t fSttToMvdStripDistance
PndTrkConformalHitList * conformalhitlist
Int_t ClusterToConformal(PndTrkCluster *cluster)
PndGeoSttPar * fSttParameters
virtual InitStatus Init()
PndTrkLegendreTransform * legendre
TClonesArray * fTrackArray
void ComputeTraAndRot(PndTrkHit *hit, Double_t &delta, Double_t trasl[2])
void FromRealToConformalTrack(double x0, double y0, double R, double &fitm, double &fitp)
int isec
Definition: f_Init.h:19
Int_t mode
Definition: autocutx.C:47
TClonesArray * fSttHitArray
Double_t fMvdStr_ConfDistLimit
PndTrkClusterList CreateFullClusterization()
PndTrkConformalTransform * conform
TClonesArray * fMvdPixelHitArray
Int_t CountTracksInSkewSector(PndTrkCluster *cluster)
Double_t
Double_t y0
Definition: checkhelixhit.C:71
PndSttMapCreator * fMapper
PndMCTrack * track
Definition: anaLmdCluster.C:89
Int_t ExtractLegendre(Int_t mode, double &theta_max, double &r_max)
TClonesArray * fTubeArray
TClonesArray * fTrackCandArray
Double_t fMvdPix_RealDistLimit
TClonesArray * fMvdStripHitArray
void DrawGeometryConf(double x1, double x2, double y1, double y2)
PndTrkHit * FindReferenceHit()
Double_t x
virtual void Exec(Option_t *opt)
void AnalyticalFit2(PndTrkCluster *cluster, double fitm, double fitp, double &fitm2, double &fip2)
Double_t fMvdPix_ConfDistLimit
PndSdsMCPoint * hit
Definition: anasim.C:70
Double_t y
void ComputePlaneExtremities(PndTrkCluster *cluster)
PndTrkHit * FindMvdReferenceHit()
Double_t R
Definition: checkhelixhit.C:61
PndTrkHit * FindSttReferenceHit(int isec=-1)
PndTrkHit * FindMvdStripReferenceHit()
void RePrepareLegendre(PndTrkCluster *cluster)
Int_t ApplyLegendre(PndTrkCluster *cluster, double &theta_max, double &r_max)
PndTrkCluster * CreateClusterAroundTrack(PndTrkTrack *track)