1 #include"AliPIDmaxProb.h"
2 #include"AliPIDResponse.h"
3 #include"AliAnalysisManager.h"
4 #include"AliInputEventHandler.h"
6 ClassImp(AliPIDmaxProb);
8 AliPIDmaxProb::AliPIDmaxProb(const char *name):
11 fMaskPID(AliPIDResponse::kDetTPC|AliPIDResponse::kDetTOF),
15 fPIDCombined=new AliPIDCombined;
16 fPIDCombined->SetDefaultTPCPriors();
18 //--------------------------------------------------------------------
19 AliPIDmaxProb::AliPIDmaxProb():
20 AliPIDperfCut("AliPIDmaxProb"),
22 fMaskPID(AliPIDResponse::kDetTPC|AliPIDResponse::kDetTOF),
26 fPIDCombined=new AliPIDCombined;
27 fPIDCombined->SetDefaultTPCPriors();
29 //--------------------------------------------------------------------
30 Bool_t AliPIDmaxProb::IsSelected(AliVTrack *track,AliPID::EParticleType type) const{
31 Int_t nspecies = AliPID::kSPECIES;
32 if(type >= nspecies || type < 0) return 0; // type has not a proper value
34 AliAnalysisManager *man=AliAnalysisManager::GetAnalysisManager();
35 AliInputEventHandler* inputHandler = (AliInputEventHandler*) (man->GetInputEventHandler());
36 AliPIDResponse *PIDResponse=inputHandler->GetPIDResponse();
38 fPIDCombined->SetDetectorMask(fMaskPID);
40 Double_t prob[10] = {0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
42 UInt_t detUsed = fPIDCombined->ComputeProbabilities(track, PIDResponse, prob);
44 if(fTPCin && !(detUsed & AliPIDResponse::kDetTPC)) return kFALSE;
45 if(fTOFin && !(detUsed & AliPIDResponse::kDetTOF)) return kFALSE;
47 Bool_t status = kTRUE;
48 for(Int_t i=0;i<nspecies;i++){
49 if(i != type && prob[type] <= prob[i]){