]> git.uio.no Git - u/mrichter/AliRoot.git/blob - TOF/AliTOFT0maker.h
updates to TOF-T0 algorithm
[u/mrichter/AliRoot.git] / TOF / AliTOFT0maker.h
1 #ifndef ALITOFT0MAKER_H
2 #define ALITOFT0MAKER_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 /* $Id: AliTOFT0maker.h,v 1.8 2010/01/19 16:32:20 noferini Exp $ */
7
8 ///////////////////////////////////////////////
9 //                                           //
10 //  Manager class for time zero evaluation   //
11 //  with TOF informations                    //
12 //                                           //
13 ///////////////////////////////////////////////
14
15
16 #include "TObject.h"
17
18 class TH1F;
19 class AliESDEvent;
20
21 class AliESDpid;
22 class AliTOFT0v1;
23 class AliTOFcalib;
24
25 class AliTOFT0maker : public TObject {
26 public:
27   
28   AliTOFT0maker() ; // default constructor
29   AliTOFT0maker(AliESDpid *externalPID, AliTOFcalib *tofCalib); // overloaded constructor
30   virtual ~AliTOFT0maker() ; // dtor
31   
32   // return (fCalculated[0]=event time -- fCalculated[1]=sigma event time in ps -- fCalculated[2]=mean event time for each fill -- fCalculated[3]=number of tracks at the TOF level) if you can subtruct the event time; return NULL if there is no event time
33   Double_t *ComputeT0TOF(AliESDEvent *esd,Double_t t0time=0.,Double_t t0sigma=1000.); // t0time and t0sigma in ps
34   void ApplyT0TOF(AliESDEvent *esd);
35   Float_t GetExpectedSigma(Float_t mom, Float_t tof, Float_t mass);
36   Double_t  *GetT0p(Float_t p);
37   
38   void      SetTimeResolution(Double_t timeresolution){fTimeResolution=timeresolution;};// TOF timeresolution in [ps]
39   Double_t  GetTimeResolution() const {return fTimeResolution;} // Get TOF Time Resolution
40   void SetT0FillWidth(Float_t width){fT0width = width;}; // in ps
41   
42   void LoadChannelMap(char *filename="$ALICE_ROOT/TOF/enableMap.104892.root"); //load the enable channel map
43   void ApplyMask(AliESDEvent * const esd); // Apply the channel mask
44   
45   void SetNoTOFT0(Bool_t status=kTRUE){fNoTOFT0=status;}; // disable the TOF T0 info
46   void SetMaskOffChannel(Bool_t status=kTRUE){fKmask=status;}; // switch for the map off channel
47   
48   Float_t  TuneForMC(AliESDEvent *esd); // set enabled channeld, add a smeared t0, add a TOF smearing, return true(smeared) T0 event
49   
50   void SetT0spread(Float_t t0spread){fT0spreadExt=t0spread;};
51   void SetT0fill(Float_t t0fill){fT0fillExt=t0fill;};
52   
53  private:
54   
55   AliTOFT0maker(const AliTOFT0maker &);
56   AliTOFT0maker & operator=(const AliTOFT0maker &);
57   
58   void SetTOFResponse();
59
60   AliTOFT0v1 *fT0TOF; // T0-TOF
61   AliESDpid *fPIDesd; // PID esd
62   Bool_t fExternalPIDFlag; // external PID flag
63   AliTOFcalib *fTOFcalib; // TOF calibration
64
65   Bool_t fNoTOFT0;   // swithc to avoid T0-TOF is used
66
67   Int_t fNmomBins;
68
69   Double_t fCalculated[10]; // contains the parameters with the event time
70
71   Double_t fT0cur[2]; // current T0 and T0 sigma
72  
73   Double_t fTimeResolution;  // global time resolution used to calculate T0
74   
75   Float_t fT0sigma; // T0 resolution
76   
77   TH1F *fHmapChannel; // histo with the channel map
78   Bool_t fKmask; // switch if you want apply a channel filter
79   
80   Float_t fT0width; // T0 FILL width
81
82   Float_t fT0spreadExt;
83   Float_t fT0fillExt; // t0spread if set 
84
85   ClassDef(AliTOFT0maker,2);  // Calculate the time zero using TOF detector */
86   
87 };
88
89 #endif // ALITOFT0MAKER_H