]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliPIDCombined.h
Update MC pt shape syst
[u/mrichter/AliRoot.git] / STEER / AliPIDCombined.h
1 #ifndef ALIPIDCOMBINED_H\r
2 #define ALIPIDCOMBINED_H\r
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *\r
4  * See cxx source for full Copyright notice                               */\r
5 \r
6 //---------------------------------------------------------------//\r
7 //        Base class for combining PID response of               //\r
8 //        of different detectors                                 //\r
9 //        and compute Bayesian probabilities                     //\r
10 //                                                               //\r
11 //   Origin: Pietro Antonioli, INFN-BO, pietro.antonioli@cern.ch //\r
12 //                                                               //\r
13 //---------------------------------------------------------------//\r
14 \r
15 \r
16 \r
17 #include <TNamed.h>\r
18 #include <AliPID.h>\r
19 #include <AliPIDResponse.h>\r
20 #include <TH1F.h>\r
21 \r
22 //class TH1;\r
23 class AliPIDResponse;\r
24 \r
25 class AliPIDCombined : public TNamed {\r
26 public:\r
27   AliPIDCombined();\r
28   AliPIDCombined(const TString& name, const TString& title);\r
29   virtual ~AliPIDCombined();\r
30 \r
31   void SetDetectorMask(Int_t mask) {fDetectorMask=mask;}\r
32   Int_t GetDetectorMask() const {return fDetectorMask;}\r
33   void SetRejectMismatchMask(Int_t mask) {fRejectMismatchMask=mask;}\r
34   Int_t GetRejectMismatchMask() const {return fRejectMismatchMask;}\r
35   void SetEnablePriors(Bool_t flag) {fEnablePriors=flag;}\r
36   Bool_t GetEnablePriors() const {return fEnablePriors;}\r
37   void SetPriorDistribution(AliPID::EParticleType type,TH1F *prior);\r
38   //  const TH1* GetPriorDistribution(AliPID::EParticleType type) const {return (TH1*)fPriorsDistributions[type];}\r
39   TH1* GetPriorDistribution(AliPID::EParticleType type)  const {return (TH1*)fPriorsDistributions[type];}\r
40         \r
41   UInt_t ComputeProbabilities(const AliVTrack *track, const AliPIDResponse *response, Double_t* bayesProbabilities) const;\r
42   void SetSelectedSpecies(Int_t selectedSpecies) {fSelectedSpecies = selectedSpecies;}\r
43   Int_t GetSelectedSpecies() const {return fSelectedSpecies;}\r
44 \r
45 protected:\r
46   void GetPriors(const AliVTrack *track,Double_t* priors) const;\r
47   void ComputeBayesProbabilities(Double_t* bayesProbabilities,const Double_t* probDensity, const Double_t* priors) const;\r
48   void SetCombinedStatus(const AliPIDResponse::EDetPidStatus status,UInt_t *mask, const AliPIDResponse::EDetCode bit, Double_t* p) const;\r
49 \r
50 private:\r
51   AliPIDCombined(const AliPIDCombined&);\r
52   AliPIDCombined &operator=(const AliPIDCombined&);\r
53 \r
54   Int_t fDetectorMask;       // Detectors included in combined pid\r
55   Int_t fRejectMismatchMask; // Detectors set return flat prob. if mismatch detected \r
56   Bool_t fEnablePriors;      // Enable bayesian PID (if kFALSE priors set flat)\r
57   Int_t fSelectedSpecies;    // Number of selected species to study\r
58   TH1F *fPriorsDistributions[AliPID::kSPECIES+AliPID::kSPECIESLN]; // priors\r
59 \r
60   ClassDef(AliPIDCombined,1);\r
61 };\r
62 \r
63 #endif\r