df7774f12def9c41224000f50ad885b557e662d0
[u/mrichter/AliRoot.git] / RALICE / icepack / IcePandel.h
1 #ifndef IcePandel_h
2 #define IcePandel_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 "Math/SpecFuncMathMore.h"
15
16 #include "AliJob.h"
17 #include "AliSample.h"
18 #include "IceEvent.h"
19 #include "IceGOM.h"
20
21 class IcePandel : public TTask
22 {
23  public :
24   IcePandel(const char* name="",const char* title=""); // Constructor
25   virtual ~IcePandel();                                // Destructor
26   virtual void Exec(Option_t* opt);                    // Perform the fitting procedure
27   void SetPrintLevel(Int_t level);                     // Set the fitter (Minuit) printlevel
28   void UseTracks(TString classname,Int_t n=-1);        // Specify first guess tracks to be used
29   void SelectHits(Int_t mode=1);                       // Specify which hits to be used
30   void SetVgroupUsage(Int_t flag); // (De)activate usage of distinct phase and group velocities
31   void SetTrackName(TString s);  // Set (alternative) name for the produced tracks
32   void SetCharge(Float_t charge);// Set user defined charge for the produced tracks
33   void SetPenalty(Float_t val);  // Set psi penalty value in dB for extreme distance and/or time values
34   void FitFCN(Int_t&,Double_t*,Double_t&,Double_t*,Int_t); // The minimisation FCN
35
36  protected :
37   Int_t fFirst;         // Flag to denote first invokation of the processor
38   Int_t fPrint;         // Flag to denote the fitter (Minuit) printlevel
39   Int_t fSelhits;       // Flag to denote which hits to be used
40   Int_t fVgroup;        // Flag to indicate usage of distinct phase and group velocities
41   IceEvent* fEvt;       // Pointer to the current event structure
42   TObjArray* fUseNames; // The first guess classnames to be used 
43   TArrayI* fUseNtk;     // The max. numbers of the various first guess tracks to be used
44   TObjArray* fHits;     // The various hits to be used in the fitting process 
45   TFitter* fFitter;     // Pointer to the minimisation processor
46   TString fTrackname;   // The name identifier for the produced tracks
47   Float_t fCharge;      // User defined charge of the produced tracks
48   Float_t fPenalty;     // User defined psi penalty value (dB) for extreme distance and/or time values
49   AliTrack* fTkfit;     // Pointer to the produced fitted track
50   AliSignal* fFitstats; // The fit details of the produced fitted track
51   AliSample fPsistats;  // Statistics of the Bayesian psi value for the best fitted track
52
53  ClassDef(IcePandel,6) // TTask derived class to perform Convoluted Pandel fitting
54 };
55 #endif