Tutorial feb2012 [message #13464] |
Thu, 10 May 2012 11:01 |
Dmitry Khaneft
Messages: 75 Registered: January 2009
|
continuous participant |
From: *kph.uni-mainz.de
|
|
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
|
|
|
|
|
|
|
|
|
|
Re: Tutorial feb2012 [message #13472 is a reply to message #13470] |
Thu, 10 May 2012 15:39 |
Klaus Götzen
Messages: 293 Registered: June 2006 Location: GSI
|
first-grade participant |
From: *adsl.alicedsl.de
|
|
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
|
|
|