GSI Helmholtzzentrum für Schwerionenforschung
Hi, the McMotherIdx`s seem not to be set in general (they are always -1). I was using the apr13 release. Best regards Andreas
I was using the PndEvtGenDirect with evtGen->SetStoreTree(kTRUE). Its reproducable via: theAnalysis->FillList(MC_Truth,"McTruth"); for (int j=0;j<MC_Truth.GetLength();j++) cout<<MC_Truth[j].GetMcMotherIdx()<<endl; It would be nice if its set, since PndMcTruthMatch uses the MotherIdx a lot.
Hi Andreas, A MC truth candidate has by concept mother and daughters. The MC mother index points to the MC candidate of the current mother. But your MC tracks don't have a MC truth as they already are the MC truth. In other words: Don't use the MCmatch on the truth list but on a reconstructed candidate list. Cheers. Ralf
PndMcTruthMatch is doing something like the following 00075 // check whether the mothers of all daughters are the same 00076 for ( Int_t i=1; i<nd; ++i ) { 00077 Int_t dauidx = c.Daughter ( i )->GetMcIdx(); 00078 00079 if ( mct[dauidx].GetMcMotherIdx() != mothidx ) { 00080 if(verbose) Info("PndMcTruthMatch::MctMatch","rejected by not matching mother ids in daughters"); 00081 return false; 00082 } 00083 } where mct is the Monte Carlo RhoCandList. Without the MotherIdx set for the particles in the McTruth RhoCandList the PndMcTruthMatch is totally useless, since "Bool_t PndMcTruthMatch::MctMatch ( RhoCandidate& c, RhoCandList& mct, Int_t level, bool verbose )" returns false all the time. The problem is not getting the McTruth for a final state particle, but knowing for example if a D0 candidate is made of the tracks belonging to the Monte Carlo Daughters.
Hi. Issue is fixed within the changes after the apr13 release. The whole MC tree is built, if the information is stored during simulation. Ralf