Line data Source code
1 : #ifndef ALIPIDCOMBINED_H
2 : #define ALIPIDCOMBINED_H
3 : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 : * See cxx source for full Copyright notice */
5 :
6 : //---------------------------------------------------------------//
7 : // Base class for combining PID response of //
8 : // of different detectors //
9 : // and compute Bayesian probabilities //
10 : // //
11 : // Origin: Pietro Antonioli, INFN-BO, pietro.antonioli@cern.ch //
12 : // //
13 : //---------------------------------------------------------------//
14 :
15 :
16 :
17 : #include <TNamed.h>
18 : #include "AliPID.h"
19 : #include "AliPIDResponse.h"
20 : #include <TH1F.h>
21 : #include <TH2F.h>
22 :
23 : //class TH1;
24 : class AliPIDResponse;
25 :
26 : class AliPIDCombined : public TNamed {
27 : public:
28 : AliPIDCombined();
29 : AliPIDCombined(const TString& name, const TString& title);
30 : virtual ~AliPIDCombined();
31 :
32 0 : void SetDetectorMask(Int_t mask) {fDetectorMask=mask;}
33 0 : Int_t GetDetectorMask() const {return fDetectorMask;}
34 0 : void SetRejectMismatchMask(Int_t mask) {fRejectMismatchMask=mask;}
35 0 : Int_t GetRejectMismatchMask() const {return fRejectMismatchMask;}
36 0 : void SetEnablePriors(Bool_t flag) {fEnablePriors=flag;}
37 0 : Bool_t GetEnablePriors() const {return fEnablePriors;}
38 : void SetPriorDistribution(AliPID::EParticleType type,TH1F *prior);
39 : // const TH1* GetPriorDistribution(AliPID::EParticleType type) const {return (TH1*)fPriorsDistributions[type];}
40 0 : TH1* GetPriorDistribution(AliPID::EParticleType type) const {return (TH1*)fPriorsDistributions[type];}
41 :
42 : void GetPriors(const AliVTrack *track,Double_t* p,const AliPIDResponse *response,UInt_t detUsed) const;
43 :
44 : void SetDefaultTPCPriors();
45 :
46 : UInt_t ComputeProbabilities(const AliVTrack *track, const AliPIDResponse *response, Double_t* bayesProbabilities,Double_t* priorsOwn=NULL) const;
47 0 : void SetSelectedSpecies(Int_t selectedSpecies) {fSelectedSpecies = selectedSpecies;}
48 0 : Int_t GetSelectedSpecies() const {return fSelectedSpecies;}
49 :
50 0 : static Float_t GetTOFmismatchProb() {return fTOFmismProb;}
51 :
52 : protected:
53 : void GetPriors(const AliVTrack *track,Double_t* priors,Float_t centrality=-1,Bool_t isPPB=kFALSE) const;
54 : void ComputeBayesProbabilities(Double_t* bayesProbabilities,const Double_t* probDensity, const Double_t* priors, Double_t* probDensityMism=NULL) const;
55 : void SetCombinedStatus(const AliPIDResponse::EDetPidStatus status,UInt_t *mask, const AliPIDResponse::EDetCode bit) const;
56 : void SetCombinedStatus(const AliPIDResponse::EDetPidStatus status,UInt_t *mask, const AliPIDResponse::EDetCode bit, Double_t* p,const Float_t probMis) const;
57 :
58 : private:
59 : AliPIDCombined(const AliPIDCombined&);
60 : AliPIDCombined &operator=(const AliPIDCombined&);
61 :
62 : Int_t fDetectorMask; // Detectors included in combined pid
63 : Int_t fRejectMismatchMask; // Detectors set return flat prob. if mismatch detected
64 : Bool_t fEnablePriors; // Enable bayesian PID (if kFALSE priors set flat)
65 : Int_t fSelectedSpecies; // Number of selected species to study
66 : TH1F *fPriorsDistributions[AliPID::kSPECIESC]; // priors
67 : Bool_t fUseDefaultTPCPriors; // switch to use Defaul TPC Priors
68 : static TH2F *fDefaultPriorsTPC[AliPID::kSPECIESC]; // Default priors for TPC tracks
69 : static TH2F *fDefaultPriorsTPCpPb[AliPID::kSPECIESC]; // Default priors for TPC tracks in pPb
70 : static Float_t fTOFmismProb; //TOF mismatch probability
71 :
72 176 : ClassDef(AliPIDCombined, 4); // Combined PID using priors
73 : };
74 :
75 : #endif
|