Home » PANDA » PandaRoot » Tracking » genfit in pandaroot - trunk rev 25180: test macros
genfit in pandaroot - trunk rev 25180: test macros [message #16747] |
Thu, 29 May 2014 15:30 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *unitymediagroup.de
|
|
Dear Gianluigi et all,
I would like to do some tests for comparison in pandaroot, when using genfit (trunk version 25180) and the new vesion of genfit which Johannes and me just introduced in pandaroot.
You can find the code here:
https://subversion.gsi.de/trac/fairroot/browser/pandaroot/development/ge nfit2/genfit_brach
this is a full branch development. The packages which had to change/add/modify to make genfit2 runing smooth in pandaroot are in:
https://subversion.gsi.de/trac/fairroot/browser/pandaroot/development/pr encipe/
I tried some bacis test amcros in analysis/rho. They look running without main troubles.
Then, I tried to run some macros from
/macro/stt/
but I found problems. In particular, two of thiose:
/macro/stt/chechgenfit.C
/macro/stt/checkdedx_helixhit.C
Could you suggest to me what shall I do in order to run those macros, please? these are exactly the tests which I would like to perform. I need to check the resolution/pull of the trackign parameters. Maybe they are not updated to the trunk version rev 25180. Could you provide help, please, and try to update/run those and see what is needed to correct them, in order to make them working?
Do you have any suggestion, any standard macro existing which I can use to make standard test, in pandaroot?
Thank you very much for your very useful help!
cheers
Elisabetta
|
|
|
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16748 is a reply to message #16747] |
Thu, 29 May 2014 17:13 |
Gianluigi Boca
Messages: 177 Registered: March 2004
|
first-grade participant |
From: *pv.infn.it
|
|
Elisabetta Prencipe (2) wrote on Thu, 29 May 2014 15:30Dear Gianluigi et all,
I would like to do some tests for comparison in pandaroot, when using genfit (trunk version 25180) and the new vesion of genfit which Johannes and me just introduced in pandaroot.
You can find the code here:
https://subversion.gsi.de/trac/fairroot/browser/pandaroot/development/ge nfit2/genfit_brach
this is a full branch development. The packages which had to change/add/modify to make genfit2 runing smooth in pandaroot are in:
https://subversion.gsi.de/trac/fairroot/browser/pandaroot/development/pr encipe/
I tried some bacis test amcros in analysis/rho. They look running without main troubles.
Then, I tried to run some macros from
/macro/stt/
but I found problems. In particular, two of thiose:
/macro/stt/chechgenfit.C
/macro/stt/checkdedx_helixhit.C
Could you suggest to me what shall I do in order to run those macros, please? these are exactly the tests which I would like to perform. I need to check the resolution/pull of the trackign parameters. Maybe they are not updated to the trunk version rev 25180. Could you provide help, please, and try to update/run those and see what is needed to correct them, in order to make them working?
Do you have any suggestion, any standard macro existing which I can use to make standard test, in pandaroot?
Thank you very much for your very useful help!
cheers
Elisabetta
Seher gelibte Elisabetta,
first of all, if you want to run tests without the Mvd hits (only the Stt hits), there are two options as far as the Pattern Recognition is concerned:
1- in the simulation phase you use the Mvd system but you declare it passive, so that no Mvd hits are produced.
If you do so then you can run all the rest of the pattern recognition + PID etc. normally, without doing anything special.
At the end of the PR you will obtain PndTrackCand etc. in the usual way;
2- you have already simulated the Mvd hits (ie you don't want to rerun the simulation) and now you want to analyse the data as
if the Mvd hit were not present.
This is possible but it requires a small modification in PndTrkTracking2.cxx; actually I could write a method , say,
PndTrkTracking2::SetMvdNoAnalysis()
that the user could call to "switch off" the Mvd hits.
As far as the Macro is concerned, I think that those macro/stt/checkgenfit.C and macro/stt/checkdedx_helixhit.C are obsolete.
Which quantities are you interested in checking? Actually right in this period I am running some macros with single
muon particles at different angles and momenta to see which is the resolution in angles and momenta when the Mvd system
is not used (but present physically).
These are the Macros that Susanna and Lia wrote some years ago; I am slightly modifying them for my purposes.
If you tell me exactly what you need maybe it you can use those as well.
Cheers
Gianluigi
|
|
|
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16749 is a reply to message #16748] |
Thu, 29 May 2014 17:31 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *unitymediagroup.de
|
|
Hi Gianluigi!
good news!
it is not needed for now that I run stt hits without mvd its. So, image that I already simulated and digitized and reconstructed events, for whatever physics channel. All detectors are in. PID is also in. Or maybe I can use Box Generator, and I have one single pion, p=1 GeV/c. Now I am in the situation to check what is the d0, z0, tanLambda....distributions for the tracks which I have reconstructed.
I wish to test if the width of the kalman parameter distributions is 1. I guess, you have already written macros which I can use, without I do it myself. I would like to show at the upcoming collaboration meeting differences between genfti1 and genfit2 performancess (momentum resolution for different track momentum, pull distributions, de/dx maybe) So if I can run your macros, it would be awsome. So, we can do tests on the same observables. I agree with you, the macros in stt/ or /mvd in the folder /macro/ , are obsolete. So, which ones can I use? Could you please say to me, without I write something myself, if something exists and where it is and and how I can use it? I would really appreciate, and it would save my time.
Thank you again for your kind help and for your macros,
Elisabetta
|
|
|
|
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16757 is a reply to message #16755] |
Fri, 30 May 2014 11:37 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *unitymediagroup.de
|
|
Hi Stefano and Gianluigi,
the analysis macros available in /macro/run give no troubles. I have access to all information as for my analysis on DsJ( momentum, vertex position, angular distributions; and of course resolution of those). I have a question related to how to get access to the informations like GetZ0(), GetRadius(), GetTanL(), ..., which I see are accessible by mean of PndTrkTrack objects, or PndTrackCand.
The question is the following:
after I run sim-, digi-, reco-, pid-, I can write in a macro something like this:
TClonesArray* cand_array=new TClonesArray("PndPidCandidate");
tree->SetBranchAddress("PidChargeCandidate", &cand_array);
[..]
for (Int_t pp=0; pp<track_array->GetEntriesFast(); pp++)
{
PndPidCandidate * mytrack = (PndPidCandidate*)cand_array->At(pp);
rec_mom = mctrack->GetMomentum().Mag();
rec_theta = mctrack->GetMomentum().Theta()*TMath::RadToDeg();
rec_phi = mctrack->GetMomentum().Phi()*TMath::RadToDeg();
cand_mult++;
// end of candidate loop
}
*****
This works (thank you Susanna for this macro!). It is available in the macro/pid/track_check.C
However, a PndPidCandidate gives access to limited informations, compared to the most generic PndTrkTrack candidates.
But if I try:
TClonesArray* track_array=new TClonesArray("PndTrkTrack");
tree->SetBranchAddress("Track", &track_array);
for (Int_t pp=0; pp<track_array->GetEntriesFast(); pp++)
{
PndTrackCand * mytrack = (PndTrackCand*)track_array->At(pp);
cout<<"Could you eneter in the loop?"<<endl;
//rec_d0 = mytrack->GetDist();
rec_z0 = mytrack->GetZ0();
rec_tanL = mytrack->GetTanL();
rec_R = mytrack->GetRadius();
cout<<"test = "<<mytrack->GetZ0()<<endl;
rec_charge = -(Int_t) mytrack->GetCharge();
double rec_pt = mytrack->GetRadius()*0.006;
double rec_pl = mytrack->GetRadius()*rec_tanL*0.006;
rec_mom = TMath::Sqrt(rec_pt*rec_pt + rec_pl*rec_pl);
if(rec_mom!=0) rec_omega = rec_charge / rec_mom;
// }
cand_mult++;
} // end of candidate loop
*****
I cannot enter neither in the loop. What am I doing wrong here? How should I write this?
I attach my macro. Could anyone help, please?
Thank you in advance.
Elisabetta
|
|
|
|
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16760 is a reply to message #16758] |
Fri, 30 May 2014 19:37 |
Elisabetta Prencipe (2)
Messages: 214 Registered: February 2013
|
first-grade participant |
From: *unitymediagroup.de
|
|
Thank you Stefano. This helps, but does not answer to my question completely.
And my question is:
if I wish to test the pull of the tracking distributions, such as Z0(), Dist(), Radius(), TanL(), without recalculating in my analysis macro, which are available and I can get from the class tracking/PndTrkTrack.h, how can I introduce this information in the /macro/reco__complete.C?
Clearly, if the info is not in the macro reco_complete.C, I cannot take it and work on that in a modified version of macro/pid/track_check.C.
I hope this would explain better my problem.
If anybody has any idea or any macro doing this, please I am interested in that.
Thank you in advance for your help, and have a nice weekend!
cheers,
Elisabetta
|
|
|
|
Goto Forum:
Current Time: Wed Dec 04 19:41:58 CET 2024
Total time taken to generate the page: 0.00593 seconds
|