]> git.uio.no Git - u/mrichter/AliRoot.git/blame - STEER/STEERBase/AliPIDCombined.h
Changes for
[u/mrichter/AliRoot.git] / STEER / STEERBase / AliPIDCombined.h
CommitLineData
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
faf00b0d 18#include "AliPID.h"\r
19#include "AliPIDResponse.h"\r
fd21ec8d 20#include <TH1F.h>\r
80f28562 21#include <TH2F.h>\r
fd21ec8d 22\r
23//class TH1;\r
24class AliPIDResponse;\r
25\r
26class AliPIDCombined : public TNamed {\r
27public:\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
50protected:\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
56private:\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