ClassImp(AliHelperPID)
-AliHelperPID::AliHelperPID() : TNamed("HelperPID", "PID object"),fisMC(0), fPIDType(kNSigmaTPCTOF), fNSigmaPID(3), fBayesCut(0.8), fPIDResponse(0), fPIDCombined(0),fOutputList(0),fRequestTOFPID(1),fRemoveTracksT0Fill(0),fUseExclusiveNSigma(0),fPtTOFPID(.6),fHasTOFPID(0){
+AliHelperPID::AliHelperPID() : TNamed("HelperPID", "PID object"),fisMC(0), fPIDType(kNSigmaTPCTOF), fNSigmaPID(3), fBayesCut(0.8), fPIDResponse(0x0), fPIDCombined(0x0),fOutputList(0x0),fRequestTOFPID(1),fRemoveTracksT0Fill(0),fUseExclusiveNSigma(0),fPtTOFPID(.6),fHasTOFPID(0){
for(Int_t ipart=0;ipart<kNSpecies;ipart++)
for(Int_t ipid=0;ipid<=kNSigmaPIDType;ipid++)
fHistoPID->GetYaxis()->SetTitle(Form("%s signal",kDetectorName[idet]));
fOutputList->Add(fHistoPID);
}
-
+
+ // ------- setup PIDCombined
+ fPIDCombined=new AliPIDCombined;
+ fPIDCombined->SetDefaultTPCPriors();
+ fPIDCombined->SetDetectorMask(AliPIDResponse::kDetTPC+AliPIDResponse::kDetTOF);
}
//////////////////////////////////////////////////////////////////////////////////////////////////
if(fPIDType==kBayes){//use bayesianPID
if(!fPIDCombined) {
- AliFatal("PIDCombined object has to be set in the steering macro");
+ //AliFatal("PIDCombined object has to be set in the steering macro");
+ AliFatal("PIDCombined object not found");
}
ID = GetIDBayes(trk,FIllQAHistos);
Double_t GetPtTOFPID(){return fPtTOFPID;}
void SetfPtTOFPID(Double_t pttof){fPtTOFPID=pttof;}
//set PID Combined
- void SetPIDCombined(AliPIDCombined *obj){fPIDCombined=obj;}
+ //void SetPIDCombined(AliPIDCombined *obj){fPIDCombined=obj;}
+ void SetPIDCombined(AliPIDCombined *obj){Printf("void SetPIDCombined(AliPIDCombined *obj) not implemented");} //FIXME Left for backward-compatibility, not the PIDCombined onject is created in the constructor as done in /ANALYSIS/AliAnalysisTaskPIDCombined.cxx (Jul 15th 2014)
AliPIDCombined *GetPIDCombined(){return fPIDCombined;}
//set cut on beyesian probability
void SetBayesCut(Double_t cut){fBayesCut=cut;}
Double_t fNSigmaPID; // number of sigma for PID cut
Double_t fBayesCut; // Cut on Bayesian probability
AliPIDResponse *fPIDResponse; // ! PID response object
- AliPIDCombined *fPIDCombined; // PIDCombined
+ AliPIDCombined *fPIDCombined; // ! PIDCombined
TList *fOutputList; // List Histo's
Double_t fnsigmas[kNSpecies][kNSigmaPIDType+1]; //nsigma values
Bool_t fHasDoubleCounting[kNSpecies];//array with compatible identities
AliHelperPID(const AliHelperPID&);
AliHelperPID& operator=(const AliHelperPID&);
- ClassDef(AliHelperPID, 6);
+ ClassDef(AliHelperPID, 7);
};
#endif
if(PIDtype==3){
AliPIDCombined *pidc=new AliPIDCombined(Form("PIDCombined%s",opt.Data()),Form("PIDCombined%s",opt.Data()));
pidc->SetDefaultTPCPriors();
- pid->SetPIDCombined(pidc);
+ pid->SetPIDCombined(pidc);//not implemented
}
AliAnalysisTaskSpectraAllChAOD *task = new AliAnalysisTaskSpectraAllChAOD(Form("TaskAODSpectraCent%.0fto%.0f_QVec%.1fto%.1f_Eta%.1fto%.1f_TrBit%d%s",
//dimensions of THnSparse for tracks
const Int_t nvartrk=8;
- // pt cent Q vec IDrec IDgen isph y DCA
- Int_t binsHistRealTrk[nvartrk] = { nptBins, fnCentBins, fnQvecBins, 4, 3, 3, 2, fnDCABins};
- Double_t xminHistRealTrk[nvartrk] = { 0., 0., 0., -.5, -0.5, 0.5, -0.5, fDCAmin};
- Double_t xmaxHistRealTrk[nvartrk] = { 10., 100., fQvecUpperLim, 3.5, 2.5, 3.5, 0.5, fDCAmax};
+ // pt cent Q vec IDrec IDgen isph y DCA
+ Int_t binsHistRealTrk[nvartrk] = { nptBins, fnCentBins, fnQvecBins, 4, 3, 3, 2, fnDCABins};
+ Double_t xminHistRealTrk[nvartrk] = { 0., 0., 0., -.5, -0.5, 0.5, -0.5, fDCAmin};
+ Double_t xmaxHistRealTrk[nvartrk] = { 10., 100., fQvecUpperLim, 3.5, 2.5, 3.5, 0.5, fDCAmax};
THnSparseF* NSparseHistTrk = new THnSparseF("NSparseHistTrk","NSparseHistTrk",nvartrk,binsHistRealTrk,xminHistRealTrk,xmaxHistRealTrk);
NSparseHistTrk->GetAxis(0)->SetTitle("#it{p}_{T,rec}");
NSparseHistTrk->GetAxis(0)->SetName("pT_rec");
if(!fEventCuts->IsSelected(fAOD,fTrackCuts))return;//event selection
//Default TPC priors
- if(fHelperPID->GetPIDType()==kBayes)fHelperPID->GetPIDCombined()->SetDefaultTPCPriors();//FIXME maybe this can go in the UserCreateOutputObject?
+ //if(fHelperPID->GetPIDType()==kBayes)fHelperPID->GetPIDCombined()->SetDefaultTPCPriors();//FIXME maybe this can go in the UserCreateOutputObject?
Double_t Qvec=0.;//in case of MC we save space in the memory
if(!fIsMC){