Update of the TRD PID Response:
[u/mrichter/AliRoot.git] / STEER / AliTRDPIDReference.h
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          *
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15 //
16 // Container for the reference distributions for the TRD PID
17 // Provides storing of the references together with the mometum steps
18 // they were taken
19 // More information can be found in the implementation file
20 //
21 #ifndef ALITRDPIDREFERENCE_H
22 #define ALITRDPIDREFERENCE_H
23
24 #include <TNamed.h>
25 #include <TArrayF.h>
26 #include "AliPID.h"
27
28 class TObjArray;
29
30 class AliTRDPIDReference : public TNamed{
31 public:
32         AliTRDPIDReference();
33         AliTRDPIDReference(const Char_t *name);
34         AliTRDPIDReference(const AliTRDPIDReference &ref);
35         AliTRDPIDReference &operator=(const AliTRDPIDReference &ref);
36         ~AliTRDPIDReference();
37
38         void SetNumberOfMomentumBins(Int_t nBins, Float_t *momenta);
39         void AddReference(TObject *histo, AliPID::EParticleType spec, Int_t pbin);
40
41         // Derive reference
42         TObject *GetLowerReference(AliPID::EParticleType spec, Float_t p, Float_t &pLower) const;
43         TObject *GetUpperReference(AliPID::EParticleType spec, Float_t p, Float_t &pUpper) const;
44
45         Int_t GetNumberOfMomentumBins() const { return fMomentumBins.GetSize(); }
46         void Print(const Option_t *) const;
47 private:
48         enum{
49                 kIsOwner = BIT(14)
50         };
51         TObjArray *fRefContainer;     // Histogram container
52         TArrayF fMomentumBins;        // Momentum Bins
53
54         ClassDef(AliTRDPIDReference, 1)         // Container for TRD references
55 };
56 #endif
57