MCTrackAnalysis

The PndMCTrackAnalysis analyzes the complete recontruction chain of a decay channel to investigate at which reconstruction stage an event was lost.

A detailed presentation about the PndMCTrackAnalysis can be found in the computing session the PANDA Collaboration Meeting CM20/1

Usage

The analysis consists of two stages:

PndMCTrackInfo

The first one is the extension of the MCTrack by a PndMCTrackInfo object, which contains additional information to an MC Track:

  • Decay time of particle

  • Decay vertex of particle

  • History of mother particles

  • A list of all generated daughters

  • FairLinks to all objects which see this MC particle up to charged and neutral candidates

  • Reconstructed momentum for all tracking algorithms

  • Differnce in pt and pl between reconstructed and MC momentum for all reconstruction algorithms

  • PID probabilities for the different pid algorithms

An example macro can be found at macro/tools/MCTrackInfo.C.

 1 int MCTrackInfo(Int_t nEvents = 0, TString prefix = "../data/evtcomplete")
 2 {
 3 
 4   // Number of events to process
 5   //  Int_t nEvents = 0;  // if 0 all the vents will be processed
 6 
 7   TString parAsciiFile = "all.par";
 8   TString input = "psi2s_Jpsi2pi_Jpsi_mumu.dec";
 9   TString output = "mctrackinfo";
10   TString friend1 = "sim";
11   TString friend2 = "digi";
12   TString friend3 = "reco";
13   TString friend4 = "pid";
14 
15   // -----   Initial Settings   --------------------------------------------
16   PndMasterRunAna *fRun = new PndMasterRunAna();
17   fRun->SetInput(input);
18   fRun->SetOutput(output);
19   fRun->AddFriend(friend1);
20   fRun->AddFriend(friend2);
21   fRun->AddFriend(friend3);
22   fRun->AddFriend(friend4);
23   fRun->SetParamAsciiFile(parAsciiFile);
24   fRun->Setup(prefix);
25 
26   fRun->UseFairLinks(kTRUE);
27 
28   FairGeane *Geane = new FairGeane();
29   fRun->AddTask(Geane);
30 
31   // ------------------------------------------------------------------------
32 
33   PndMCTrackInfoTask *trackInfo = new PndMCTrackInfoTask();
34   trackInfo->SetMaxStage(2);
35   trackInfo->SetMaxStageNeutralCheck(0);
36   trackInfo->SetVerbose(1);
37   fRun->AddTask(trackInfo);
38 
39   // -----   Intialise and run   --------------------------------------------
40 
41   cout << "fRun->Init()" << endl;
42 
43   fRun->Init();
44   fRun->Run(0, nEvents);
45   // ------------------------------------------------------------------------
46 
47   return 0;
48 }

The The PndMCTrackInfo Class objects are created via the PndMCTrackInfoAna.

PndMCTrackAnalysis

The second stage is the analysis of the created MCTackInfo objects.

For this purpose one needs to first define how the decay tree should look like and which reconstruction stages should be tested.

To define the decay tree the PndEventRequirements have to be filled with PndParticleRequirements.

To define the particle requirements one needs to:

  • define the type of the particle via SetPID();

  • give its mother particle(s) PID via SetPIDMothers(). This is a list of the history of mothers, starting with the primary particle. Because it is sometimes tricky to know which is the primary particle it is advisable to have a look at few PndTrackInfo objects from the previous stage.

Optional requirements are:

  • daughters PID via SetPIDDaughters(). A list of all required daughter particles

  • check tracking via SetCheckTracking()

  • check pid via SetCheckPid()

  • check for neutral particle via SetCheckNeutral()

An example can be found at PndMCTrackAnaExample or in macro/tools/PndMCTrackAna.C.

Understanding the output

The analysis output is split into three groups. The first group is a list of particles with their requirements and how often they have been seen in an event:

