ROOT logo
#ifndef ALITOFT0V1_H
#define ALITOFT0V1_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice                               */

//----------------------------------------------------------------------------//
//                                                                            //
//   Description: class to performe an event time measurment with TOF.        //
//                                                                            //
//----------------------------------------------------------------------------//

#include "TObject.h"

#include "TObjArray.h"

class AliESDtrack;
class AliESDEvent;
class AliESDpid;

class TObjArray;

class AliTOFT0v1: public TObject {
public:
  
  AliTOFT0v1(AliESDpid *extPID=NULL); // default constructor
  AliTOFT0v1(AliESDEvent *event,AliESDpid *extPID=NULL); // overloaded constructor
  virtual ~AliTOFT0v1() ; // dtor
 
  Double_t* DefineT0(Option_t *option,Float_t pMinCut=3,Float_t pMaxCut=5); 
    
  void          SetMomBounds(Float_t pLow, Float_t pUp) { fLowerMomBound=pLow; fUpperMomBound=pUp;} // momenta are expressed in [GeV/c]
  void          SetTimeCorr(Float_t timecorr) {fTimeCorr=timecorr;} //in ns!!!
  Float_t       GetMomError(Int_t index, Float_t mom, Float_t texp) const;
  Double_t GetResult(Int_t i){if(i < 6) return fT0SigmaT0def[i]; else return -1.;};
/*   void  Print(Option_t* option) const ; */

  void   SetTimeResolution(Float_t /* timeres */){}; // obsolete
  void SetOptimization(Bool_t flag=kFALSE){fOptFlag=flag;};
  void Init(AliESDEvent *event); // init

 private:

  Float_t ToCalculatePower(Float_t base, Int_t exponent) const ;
  Int_t   ToCalculatePower(Int_t base, Int_t exponent) const ;

  AliTOFT0v1(const AliTOFT0v1 &);
  AliTOFT0v1 & operator=(const AliTOFT0v1 &) ;

  Bool_t AcceptTrack(AliESDtrack *track); /* accept track */
  Float_t GetSigmaToVertex(AliESDtrack *track) const; /* get sigma to vertex */
  Bool_t CheckTPCMatching(AliESDtrack *track,Int_t imass) const;

  Float_t fLowerMomBound;   // momentum lower bound for selected primary tracks   
  Float_t fUpperMomBound;   // momentum upper bound for selected primary tracks 
  Float_t fTimeCorr;  // global time resolution used to calculate T0
  AliESDEvent* fEvent;      //evento per il quale si vuole calcolare il T0
  Double_t fT0SigmaT0def[6]; // array with the event information ([0]=event time -- [1] = sigma -- [2] = tracks on the TOF -- [3] = tracks used for the event time)

  Int_t fLookupPowerThree[15]; //! lookup table for power 3 to speed up the code
  
  AliESDpid *fPIDesd; // class with the detector response

  TObjArray *fTracks;   //! array of tracks
  TObjArray *fGTracks;  //! array of good tracks
  TObjArray *fTracksT0; //! array of tracks usefull for T0 estimate
  Bool_t fOptFlag;    // use optimized code

  ClassDef(AliTOFT0v1,5);  // Calculate the time zero using TOF detector */
  
};

#endif 
 AliTOFT0v1.h:1
 AliTOFT0v1.h:2
 AliTOFT0v1.h:3
 AliTOFT0v1.h:4
 AliTOFT0v1.h:5
 AliTOFT0v1.h:6
 AliTOFT0v1.h:7
 AliTOFT0v1.h:8
 AliTOFT0v1.h:9
 AliTOFT0v1.h:10
 AliTOFT0v1.h:11
 AliTOFT0v1.h:12
 AliTOFT0v1.h:13
 AliTOFT0v1.h:14
 AliTOFT0v1.h:15
 AliTOFT0v1.h:16
 AliTOFT0v1.h:17
 AliTOFT0v1.h:18
 AliTOFT0v1.h:19
 AliTOFT0v1.h:20
 AliTOFT0v1.h:21
 AliTOFT0v1.h:22
 AliTOFT0v1.h:23
 AliTOFT0v1.h:24
 AliTOFT0v1.h:25
 AliTOFT0v1.h:26
 AliTOFT0v1.h:27
 AliTOFT0v1.h:28
 AliTOFT0v1.h:29
 AliTOFT0v1.h:30
 AliTOFT0v1.h:31
 AliTOFT0v1.h:32
 AliTOFT0v1.h:33
 AliTOFT0v1.h:34
 AliTOFT0v1.h:35
 AliTOFT0v1.h:36
 AliTOFT0v1.h:37
 AliTOFT0v1.h:38
 AliTOFT0v1.h:39
 AliTOFT0v1.h:40
 AliTOFT0v1.h:41
 AliTOFT0v1.h:42
 AliTOFT0v1.h:43
 AliTOFT0v1.h:44
 AliTOFT0v1.h:45
 AliTOFT0v1.h:46
 AliTOFT0v1.h:47
 AliTOFT0v1.h:48
 AliTOFT0v1.h:49
 AliTOFT0v1.h:50
 AliTOFT0v1.h:51
 AliTOFT0v1.h:52
 AliTOFT0v1.h:53
 AliTOFT0v1.h:54
 AliTOFT0v1.h:55
 AliTOFT0v1.h:56
 AliTOFT0v1.h:57
 AliTOFT0v1.h:58
 AliTOFT0v1.h:59
 AliTOFT0v1.h:60
 AliTOFT0v1.h:61
 AliTOFT0v1.h:62
 AliTOFT0v1.h:63
 AliTOFT0v1.h:64
 AliTOFT0v1.h:65
 AliTOFT0v1.h:66
 AliTOFT0v1.h:67
 AliTOFT0v1.h:68
 AliTOFT0v1.h:69
 AliTOFT0v1.h:70
 AliTOFT0v1.h:71
 AliTOFT0v1.h:72
 AliTOFT0v1.h:73