GSI Forum
GSI Helmholtzzentrum für Schwerionenforschung

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 Go to next message
Elisabetta Prencipe (2) is currently offline  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 Go to previous messageGo to next message
Gianluigi Boca is currently offline  Gianluigi Boca
Messages: 177
Registered: March 2004
first-grade participant
From: *pv.infn.it
Elisabetta Prencipe (2) wrote on Thu, 29 May 2014 15:30
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




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 Go to previous messageGo to next message
Elisabetta Prencipe (2) is currently offline  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 #16755 is a reply to message #16749] Fri, 30 May 2014 09:16 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *lns.infn.it
A first check could be just to run the standard reconstruction macro in macro/run, and compare the momentum distribution with genfit1 and with genfit2. This could give a hint on the resolution and efficiency.
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16757 is a reply to message #16755] Fri, 30 May 2014 11:37 Go to previous messageGo to next message
Elisabetta Prencipe (2) is currently offline  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 #16758 is a reply to message #16757] Fri, 30 May 2014 11:49 Go to previous messageGo to next message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: *lns.infn.it
Tracks are in the reco file, which you need to add as a friend:

 tree->AddFriend("cbmsim",inRecoFile);
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16760 is a reply to message #16758] Fri, 30 May 2014 19:37 Go to previous messageGo to next message
Elisabetta Prencipe (2) is currently offline  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
Re: genfit in pandaroot - trunk rev 25180: test macros [message #16761 is a reply to message #16760] Fri, 30 May 2014 20:04 Go to previous message
StefanoSpataro is currently offline  StefanoSpataro
Messages: 2736
Registered: June 2005
Location: Torino
first-grade participant

From: 91.253.108*
You have to calculate them by yourself, since we don't use such parametrization.
The PndTrack contains the parameters at the first hit, FairTrackPar, and you can have them with the parabolic parametrization P or the helix H.
You can check the corresponding classes o the documentation provided in the Turin Computing week.
Previous Topic: Secondary track finder ?
Next Topic: RhoError class in pandaroot
Goto Forum:
  


Current Time: Mon Jan 17 02:49:55 CET 2022

Total time taken to generate the page: 0.02175 seconds