Analysis finished! Result:
0  : 99.00 % : -3312:-3122 :  PID/Mothers/Daughters/Stage/Total
1  : 77.45 % : -3312:-3122:-2212 PID/Mothers/Daughters/Stage/Points/SttMvdGemTrack/MomRes/...
2  : 71.10 % : -3312:-3122:211 : PID/Mothers/Daughters/Stage/Points/SttMvdGemTrack/MomRes/...
3  : 75.30 % : -3312:211 :  PID/Mothers/Daughters/Stage/Points/SttMvdGemTrack/MomRes/...
4  : 99.80 % : 3312:3122 :  PID/Mothers/Daughters/Stage/Total
5  : 80.15 % : 3312:3122:2212 :  PID/Mothers/Daughters/Stage/Points/SttMvdGemTrack/MomRes/...
6  : 70.20 % : 3312:3122:-211 :  PID/Mothers/Daughters/Stage/Points/SttMvdGemTrack/MomRes/...
7  : 75.65 % : 3312:-211 :  PID/Mothers/Daughters/Stage/Points/SttMvdGemTrack/MomRes/...
8  : 68.45 % : 22 :  PID/Mothers/Daughters/Stage/PidNeutralCand=1/PidNeutralCand=0.300000 0.300000/Total
9  : 65.80 % : 22 :  PID/Mothers/Daughters/Stage/PidNeutralCand=1/PidNeutralCand=0.300000 0.300000/Total
10 : 18.30 % : Charged
11 : 44.15 % : Neutral
12 : 8.50 % : Total

The second group is a list of integers at which requirement the reconstruction failed. The position in the list corresponds to the list of requirements given in the first group:

Point of Failure:
0 : 0/0/0/0/
1 : 0/0/0/0/190/0/14/0/92/23/91/
2 : 0/0/0/0/291/0/0/0/38/179/39/
3 : 0/0/0/0/284/0/0/0/36/123/43/
4 : 0/0/0/0/
5 : 0/0/0/0/135/0/7/0/120/27/95/592/
6 : 0/0/0/0/300/0/0/0/49/188/36/
7 : 0/0/0/0/261/0/0/0/38/151/32/
8 : 0/0/0/0/628/3/
9 : 0/0/0/0/653/5/

Line 1 : means that for particle 1 (antiproton from lambda decay) the requirement enough points was not met for 190 events, that the momentum resolution of the SttMvdGemTrack tracking was insufficient in 14 cases, in addition the momentum resolution of the Kalman filter was insufficient for 92 cases, …

The third group is a list of events where the certain error occured:

Interesting Events:
1/4 : 17, 43, 49, 54, 65, 71, 74, 75, 82, 98,
1/6 : 93,
1/8 : 58, 60, 70, 85, 90,
1/9 : 22,
1/10 : 31, 53, 59, 88,
2/4 : 10, 14, 15, 17, 18, 28, 29, 42, 52, 62, 67, 68, 78, 81, 83, 98,
2/8 : 4, 41, 65,
2/9 : 70,
2/10 : 13, 38, 53, 74,
3/4 : 0, 3, 4, 28, 31, 32, 44, 56, 63, 70, 75, 78, 88, 91,
3/8 : 49, 81,
3/9 : 64, 90, 99,
3/10 : 24, 29,
5/4 : 2, 28, 34, 36, 59, 67, 77, 81, 97,
5/8 : 14, 17, 25, 38, 56, 66, 82, 93, 95,
5/10 : 11, 60, 64, 74, 79, 89,
6/4 : 1, 4, 6, 10, 15, 16, 19, 24, 28, 42, 43, 58, 61, 76, 81, 95, 98, 99,
6/9 : 13, 31, 34, 65, 83,
6/10 : 37, 39,
7/4 : 1, 16, 21, 27, 28, 41, 54, 56, 60, 80,
7/8 : 15, 18, 26, 70,
7/10 : 65, 75,

So 1/4 means that for particle 1 (the antiproton from the lambda decay) requirement 4 (enough points) was not met at events 17, 43, …