]>
Commit | Line | Data |
---|---|---|
fd21ec8d | 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 | |
80f28562 | 21 | #include <TH2F.h>\r |
fd21ec8d | 22 | \r |
23 | //class TH1;\r | |
24 | class AliPIDResponse;\r | |
25 | \r | |
26 | class AliPIDCombined : public TNamed {\r | |
27 | public:\r | |
28 | AliPIDCombined();\r | |
29 | AliPIDCombined(const TString& name, const TString& title);\r | |
30 | virtual ~AliPIDCombined();\r | |
31 | \r | |
32 | void SetDetectorMask(Int_t mask) {fDetectorMask=mask;}\r | |
33 | Int_t GetDetectorMask() const {return fDetectorMask;}\r | |
34 | void SetRejectMismatchMask(Int_t mask) {fRejectMismatchMask=mask;}\r | |
35 | Int_t GetRejectMismatchMask() const {return fRejectMismatchMask;}\r | |
36 | void SetEnablePriors(Bool_t flag) {fEnablePriors=flag;}\r | |
37 | Bool_t GetEnablePriors() const {return fEnablePriors;}\r | |
38 | void SetPriorDistribution(AliPID::EParticleType type,TH1F *prior);\r | |
39 | // const TH1* GetPriorDistribution(AliPID::EParticleType type) const {return (TH1*)fPriorsDistributions[type];}\r | |
40 | TH1* GetPriorDistribution(AliPID::EParticleType type) const {return (TH1*)fPriorsDistributions[type];}\r | |
80f28562 | 41 | \r |
42 | void GetPriors(const AliVTrack *track,Double_t* p,const AliPIDResponse *response,UInt_t detUsed) const;\r | |
43 | \r | |
44 | void SetDefaultTPCPriors();\r | |
fd21ec8d | 45 | \r |
46 | UInt_t ComputeProbabilities(const AliVTrack *track, const AliPIDResponse *response, Double_t* bayesProbabilities) const;\r | |
47 | void SetSelectedSpecies(Int_t selectedSpecies) {fSelectedSpecies = selectedSpecies;}\r | |
48 | Int_t GetSelectedSpecies() const {return fSelectedSpecies;}\r | |
49 | \r | |
50 | protected:\r | |
80f28562 | 51 | void GetPriors(const AliVTrack *track,Double_t* priors,Float_t centrality=-1) const;\r |
fd21ec8d | 52 | void ComputeBayesProbabilities(Double_t* bayesProbabilities,const Double_t* probDensity, const Double_t* priors) const;\r |
3ed61c90 | 53 | void SetCombinedStatus(const AliPIDResponse::EDetPidStatus status,UInt_t *mask, const AliPIDResponse::EDetCode bit) const;\r |
54 | void SetCombinedStatus(const AliPIDResponse::EDetPidStatus status,UInt_t *mask, const AliPIDResponse::EDetCode bit, Double_t* p,const Float_t probMis) const;\r | |
fd21ec8d | 55 | \r |
56 | private:\r | |
57 | AliPIDCombined(const AliPIDCombined&);\r | |
58 | AliPIDCombined &operator=(const AliPIDCombined&);\r | |
59 | \r | |
60 | Int_t fDetectorMask; // Detectors included in combined pid\r | |
61 | Int_t fRejectMismatchMask; // Detectors set return flat prob. if mismatch detected \r | |
62 | Bool_t fEnablePriors; // Enable bayesian PID (if kFALSE priors set flat)\r | |
63 | Int_t fSelectedSpecies; // Number of selected species to study\r | |
00a38d07 | 64 | TH1F *fPriorsDistributions[AliPID::kSPECIESC]; // priors\r |
80f28562 | 65 | Bool_t fUseDefaultTPCPriors; // switch to use Defaul TPC Priors\r |
00a38d07 | 66 | static TH2F *fDefaultPriorsTPC[AliPID::kSPECIES]; // Default priors for TPC tracks\r |
fd21ec8d | 67 | \r |
00a38d07 | 68 | ClassDef(AliPIDCombined, 3); // Combined PID using priors\r |
fd21ec8d | 69 | };\r |
70 | \r | |
71 | #endif\r |