FairRoot/PandaRoot
PndLmdLineTask.h
Go to the documentation of this file.
1 //-----------------------------------------------------------
2 //
3 // Description:
4 // 3D Straight Line fitter
5 //
6 // Author List:
7 // Mathias Michel
8 //
9 //-----------------------------------------------------------
10 
11 #ifndef PNDLMDLINETASK_H
12 #define PNDLMDLINETASK_H
13 
14 // Base Class Headers ----------------
15 #include <TGraph2D.h>
16 #include <TGraph2DErrors.h>
17 #include "FairTask.h"
18 
19 // Collaborating Class Headers -------
20 #include <map>
21 #include "TMatrixDSym.h"
22 #include "TMatrixTSym.h"
23 #include "TString.h"
24 #include "TVector3.h"
25 // Collaborating Class Declarations --
26 class TClonesArray;
27 class TGeoManager;
28 
29 class PndLmdLineTask : public FairTask {
30  public:
31  // Constructors/Destructors ---------
32  PndLmdLineTask(TString hitBranch = "LMDHitsStrip");
33 #ifndef __CINT__
34  PndLmdLineTask(const PndLmdLineTask&) = delete;
35  PndLmdLineTask& operator=(const PndLmdLineTask&) = delete;
36 #endif
37  virtual ~PndLmdLineTask();
38 
39  virtual InitStatus Init();
40 
41  virtual void Exec(Option_t* opt);
42 
43  protected:
44  // static void SumDistance2(int &, double *, double & sum, double * par, int
45  // ); //for Fitter
46  // static void LocalFCN(int &, double *, double & sum, double * par, int );
47  // //for Fitter in local coordinates
48  /* //minimization distance in 3D */
49  // static double distance2(double x,double y,double z, double *p);
50  // minimization distance in 2D in local coordinates
51  // static double distance_l(double x, double y, double z, double errx, double
52  // erry, double errz, double *p);
53  // minimization perpendicular distance between point and 3D line
54  // static double distance_perp(double x,double y,double z, double errx,double
55  // erry,double errz, double *p);
56 
57  // Input Data------------
58  TClonesArray* fTCandArray;
59  TClonesArray* fRecoArray;
60  TClonesArray* fTruePointArray;
61 
65  // Output Data----------
66  TClonesArray* fTrackArray;
67 
68  // Bool_t firstIt;
69 
70  Int_t fTrackcount;
71 
72  Int_t fEvent;
73 
74  // Fitting ------------
75  // void line(double t, double *p, double &x, double &y, double &z);
76  double line3Dfit(Int_t nd, TGraph2DErrors* gr, Double_t* fitpar,
77  Double_t* fitparErr);
78  double line3Dfit(Int_t nd, TGraph2DErrors* gr, TVector3 posSeed,
79  TVector3 dirSeed, Double_t* fitpar, TMatrixDSym* covmatrix);
80  // double line3Dfit(Int_t nd, TGraph2DErrors* gr, TVector3 posSeed, TVector3
81  // dirSeed, Double_t* fitpar);
82 
84 };
85 
86 #endif
virtual void Exec(Option_t *opt)
PndLmdLineTask(TString hitBranch="LMDHitsStrip")
ClassDef(PndLmdLineTask, 1)
virtual InitStatus Init()
TClonesArray * fTrackArray
TClonesArray * fRecoArray
TString fTCandBranchName
Double_t
TString fTruePointBranch
TString fRecoBranchName
virtual ~PndLmdLineTask()
TClonesArray * fTruePointArray
TClonesArray * fTCandArray
double line3Dfit(Int_t nd, TGraph2DErrors *gr, Double_t *fitpar, Double_t *fitparErr)
PndLmdLineTask & operator=(const PndLmdLineTask &)=delete