GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

Home » PANDA » PandaRoot » Analysis » [CLOSED] Wrong particle in FillList
Re: Wrong particle in FillList [message #15231 is a reply to message #15044] Fri, 16 August 2013 22:40 Go to previous messageGo to previous message
Simon Reiter is currently offline  Simon Reiter
Messages: 44
Registered: May 2013
continuous participant
From: *dip0.t-ipconnect.de
Oh no,

now I'm more confused than before. The GetMcTruth() seems to be too difficult for me. I simulated 2000 events and used the following code:
PndAnalysis* theAnalysis = new PndAnalysis("SttMvdGemGenTrack","FtsIdealGenTrack");
theAnalysis->FillList(piplus, "PionLoosePlus",pidalgos);
theAnalysis->FillList(mcpiplus, "PionLoosePlus");
for (Int_t ipiplus=0;ipiplus<piplus.GetLength();++ipiplus){
   if(piplus[ipiplus]->GetMcTruth()) {
      if(!theAnalysis->McTruthMatch(piplus[ipiplus]))
                        //(1) pointer set, but no McTruthMatch
   } else
                        //(2) pointer not even set
}
for (Int_t ipiplus=0;ipiplus<mcpiplus.GetLength();++ipiplus){
   if(mcpiplus[ipiplus]->GetMcTruth()) {
      if(!theAnalysis->McTruthMatch(mcpiplus[ipiplus]))
                        //(3) pointer set, but no McTruthMatch
   } else
                        //(4) pointer not even set
}

On every marker, I implemented a counter, to check, what is working in which way. But the result was again confusing.
    | has not even a truth pointer | has a truth pointer but McTruthMatch failed | number of particles
------------------------------------------------------------------------------------------------------
PID |             15               |                      2809                   |         9031
MC  |             28               |                       847                   |         9558               // in this case: MC=PidAlgoIdealCharged

I understand, that with a pid algorithm the McTruthMatch failed so often. I mean, the actual pid is crap (or "not the best one" Razz ). As I understood right, the pointer is set after track reconstruction, and just the particles are identified wrong. Even that some of them didn't have a pointer makes sense to me. But why are in the PidAlgoIdealCharged-list so many candidates without a pointed and, that's what I was really wondering about, didn't pass the McTruthMatch!?

This time, I'm using trunk, rev 21245!!!

Additionally: What are the criteria for setting the truth pointer? And shall I change theAnalysis->FillList(mcpiplus, "PionLoosePlus") to something like
theAnalysis->FillList(mcpiplus, "PionAllPlus");
for(int i=0;mcpiplus.GetLength(),i++) {
   if(theAnalysis->McTruthMatch(mcpiplus[i]))
      mcpiplustrue.Add(mcpiplus[i]); // mcpiplustrue as a new RhoCandList
}


Thanks in advance
Simon
 
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Read Message
Previous Topic: MVD Particle Identification in analyses
Next Topic: [WONTFIX] Tutorial macro - trunk
Goto Forum:
  


Current Time: Sat Feb 16 12:18:12 CET 2019

Total time taken to generate the page: 0.04062 seconds