]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEERBase/AliPIDCombined.h
New MFT analysis tools
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliPIDCombined.h
CommitLineData
c683985a 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;
24class AliPIDResponse;
25
26class AliPIDCombined : public TNamed {
27public:
28 AliPIDCombined();
29 AliPIDCombined(const TString& name, const TString& title);
30 virtual ~AliPIDCombined();
31
32 void SetDetectorMask(Int_t mask) {fDetectorMask=mask;}
33 Int_t GetDetectorMask() const {return fDetectorMask;}
34 void SetRejectMismatchMask(Int_t mask) {fRejectMismatchMask=mask;}
35 Int_t GetRejectMismatchMask() const {return fRejectMismatchMask;}
36 void SetEnablePriors(Bool_t flag) {fEnablePriors=flag;}
37 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 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
506c1482 46 UInt_t ComputeProbabilities(const AliVTrack *track, const AliPIDResponse *response, Double_t* bayesProbabilities,Double_t* priorsOwn=NULL) const;
c683985a 47 void SetSelectedSpecies(Int_t selectedSpecies) {fSelectedSpecies = selectedSpecies;}
48 Int_t GetSelectedSpecies() const {return fSelectedSpecies;}
49
42fcc729 50 static Float_t GetTOFmismatchProb() {return fTOFmismProb;}
51
c683985a 52protected:
506c1482 53 void GetPriors(const AliVTrack *track,Double_t* priors,Float_t centrality=-1,Bool_t isPPB=kFALSE) const;
42fcc729 54 void ComputeBayesProbabilities(Double_t* bayesProbabilities,const Double_t* probDensity, const Double_t* priors, Double_t* probDensityMism=NULL) const;
c683985a 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
58private:
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
506c1482 68 static TH2F *fDefaultPriorsTPC[AliPID::kSPECIESC]; // Default priors for TPC tracks
69 static TH2F *fDefaultPriorsTPCpPb[AliPID::kSPECIESC]; // Default priors for TPC tracks in pPb
42fcc729 70 static Float_t fTOFmismProb; //TOF mismatch probability
c683985a 71
506c1482 72 ClassDef(AliPIDCombined, 4); // Combined PID using priors
c683985a 73};
74
75#endif