ROOT logo
#ifndef ALITOFRESPONSEPARAMS_H
#define ALITOFRESPONSEPARAMS_H

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

// *
// *
// *
// * this class defines the TOF object to be stored
// * in OCDB in order to have TOF response correction
// * and actual resolution
// * 
// *
// *
// *

class TGraph;

#include "TObject.h"
#include "AliPID.h"

class AliTOFResponseParams :
public TObject
{

 public:

  AliTOFResponseParams(); // default constructor
  AliTOFResponseParams(Int_t *nPoints); // standard constructor
  virtual ~AliTOFResponseParams(); // default destructor
  AliTOFResponseParams(const AliTOFResponseParams &source); // copy constructor
  AliTOFResponseParams &operator=(const AliTOFResponseParams &source); // operator=

  Int_t GetNPoints(Int_t ipart) const {return ipart < AliPID::kSPECIES ? fNPoints[ipart] : 0;}; // getter
  Double_t GetP(Int_t ipart, Int_t ipoint) const {return ipart < AliPID::kSPECIES && ipoint < fNPoints[ipart] ? fP[ipart][ipoint] : 0.;}; // getter
  Double_t GetTExpCorr(Int_t ipart, Int_t ipoint) const {return ipart < AliPID::kSPECIES && ipoint < fNPoints[ipart] ? fTExpCorr[ipart][ipoint] : 0.;}; // getter

  void SetP(Int_t ipart, Double_t *value) {if (ipart < AliPID::kSPECIES) for (Int_t ipoint = 0; ipoint < fNPoints[ipart]; ipoint++) fP[ipart][ipoint] = value[ipoint];}; // setter
  void SetTExpCorr(Int_t ipart, Double_t *value) {if (ipart < AliPID::kSPECIES) for (Int_t ipoint = 0; ipoint < fNPoints[ipart]; ipoint++) fTExpCorr[ipart][ipoint] = value[ipoint];}; // setter

  Double_t EvalTExpCorr(Int_t ipart, Double_t p); // eval corr
  TGraph *DrawGraph(Int_t ipart, Option_t* option = ""); // draw

 private:

  static const Int_t fgkMaxPoints = 20; // max number of points
  Int_t fNPoints[AliPID::kSPECIES]; // number of points
  Double_t fP[AliPID::kSPECIES][fgkMaxPoints]; // average momentum (GeV/c)
  Double_t fTExpCorr[AliPID::kSPECIES][fgkMaxPoints]; // expected time correction (ps)

  ClassDef(AliTOFResponseParams, 1);
};

#endif /* ALITOFRESPONSEPARAMS_H */
 AliTOFResponseParams.h:1
 AliTOFResponseParams.h:2
 AliTOFResponseParams.h:3
 AliTOFResponseParams.h:4
 AliTOFResponseParams.h:5
 AliTOFResponseParams.h:6
 AliTOFResponseParams.h:7
 AliTOFResponseParams.h:8
 AliTOFResponseParams.h:9
 AliTOFResponseParams.h:10
 AliTOFResponseParams.h:11
 AliTOFResponseParams.h:12
 AliTOFResponseParams.h:13
 AliTOFResponseParams.h:14
 AliTOFResponseParams.h:15
 AliTOFResponseParams.h:16
 AliTOFResponseParams.h:17
 AliTOFResponseParams.h:18
 AliTOFResponseParams.h:19
 AliTOFResponseParams.h:20
 AliTOFResponseParams.h:21
 AliTOFResponseParams.h:22
 AliTOFResponseParams.h:23
 AliTOFResponseParams.h:24
 AliTOFResponseParams.h:25
 AliTOFResponseParams.h:26
 AliTOFResponseParams.h:27
 AliTOFResponseParams.h:28
 AliTOFResponseParams.h:29
 AliTOFResponseParams.h:30
 AliTOFResponseParams.h:31
 AliTOFResponseParams.h:32
 AliTOFResponseParams.h:33
 AliTOFResponseParams.h:34
 AliTOFResponseParams.h:35
 AliTOFResponseParams.h:36
 AliTOFResponseParams.h:37
 AliTOFResponseParams.h:38
 AliTOFResponseParams.h:39
 AliTOFResponseParams.h:40
 AliTOFResponseParams.h:41
 AliTOFResponseParams.h:42
 AliTOFResponseParams.h:43
 AliTOFResponseParams.h:44
 AliTOFResponseParams.h:45
 AliTOFResponseParams.h:46
 AliTOFResponseParams.h:47
 AliTOFResponseParams.h:48
 AliTOFResponseParams.h:49
 AliTOFResponseParams.h:50
 AliTOFResponseParams.h:51
 AliTOFResponseParams.h:52
 AliTOFResponseParams.h:53
 AliTOFResponseParams.h:54
 AliTOFResponseParams.h:55
 AliTOFResponseParams.h:56