PandaRoot
PndLmdIdealFitTask.h
Go to the documentation of this file.
1 //****************************************************************************
2 //* This file is part of PandaRoot. *
3 //* *
4 //* PandaRoot is distributed under the terms of the *
5 //* GNU General Public License (GPL) version 3, *
6 //* copied verbatim in the file "LICENSE". *
7 //* *
8 //* Copyright (C) 2006 - 2024 FAIR GmbH and copyright holders of PandaRoot *
9 //* The copyright holders are listed in the file "COPYRIGHTHOLDERS". *
10 //* The authors are listed in the file "AUTHORS". *
11 //****************************************************************************
12 
13 //-----------------------------------------------------------
14 //
15 // Description:
16 // 3D Straight Line fitter
17 //
18 // Author List:
19 // Mathias Michel
20 //
21 //-----------------------------------------------------------
22 
23 #ifndef PNDLMDIDEALFITTASK_H
24 #define PNDLMDIDEALFITTASK_H
25 
26 // Base Class Headers ----------------
27 #include <TGraph2D.h>
28 #include <TGraph2DErrors.h>
29 #include "FairTask.h"
30 
31 // Collaborating Class Headers -------
32 #include <map>
33 #include "TMatrixTSym.h"
34 #include "TString.h"
35 #include "TVector3.h"
36 
37 // Collaborating Class Declarations --
38 class TClonesArray;
39 class TGeoManager;
40 
41 // const Double_t fz0 = 1099.; //z-coordinate of first LMD plane
42 // void SumDistance2(int &, double *, double & sum, double * par, int ); //for
43 // Fitter
44 // void LocalFCN(int &, double *, double & sum, double * par, int ); //for
45 // Fitter in local coordinates
46 // minimization distance in 3D
47 // double distance2(double x,double y,double z, double *p);
48 // minimization distance in 2D in local coordinates
49 // double distance_l(double x, double y, double z, double errx, double erry,
50 // double errz, double *p);//in local coordinates
51 // minimization perpendicular distance between point and 3D line
52 // double distance_perp(double x,double y,double z, double errx,double
53 // erry,double errz, double *p);
54 
55 class PndLmdIdealFitTask : public FairTask {
56  public:
57  // Constructors/Destructors ---------
59 #ifndef __CINT__
60  PndLmdIdealFitTask(const PndLmdIdealFitTask &) = delete;
62 #endif
63  virtual ~PndLmdIdealFitTask();
64 
65  virtual InitStatus Init();
66 
67  virtual void Exec(Option_t *opt);
68 
69  protected:
70  static Double_t fz0; // z-coordinate of first LMD plane
71 
72  // Input Data------------
73  TClonesArray *fTCandArray;
74  TClonesArray *fRecoArray;
75  TClonesArray *fMCPointArray;
76  TClonesArray *fDigiArray;
77  TClonesArray *fClustArray;
79  TString fRecoBranchName;
81  TString fDigiBranchName;
83 
84  // Output Data----------
85  TClonesArray *fTrackArray;
86 
87  // Bool_t firstIt;
88 
89  Int_t fTrackcount;
90 
91  Int_t fEvent;
92 
94 };
95 
96 #endif
TClonesArray * fTCandArray
PndLmdIdealFitTask & operator=(const PndLmdIdealFitTask &)=delete
TClonesArray * fTrackArray
TClonesArray * fRecoArray
virtual void Exec(Option_t *opt)
virtual ~PndLmdIdealFitTask()
ClassDef(PndLmdIdealFitTask, 1)
virtual InitStatus Init()
TClonesArray * fMCPointArray
static Double_t fz0
TClonesArray * fClustArray
TClonesArray * fDigiArray