15 #include "TDatabasePDG.h"
22 #include "TClonesArray.h"
31 TNamed ( name,"Panda PID Combiner" ) ,
35 fInitialized ( kFALSE )
41 SetTcaNames ( tcanames );
44 fRootManager=FairRootManager::Instance();
54 chack =
Apply( tcl[j] );
55 check = check && chack;
86 Error (
"Apply",
"PID Probability array not found, skip setting pid for candidate %i.",trackIndex );
91 if ( 0==aTca->GetEntriesFast() ) {
92 Error (
"Apply",
"PID Probability array '%s' at %p of size zero, skip setting pid for candidate %i.", aTca->GetName(), aTca, trackIndex );
97 if ( trackIndex>=aTca->GetEntriesFast() ) {
98 Error (
"Apply",
"Index out of '%s' array (%p) bounds, skip setting pid for candidate %i.",aTca->GetName(),aTca,trackIndex );
106 Error (
"Apply",
"PID Probability object in array '%s' at %p not found, skip setting pid for candidate %i.",aTca->GetName(),aTca,trackIndex );
111 if ( trackIndex!=aProb->
GetIndex() ) {
112 Error (
"Apply",
"PID Probability object index (%i) is not the track index (%i). Is that bad?",aProb->
GetIndex(),trackIndex );
170 TStringToken list ( names,
";" );
172 while ( list.NextToken() )
175 if (branch ==
"")
continue;
180 TClonesArray * tmpar =
ReadTCA(full.Data());
193 TClonesArray * tmpar2 =
ReadTCA(branch.Data());
200 std::cout<<
" WARNING TO ANALYST: PndAnaPidCombiner::Init() could not find "<< full.Data()<<
" we use a backup branch: "<<branch.Data()<<std::endl;
203 std::cout<<
" WARNING TO ANALYST: PndAnaPidCombiner::Init() could not find "<< full.Data()<<
" nor a backup branch "<<branch.Data()<<std::endl;
224 Warning (
"PndAnaPidCombiner::ReadTCA()",
"Empty TCA name." );
228 TClonesArray* tca = ( TClonesArray* )
fRootManager->GetObject ( tcaname.Data() );
void SetTcaNames(TString &names, TString postfix="")
Double_t GetProtonPidProb(PndPidProbability *flux=NULL) const
Int_t GetTrackNumber() const
Double_t GetKaonPidProb(PndPidProbability *flux=NULL) const
void ApplyFlat(RhoCandidate *tc)
Bool_t Apply(RhoCandidate *tc)
void SetPidInfo(double *pidinfo=0)
Double_t GetSumProb(PndPidProbability *flux=NULL) const
Double_t GetMuonPidProb(PndPidProbability *flux=NULL) const
int full(TString simdatei="sim_emc.root", TString fulldatei="full_emc.root", TString param="simparam.root")
std::map< TString, TClonesArray * > fPidArrays
FairRootManager * fRootManager
std::vector< TString > fCurrentPidArrays
pid data map, full
TClonesArray * ReadTCA(const TString &tcaname)
Double_t GetElectronPidProb(PndPidProbability *flux=NULL) const
Double_t GetPionPidProb(PndPidProbability *flux=NULL) const
PndPidProbability * fPidResult
pid data current request