28-mar-2007 NvE Explicitly included TMath.h in IceChi2.h and IcePandel.h due to a
[u/mrichter/AliRoot.git] / RALICE / icepack / IceChi2.h
1 #ifndef IceChi2_h
2 #define IceChi2_h
3
4 // Copyright(c) 2003, IceCube Experiment at the South Pole, All rights reserved.
5 // See cxx source for full Copyright notice.
6
7 // $Id$
8
9 #include "TROOT.h"
10 #include "TTask.h"
11 #include "TString.h"
12 #include "TObjString.h"
13 #include "TFitter.h"
14 #include "TMath.h"
15 #include "Math/SpecFuncMathMore.h"
16
17 #include "AliJob.h"
18 #include "AliSample.h"
19 #include "IceEvent.h"
20 #include "IceGOM.h"
21
22 class IceChi2 : public TTask
23 {
24  public :
25   IceChi2(const char* name="",const char* title=""); // Constructor
26   virtual ~IceChi2();                                // Destructor
27   virtual void Exec(Option_t* opt);                  // Perform the fitting procedure
28   void SetPrintLevel(Int_t level);                   // Set the fitter (Minuit) printlevel
29   void UseTracks(TString classname,Int_t n=-1);      // Specify first guess tracks to be used
30   void SelectHits(Int_t mode=1);                     // Specify which hits to be used
31   void SetVgroupUsage(Int_t flag); // (De)activate usage of distinct phase and group velocities
32   void SetTrackName(TString s);  // Set (alternative) name for the produced tracks
33   void SetCharge(Float_t charge);// Set user defined charge for the produced tracks
34   void SetPenalty(Float_t val);  // Set psi penalty value (dB) for extreme distance and/or time values
35   Double_t GetPsi(AliTrack* t);  // Provide Bayesian psi value for a track w.r.t. CPandel PDF
36   void FitFCN(Int_t&,Double_t*,Double_t&,Double_t*,Int_t); // The minimisation FCN
37
38  protected :
39   Int_t fFirst;         // Flag to denote first invokation of the processor
40   Int_t fPrint;         // Flag to denote the fitter (Minuit) printlevel
41   Int_t fSelhits;       // Flag to denote which hits to be used
42   Int_t fVgroup;        // Flag to indicate usage of distinct phase and group velocities
43   IceEvent* fEvt;       // Pointer to the current event structure
44   TObjArray* fUseNames; // The first guess classnames to be used 
45   TArrayI* fUseNtk;     // The max. numbers of the various first guess tracks to be used
46   TObjArray* fHits;     // The various hits to be used in the fitting process 
47   TFitter* fFitter;     // Pointer to the minimisation processor
48   TString fTrackname;   // The name identifier for the produced tracks
49   Float_t fCharge;      // User defined charge of the produced tracks
50   Float_t fPenalty;     // User defined psi penalty value (dB) for extreme distance and/or time values
51   AliTrack* fTkfit;     // Pointer to the produced fitted track
52   AliSignal* fFitstats; // The fit details of the produced fitted track
53   AliSample fPsistats;  // Statistics of the Bayesian psi value for the best fitted track
54
55  ClassDef(IceChi2,2) // TTask derived class to perform Chi-squared track fitting
56 };
57 #endif