TPhTrackSeedFinder User Guide

Dear PHOBOS friends,

TPhTrackSeedFinder is now officially released. Some old stuffs for my test run are removed so the code is compact now. Memory leakage problem is fixed. Some parameters are now obsolete and some new parameters are introduced. For backward compatibility, I still put the obsolete parameters in the data member, but in the next lease I would like to remove them. Please look at "For experts" page for more details.

Hoping you enjoy a lot with the TrackSeedFinder,
Inkyu
 

For beginners:

Step 1: declare TPhTrackSeedFinder.
Step 2: in your event analysis loop call a function RunMulguisin().
Step 3: access track seeds by calling GetSeedList().

You have now seeds in your hand, so, have funs with them. Here is an example macro (but surely not work).

//  ... many lines not shown

TPhTrackSeedFinder *tsf = new TPhTrackSeedFinder(1);  // argument >0 will print out a introduction message

while (event=data->GetNextEvent())
{

  // ... some stuffs like copying hits to detector are not shown here

  tsf->RunMulguisin(1); // argument 1 means SpectP, -1 means SpectN, no argument runs on both.

  TObjAray *seeds = tsf->GetSeedList();

  // ... your turn!

}

For experts:

Since you are an expert, I just put a macro. I believe that you understand what the codes do.

TPhTrackSeedFinder *tsf = new TPhTrackSeedFinder();// no argument because I am an expert
tsf->SetVertex(0,0,1); // vertex is at 0,0,1
tsf->SetNFrontLayer(8); // front-end tracking upto layer "I"
tsf->SetConeSize(4,0.03);// layer E uses 0.03 instead of 0.02
tsf->SetConeSize(5,0.03); //
tsf->SetConeSize(6,0.03); //
tsf->SetConeSize(7,0.03); //

while (event=data->GetNextEvent())
{

  // ... some stuffs like copying hits to detector are not shown here

  tsf->RunMulguisin(1);

  TObjArray *seeds = tsf->GetSeedList();

  // ... your turn!

}

You can use SetEtaSize() and SetPhiSize() if you wish to do clustering by using of box instead of using cone.

Obsolete functions (but still working):

SetMulguisinLayer() : replaced with SetNFrontLayers()
SetMulguisinMode():
SetMulguisinResol(): replaced with SetConeSize(int i, float x)

GetCompatibleSeedList(TPhMomemtumVector *v): this can be done in out side of TPhTrackSeedFinder class.

Performance:
 
 
 


 
 

I fitted with double-gaussian. Roughly speaking, directional error is about to 0.002, i.e. 0.1 degree.

Efficiency:

Most important inefficiency comes from the hit merging step. This can be easily shown when we plot the ratio of the number of merged hits on the Layer A to the number of MC tracks passing the Layer A. A typical central event has around 70 MC tracks passing the Layer A. After merging step, there left roughly 65 hits on the layer A. Since TPhTrackSeedFinder creates seed candidates by connecting the primary vertex and hits on the Layer A, the ratio becomes directly the efficiency of the Track Seed Finder.

The above plot shows nothing but a ratio between # of merged hits on the layer A and # of MC tracks passing the layer. Conservatively, we can say that we lose about 5% tracks at the layer A! Please comment.........

Now real efficiency! Including the Layer A to D and with good track seed condition, at least 3 hits, the efficiency drops down again.

But the efficiency for the findables, i.e., #seeds from findable / # findables, is better.

In any case, we lose 5% of findables because of Hit Merging process.....