GSI Helmholtzzentrum für Schwerionenforschung
Dear all, I try to follow tutorial available at feb12. I slightly modified it for my needsand try to plot some simple distributions but I can't see an effect of applying different PID criteria. For example: All, VeryLoose, Loose, Tight, VeryTight give same results. Here is a part of my code. // *** TCandLists for the analysis TCandList eplus, eminus; ... while (theAnalysis->GetEvent() && i++<nevts){ if ((i%1000)==0) cout << "Number of events analysed: " << i << endl; // *** Select with no PID info ('All'); type and mass are set theAnalysis->FillList(eplus, "ElectronTightPlus"); //theAnalysis->FillList(eplus, "ElectronTightPlus","PidAlgoEmcBayes"); theAnalysis->FillList(eminus, "ElectronTightPlus"); //theAnalysis->FillList(eminus, "ElectronTightMinus","PidAlgoEmcBayes"); // ELECTRONS *** for (Int_t j=0;j<eminus.GetLength();++j){ // Fill momentum of reconstructed particles hP->Fill(eminus[j].GetMomentum().Mag()); // Fill energy of reconstructed particles hE->Fill(eminus[j].Energy()); // Fill momentum vs E/p hEP->Fill(eminus[j].GetMomentum().Mag(), eminus[j].Energy()/eminus[j].GetMomentum().Mag()); // *** CM frame *** // // boost from LAB to CM lv_charged_cm.SetVect(eminus[j].GetMomentum()); lv_charged_cm.SetE(TMath::Sqrt(cElectronMass*cElectronMass + eminus[j].GetMomentum().Mag()*eminus[j].GetMomentum().Mag())); lv_charged_cm.Boost(-(lv_bar_beam + lv_p_target).BoostVector()); hCosTheta_N_CM->Fill(lv_charged_cm.CosTheta()); } for (Int_t j=0;j<eplus.GetLength();++j){ // Fill momentum of reconstructed particles hP->Fill(eplus[j].GetMomentum().Mag()); // Fill energy of reconstructed particles hE->Fill(eplus[j].Energy()); // Fill momentum vs E/p hEP->Fill(eplus[j].GetMomentum().Mag(), eplus[j].Energy()/eplus[j].GetMomentum().Mag()); // *** CM frame *** // // boost from LAB to CM lv_charged_cm.SetVect(eplus[j].GetMomentum()); lv_charged_cm.SetE(TMath::Sqrt(cElectronMass*cElectronMass + eplus[j].GetMomentum().Mag()*eplus[j].GetMomentum().Mag())); lv_charged_cm.Boost(-(lv_bar_beam + lv_p_target).BoostVector()); hCosTheta_P_CM->Fill(lv_charged_cm.CosTheta()); } } In addition histograms filled with energy and momentum are the same. Using "PidAlgoEmcBayes" also gives no effect. Is it suppose to be like this or I do something wrong? P.S. I used trunk 15407 instead of 14709 because later couldn't be compiled. Cheers, Dmitry
Can you check if the TCA PidAlgoEmcBayes is filled?
Stefano Spataro wrote on Thu, 10 May 2012 11:42 Can you check if the TCA PidAlgoEmcBayes is filled? What is TCA? pid file has PidAlgoEmcBayes branch filled if that is what you meant.
TCA = TClonesArray. My question is if PidAlgoEmcBayes is filled with zero or if it has "reasonable" values.
I would expect more "high" probability entries for electrons because I simulate electrons as initial particles but it is definitely not filled with 0. I attach an example histogram, I think it looks ok.
Mmm, maybe Ralf or Klaus should take a look.
Hi, From you macro I see: theAnalysis->FillList(eplus, "ElectronTightPlus"); //theAnalysis->FillList(eplus, "ElectronTightPlus","PidAlgoEmcBayes"); theAnalysis->FillList(eminus, "ElectronTightPlus"); //theAnalysis->FillList(eminus, "ElectronTightMinus","PidAlgoEmcBayes"); This means you disabled your choice of Algorithm and take the default "PidAlgoIdealCharged". By switching back you should get reasonable results. Be reminded that you can manually reset to any other PID combination "by hand". Ref. the turorial. Cheers. Ralf
Hi Ralf, in the text of the message it is written that uncommenting those lines the results are the same: Quote: In addition histograms filled with energy and momentum are the same. Using "PidAlgoEmcBayes" also gives no effect.
Hi, last time I tried to validate I also had problems with applying PID algos different then default. It seems that the TCAs are filled with reasonable values, but that the PidCombiner (which is supposed to multiply the values of different algos) somehow doesn't work correctly. Ralf, do you remember, that we were taking a look to that, but without really solving the problem? This actually means, that we/I need to take another look to the code. Unfortunately I'm sick at home at the moment, so not today... Best, Klaus