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
6 //---------------------------------------------------------------//
\r
7 // Base class for combining PID response of //
\r
8 // of different detectors //
\r
9 // and compute Bayesian probabilities //
\r
11 // Origin: Pietro Antonioli, INFN-BO, pietro.antonioli@cern.ch //
\r
13 //---------------------------------------------------------------//
\r
19 #include "AliPIDResponse.h"
\r
24 class AliPIDResponse;
\r
26 class AliPIDCombined : public TNamed {
\r
29 AliPIDCombined(const TString& name, const TString& title);
\r
30 virtual ~AliPIDCombined();
\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
42 void GetPriors(const AliVTrack *track,Double_t* p,const AliPIDResponse *response,UInt_t detUsed) const;
\r
44 void SetDefaultTPCPriors();
\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
51 void GetPriors(const AliVTrack *track,Double_t* priors,Float_t centrality=-1) const;
\r
52 void ComputeBayesProbabilities(Double_t* bayesProbabilities,const Double_t* probDensity, const Double_t* priors) const;
\r
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
57 AliPIDCombined(const AliPIDCombined&);
\r
58 AliPIDCombined &operator=(const AliPIDCombined&);
\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
64 TH1F *fPriorsDistributions[AliPID::kSPECIESC]; // priors
\r
65 Bool_t fUseDefaultTPCPriors; // switch to use Defaul TPC Priors
\r
66 static TH2F *fDefaultPriorsTPC[AliPID::kSPECIES]; // Default priors for TPC tracks
\r
68 ClassDef(AliPIDCombined, 3); // Combined PID using priors
\r