CbmRoot
CbmKresConversionCorrectedPhotons.cxx
Go to the documentation of this file.
1 
18 #include "CbmKresConversionBG.h"
19 #include "CbmKresFunctions.h"
20 
21 #include "CbmGlobalTrack.h"
22 #include "CbmKFParticleInterface.h"
23 #include "CbmL1PFFitter.h"
24 #include "CbmMCTrack.h"
25 #include "CbmMvdHit.h"
26 #include "CbmRichHit.h"
27 #include "CbmRichRing.h"
28 #include "CbmRichRingLight.h"
29 #include "CbmRichUtil.h"
30 #include "CbmStsHit.h"
31 #include "CbmStsTrack.h"
32 #include "CbmTrackMatchNew.h"
33 #include "FairRootManager.h"
34 #include "KFParticle.h"
35 #include "L1Field.h"
36 
37 #include <iostream>
38 
39 using namespace std;
40 
42  : fTrainPhotons(nullptr)
43  , AnnTrainPhotons(0)
44  , fAnnPhotonsSelection(nullptr)
45  , UseAnnPhotons(0)
46  , fGammaCorrection(nullptr)
47  , UseCorrection(0)
48  , corr_all()
49  , corr_two()
50  , corr_onetwo()
51  , thresholdweight(0.)
52  , fMcTracks(nullptr)
53  , fGlobalTracks(nullptr)
54  , fStsTracks(nullptr)
55  , fStsTrackMatches(nullptr)
56  , fRichProjections(nullptr)
57  , fRichRings(nullptr)
58  , fRichRingMatches(nullptr)
59  , fRichHits(nullptr)
60  , fArrayMvdHit(nullptr)
61  , fArrayStsHit(nullptr)
62  , fPrimVertex(nullptr)
63  , fKFVertex()
64  , fTauFit(nullptr)
65  , VStsTrack_minus_Outside()
66  , VMCtracks_minus_Outside()
67  , VRings_minus_Outside()
68  , VStsIndex_minus_Outside()
69  , VRichRing_minus_Outside()
70  , VStsTrack_plus_Outside()
71  , VMCtracks_plus_Outside()
72  , VRings_plus_Outside()
73  , VStsIndex_plus_Outside()
74  , VRichRing_plus_Outside()
75  , VMCtracks_minus_Target()
76  , VStsTrack_minus_Target()
77  , VMomenta_minus_Target()
78  , VRings_minus_Target()
79  , VStsIndex_minus_Target()
80  , VRichRing_minus_Target()
81  , VMCtracks_plus_Target()
82  , VStsTrack_plus_Target()
83  , VMomenta_plus_Target()
84  , VRings_plus_Target()
85  , VStsIndex_plus_Target()
86  , VRichRing_plus_Target()
87  , CDP_LK_EMT_momenta_minus_Target()
88  , CDP_LK_EMT_NofRings_minus_Target()
89  , CDP_LK_EMT_STS_minus_Target()
90  , CDP_LK_EMT_STS_minus_index_Target()
91  , CDP_LK_EMT_momenta_plus_Target()
92  , CDP_LK_EMT_NofRings_plus_Target()
93  , CDP_LK_EMT_STS_plus_Target()
94  , CDP_LK_EMT_STS_plus_index_Target()
95  , CDP_LK_EMT_NofRings_minus_Outside()
96  , CDP_LK_EMT_STS_minus_Outside()
97  , CDP_LK_EMT_STS_minus_index_Outside()
98  , CDP_LK_EMT_NofRings_plus_Outside()
99  , CDP_LK_EMT_STS_plus_Outside()
100  , CDP_LK_EMT_STS_plus_index_Outside()
101  , CDP_EMT_Event_minus_Target()
102  , CDP_EMT_momenta_minus_Target()
103  , CDP_EMT_NofRings_minus_Target()
104  , CDP_EMT_Hits_minus_Target()
105  , CDP_EMT_Event_plus_Target()
106  , CDP_EMT_momenta_plus_Target()
107  , CDP_EMT_NofRings_plus_Target()
108  , CDP_EMT_Hits_plus_Target()
109  , CDP_EMT_Event_minus_Outside()
110  , CDP_EMT_momenta_minus_Outside()
111  , CDP_EMT_KFTrack_minus_Outside()
112  , CDP_EMT_NofRings_minus_Outside()
113  , CDP_EMT_Hits_minus_Outside()
114  , CDP_EMT_Event_plus_Outside()
115  , CDP_EMT_momenta_plus_Outside()
116  , CDP_EMT_KFTrack_plus_Outside()
117  , CDP_EMT_NofRings_plus_Outside()
118  , CDP_EMT_Hits_plus_Outside()
119  , fHistoList_dp_Target()
120  , CMother_PDG_Target(nullptr)
121  , CGrandMother_PDG_Target(nullptr)
122  , fHistoList_dp_Outside()
123  , CMother_PDG_Outside(nullptr)
124  , CGrandMother_PDG_Outside(nullptr)
125  , fHistoList_dp_Both()
126  , CPdg_vs_Distance_for_dp(nullptr)
127  , CP_vs_Distance_for_dp(nullptr)
128  , CDP_AnnTruePairs(nullptr)
129  , CDP_AnnFalsePairs(nullptr)
130  , CDP_AnnTruePairs_AfterCuts(nullptr)
131  , CDP_AnnFalsePairs_AfterCuts(nullptr)
132  , fHistoList_dp_cuts_Both()
133  , CDP_candidates_InvMass_vs_OA_Both(nullptr)
134  , CDP_InvMass_vs_OA_Both(nullptr)
135  , CDP_candidates_InvMass_Both(nullptr)
136  , CDP_InvMass_Both(nullptr)
137  , CDP_candidates_OA_Both(nullptr)
138  , CDP_OA_Both(nullptr)
139  , CDP_candidates_PlaneAngles_last_Both(nullptr)
140  , CDP_PlaneAngles_last_Both(nullptr)
141  , CDP_candidates_PlaneAngles_first_Both(nullptr)
142  , CDP_PlaneAngles_first_Both(nullptr)
143  , fHistoList_dp_cuts_Target()
144  , CDP_candidates_InvMass_vs_OA_Target(nullptr)
145  , CDP_InvMass_vs_OA_Target(nullptr)
146  , CDP_candidates_InvMass_Target(nullptr)
147  , CDP_InvMass_Target(nullptr)
148  , CDP_candidates_OA_Target(nullptr)
149  , CDP_OA_Target(nullptr)
150  , CDP_candidates_PlaneAngles_last_Target(nullptr)
151  , CDP_PlaneAngles_last_Target(nullptr)
152  , CDP_candidates_PlaneAngles_first_Target(nullptr)
153  , CDP_PlaneAngles_first_Target(nullptr)
154  , fHistoList_dp_cuts_Outside()
155  , CDP_candidates_InvMass_vs_OA_Outside(nullptr)
156  , CDP_InvMass_vs_OA_Outside(nullptr)
157  , CDP_candidates_InvMass_Outside(nullptr)
158  , CDP_InvMass_Outside(nullptr)
159  , CDP_candidates_OA_Outside(nullptr)
160  , CDP_OA_Outside(nullptr)
161  , CDP_candidates_PlaneAngles_last_Outside(nullptr)
162  , CDP_PlaneAngles_last_Outside(nullptr)
163  , CDP_candidates_PlaneAngles_first_Outside(nullptr)
164  , CDP_PlaneAngles_first_Outside(nullptr)
165  , fHistoList_dp_all_Target()
166  , CDP_InvMassReco_all_Target(nullptr)
167  , CDP_OpeningAngleReco_all_Target(nullptr)
168  , CDP_Pdg_all_Target(nullptr)
169  , CDP_P_reco_all_Target(nullptr)
170  , CDP_Pt_reco_all_Target(nullptr)
171  , CPh_fromTarget_Pt_reco_all_Target(nullptr)
172  , CPh_fromPions_Pt_reco_all_Target(nullptr)
173  , CPh_fromEtas_Pt_reco_all_Target(nullptr)
174  , CPh_fromDalitz_Pt_reco_all_Target(nullptr)
175  , CPh_fromXi_Pt_reco_all_Target(nullptr)
176  , CPh_fromOther_Pt_reco_all_Target(nullptr)
177  , CPh_twoFromTarget_Pt_reco_all_Target(nullptr)
178  , CPh_fromCombinatorial_Pt_reco_all_Target(nullptr)
179  , CPh_fromConversion_Pt_reco_all_Target(nullptr)
180  , CPh_pt_vs_rap_est_all_Target(nullptr)
181  , CPh_pt_vs_rap_est_corr_all_Target(nullptr)
182  , fHistoList_dp_two_Target()
183  , CDP_InvMassReco_two_Target(nullptr)
184  , CDP_OpeningAngleReco_two_Target(nullptr)
185  , CDP_Pdg_two_Target(nullptr)
186  , CDP_P_reco_two_Target(nullptr)
187  , CDP_Pt_reco_two_Target(nullptr)
188  , CPh_fromTarget_Pt_reco_two_Target(nullptr)
189  , CPh_fromPions_Pt_reco_two_Target(nullptr)
190  , CPh_fromEtas_Pt_reco_two_Target(nullptr)
191  , CPh_fromDalitz_Pt_reco_two_Target(nullptr)
192  , CPh_fromXi_Pt_reco_two_Target(nullptr)
193  , CPh_fromOther_Pt_reco_two_Target(nullptr)
194  , CPh_twoFromTarget_Pt_reco_two_Target(nullptr)
195  , CPh_fromCombinatorial_Pt_reco_two_Target(nullptr)
196  , CPh_fromConversion_Pt_reco_two_Target(nullptr)
197  , CPh_pt_vs_rap_est_two_Target(nullptr)
198  , CPh_pt_vs_rap_est_corr_two_Target(nullptr)
199  , fHistoList_dp_onetwo_Target()
200  , CDP_InvMassReco_onetwo_Target(nullptr)
201  , CDP_OpeningAngleReco_onetwo_Target(nullptr)
202  , CDP_Pdg_onetwo_Target(nullptr)
203  , CDP_P_reco_onetwo_Target(nullptr)
204  , CDP_Pt_reco_onetwo_Target(nullptr)
205  , CPh_fromTarget_Pt_reco_onetwo_Target(nullptr)
206  , CPh_fromPions_Pt_reco_onetwo_Target(nullptr)
207  , CPh_fromEtas_Pt_reco_onetwo_Target(nullptr)
208  , CPh_fromDalitz_Pt_reco_onetwo_Target(nullptr)
209  , CPh_fromXi_Pt_reco_onetwo_Target(nullptr)
210  , CPh_fromOther_Pt_reco_onetwo_Target(nullptr)
211  , CPh_twoFromTarget_Pt_reco_onetwo_Target(nullptr)
212  , CPh_fromCombinatorial_Pt_reco_onetwo_Target(nullptr)
213  , CPh_fromConversion_Pt_reco_onetwo_Target(nullptr)
214  , CPh_pt_vs_rap_est_onetwo_Target(nullptr)
215  , CPh_pt_vs_rap_est_corr_onetwo_Target(nullptr)
216  , fHistoList_dp_all_Outside()
217  , CDP_InvMassReco_all_Outside(nullptr)
218  , CDP_OpeningAngleReco_all_Outside(nullptr)
219  , CDP_Pdg_all_Outside(nullptr)
220  , CDP_P_reco_all_Outside(nullptr)
221  , CDP_Pt_reco_all_Outside(nullptr)
222  , CPh_fromTarget_Pt_reco_all_Outside(nullptr)
223  , CPh_fromPions_Pt_reco_all_Outside(nullptr)
224  , CPh_fromEtas_Pt_reco_all_Outside(nullptr)
225  , CPh_fromDalitz_Pt_reco_all_Outside(nullptr)
226  , CPh_fromXi_Pt_reco_all_Outside(nullptr)
227  , CPh_fromOther_Pt_reco_all_Outside(nullptr)
228  , CPh_twoFromTarget_Pt_reco_all_Outside(nullptr)
229  , CPh_fromCombinatorial_Pt_reco_all_Outside(nullptr)
230  , CPh_fromConversion_Pt_reco_all_Outside(nullptr)
231  , CPh_pt_vs_rap_est_all_Outside(nullptr)
232  , CPh_pt_vs_rap_est_corr_all_Outside(nullptr)
233  , fHistoList_dp_two_Outside()
234  , CDP_InvMassReco_two_Outside(nullptr)
235  , CDP_OpeningAngleReco_two_Outside(nullptr)
236  , CDP_Pdg_two_Outside(nullptr)
237  , CDP_P_reco_two_Outside(nullptr)
238  , CDP_Pt_reco_two_Outside(nullptr)
239  , CPh_fromTarget_Pt_reco_two_Outside(nullptr)
240  , CPh_fromPions_Pt_reco_two_Outside(nullptr)
241  , CPh_fromEtas_Pt_reco_two_Outside(nullptr)
242  , CPh_fromDalitz_Pt_reco_two_Outside(nullptr)
243  , CPh_fromXi_Pt_reco_two_Outside(nullptr)
244  , CPh_fromOther_Pt_reco_two_Outside(nullptr)
245  , CPh_twoFromTarget_Pt_reco_two_Outside(nullptr)
246  , CPh_fromCombinatorial_Pt_reco_two_Outside(nullptr)
247  , CPh_fromConversion_Pt_reco_two_Outside(nullptr)
248  , CPh_pt_vs_rap_est_two_Outside(nullptr)
249  , CPh_pt_vs_rap_est_corr_two_Outside(nullptr)
250  , fHistoList_dp_onetwo_Outside()
251  , CDP_InvMassReco_onetwo_Outside(nullptr)
252  , CDP_OpeningAngleReco_onetwo_Outside(nullptr)
253  , CDP_Pdg_onetwo_Outside(nullptr)
254  , CDP_P_reco_onetwo_Outside(nullptr)
255  , CDP_Pt_reco_onetwo_Outside(nullptr)
256  , CPh_fromTarget_Pt_reco_onetwo_Outside(nullptr)
257  , CPh_fromPions_Pt_reco_onetwo_Outside(nullptr)
258  , CPh_fromEtas_Pt_reco_onetwo_Outside(nullptr)
259  , CPh_fromDalitz_Pt_reco_onetwo_Outside(nullptr)
260  , CPh_fromXi_Pt_reco_onetwo_Outside(nullptr)
261  , CPh_fromOther_Pt_reco_onetwo_Outside(nullptr)
262  , CPh_twoFromTarget_Pt_reco_onetwo_Outside(nullptr)
263  , CPh_fromCombinatorial_Pt_reco_onetwo_Outside(nullptr)
264  , CPh_fromConversion_Pt_reco_onetwo_Outside(nullptr)
265  , CPh_pt_vs_rap_est_onetwo_Outside(nullptr)
266  , CPh_pt_vs_rap_est_corr_onetwo_Outside(nullptr)
267  , fHistoList_dp_all_Both()
268  , CDP_InvMassReco_all_Both(nullptr)
269  , CDP_OpeningAngleReco_all_Both(nullptr)
270  , CDP_Pdg_all_Both(nullptr)
271  , CDP_P_reco_all_Both(nullptr)
272  , CDP_Pt_reco_all_Both(nullptr)
273  , CPh_fromTarget_Pt_reco_all_Both(nullptr)
274  , CPh_fromPions_Pt_reco_all_Both(nullptr)
275  , CPh_fromEtas_Pt_reco_all_Both(nullptr)
276  , CPh_fromDalitz_Pt_reco_all_Both(nullptr)
277  , CPh_fromXi_Pt_reco_all_Both(nullptr)
278  , CPh_fromOther_Pt_reco_all_Both(nullptr)
279  , CPh_twoFromTarget_Pt_reco_all_Both(nullptr)
280  , CPh_fromCombinatorial_Pt_reco_all_Both(nullptr)
281  , CPh_fromConversion_Pt_reco_all_Both(nullptr)
282  , CPh_pt_vs_rap_est_all_Both(nullptr)
283  , CPh_pt_vs_rap_est_corr_all_Both(nullptr)
284  , fHistoList_dp_two_Both()
285  , CDP_InvMassReco_two_Both(nullptr)
286  , CDP_OpeningAngleReco_two_Both(nullptr)
287  , CDP_Pdg_two_Both(nullptr)
288  , CDP_P_reco_two_Both(nullptr)
289  , CDP_Pt_reco_two_Both(nullptr)
290  , CPh_fromTarget_Pt_reco_two_Both(nullptr)
291  , CPh_fromPions_Pt_reco_two_Both(nullptr)
292  , CPh_fromEtas_Pt_reco_two_Both(nullptr)
293  , CPh_fromDalitz_Pt_reco_two_Both(nullptr)
294  , CPh_fromXi_Pt_reco_two_Both(nullptr)
295  , CPh_fromOther_Pt_reco_two_Both(nullptr)
296  , CPh_twoFromTarget_Pt_reco_two_Both(nullptr)
297  , CPh_fromCombinatorial_Pt_reco_two_Both(nullptr)
298  , CPh_fromConversion_Pt_reco_two_Both(nullptr)
299  , CPh_pt_vs_rap_est_two_Both(nullptr)
300  , CPh_pt_vs_rap_est_corr_two_Both(nullptr)
301  , fHistoList_dp_onetwo_Both()
302  , CDP_InvMassReco_onetwo_Both(nullptr)
303  , CDP_OpeningAngleReco_onetwo_Both(nullptr)
304  , CDP_Pdg_onetwo_Both(nullptr)
305  , CDP_P_reco_onetwo_Both(nullptr)
306  , CDP_Pt_reco_onetwo_Both(nullptr)
307  , CPh_fromTarget_Pt_reco_onetwo_Both(nullptr)
308  , CPh_fromPions_Pt_reco_onetwo_Both(nullptr)
309  , CPh_fromEtas_Pt_reco_onetwo_Both(nullptr)
310  , CPh_fromDalitz_Pt_reco_onetwo_Both(nullptr)
311  , CPh_fromXi_Pt_reco_onetwo_Both(nullptr)
312  , CPh_fromOther_Pt_reco_onetwo_Both(nullptr)
313  , CPh_twoFromTarget_Pt_reco_onetwo_Both(nullptr)
314  , CPh_fromCombinatorial_Pt_reco_onetwo_Both(nullptr)
315  , CPh_fromConversion_Pt_reco_onetwo_Both(nullptr)
316  , CPh_pt_vs_rap_est_onetwo_Both(nullptr)
317  , CPh_pt_vs_rap_est_corr_onetwo_Both(nullptr)
318  , CDP_EMT_Pt_all_Target(nullptr)
319  , CDP_EMT_Pt_two_Target(nullptr)
320  , CDP_EMT_Pt_onetwo_Target(nullptr)
321  , CDP_EMT_Pt_all_Outside(nullptr)
322  , CDP_EMT_Pt_two_Outside(nullptr)
323  , CDP_EMT_Pt_onetwo_Outside(nullptr)
324  , CDP_EMT_Pt_all_Both(nullptr)
325  , CDP_EMT_Pt_two_Both(nullptr)
326  , CDP_EMT_Pt_onetwo_Both(nullptr)
327  , CDP_LK_EMT_Pt_all_Target(nullptr)
328  , CDP_LK_EMT_Pt_two_Target(nullptr)
329  , CDP_LK_EMT_Pt_onetwo_Target(nullptr)
330  , CDP_LK_EMT_Pt_all_Outside(nullptr)
331  , CDP_LK_EMT_Pt_two_Outside(nullptr)
332  , CDP_LK_EMT_Pt_onetwo_Outside(nullptr)
333  , CDP_LK_EMT_Pt_all_Both(nullptr)
334  , CDP_LK_EMT_Pt_two_Both(nullptr)
335  , CDP_LK_EMT_Pt_onetwo_Both(nullptr) {}
336 
338 
339 void CbmKresConversionCorrectedPhotons::Init(double OA, double IM) {
340  FairRootManager* ioman = FairRootManager::Instance();
341  if (nullptr == ioman) {
342  Fatal("CbmKresConversionCorrectedPhotons::Init",
343  "RootManager not instantised!");
344  }
345 
346  fMcTracks = (TClonesArray*) ioman->GetObject("MCTrack");
347  if (nullptr == fMcTracks) {
348  Fatal("CbmKresConversionCorrectedPhotons::Init", "No MCTrack array!");
349  }
350 
351  fPrimVertex = dynamic_cast<CbmVertex*>(ioman->GetObject("PrimaryVertex."));
352  if (nullptr == fPrimVertex) {
353  fPrimVertex = dynamic_cast<CbmVertex*>(ioman->GetObject("PrimaryVertex"));
354  }
355  if (nullptr == fPrimVertex) {
356  LOG(fatal)
357  << "CbmKresConversionCorrectedPhotons::Init No PrimaryVertex array!";
358  }
359 
360  fGlobalTracks = (TClonesArray*) ioman->GetObject("GlobalTrack");
361  if (nullptr == fGlobalTracks) {
362  Fatal("CbmKresConversionCorrectedPhotons::Init", "No GlobalTrack array!");
363  }
364 
365  fStsTracks = (TClonesArray*) ioman->GetObject("StsTrack");
366  if (nullptr == fStsTracks) {
367  Fatal("CbmKresConversionCorrectedPhotons::Init", "No StsTrack array!");
368  }
369 
370  fStsTrackMatches = (TClonesArray*) ioman->GetObject("StsTrackMatch");
371  if (nullptr == fStsTrackMatches) {
372  Fatal("CbmKresConversionCorrectedPhotons::Init", "No StsTrackMatch array!");
373  }
374 
375  fRichProjections = (TClonesArray*) ioman->GetObject("RichProjection");
376  if (nullptr == fRichProjections) {
377  Fatal("CbmKresConversionCorrectedPhotons::Init",
378  "No RichProjection array!");
379  }
380 
381  fRichRings = (TClonesArray*) ioman->GetObject("RichRing");
382  if (nullptr == fRichRings) {
383  Fatal("CbmKresConversionCorrectedPhotons::Init", "No RichRing array!");
384  }
385 
386  fRichRingMatches = (TClonesArray*) ioman->GetObject("RichRingMatch");
387  if (nullptr == fRichRingMatches) {
388  Fatal("CbmKresConversionCorrectedPhotons::Init", "No RichRingMatch array!");
389  }
390 
391  fRichHits = (TClonesArray*) ioman->GetObject("RichHit");
392  if (nullptr == fRichHits) {
393  Fatal("CbmKresConversionCorrectedPhotons::Init", "No RichHit array!");
394  }
395 
396  fArrayMvdHit = (TClonesArray*) ioman->GetObject("MvdHit");
397  if (nullptr == fArrayMvdHit) {
398  Fatal("CbmKresConversionCorrectedPhotons::Init", "No MvdHit array!");
399  }
400 
401  fArrayStsHit = (TClonesArray*) ioman->GetObject("StsHit");
402  if (nullptr == fArrayStsHit) {
403  Fatal("CbmKresConversionCorrectedPhotons::Init", "No StsHit array!");
404  }
405 
406 
408 
409  InitHistograms();
410 
411  thresholdweight = 500;
412 
413  UseCorrection = 1;
414  AnnTrainPhotons = 0;
415 
417 
418  if (AnnTrainPhotons == 1) {
420  fTrainPhotons->Init();
421  cout << endl;
422  cout << "\t *** CbmKresTrainAnnDirectPhotons ==> is "
423  "activated"
424  << endl;
425  }
426 
427 
428  if (UseAnnPhotons == 1) {
431  cout << endl;
432  cout << "\t *** CbmKresSelectAnnPhotons ==> is "
433  "activated"
434  << endl;
435  }
436 
437  if (UseCorrection == 1) {
440  cout << endl;
441  cout << "\t *** CbmKresGammaCorrection ==> is "
442  "activated"
443  << endl;
444  }
445 }
446 
447 
449  double OpeningAngleCut,
450  double GammaInvMassCut,
451  int RealPID) {
452  cout << "CbmKresConversionCorrectedPhotons, event No. " << fEventNumDP
453  << endl;
454 
455  if (fPrimVertex != nullptr) {
457  } else {
458  Fatal("CbmKresConversionCorrectedPhotons::Exec", "No PrimaryVertex array!");
459  }
460 
461  VMCtracks_minus_Outside.clear();
462  VStsTrack_minus_Outside.clear();
463  VRings_minus_Outside.clear();
464  VStsIndex_minus_Outside.clear();
465  VRichRing_minus_Outside.clear();
466  VMCtracks_plus_Outside.clear();
467  VStsTrack_plus_Outside.clear();
468  VRings_plus_Outside.clear();
469  VStsIndex_plus_Outside.clear();
470  VRichRing_plus_Outside.clear();
471 
472  VMCtracks_minus_Target.clear();
473  VMomenta_minus_Target.clear();
474  VStsTrack_minus_Target.clear();
475  VRings_minus_Target.clear();
476  VStsIndex_minus_Target.clear();
477  VRichRing_minus_Target.clear();
478  VMCtracks_plus_Target.clear();
479  VStsTrack_plus_Target.clear();
480  VMomenta_plus_Target.clear();
481  VRings_plus_Target.clear();
482  VStsIndex_plus_Target.clear();
483  VRichRing_plus_Target.clear();
484 
485 
486  Int_t ngTracks = fGlobalTracks->GetEntriesFast();
487  for (Int_t i = 0; i < ngTracks; i++) {
488  CbmGlobalTrack* gTrack = (CbmGlobalTrack*) fGlobalTracks->At(i);
489  if (nullptr == gTrack) continue;
490  Int_t stsInd = gTrack->GetStsTrackIndex();
491  Int_t richInd = gTrack->GetRichRingIndex();
492 
493  if (stsInd < 0) continue;
494  CbmStsTrack* stsTrack = (CbmStsTrack*) fStsTracks->At(stsInd);
495  if (stsTrack == nullptr) continue;
496  CbmTrackMatchNew* stsMatch =
497  (CbmTrackMatchNew*) fStsTrackMatches->At(stsInd);
498  if (stsMatch == nullptr) continue;
499  if (stsMatch->GetNofLinks() <= 0) continue;
500  Int_t stsMcTrackId = stsMatch->GetMatchedLink().GetIndex();
501  if (stsMcTrackId < 0) continue;
502  CbmMCTrack* mcTrack = (CbmMCTrack*) fMcTracks->At(stsMcTrackId);
503  if (mcTrack == nullptr) continue;
504 
505 
506  FairTrackParam* proj = (FairTrackParam*) fRichProjections->At(i);
507  if (richInd < 0 && proj->GetX() > -115 && proj->GetX() < 115
508  && ((proj->GetY() < -120 && proj->GetY() > -200)
509  || (proj->GetY() > 120 && proj->GetY() < 200)))
510  continue;
511  CbmRichRing* Ring = nullptr;
512  if (richInd > -1) {
513  Ring = static_cast<CbmRichRing*>(fRichRings->At(richInd));
514  CPdg_vs_Distance_for_dp->Fill(TMath::Abs(mcTrack->GetPdgCode()),
516  if (TMath::Abs(mcTrack->GetPdgCode()) == 11)
517  CP_vs_Distance_for_dp->Fill(mcTrack->GetP(),
519  }
520 
521  // Doing fit with Fit To primary Vertex and calculate chi2 to primary vertex
522  double chi2 = 0;
523  TVector3 Momentum =
525  fKFVertex.GetRefX(),
526  fKFVertex.GetRefY(),
527  fKFVertex.GetRefZ(),
528  chi2);
529  const FairTrackParam* track_par = stsTrack->GetParamFirst();
530  double charge = track_par->GetQp();
531 
532 
533  if (chi2 != chi2) continue;
534  if (chi2 == 0) continue;
535 
536  if (chi2 > 3) {
538  mcTrack, stsTrack, charge, stsInd, richInd, stsMcTrackId, Ring);
539  }
540  if (chi2 > 3) continue;
541 
543  mcTrack, stsTrack, Momentum, charge, stsInd, richInd, stsMcTrackId, Ring);
544  }
545 
546 
547  FindGammasTarget(fEventNumDP,
548  OpeningAngleCut,
549  GammaInvMassCut,
550  RealPID,
563 
564  FindGammasOutside(fEventNumDP,
565  OpeningAngleCut,
566  GammaInvMassCut,
567  RealPID,
578 
579 
580  if (UseAnnPhotons == 1) {
581  int numformix = 1000;
582  if (fEventNumDP % numformix == 0) {
583  CDP_Mixing_Target(OpeningAngleCut, GammaInvMassCut);
588 
592  CDP_EMT_Hits_plus_Target.clear();
593  }
594 
595  if (fEventNumDP % numformix == 0) {
596  CDP_Mixing_Outside(OpeningAngleCut, GammaInvMassCut);
602 
608  }
609 
610  // CDP_LK_EMT Target
611  CDP_likesign_Mixing_Target(OpeningAngleCut, GammaInvMassCut);
620 
621  // CDP_LK_EMT Outside
622  CDP_likesign_Mixing_Outside(OpeningAngleCut, GammaInvMassCut);
629  }
630 }
631 
632 
634  CbmStsTrack* stsTrack,
635  double charge,
636  int stsInd,
637  int richInd,
638  int stsMcTrackId,
639  CbmRichRing* RING) {
640  int InRich = FindInRich(richInd, stsMcTrackId);
641  if (charge < 0) {
642  VMCtracks_minus_Outside.push_back(mcTrack1);
643  VStsTrack_minus_Outside.push_back(stsTrack);
644  VRings_minus_Outside.push_back(InRich);
645  VStsIndex_minus_Outside.push_back(stsInd);
646  VRichRing_minus_Outside.push_back(RING);
647  }
648  if (charge > 0) {
649  VMCtracks_plus_Outside.push_back(mcTrack1);
650  VStsTrack_plus_Outside.push_back(stsTrack);
651  VRings_plus_Outside.push_back(InRich);
652  VStsIndex_plus_Outside.push_back(stsInd);
653  VRichRing_plus_Outside.push_back(RING);
654  }
655 }
656 
658  CbmStsTrack* stsTrack,
659  TVector3 refmom,
660  double charge,
661  int stsInd,
662  int richInd,
663  int stsMcTrackId,
664  CbmRichRing* RING) {
665  int InRich = FindInRich(richInd, stsMcTrackId);
666  if (charge < 0) {
667  VMCtracks_minus_Target.push_back(mcTrack1);
668  VStsTrack_minus_Target.push_back(stsTrack);
669  VMomenta_minus_Target.push_back(refmom);
670  VRings_minus_Target.push_back(InRich);
671  VStsIndex_minus_Target.push_back(stsInd);
672  VRichRing_minus_Target.push_back(RING);
673  }
674  if (charge > 0) {
675  VMCtracks_plus_Target.push_back(mcTrack1);
676  VStsTrack_plus_Target.push_back(stsTrack);
677  VMomenta_plus_Target.push_back(refmom);
678  VRings_plus_Target.push_back(InRich);
679  VStsIndex_plus_Target.push_back(stsInd);
680  VRichRing_plus_Target.push_back(RING);
681  }
682 }
683 
684 
686  int EventNumMan,
687  double AngleCut,
688  double InvMassCut,
689  int RealPID,
690  vector<CbmMCTrack*> MCtracks_minus,
691  vector<CbmMCTrack*> MCtracks_plus,
692  vector<CbmStsTrack*> StsTrack_minus,
693  vector<CbmStsTrack*> StsTrack_plus,
694  vector<TVector3> Momenta_minus,
695  vector<TVector3> Momenta_plus,
696  std::vector<int> Rings_minus,
697  std::vector<int> Rings_plus,
698  std::vector<int> stsIndex_minus,
699  std::vector<int> stsIndex_plus,
700  vector<CbmRichRing*> richRing_minus,
701  vector<CbmRichRing*> richRing_plus) {
702  for (size_t i = 0; i < Momenta_minus.size(); i++) {
703  for (size_t j = 0; j < Momenta_plus.size(); j++) {
704 
705  CbmStsTrack* sts1 = StsTrack_minus.at(i);
706  CbmStsTrack* sts2 = StsTrack_plus.at(j);
707 
708  TVector3 part1 = Momenta_minus[i];
709  TVector3 part2 = Momenta_plus[j];
710  CbmMCTrack* part1MC = MCtracks_minus[i];
711  CbmMCTrack* part2MC = MCtracks_plus[j];
712  int sts1_index = stsIndex_minus[i];
713  int sts2_index = stsIndex_plus[j];
714 
715  int richcheck_0 = 0;
716  int richcheck_1 = 0;
717  if (RealPID == 1) {
718  // Real PID
719  richcheck_0 =
720  CheckIfElectron(richRing_minus[i], Momenta_minus[i].Mag());
721  richcheck_1 = CheckIfElectron(richRing_plus[j], Momenta_plus[j].Mag());
722  } else {
723  // MC PID
724  richcheck_0 = Rings_minus[i];
725  richcheck_1 = Rings_plus[j];
726  }
727  int richcheck = richcheck_0 + richcheck_1;
728 
729  Double_t InvmassReco =
731  Double_t OpeningAngle =
733  CbmLmvmKinematicParams params =
735 
736  if (params.fRapidity != params.fRapidity) continue;
737  if (params.fPt != params.fPt) continue;
738  if (params.fRapidity >= 4) continue;
739  if (params.fPt >= 3) continue;
740 
741  double rap_step = 0.4;
742  double pt_step = 0.1;
743  int rap_coef = params.fRapidity / rap_step;
744  int pt_coef = params.fPt / pt_step;
745 
746  CDP_candidates_InvMass_vs_OA_Target->Fill(InvmassReco, OpeningAngle);
747  CDP_candidates_InvMass_vs_OA_Both->Fill(InvmassReco, OpeningAngle);
748  CDP_candidates_InvMass_Target->Fill(InvmassReco);
749  CDP_candidates_InvMass_Both->Fill(InvmassReco);
750  CDP_candidates_OA_Target->Fill(OpeningAngle);
751  CDP_candidates_OA_Both->Fill(OpeningAngle);
752 
753  double PlaneAngle_last = CalculatePlaneAngle_last(sts1, sts2);
754  double PlaneAngle_first = CalculatePlaneAngle_first(sts1, sts2);
755 
756  int IdForANN =
757  0; // 0 - means wrong pair combination; 1 - means correct pair
758  if (part1MC->GetMotherId() == part2MC->GetMotherId()
759  && part1MC->GetMotherId() != -1) {
760  CbmMCTrack* mcTrackmama =
761  (CbmMCTrack*) fMcTracks->At(part1MC->GetMotherId());
762  if (mcTrackmama->GetMotherId() == -1
763  && mcTrackmama->GetPdgCode() == 22) {
764  IdForANN = 1;
765  CDP_InvMass_Target->Fill(InvmassReco);
766  CDP_InvMass_Both->Fill(InvmassReco);
767  CDP_OA_Target->Fill(OpeningAngle);
768  CDP_OA_Both->Fill(OpeningAngle);
769  CDP_InvMass_vs_OA_Target->Fill(InvmassReco, OpeningAngle);
770  CDP_InvMass_vs_OA_Both->Fill(InvmassReco, OpeningAngle);
771  CDP_PlaneAngles_last_Target->Fill(PlaneAngle_last);
772  CDP_PlaneAngles_last_Both->Fill(PlaneAngle_last);
773  CDP_PlaneAngles_first_Target->Fill(PlaneAngle_first);
774  CDP_PlaneAngles_first_Both->Fill(PlaneAngle_first);
775  }
776  }
777 
778  // run ANN
779  if (AnnTrainPhotons == 1) {
780  fTrainPhotons->Exec(EventNumMan,
781  IdForANN,
782  InvmassReco,
783  OpeningAngle,
784  PlaneAngle_last,
785  fKFVertex.GetRefZ(),
786  part1,
787  part2);
788  continue;
789  }
790 
791  double AnnValue = 999;
792  if (UseAnnPhotons == 1) {
793  AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco,
794  OpeningAngle,
795  PlaneAngle_last,
796  fKFVertex.GetRefZ(),
797  part1,
798  part2);
799  if (IdForANN == 1) CDP_AnnTruePairs->Fill(AnnValue);
800  if (IdForANN == 0) CDP_AnnFalsePairs->Fill(AnnValue);
801  }
802 
803 
804  CDP_candidates_PlaneAngles_last_Target->Fill(PlaneAngle_last);
805  CDP_candidates_PlaneAngles_last_Both->Fill(PlaneAngle_last);
806  CDP_candidates_PlaneAngles_first_Target->Fill(PlaneAngle_first);
807  CDP_candidates_PlaneAngles_first_Both->Fill(PlaneAngle_first);
808 
809 
810  // cuts
811  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
812  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
813  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
814 
815  int fromPions = 0;
816  int fromEta = 0;
817  int fromFireball = 0;
818  int fromDalitz = 0;
819  int fromXi = 0;
820  int fromOther = 0;
821  int fromCombinatorial = 0;
822  int fromConversion = 0;
823  int twoFromTarget = 0;
824  if (part1MC->GetMotherId() == part2MC->GetMotherId()
825  && part1MC->GetMotherId() != -1) {
826  CbmMCTrack* mcTrackmama =
827  (CbmMCTrack*) fMcTracks->At(part1MC->GetMotherId());
828  if (mcTrackmama->GetPdgCode() == 22) {
829  if (mcTrackmama->GetMotherId() == -1) {
830  fromFireball = 1;
831  } else {
832  CbmMCTrack* mcTrackGrmama =
833  (CbmMCTrack*) fMcTracks->At(mcTrackmama->GetMotherId());
834  if (mcTrackGrmama->GetPdgCode() == 111) fromPions = 1;
835  if (mcTrackGrmama->GetPdgCode() == 221) fromEta = 1;
836  if (mcTrackGrmama->GetPdgCode() == 3212) fromXi = 1;
837  fromConversion = 1;
838  }
839  } else {
840  if (mcTrackmama->GetPdgCode() == 111) fromDalitz = 1;
841  if (mcTrackmama->GetPdgCode() != 111) fromOther = 1;
842  }
843  } else if (part1MC->GetMotherId() == part2MC->GetMotherId()
844  && part1MC->GetMotherId() == -1) {
845  twoFromTarget = 1;
846  } else {
847  fromCombinatorial = 1;
848  }
849 
850 
851  if (part1MC->GetMotherId() == part2MC->GetMotherId()
852  && part1MC->GetMotherId() != -1) {
853  CbmMCTrack* mcTrackmama =
854  (CbmMCTrack*) fMcTracks->At(part1MC->GetMotherId());
855  CMother_PDG_Target->Fill(mcTrackmama->GetPdgCode());
856  if (mcTrackmama->GetPdgCode() == 22) {
857  if (mcTrackmama->GetMotherId() == -1) {
858  CGrandMother_PDG_Target->Fill(mcTrackmama->GetMotherId());
859  } else {
860  CbmMCTrack* mcTrackGrmama =
861  (CbmMCTrack*) fMcTracks->At(mcTrackmama->GetMotherId());
863  TMath::Abs(mcTrackGrmama->GetPdgCode()));
864  }
865  }
866  }
867 
868 
869  if (IdForANN == 1) CDP_AnnTruePairs_AfterCuts->Fill(AnnValue);
870  if (IdForANN == 0) CDP_AnnFalsePairs_AfterCuts->Fill(AnnValue);
871 
872 
873  // for event mixing CDP
874  std::vector<TVector3> minusTrack = SaveAllHits(sts1);
875  std::vector<TVector3> plusTrack = SaveAllHits(sts2);
876 
877  CDP_EMT_Event_minus_Target.push_back(EventNumMan);
878  CDP_EMT_momenta_minus_Target.push_back(part1);
879  CDP_EMT_NofRings_minus_Target.push_back(richcheck_0);
880  CDP_EMT_Hits_minus_Target.push_back(minusTrack);
881 
882  CDP_EMT_Event_plus_Target.push_back(EventNumMan);
883  CDP_EMT_momenta_plus_Target.push_back(part2);
884  CDP_EMT_NofRings_plus_Target.push_back(richcheck_1);
885  CDP_EMT_Hits_plus_Target.push_back(plusTrack);
886 
887  // CDP_LK_EMT
888  CDP_LK_EMT_momenta_minus_Target.push_back(part1);
889  CDP_LK_EMT_NofRings_minus_Target.push_back(richcheck_0);
890  CDP_LK_EMT_STS_minus_Target.push_back(sts1);
891  CDP_LK_EMT_STS_minus_index_Target.push_back(sts1_index);
892 
893  CDP_LK_EMT_momenta_plus_Target.push_back(part2);
894  CDP_LK_EMT_NofRings_plus_Target.push_back(richcheck_1);
895  CDP_LK_EMT_STS_plus_Target.push_back(sts2);
896  CDP_LK_EMT_STS_plus_index_Target.push_back(sts2_index);
897 
898 
899  // everything (RICH == 0, RICH == 1, RICH == 2) together
900  if (richcheck == 0 || richcheck == 1 || richcheck == 2) {
901  double weight_all = 0;
902  if (corr_all[rap_coef][pt_coef] != 0)
903  weight_all = 1 / corr_all[rap_coef][pt_coef];
904  if (weight_all > thresholdweight) weight_all = 0;
905  CDP_InvMassReco_all_Target->Fill(InvmassReco, weight_all);
906  CDP_OpeningAngleReco_all_Target->Fill(OpeningAngle, weight_all);
907  CDP_Pdg_all_Target->Fill(TMath::Abs(part1MC->GetPdgCode()));
908  CDP_Pdg_all_Target->Fill(TMath::Abs(part2MC->GetPdgCode()));
909  CDP_P_reco_all_Target->Fill(params.fMomentumMag, weight_all);
910  CDP_Pt_reco_all_Target->Fill(params.fPt, weight_all);
911  CDP_InvMassReco_all_Both->Fill(InvmassReco, weight_all);
912  CDP_OpeningAngleReco_all_Both->Fill(OpeningAngle, weight_all);
913  CDP_Pdg_all_Both->Fill(TMath::Abs(part1MC->GetPdgCode()));
914  CDP_Pdg_all_Both->Fill(TMath::Abs(part2MC->GetPdgCode()));
915  CDP_P_reco_all_Both->Fill(params.fMomentumMag, weight_all);
916  CDP_Pt_reco_all_Both->Fill(params.fPt, weight_all);
917  if (fromFireball == 1) {
918  CPh_fromTarget_Pt_reco_all_Target->Fill(params.fPt, weight_all);
919  CPh_fromTarget_Pt_reco_all_Both->Fill(params.fPt, weight_all);
920  CPh_pt_vs_rap_est_all_Target->Fill(params.fRapidity, params.fPt);
921  CPh_pt_vs_rap_est_all_Both->Fill(params.fRapidity, params.fPt);
923  params.fRapidity, params.fPt, weight_all);
925  params.fRapidity, params.fPt, weight_all);
926  }
927  if (fromPions == 1) {
928  CPh_fromPions_Pt_reco_all_Target->Fill(params.fPt, weight_all);
929  CPh_fromPions_Pt_reco_all_Both->Fill(params.fPt, weight_all);
930  }
931  if (fromEta == 1) {
932  CPh_fromEtas_Pt_reco_all_Target->Fill(params.fPt, weight_all);
933  CPh_fromEtas_Pt_reco_all_Both->Fill(params.fPt, weight_all);
934  }
935  if (fromDalitz == 1) {
936  CPh_fromDalitz_Pt_reco_all_Target->Fill(params.fPt, weight_all);
937  CPh_fromDalitz_Pt_reco_all_Both->Fill(params.fPt, weight_all);
938  }
939  if (fromXi == 1) {
940  CPh_fromXi_Pt_reco_all_Target->Fill(params.fPt, weight_all);
941  CPh_fromXi_Pt_reco_all_Both->Fill(params.fPt, weight_all);
942  }
943  if (fromOther == 1) {
944  CPh_fromOther_Pt_reco_all_Target->Fill(params.fPt, weight_all);
945  CPh_fromOther_Pt_reco_all_Both->Fill(params.fPt, weight_all);
946  }
947  if (fromCombinatorial == 1) {
949  weight_all);
950  CPh_fromCombinatorial_Pt_reco_all_Both->Fill(params.fPt, weight_all);
951  }
952  if (fromConversion == 1) {
953  CPh_fromConversion_Pt_reco_all_Target->Fill(params.fPt, weight_all);
954  CPh_fromConversion_Pt_reco_all_Both->Fill(params.fPt, weight_all);
955  }
956  if (twoFromTarget == 1) {
957  CPh_twoFromTarget_Pt_reco_all_Target->Fill(params.fPt, weight_all);
958  CPh_twoFromTarget_Pt_reco_all_Both->Fill(params.fPt, weight_all);
959  }
960  }
961 
962  // only cases, when RICH == 2
963  if (richcheck == 2) {
964  double weight_two = 0;
965  if (corr_two[rap_coef][pt_coef] != 0)
966  weight_two = 1 / corr_two[rap_coef][pt_coef];
967  if (weight_two > thresholdweight) weight_two = 0;
968  CDP_InvMassReco_two_Target->Fill(InvmassReco, weight_two);
969  CDP_OpeningAngleReco_two_Target->Fill(OpeningAngle, weight_two);
970  CDP_Pdg_two_Target->Fill(TMath::Abs(part1MC->GetPdgCode()));
971  CDP_Pdg_two_Target->Fill(TMath::Abs(part2MC->GetPdgCode()));
972  CDP_P_reco_two_Target->Fill(params.fMomentumMag, weight_two);
973  CDP_Pt_reco_two_Target->Fill(params.fPt, weight_two);
974  CDP_InvMassReco_two_Both->Fill(InvmassReco, weight_two);
975  CDP_OpeningAngleReco_two_Both->Fill(OpeningAngle, weight_two);
976  CDP_Pdg_two_Both->Fill(TMath::Abs(part1MC->GetPdgCode()));
977  CDP_Pdg_two_Both->Fill(TMath::Abs(part2MC->GetPdgCode()));
978  CDP_P_reco_two_Both->Fill(params.fMomentumMag, weight_two);
979  CDP_Pt_reco_two_Both->Fill(params.fPt, weight_two);
980  if (fromFireball == 1) {
981  CPh_fromTarget_Pt_reco_two_Target->Fill(params.fPt, weight_two);
982  CPh_fromTarget_Pt_reco_two_Both->Fill(params.fPt, weight_two);
983  CPh_pt_vs_rap_est_two_Target->Fill(params.fRapidity, params.fPt);
984  CPh_pt_vs_rap_est_two_Both->Fill(params.fRapidity, params.fPt);
986  params.fRapidity, params.fPt, weight_two);
988  params.fRapidity, params.fPt, weight_two);
989  }
990  if (fromPions == 1) {
991  CPh_fromPions_Pt_reco_two_Target->Fill(params.fPt, weight_two);
992  CPh_fromPions_Pt_reco_two_Both->Fill(params.fPt, weight_two);
993  }
994  if (fromEta == 1) {
995  CPh_fromEtas_Pt_reco_two_Target->Fill(params.fPt, weight_two);
996  CPh_fromEtas_Pt_reco_two_Both->Fill(params.fPt, weight_two);
997  }
998  if (fromDalitz == 1) {
999  CPh_fromDalitz_Pt_reco_two_Target->Fill(params.fPt, weight_two);
1000  CPh_fromDalitz_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1001  }
1002  if (fromXi == 1) {
1003  CPh_fromXi_Pt_reco_two_Target->Fill(params.fPt, weight_two);
1004  CPh_fromXi_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1005  }
1006  if (fromOther == 1) {
1007  CPh_fromOther_Pt_reco_two_Target->Fill(params.fPt, weight_two);
1008  CPh_fromOther_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1009  }
1010  if (fromCombinatorial == 1) {
1012  weight_two);
1013  CPh_fromCombinatorial_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1014  }
1015  if (fromConversion == 1) {
1016  CPh_fromConversion_Pt_reco_two_Target->Fill(params.fPt, weight_two);
1017  CPh_fromConversion_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1018  }
1019  if (twoFromTarget == 1) {
1020  CPh_twoFromTarget_Pt_reco_two_Target->Fill(params.fPt, weight_two);
1021  CPh_twoFromTarget_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1022  }
1023  }
1024 
1025  // cases, when RICH == 1 or RICH == 2 together
1026  if (richcheck == 1 || richcheck == 2) {
1027  double weight_onetwo = 0;
1028  if (corr_onetwo[rap_coef][pt_coef] != 0)
1029  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
1030  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
1031  // cout << "Rapidity = " << params.fRapidity << "; Pt = " << params.fPt << endl;
1032  // cout << "rap_coef = " << rap_coef << "; pt_coef = " << pt_coef << "; correction factor is " << corr_onetwo[rap_coef][pt_coef] << endl;
1033  CDP_InvMassReco_onetwo_Target->Fill(InvmassReco, weight_onetwo);
1034  CDP_OpeningAngleReco_onetwo_Target->Fill(OpeningAngle, weight_onetwo);
1035  CDP_Pdg_onetwo_Target->Fill(TMath::Abs(part1MC->GetPdgCode()));
1036  CDP_Pdg_onetwo_Target->Fill(TMath::Abs(part2MC->GetPdgCode()));
1037  CDP_P_reco_onetwo_Target->Fill(params.fMomentumMag, weight_onetwo);
1038  CDP_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1039  CDP_InvMassReco_onetwo_Both->Fill(InvmassReco, weight_onetwo);
1040  CDP_OpeningAngleReco_onetwo_Both->Fill(OpeningAngle, weight_onetwo);
1041  CDP_Pdg_onetwo_Both->Fill(TMath::Abs(part1MC->GetPdgCode()));
1042  CDP_Pdg_onetwo_Both->Fill(TMath::Abs(part2MC->GetPdgCode()));
1043  CDP_P_reco_onetwo_Both->Fill(params.fMomentumMag, weight_onetwo);
1044  CDP_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1045  if (fromFireball == 1) {
1046  CPh_fromTarget_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1047  CPh_fromTarget_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1048  CPh_pt_vs_rap_est_onetwo_Target->Fill(params.fRapidity, params.fPt);
1049  CPh_pt_vs_rap_est_onetwo_Both->Fill(params.fRapidity, params.fPt);
1051  params.fRapidity, params.fPt, weight_onetwo);
1053  params.fRapidity, params.fPt, weight_onetwo);
1054  }
1055  if (fromPions == 1) {
1056  CPh_fromPions_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1057  CPh_fromPions_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1058  }
1059  if (fromEta == 1) {
1060  CPh_fromEtas_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1061  CPh_fromEtas_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1062  }
1063  if (fromDalitz == 1) {
1064  CPh_fromDalitz_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1065  CPh_fromDalitz_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1066  }
1067  if (fromXi == 1) {
1068  CPh_fromXi_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1069  CPh_fromXi_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1070  }
1071  if (fromOther == 1) {
1072  CPh_fromOther_Pt_reco_onetwo_Target->Fill(params.fPt, weight_onetwo);
1073  CPh_fromOther_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1074  }
1075  if (fromCombinatorial == 1) {
1077  weight_onetwo);
1079  weight_onetwo);
1080  }
1081  if (fromConversion == 1) {
1083  weight_onetwo);
1085  weight_onetwo);
1086  }
1087  if (twoFromTarget == 1) {
1089  weight_onetwo);
1091  weight_onetwo);
1092  }
1093  }
1094  }
1095  }
1096 }
1097 
1098 
1100  int EventNumMan,
1101  double AngleCut,
1102  double InvMassCut,
1103  int RealPID,
1104  vector<CbmMCTrack*> MCtracks_minus_Outside,
1105  vector<CbmMCTrack*> MCtracks_plus_Outside,
1106  vector<CbmStsTrack*> StsTrack_minus_Outside,
1107  vector<CbmStsTrack*> StsTrack_plus_Outside,
1108  std::vector<int> Rings_minus_Outside,
1109  std::vector<int> Rings_plus_Outside,
1110  std::vector<int> stsIndex_minus_Outside,
1111  std::vector<int> /*stsIndex_plus_Outside*/,
1112  vector<CbmRichRing*> richRing_minus_Outside,
1113  vector<CbmRichRing*> richRing_plus_Outside) {
1114  for (size_t i = 0; i < StsTrack_minus_Outside.size(); i++) {
1115  for (size_t j = 0; j < StsTrack_plus_Outside.size(); j++) {
1116 
1117  CbmStsTrack* part1STS = StsTrack_minus_Outside[i];
1118  CbmStsTrack* part2STS = StsTrack_plus_Outside[j];
1119  CbmMCTrack* part1MC = MCtracks_minus_Outside[i];
1120  CbmMCTrack* part2MC = MCtracks_plus_Outside[j];
1121  int sts1_index = stsIndex_minus_Outside[i];
1122  // int sts2_index = stsIndex_plus_Outside[j];
1123 
1124  KFParticle electron;
1126  part1STS, &electron, 11);
1127  KFParticle positron;
1129  part2STS, &positron, -11);
1130  const KFParticle* daughters[2] = {&electron, &positron};
1131  KFParticle intersection;
1132  intersection.Construct(daughters, 2);
1133 
1134  if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
1135  continue; // kick weird intersections
1136 
1137  // fit to the vertex fitter
1138  TVector3 part1 = CbmKresFunctions::FitToVertex(part1STS,
1139  intersection.GetX(),
1140  intersection.GetY(),
1141  intersection.GetZ());
1142  TVector3 part2 = CbmKresFunctions::FitToVertex(part2STS,
1143  intersection.GetX(),
1144  intersection.GetY(),
1145  intersection.GetZ());
1146 
1147  // TVector3 part1(electron.KFParticleBase::Px(), electron.KFParticleBase::Py(), electron.KFParticleBase::Pz());
1148  // TVector3 part2(positron.KFParticleBase::Px(), positron.KFParticleBase::Py(), positron.KFParticleBase::Pz());
1149 
1150  int richcheck = 0;
1151  int richcheck_0 = 0;
1152  int richcheck_1 = 0;
1153  if (RealPID == 1) {
1154  // Real PID
1155  richcheck_0 = CheckIfElectron(richRing_minus_Outside[i], part1.Mag());
1156  richcheck_1 = CheckIfElectron(richRing_plus_Outside[j], part2.Mag());
1157  richcheck = richcheck_0 + richcheck_1;
1158  } else {
1159  // MC PID
1160  richcheck = Rings_minus_Outside[i] + Rings_plus_Outside[j];
1161  }
1162 
1163 
1164  Double_t InvmassReco =
1166  Double_t OpeningAngle =
1168  CbmLmvmKinematicParams params =
1170 
1171  if (params.fRapidity != params.fRapidity) continue;
1172  if (params.fPt != params.fPt) continue;
1173  if (params.fRapidity >= 4) continue;
1174  if (params.fPt >= 3) continue;
1175 
1176  double rap_step = 0.4;
1177  double pt_step = 0.1;
1178  int rap_coef = params.fRapidity / rap_step;
1179  int pt_coef = params.fPt / pt_step;
1180 
1181  CDP_candidates_InvMass_vs_OA_Outside->Fill(InvmassReco, OpeningAngle);
1182  CDP_candidates_InvMass_vs_OA_Both->Fill(InvmassReco, OpeningAngle);
1183  CDP_candidates_InvMass_Outside->Fill(InvmassReco);
1184  CDP_candidates_InvMass_Both->Fill(InvmassReco);
1185  CDP_candidates_OA_Outside->Fill(OpeningAngle);
1186  CDP_candidates_OA_Both->Fill(OpeningAngle);
1187 
1188  double PlaneAngle_last = CalculatePlaneAngle_last(part1STS, part2STS);
1189  double PlaneAngle_first = CalculatePlaneAngle_first(part1STS, part2STS);
1190 
1191  int IdForANN =
1192  0; // 0 - means wrong pair combination; 1 - means correct pair
1193  if (part1MC->GetMotherId() == part2MC->GetMotherId()
1194  && part1MC->GetMotherId() != -1) {
1195  CbmMCTrack* mcTrackmama =
1196  (CbmMCTrack*) fMcTracks->At(part1MC->GetMotherId());
1197  if (mcTrackmama->GetMotherId() == -1
1198  && mcTrackmama->GetPdgCode() == 22) {
1199  IdForANN = 1;
1200  CDP_InvMass_Outside->Fill(InvmassReco);
1201  CDP_InvMass_Both->Fill(InvmassReco);
1202  CDP_OA_Outside->Fill(OpeningAngle);
1203  CDP_OA_Both->Fill(OpeningAngle);
1204  CDP_InvMass_vs_OA_Outside->Fill(InvmassReco, OpeningAngle);
1205  CDP_InvMass_vs_OA_Both->Fill(InvmassReco, OpeningAngle);
1206  CDP_PlaneAngles_last_Outside->Fill(PlaneAngle_last);
1207  CDP_PlaneAngles_last_Both->Fill(PlaneAngle_last);
1208  CDP_PlaneAngles_first_Outside->Fill(PlaneAngle_first);
1209  CDP_PlaneAngles_first_Both->Fill(PlaneAngle_first);
1210  }
1211  }
1212 
1213  // run ANN
1214  if (AnnTrainPhotons == 1) {
1215  fTrainPhotons->Exec(EventNumMan,
1216  IdForANN,
1217  InvmassReco,
1218  OpeningAngle,
1219  PlaneAngle_last,
1220  intersection.GetZ(),
1221  part1,
1222  part2);
1223  continue;
1224  }
1225 
1226  double AnnValue = 999;
1227  if (UseAnnPhotons == 1) {
1228  AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco,
1229  OpeningAngle,
1230  PlaneAngle_last,
1231  intersection.GetZ(),
1232  part1,
1233  part2);
1234  if (IdForANN == 1) CDP_AnnTruePairs->Fill(AnnValue);
1235  if (IdForANN == 0) CDP_AnnFalsePairs->Fill(AnnValue);
1236  }
1237 
1238  CDP_candidates_PlaneAngles_last_Outside->Fill(PlaneAngle_last);
1239  CDP_candidates_PlaneAngles_last_Both->Fill(PlaneAngle_last);
1240  CDP_candidates_PlaneAngles_first_Outside->Fill(PlaneAngle_first);
1241  CDP_candidates_PlaneAngles_first_Both->Fill(PlaneAngle_first);
1242 
1243  // cuts
1244  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
1245  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
1246  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
1247 
1248 
1249  int fromPions = 0;
1250  int fromEta = 0;
1251  int fromFireball = 0;
1252  int fromDalitz = 0;
1253  int fromXi = 0;
1254  int fromOther = 0;
1255  int fromCombinatorial = 0;
1256  int fromConversion = 0;
1257  int twoFromTarget = 0;
1258  if (part1MC->GetMotherId() == part2MC->GetMotherId()
1259  && part1MC->GetMotherId() != -1) {
1260  CbmMCTrack* mcTrackmama =
1261  (CbmMCTrack*) fMcTracks->At(part1MC->GetMotherId());
1262  if (mcTrackmama->GetPdgCode() == 22) {
1263  if (mcTrackmama->GetMotherId() == -1) {
1264  fromFireball = 1;
1265  } else {
1266  CbmMCTrack* mcTrackGrmama =
1267  (CbmMCTrack*) fMcTracks->At(mcTrackmama->GetMotherId());
1268  if (mcTrackGrmama->GetPdgCode() == 111) fromPions = 1;
1269  if (mcTrackGrmama->GetPdgCode() == 221) fromEta = 1;
1270  if (mcTrackGrmama->GetPdgCode() == 3212) fromXi = 1;
1271  fromConversion = 1;
1272  }
1273  } else {
1274  if (mcTrackmama->GetPdgCode() == 111) fromDalitz = 1;
1275  if (mcTrackmama->GetPdgCode() != 111) fromOther = 1;
1276  }
1277  } else if (part1MC->GetMotherId() == part2MC->GetMotherId()
1278  && part1MC->GetMotherId() == -1) {
1279  twoFromTarget = 1;
1280  } else {
1281  fromCombinatorial = 1;
1282  }
1283 
1284 
1285  if (part1MC->GetMotherId() == part2MC->GetMotherId()
1286  && part1MC->GetMotherId() != -1) {
1287  CbmMCTrack* mcTrackmama =
1288  (CbmMCTrack*) fMcTracks->At(part1MC->GetMotherId());
1289  if (mcTrackmama->GetPdgCode() == 22) {
1290  if (mcTrackmama->GetMotherId() == -1) {
1291  CGrandMother_PDG_Outside->Fill(mcTrackmama->GetMotherId());
1292  } else {
1293  CbmMCTrack* mcTrackGrmama =
1294  (CbmMCTrack*) fMcTracks->At(mcTrackmama->GetMotherId());
1296  TMath::Abs(mcTrackGrmama->GetPdgCode()));
1297  }
1298  } else {
1299  CMother_PDG_Outside->Fill(TMath::Abs(mcTrackmama->GetPdgCode()));
1300  }
1301  }
1302 
1303  if (IdForANN == 1) CDP_AnnTruePairs_AfterCuts->Fill(AnnValue);
1304  if (IdForANN == 0) CDP_AnnFalsePairs_AfterCuts->Fill(AnnValue);
1305 
1306 
1307  // for event mixing CDP
1308  std::vector<TVector3> minusTrack = SaveAllHits(part1STS);
1309  std::vector<TVector3> plusTrack = SaveAllHits(part2STS);
1310 
1311  CDP_EMT_Event_minus_Outside.push_back(EventNumMan);
1312  CDP_EMT_momenta_minus_Outside.push_back(part1STS);
1313  CDP_EMT_KFTrack_minus_Outside.push_back(electron);
1314  CDP_EMT_NofRings_minus_Outside.push_back(richcheck_0);
1315  CDP_EMT_Hits_minus_Outside.push_back(minusTrack);
1316 
1317  CDP_EMT_Event_plus_Outside.push_back(EventNumMan);
1318  CDP_EMT_momenta_plus_Outside.push_back(part2STS);
1319  CDP_EMT_KFTrack_plus_Outside.push_back(positron);
1320  CDP_EMT_NofRings_plus_Outside.push_back(richcheck_1);
1321  CDP_EMT_Hits_plus_Outside.push_back(plusTrack);
1322 
1323 
1324  // CDP_LK_EMT
1325  CDP_LK_EMT_NofRings_minus_Outside.push_back(richcheck_0);
1326  CDP_LK_EMT_STS_minus_Outside.push_back(part1STS);
1327  CDP_LK_EMT_STS_minus_index_Outside.push_back(sts1_index);
1328 
1329  CDP_LK_EMT_NofRings_plus_Outside.push_back(richcheck_1);
1330  CDP_LK_EMT_STS_plus_Outside.push_back(part2STS);
1331  CDP_LK_EMT_STS_plus_index_Outside.push_back(sts1_index);
1332 
1333 
1334  // everything (RICH == 0, RICH == 1, RICH == 2) together
1335  if (richcheck == 0 || richcheck == 1 || richcheck == 2) {
1336  double weight_all = 0;
1337  // cout << "Rapidity = " << params.fRapidity << "; Pt = " << params.fPt << endl;
1338  // cout << "rap_coef = " << rap_coef << "; pt_coef = " << pt_coef << "; correction factor is " << corr_all[rap_coef][pt_coef] << endl;
1339  if (corr_all[rap_coef][pt_coef] != 0)
1340  weight_all = 1 / corr_all[rap_coef][pt_coef];
1341  if (weight_all > thresholdweight) weight_all = 0;
1342  CDP_InvMassReco_all_Outside->Fill(InvmassReco, weight_all);
1343  CDP_OpeningAngleReco_all_Outside->Fill(OpeningAngle, weight_all);
1344  CDP_Pdg_all_Outside->Fill(TMath::Abs(part1MC->GetPdgCode()));
1345  CDP_Pdg_all_Outside->Fill(TMath::Abs(part2MC->GetPdgCode()));
1346  CDP_P_reco_all_Outside->Fill(params.fMomentumMag, weight_all);
1347  CDP_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1348  CDP_InvMassReco_all_Both->Fill(InvmassReco, weight_all);
1349  CDP_OpeningAngleReco_all_Both->Fill(OpeningAngle, weight_all);
1350  CDP_Pdg_all_Both->Fill(TMath::Abs(part1MC->GetPdgCode()));
1351  CDP_Pdg_all_Both->Fill(TMath::Abs(part2MC->GetPdgCode()));
1352  CDP_P_reco_all_Both->Fill(params.fMomentumMag, weight_all);
1353  CDP_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1354  if (fromFireball == 1) {
1355  CPh_fromTarget_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1356  CPh_fromTarget_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1357  CPh_pt_vs_rap_est_all_Outside->Fill(params.fRapidity, params.fPt);
1358  CPh_pt_vs_rap_est_all_Both->Fill(params.fRapidity, params.fPt);
1360  params.fRapidity, params.fPt, weight_all);
1362  params.fRapidity, params.fPt, weight_all);
1363  }
1364  if (fromPions == 1) {
1365  CPh_fromPions_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1366  CPh_fromPions_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1367  }
1368  if (fromEta == 1) {
1369  CPh_fromEtas_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1370  CPh_fromEtas_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1371  }
1372  if (fromDalitz == 1) {
1373  CPh_fromDalitz_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1374  CPh_fromDalitz_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1375  }
1376  if (fromXi == 1) {
1377  CPh_fromXi_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1378  CPh_fromXi_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1379  }
1380  if (fromOther == 1) {
1381  CPh_fromOther_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1382  CPh_fromOther_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1383  }
1384  if (fromCombinatorial == 1) {
1386  weight_all);
1387  CPh_fromCombinatorial_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1388  }
1389  if (fromConversion == 1) {
1390  CPh_fromConversion_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1391  CPh_fromConversion_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1392  }
1393  if (twoFromTarget == 1) {
1394  CPh_twoFromTarget_Pt_reco_all_Outside->Fill(params.fPt, weight_all);
1395  CPh_twoFromTarget_Pt_reco_all_Both->Fill(params.fPt, weight_all);
1396  }
1397  }
1398 
1399  // only cases, when RICH == 2
1400  if (richcheck == 2) {
1401  double weight_two = 0;
1402  if (corr_two[rap_coef][pt_coef] != 0)
1403  weight_two = 1 / corr_two[rap_coef][pt_coef];
1404  if (weight_two > thresholdweight) weight_two = 0;
1405  CDP_InvMassReco_two_Outside->Fill(InvmassReco, weight_two);
1406  CDP_OpeningAngleReco_two_Outside->Fill(OpeningAngle, weight_two);
1407  CDP_Pdg_two_Outside->Fill(TMath::Abs(part1MC->GetPdgCode()));
1408  CDP_Pdg_two_Outside->Fill(TMath::Abs(part2MC->GetPdgCode()));
1409  CDP_P_reco_two_Outside->Fill(params.fMomentumMag, weight_two);
1410  CDP_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1411  CDP_InvMassReco_two_Both->Fill(InvmassReco, weight_two);
1412  CDP_OpeningAngleReco_two_Both->Fill(OpeningAngle, weight_two);
1413  CDP_Pdg_two_Both->Fill(TMath::Abs(part1MC->GetPdgCode()));
1414  CDP_Pdg_two_Both->Fill(TMath::Abs(part2MC->GetPdgCode()));
1415  CDP_P_reco_two_Both->Fill(params.fMomentumMag, weight_two);
1416  CDP_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1417  if (fromFireball == 1) {
1418  CPh_fromTarget_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1419  CPh_fromTarget_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1420  CPh_pt_vs_rap_est_two_Outside->Fill(params.fRapidity, params.fPt);
1421  CPh_pt_vs_rap_est_two_Both->Fill(params.fRapidity, params.fPt);
1423  params.fRapidity, params.fPt, weight_two);
1425  params.fRapidity, params.fPt, weight_two);
1426  }
1427  if (fromPions == 1) {
1428  CPh_fromPions_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1429  CPh_fromPions_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1430  }
1431  if (fromEta == 1) {
1432  CPh_fromEtas_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1433  CPh_fromEtas_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1434  }
1435  if (fromDalitz == 1) {
1436  CPh_fromDalitz_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1437  CPh_fromDalitz_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1438  }
1439  if (fromXi == 1) {
1440  CPh_fromXi_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1441  CPh_fromXi_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1442  }
1443  if (fromOther == 1) {
1444  CPh_fromOther_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1445  CPh_fromOther_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1446  }
1447  if (fromCombinatorial == 1) {
1449  weight_two);
1450  CPh_fromCombinatorial_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1451  }
1452  if (fromConversion == 1) {
1453  CPh_fromConversion_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1454  CPh_fromConversion_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1455  }
1456  if (twoFromTarget == 1) {
1457  CPh_twoFromTarget_Pt_reco_two_Outside->Fill(params.fPt, weight_two);
1458  CPh_twoFromTarget_Pt_reco_two_Both->Fill(params.fPt, weight_two);
1459  }
1460  }
1461 
1462  // cases, when RICH == 1 or RICH == 2 together
1463  if (richcheck == 1 || richcheck == 2) {
1464  double weight_onetwo = 0;
1465  if (corr_onetwo[rap_coef][pt_coef] != 0)
1466  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
1467  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
1468  CDP_InvMassReco_onetwo_Outside->Fill(InvmassReco, weight_onetwo);
1469  CDP_OpeningAngleReco_onetwo_Outside->Fill(OpeningAngle, weight_onetwo);
1470  CDP_Pdg_onetwo_Outside->Fill(TMath::Abs(part1MC->GetPdgCode()));
1471  CDP_Pdg_onetwo_Outside->Fill(TMath::Abs(part2MC->GetPdgCode()));
1472  CDP_P_reco_onetwo_Outside->Fill(params.fMomentumMag, weight_onetwo);
1473  CDP_Pt_reco_onetwo_Outside->Fill(params.fPt, weight_onetwo);
1474  CDP_InvMassReco_onetwo_Both->Fill(InvmassReco, weight_onetwo);
1475  CDP_OpeningAngleReco_onetwo_Both->Fill(OpeningAngle, weight_onetwo);
1476  CDP_Pdg_onetwo_Both->Fill(TMath::Abs(part1MC->GetPdgCode()));
1477  CDP_Pdg_onetwo_Both->Fill(TMath::Abs(part2MC->GetPdgCode()));
1478  CDP_P_reco_onetwo_Both->Fill(params.fMomentumMag, weight_onetwo);
1479  CDP_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1480  if (fromFireball == 1) {
1482  weight_onetwo);
1483  CPh_fromTarget_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1484  CPh_pt_vs_rap_est_onetwo_Outside->Fill(params.fRapidity, params.fPt);
1485  CPh_pt_vs_rap_est_onetwo_Both->Fill(params.fRapidity, params.fPt);
1487  params.fRapidity, params.fPt, weight_onetwo);
1489  params.fRapidity, params.fPt, weight_onetwo);
1490  }
1491  if (fromPions == 1) {
1492  CPh_fromPions_Pt_reco_onetwo_Outside->Fill(params.fPt, weight_onetwo);
1493  CPh_fromPions_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1494  }
1495  if (fromEta == 1) {
1496  CPh_fromEtas_Pt_reco_onetwo_Outside->Fill(params.fPt, weight_onetwo);
1497  CPh_fromEtas_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1498  }
1499  if (fromDalitz == 1) {
1501  weight_onetwo);
1502  CPh_fromDalitz_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1503  }
1504  if (fromXi == 1) {
1505  CPh_fromXi_Pt_reco_onetwo_Outside->Fill(params.fPt, weight_onetwo);
1506  CPh_fromXi_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1507  }
1508  if (fromOther == 1) {
1509  CPh_fromOther_Pt_reco_onetwo_Outside->Fill(params.fPt, weight_onetwo);
1510  CPh_fromOther_Pt_reco_onetwo_Both->Fill(params.fPt, weight_onetwo);
1511  }
1512  if (fromCombinatorial == 1) {
1514  weight_onetwo);
1516  weight_onetwo);
1517  }
1518  if (fromConversion == 1) {
1520  weight_onetwo);
1522  weight_onetwo);
1523  }
1524  if (twoFromTarget == 1) {
1526  weight_onetwo);
1528  weight_onetwo);
1529  }
1530  }
1531  }
1532  }
1533 }
1534 
1535 
1537  int stsMcTrackId) {
1538  int RingsInRich = 0;
1539  if (richInd > -1) {
1540  CbmTrackMatchNew* richMatch =
1541  (CbmTrackMatchNew*) fRichRingMatches->At(richInd);
1542  if (richMatch != nullptr && richMatch->GetNofLinks() > 0) {
1543  int richMcTrackId = richMatch->GetMatchedLink().GetIndex();
1544  if (richMcTrackId > 0) {
1545  if (
1546  stsMcTrackId
1547  == richMcTrackId) { // check that global track was matched correctly for STS and RICH together
1548  CbmMCTrack* mcTrack2 = (CbmMCTrack*) fMcTracks->At(richMcTrackId);
1549  if (mcTrack2 != nullptr) {
1550  int pdgRICH = mcTrack2->GetPdgCode();
1551  if (TMath::Abs(pdgRICH) == 11) RingsInRich++;
1552  }
1553  }
1554  }
1555  }
1556  }
1557  return RingsInRich;
1558 }
1559 
1560 
1562  double momentum) {
1563  int identified = 0;
1564 
1565  if (nullptr != ring) {
1566  CbmRichRingLight ringHit;
1567  int nofHits = ring->GetNofHits();
1568  for (int i = 0; i < nofHits; i++) {
1569  int hitInd = ring->GetHit(i);
1570  CbmRichHit* hit = (CbmRichHit*) fRichHits->At(hitInd);
1571  if (nullptr == hit) continue;
1572  CbmRichHitLight hl(hit->GetX(), hit->GetY());
1573  ringHit.AddHit(hl);
1574  }
1575  fTauFit->DoFit(&ringHit);
1576  if (ringHit.GetAaxis() > 4 && ringHit.GetAaxis() < 6
1577  && ringHit.GetBaxis() > 4 && ringHit.GetBaxis() < 6 && momentum > 0.2
1578  && momentum < 4.)
1579  identified++;
1580  //if (ring->GetDistance() < 2 && ringHit.GetAaxis() > 4 && ringHit.GetAaxis() < 6 && ringHit.GetBaxis() > 4 && ringHit.GetBaxis() < 6 && momentum > 0.2 && momentum < 4.) identified ++;
1581  }
1582 
1583  return identified;
1584 }
1585 
1586 std::vector<TVector3>
1588  std::vector<TVector3> AllHitsOfTrack;
1589  AllHitsOfTrack.clear();
1590 
1591  Int_t hitsMVD = track->GetNofMvdHits();
1592  Int_t hitsSTS = track->GetNofStsHits();
1593 
1594  for (int i = 0; i < hitsMVD; i++) {
1595  Int_t mvdHitIndex = track->GetMvdHitIndex(i);
1596  CbmMvdHit* mvdHit = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex);
1597  TVector3 position;
1598  mvdHit->Position(position);
1599  AllHitsOfTrack.push_back(position);
1600  }
1601  for (int i = 0; i < hitsSTS; i++) {
1602  Int_t stsHitIndex = track->GetStsHitIndex(i);
1603  CbmStsHit* stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex);
1604  TVector3 position;
1605  stsHit->Position(position);
1606  AllHitsOfTrack.push_back(position);
1607  }
1608 
1609  return AllHitsOfTrack;
1610 }
1611 
1613  std::vector<TVector3> track_1,
1614  std::vector<TVector3> track_2) {
1615  double FinalAngle = 400;
1616 
1617  int hits_1 = track_1.size();
1618  int hits_2 = track_2.size();
1619 
1620  double Xpart1 = 0;
1621  double Ypart1 = 0;
1622  double Zpart1 = 0;
1623  double Xpart2 = 0;
1624  double Ypart2 = 0;
1625  double Zpart2 = 0;
1626 
1627  TVector3 last1 = track_1[hits_1 - 1];
1628  TVector3 last2 = track_2[hits_2 - 1];
1629 
1630  // // check difference in 2 cm, because of two slices of every STS and Mvd stations
1631  if (
1632  TMath::Abs(last1.Z() - last2.Z()) > 2
1633  && last1.Z()
1634  > last2
1635  .Z()) { // if last hits are in different stations --> try to find the latest common station
1636  for (int i = hits_1 - 2; i > -1; i--) { // start from second last station
1637  if (TMath::Abs(last1.Z() - last2.Z()) < 2) continue;
1638  last1 = track_1[i];
1639  Xpart1 = last1.X();
1640  Ypart1 = last1.Y();
1641  Zpart1 = last1.Z();
1642  }
1643  }
1644 
1645  if (
1646  TMath::Abs(last1.Z() - last2.Z()) > 2
1647  && last1.Z()
1648  < last2
1649  .Z()) { // if last hits are in different stations --> try to find the latest common station
1650  for (int i = hits_2 - 2; i > -1; i--) { // start from second last station
1651  if (TMath::Abs(last1.Z() - last2.Z()) < 2) continue;
1652  last2 = track_2[i];
1653  Xpart2 = last2.X();
1654  Ypart2 = last2.Y();
1655  Zpart2 = last2.Z();
1656  }
1657  }
1658 
1659  // calculate angle if we have found common station
1660  if (TMath::Abs(Zpart1 - Zpart2) < 2 && Zpart1 != 0 && Zpart2 != 0) {
1661  FinalAngle =
1662  TMath::ATan2(Ypart1 - Ypart2, Xpart1 - Xpart2) * (180 / TMath::Pi());
1663  }
1664 
1665  return TMath::Abs(TMath::Abs(FinalAngle) - 180);
1666 }
1667 
1668 
1670  CbmStsTrack* Sts_1,
1671  CbmStsTrack* Sts_2) {
1672  double FinalAngle = 400;
1673  Int_t hits1sts = Sts_1->GetNofStsHits();
1674  Int_t hits2sts = Sts_2->GetNofStsHits();
1675  Int_t hits1mvd = Sts_1->GetNofMvdHits();
1676  Int_t hits2mvd = Sts_2->GetNofMvdHits();
1677 
1678  double Xpart1 = 0;
1679  double Ypart1 = 0;
1680  double Zpart1 = 0;
1681  double Xpart2 = 0;
1682  double Ypart2 = 0;
1683  double Zpart2 = 0;
1684  if (hits1sts > 0) {
1685  Int_t stsHitIndex1 = Sts_1->GetStsHitIndex(hits1sts - 1);
1686  CbmStsHit* stsHit1 = (CbmStsHit*) fArrayStsHit->At(stsHitIndex1);
1687  Xpart1 = stsHit1->GetX();
1688  Ypart1 = stsHit1->GetY();
1689  Zpart1 = stsHit1->GetZ();
1690  } else {
1691  Int_t mvdHitIndex1 = Sts_1->GetMvdHitIndex(hits1mvd - 1);
1692  CbmMvdHit* mvdHit1 = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex1);
1693  Xpart1 = mvdHit1->GetX();
1694  Ypart1 = mvdHit1->GetY();
1695  Zpart1 = mvdHit1->GetZ();
1696  }
1697 
1698  if (hits2sts > 0) {
1699  Int_t stsHitIndex2 = Sts_2->GetStsHitIndex(hits2sts - 1);
1700  CbmStsHit* stsHit2 = (CbmStsHit*) fArrayStsHit->At(stsHitIndex2);
1701  Xpart2 = stsHit2->GetX();
1702  Ypart2 = stsHit2->GetY();
1703  Zpart2 = stsHit2->GetZ();
1704  } else {
1705  Int_t mvdHitIndex2 = Sts_2->GetMvdHitIndex(hits2mvd - 1);
1706  CbmMvdHit* mvdHit2 = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex2);
1707  Xpart2 = mvdHit2->GetX();
1708  Ypart2 = mvdHit2->GetY();
1709  Zpart2 = mvdHit2->GetZ();
1710  }
1711 
1712  // check difference in 2 cm, because of two slices of every STS and Mvd stations
1713  if (
1714  TMath::Abs(Zpart1 - Zpart2) > 2
1715  && Zpart1
1716  > Zpart2) { // if last hits are in different stations --> try to find the latest common station
1717  for (int i = hits1sts - 2; i > -1; i--) { // start from second last station
1718  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1719  Int_t stsHitIndex = Sts_1->GetStsHitIndex(i);
1720  CbmStsHit* stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex);
1721  Xpart1 = stsHit->GetX();
1722  Ypart1 = stsHit->GetY();
1723  Zpart1 = stsHit->GetZ();
1724  }
1725  if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 > Zpart2) {
1726  for (int i = hits1mvd - 2; i > -1; i--) {
1727  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1728  Int_t mvdHitIndex = Sts_1->GetMvdHitIndex(i);
1729  CbmMvdHit* mvdHit = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex);
1730  Xpart1 = mvdHit->GetX();
1731  Ypart1 = mvdHit->GetY();
1732  Zpart1 = mvdHit->GetZ();
1733  }
1734  }
1735  }
1736 
1737  if (
1738  TMath::Abs(Zpart1 - Zpart2) > 2
1739  && Zpart1
1740  < Zpart2) { // if last hits are in different stations --> try to find the latest common station
1741  for (int i = hits2sts - 2; i > -1; i--) { // start from second last station
1742  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1743  Int_t stsHitIndex = Sts_2->GetStsHitIndex(i);
1744  CbmStsHit* stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex);
1745  Xpart2 = stsHit->GetX();
1746  Ypart2 = stsHit->GetY();
1747  Zpart2 = stsHit->GetZ();
1748  }
1749  if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 < Zpart2) {
1750  for (int i = hits2mvd - 2; i > -1; i--) {
1751  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1752  Int_t mvdHitIndex = Sts_2->GetMvdHitIndex(i);
1753  CbmMvdHit* mvdHit = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex);
1754  Xpart2 = mvdHit->GetX();
1755  Ypart2 = mvdHit->GetY();
1756  Zpart2 = mvdHit->GetZ();
1757  }
1758  }
1759  }
1760 
1761  // calculate angle if we found common station
1762  if (TMath::Abs(Zpart1 - Zpart2) < 2 && Zpart1 != 0 && Zpart2 != 0) {
1763  FinalAngle =
1764  TMath::ATan2(Ypart1 - Ypart2, Xpart1 - Xpart2) * (180 / TMath::Pi());
1765  }
1766 
1767  return TMath::Abs(TMath::Abs(FinalAngle) - 180);
1768 }
1769 
1771  CbmStsTrack* Sts_1,
1772  CbmStsTrack* Sts_2) {
1773  double FinalAngle = 400;
1774  Int_t hits1sts = Sts_1->GetNofStsHits();
1775  Int_t hits2sts = Sts_2->GetNofStsHits();
1776  Int_t hits1mvd = Sts_1->GetNofMvdHits();
1777  Int_t hits2mvd = Sts_2->GetNofMvdHits();
1778 
1779  double Xpart1 = 0;
1780  double Ypart1 = 0;
1781  double Zpart1 = 0;
1782  double Xpart2 = 0;
1783  double Ypart2 = 0;
1784  double Zpart2 = 0;
1785  if (hits1mvd > 0) {
1786  Int_t mvdHitIndex1 = Sts_1->GetMvdHitIndex(0);
1787  CbmMvdHit* mvdHit1 = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex1);
1788  Xpart1 = mvdHit1->GetX();
1789  Ypart1 = mvdHit1->GetY();
1790  Zpart1 = mvdHit1->GetZ();
1791  } else {
1792  Int_t stsHitIndex1 = Sts_1->GetStsHitIndex(0);
1793  CbmStsHit* stsHit1 = (CbmStsHit*) fArrayStsHit->At(stsHitIndex1);
1794  Xpart1 = stsHit1->GetX();
1795  Ypart1 = stsHit1->GetY();
1796  Zpart1 = stsHit1->GetZ();
1797  }
1798 
1799  if (hits2mvd > 0) {
1800  Int_t mvdHitIndex2 = Sts_2->GetMvdHitIndex(0);
1801  CbmMvdHit* mvdHit2 = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex2);
1802  Xpart2 = mvdHit2->GetX();
1803  Ypart2 = mvdHit2->GetY();
1804  Zpart2 = mvdHit2->GetZ();
1805  } else {
1806  Int_t stsHitIndex2 = Sts_2->GetStsHitIndex(0);
1807  CbmStsHit* stsHit2 = (CbmStsHit*) fArrayStsHit->At(stsHitIndex2);
1808  Xpart2 = stsHit2->GetX();
1809  Ypart2 = stsHit2->GetY();
1810  Zpart2 = stsHit2->GetZ();
1811  }
1812 
1813  // check difference in 2 cm, because of two slices of every STS and Mvd stations
1814  if (
1815  TMath::Abs(Zpart1 - Zpart2) > 2
1816  && Zpart1
1817  < Zpart2) { // if first hits are in different stations --> try to find the earliest common station
1818  for (int i = 1; i < hits1mvd; i++) { // start from second hit
1819  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1820  Int_t mvdHitIndex = Sts_1->GetMvdHitIndex(i);
1821  CbmMvdHit* mvdHit = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex);
1822  Xpart1 = mvdHit->GetX();
1823  Ypart1 = mvdHit->GetY();
1824  Zpart1 = mvdHit->GetZ();
1825  }
1826  if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 < Zpart2) {
1827  for (int i = 0; i < hits1sts; i++) {
1828  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1829  Int_t stsHitIndex = Sts_1->GetStsHitIndex(i);
1830  CbmStsHit* stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex);
1831  Xpart1 = stsHit->GetX();
1832  Ypart1 = stsHit->GetY();
1833  Zpart1 = stsHit->GetZ();
1834  }
1835  }
1836  }
1837 
1838  if (
1839  TMath::Abs(Zpart1 - Zpart2) > 2
1840  && Zpart1
1841  > Zpart2) { // if first hits are in different stations --> try to find the earliest common station
1842  for (int i = 1; i < hits2mvd; i++) { // start from second hit
1843  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1844  Int_t mvdHitIndex = Sts_2->GetMvdHitIndex(i);
1845  CbmMvdHit* mvdHit = (CbmMvdHit*) fArrayMvdHit->At(mvdHitIndex);
1846  Xpart2 = mvdHit->GetX();
1847  Ypart2 = mvdHit->GetY();
1848  Zpart2 = mvdHit->GetZ();
1849  }
1850  if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 > Zpart2) {
1851  for (int i = 0; i < hits2sts; i++) {
1852  if (TMath::Abs(Zpart1 - Zpart2) < 2) continue;
1853  Int_t stsHitIndex = Sts_2->GetStsHitIndex(i);
1854  CbmStsHit* stsHit = (CbmStsHit*) fArrayStsHit->At(stsHitIndex);
1855  Xpart2 = stsHit->GetX();
1856  Ypart2 = stsHit->GetY();
1857  Zpart2 = stsHit->GetZ();
1858  }
1859  }
1860  }
1861 
1862  // calculate angle if we found common station
1863  if (TMath::Abs(Zpart1 - Zpart2) < 2 && Zpart1 != 0 && Zpart2 != 0) {
1864  FinalAngle =
1865  TMath::ATan2(Ypart1 - Ypart2, Xpart1 - Xpart2) * (180 / TMath::Pi());
1866  }
1867 
1868  return TMath::Abs(TMath::Abs(FinalAngle) - 180);
1869 }
1870 
1872  double AngleCut,
1873  double InvMassCut)
1874 // mix particles with the same charge TARGET
1875 {
1876  int nof_minus = CDP_LK_EMT_momenta_minus_Target.size();
1877  for (int a = 0; a < nof_minus - 1; a++) {
1878  for (int b = a + 1; b < nof_minus; b++) {
1881  continue;
1882  TVector3 e1 = CDP_LK_EMT_momenta_minus_Target[a];
1883  TVector3 e2 = CDP_LK_EMT_momenta_minus_Target[b];
1886 
1887  double InvmassReco = CbmKresFunctions::Invmass_2particles_RECO(e1, e2);
1888  double OpeningAngle =
1890  double PlaneAngle_last = CalculatePlaneAngle_last(sts1, sts2);
1891 
1892  // double AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, fKFVertex.GetRefZ(), e1, e2);
1893  fAnnPhotonsSelection->DoSelect(InvmassReco,
1894  OpeningAngle,
1895  PlaneAngle_last,
1896  fKFVertex.GetRefZ(),
1897  e1,
1898  e2);
1899 
1900  // cuts
1901  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
1902  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
1903  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
1904 
1905  CbmLmvmKinematicParams params =
1907 
1908  if (params.fRapidity != params.fRapidity) continue;
1909  if (params.fPt != params.fPt) continue;
1910  if (params.fRapidity >= 4) continue;
1911  if (params.fPt >= 3) continue;
1912 
1913  double rap_step = 0.4;
1914  double pt_step = 0.1;
1915  int rap_coef = params.fRapidity / rap_step;
1916  int pt_coef = params.fPt / pt_step;
1917  double weight_all = 0;
1918  double weight_two = 0;
1919  double weight_onetwo = 0;
1920  if (corr_all[rap_coef][pt_coef] != 0)
1921  weight_all = 1 / corr_all[rap_coef][pt_coef];
1922  if (corr_two[rap_coef][pt_coef] != 0)
1923  weight_two = 1 / corr_two[rap_coef][pt_coef];
1924  if (corr_onetwo[rap_coef][pt_coef] != 0)
1925  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
1926 
1927  if (weight_all > thresholdweight) weight_all = 0;
1928  if (weight_two > thresholdweight) weight_two = 0;
1929  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
1930 
1931  int rings_amount = CDP_LK_EMT_NofRings_minus_Target[a]
1933 
1934  CDP_LK_EMT_Pt_all_Target->Fill(params.fPt, weight_all);
1935  if (rings_amount == 2)
1936  CDP_LK_EMT_Pt_two_Target->Fill(params.fPt, weight_two);
1937  if ((rings_amount == 1 || rings_amount == 2))
1938  CDP_LK_EMT_Pt_onetwo_Target->Fill(params.fPt, weight_onetwo);
1939  CDP_LK_EMT_Pt_all_Both->Fill(params.fPt, weight_all);
1940  if (rings_amount == 2)
1941  CDP_LK_EMT_Pt_two_Both->Fill(params.fPt, weight_two);
1942  if ((rings_amount == 1 || rings_amount == 2))
1943  CDP_LK_EMT_Pt_onetwo_Both->Fill(params.fPt, weight_onetwo);
1944  }
1945  }
1946 
1947 
1948  int nof_plus = CDP_LK_EMT_momenta_plus_Target.size();
1949  for (int a = 0; a < nof_plus - 1; a++) {
1950  for (int b = a + 1; b < nof_plus; b++) {
1953  continue;
1954  TVector3 e1 = CDP_LK_EMT_momenta_plus_Target[a];
1955  TVector3 e2 = CDP_LK_EMT_momenta_plus_Target[b];
1958 
1959  double InvmassReco = CbmKresFunctions::Invmass_2particles_RECO(e1, e2);
1960  double OpeningAngle =
1962  double PlaneAngle_last = CalculatePlaneAngle_last(sts1, sts2);
1963 
1964  // double AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, fKFVertex.GetRefZ(), e1, e2);
1965  fAnnPhotonsSelection->DoSelect(InvmassReco,
1966  OpeningAngle,
1967  PlaneAngle_last,
1968  fKFVertex.GetRefZ(),
1969  e1,
1970  e2);
1971 
1972  // cuts
1973  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
1974  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
1975  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
1976 
1977  CbmLmvmKinematicParams params =
1979 
1980  if (params.fRapidity != params.fRapidity) continue;
1981  if (params.fPt != params.fPt) continue;
1982  if (params.fRapidity >= 4) continue;
1983  if (params.fPt >= 3) continue;
1984 
1985  double rap_step = 0.4;
1986  double pt_step = 0.1;
1987  int rap_coef = params.fRapidity / rap_step;
1988  int pt_coef = params.fPt / pt_step;
1989  double weight_all = 0;
1990  double weight_two = 0;
1991  double weight_onetwo = 0;
1992  if (corr_all[rap_coef][pt_coef] != 0)
1993  weight_all = 1 / corr_all[rap_coef][pt_coef];
1994  if (corr_two[rap_coef][pt_coef] != 0)
1995  weight_two = 1 / corr_two[rap_coef][pt_coef];
1996  if (corr_onetwo[rap_coef][pt_coef] != 0)
1997  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
1998 
1999  if (weight_all > thresholdweight) weight_all = 0;
2000  if (weight_two > thresholdweight) weight_two = 0;
2001  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
2002 
2003  int rings_amount =
2005 
2006  CDP_LK_EMT_Pt_all_Target->Fill(params.fPt, weight_all);
2007  if (rings_amount == 2)
2008  CDP_LK_EMT_Pt_two_Target->Fill(params.fPt, weight_two);
2009  if ((rings_amount == 1 || rings_amount == 2))
2010  CDP_LK_EMT_Pt_onetwo_Target->Fill(params.fPt, weight_onetwo);
2011  CDP_LK_EMT_Pt_all_Both->Fill(params.fPt, weight_all);
2012  if (rings_amount == 2)
2013  CDP_LK_EMT_Pt_two_Both->Fill(params.fPt, weight_two);
2014  if ((rings_amount == 1 || rings_amount == 2))
2015  CDP_LK_EMT_Pt_onetwo_Both->Fill(params.fPt, weight_onetwo);
2016  }
2017  }
2018 }
2019 
2021  double AngleCut,
2022  double InvMassCut)
2023 // mix particles with the same charge OUTSIDE
2024 {
2025  int nof_minus = CDP_LK_EMT_NofRings_minus_Outside.size();
2026  for (int a = 0; a < nof_minus - 1; a++) {
2027  for (int b = a + 1; b < nof_minus; b++) {
2030  continue;
2033 
2034  KFParticle electron;
2036  KFParticle positron;
2038  const KFParticle* daughters[2] = {&electron, &positron};
2039  KFParticle intersection;
2040  intersection.Construct(daughters, 2);
2041 
2042  if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
2043  continue; // kick weird intersections
2044 
2045  TVector3 e1 = CbmKresFunctions::FitToVertex(
2046  sts1, intersection.GetX(), intersection.GetY(), intersection.GetZ());
2047  TVector3 e2 = CbmKresFunctions::FitToVertex(
2048  sts2, intersection.GetX(), intersection.GetY(), intersection.GetZ());
2049 
2050  double InvmassReco = CbmKresFunctions::Invmass_2particles_RECO(e1, e2);
2051  double OpeningAngle =
2053  double PlaneAngle_last = CalculatePlaneAngle_last(sts1, sts2);
2054 
2055  // double AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, fKFVertex.GetRefZ(), e1, e2);
2056  fAnnPhotonsSelection->DoSelect(InvmassReco,
2057  OpeningAngle,
2058  PlaneAngle_last,
2059  fKFVertex.GetRefZ(),
2060  e1,
2061  e2);
2062 
2063  // cuts
2064  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
2065  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
2066  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
2067 
2068  CbmLmvmKinematicParams params =
2070 
2071  if (params.fRapidity != params.fRapidity) continue;
2072  if (params.fPt != params.fPt) continue;
2073  if (params.fRapidity >= 4) continue;
2074  if (params.fPt >= 3) continue;
2075 
2076  double rap_step = 0.4;
2077  double pt_step = 0.1;
2078  int rap_coef = params.fRapidity / rap_step;
2079  int pt_coef = params.fPt / pt_step;
2080  double weight_all = 0;
2081  double weight_two = 0;
2082  double weight_onetwo = 0;
2083  if (corr_all[rap_coef][pt_coef] != 0)
2084  weight_all = 1 / corr_all[rap_coef][pt_coef];
2085  if (corr_two[rap_coef][pt_coef] != 0)
2086  weight_two = 1 / corr_two[rap_coef][pt_coef];
2087  if (corr_onetwo[rap_coef][pt_coef] != 0)
2088  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
2089 
2090  if (weight_all > thresholdweight) weight_all = 0;
2091  if (weight_two > thresholdweight) weight_two = 0;
2092  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
2093 
2094  int rings_amount = CDP_LK_EMT_NofRings_minus_Outside[a]
2096 
2097  CDP_LK_EMT_Pt_all_Outside->Fill(params.fPt, weight_all);
2098  if (rings_amount == 2)
2099  CDP_LK_EMT_Pt_two_Outside->Fill(params.fPt, weight_two);
2100  if ((rings_amount == 1 || rings_amount == 2))
2101  CDP_LK_EMT_Pt_onetwo_Outside->Fill(params.fPt, weight_onetwo);
2102  CDP_LK_EMT_Pt_all_Both->Fill(params.fPt, weight_all);
2103  if (rings_amount == 2)
2104  CDP_LK_EMT_Pt_two_Both->Fill(params.fPt, weight_two);
2105  if ((rings_amount == 1 || rings_amount == 2))
2106  CDP_LK_EMT_Pt_onetwo_Both->Fill(params.fPt, weight_onetwo);
2107  }
2108  }
2109 
2110 
2111  int nof_plus = CDP_LK_EMT_NofRings_plus_Outside.size();
2112  for (int a = 0; a < nof_plus - 1; a++) {
2113  for (int b = a + 1; b < nof_plus; b++) {
2116  continue;
2119 
2120  KFParticle electron;
2122  KFParticle positron;
2124  const KFParticle* daughters[2] = {&electron, &positron};
2125  KFParticle intersection;
2126  intersection.Construct(daughters, 2);
2127 
2128  if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
2129  continue; // kick weird intersections
2130 
2131  TVector3 e1 = CbmKresFunctions::FitToVertex(
2132  sts1, intersection.GetX(), intersection.GetY(), intersection.GetZ());
2133  TVector3 e2 = CbmKresFunctions::FitToVertex(
2134  sts2, intersection.GetX(), intersection.GetY(), intersection.GetZ());
2135 
2136  double InvmassReco = CbmKresFunctions::Invmass_2particles_RECO(e1, e2);
2137  double OpeningAngle =
2139  double PlaneAngle_last = CalculatePlaneAngle_last(sts1, sts2);
2140 
2141  // double AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, fKFVertex.GetRefZ(), e1, e2);
2142  fAnnPhotonsSelection->DoSelect(InvmassReco,
2143  OpeningAngle,
2144  PlaneAngle_last,
2145  fKFVertex.GetRefZ(),
2146  e1,
2147  e2);
2148 
2149  // cuts
2150  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
2151  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
2152  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
2153 
2154  CbmLmvmKinematicParams params =
2156 
2157  if (params.fRapidity != params.fRapidity) continue;
2158  if (params.fPt != params.fPt) continue;
2159  if (params.fRapidity >= 4) continue;
2160  if (params.fPt >= 3) continue;
2161 
2162  double rap_step = 0.4;
2163  double pt_step = 0.1;
2164  int rap_coef = params.fRapidity / rap_step;
2165  int pt_coef = params.fPt / pt_step;
2166  double weight_all = 0;
2167  double weight_two = 0;
2168  double weight_onetwo = 0;
2169  if (corr_all[rap_coef][pt_coef] != 0)
2170  weight_all = 1 / corr_all[rap_coef][pt_coef];
2171  if (corr_two[rap_coef][pt_coef] != 0)
2172  weight_two = 1 / corr_two[rap_coef][pt_coef];
2173  if (corr_onetwo[rap_coef][pt_coef] != 0)
2174  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
2175 
2176  if (weight_all > thresholdweight) weight_all = 0;
2177  if (weight_two > thresholdweight) weight_two = 0;
2178  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
2179 
2180  int rings_amount = CDP_LK_EMT_NofRings_plus_Outside[a]
2182 
2183  CDP_LK_EMT_Pt_all_Outside->Fill(params.fPt, weight_all);
2184  if (rings_amount == 2)
2185  CDP_LK_EMT_Pt_two_Outside->Fill(params.fPt, weight_two);
2186  if ((rings_amount == 1 || rings_amount == 2))
2187  CDP_LK_EMT_Pt_onetwo_Outside->Fill(params.fPt, weight_onetwo);
2188  CDP_LK_EMT_Pt_all_Both->Fill(params.fPt, weight_all);
2189  if (rings_amount == 2)
2190  CDP_LK_EMT_Pt_two_Both->Fill(params.fPt, weight_two);
2191  if ((rings_amount == 1 || rings_amount == 2))
2192  CDP_LK_EMT_Pt_onetwo_Both->Fill(params.fPt, weight_onetwo);
2193  }
2194  }
2195 }
2196 
2197 
2199  double InvMassCut)
2200 // TARGET
2201 {
2202  int nof_Target = CDP_EMT_Event_minus_Target.size();
2203  cout << "Mixing for corrected direct photons in Target - nof entries "
2204  << nof_Target << endl;
2205 
2206  for (size_t a = 0; a < CDP_EMT_Event_minus_Target.size(); a++) {
2207  for (size_t b = 0; b < CDP_EMT_Event_plus_Target.size(); b++) {
2209  continue; // to make sure that two particles are from two different events
2210  TVector3 e1 = CDP_EMT_momenta_minus_Target[a];
2211  TVector3 e2 = CDP_EMT_momenta_plus_Target[b];
2212  std::vector<TVector3> hits1 = CDP_EMT_Hits_minus_Target[a];
2213  std::vector<TVector3> hits2 = CDP_EMT_Hits_plus_Target[b];
2214 
2215  double InvmassReco = CbmKresFunctions::Invmass_2particles_RECO(e1, e2);
2216  double OpeningAngle =
2218  double PlaneAngle_last = CalculatePlaneAngle_last_fromHits(hits1, hits2);
2219 
2220  // double AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, fKFVertex.GetRefZ(), e1, e2);
2221  fAnnPhotonsSelection->DoSelect(InvmassReco,
2222  OpeningAngle,
2223  PlaneAngle_last,
2224  fKFVertex.GetRefZ(),
2225  e1,
2226  e2);
2227 
2228  // cuts
2229  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
2230  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
2231  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
2232 
2233  CbmLmvmKinematicParams params =
2235 
2236  if (params.fRapidity != params.fRapidity) continue;
2237  if (params.fPt != params.fPt) continue;
2238  if (params.fRapidity >= 4) continue;
2239  if (params.fPt >= 3) continue;
2240 
2241  double rap_step = 0.4;
2242  double pt_step = 0.1;
2243  int rap_coef = params.fRapidity / rap_step;
2244  int pt_coef = params.fPt / pt_step;
2245  double weight_all = 0;
2246  double weight_two = 0;
2247  double weight_onetwo = 0;
2248  if (corr_all[rap_coef][pt_coef] != 0)
2249  weight_all = 1 / corr_all[rap_coef][pt_coef];
2250  if (corr_two[rap_coef][pt_coef] != 0)
2251  weight_two = 1 / corr_two[rap_coef][pt_coef];
2252  if (corr_onetwo[rap_coef][pt_coef] != 0)
2253  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
2254 
2255  if (weight_all > thresholdweight) weight_all = 0;
2256  if (weight_two > thresholdweight) weight_two = 0;
2257  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
2258 
2259  int rings_amount =
2261 
2262  CDP_EMT_Pt_all_Target->Fill(params.fPt, weight_all);
2263  CDP_EMT_Pt_all_Both->Fill(params.fPt, weight_all);
2264  if (rings_amount == 2) {
2265  CDP_EMT_Pt_two_Target->Fill(params.fPt, weight_two);
2266  CDP_EMT_Pt_two_Both->Fill(params.fPt, weight_two);
2267  }
2268  if ((rings_amount == 1 || rings_amount == 2)) {
2269  CDP_EMT_Pt_onetwo_Target->Fill(params.fPt, weight_two);
2270  CDP_EMT_Pt_onetwo_Both->Fill(params.fPt, weight_two);
2271  }
2272  }
2273  }
2274 }
2275 
2276 
2278  double InvMassCut)
2279 // OUTSIDE
2280 {
2281  int nof_Outside = CDP_EMT_Event_minus_Outside.size();
2282  cout << "Mixing for corrected direct photons in Outside - nof entries "
2283  << nof_Outside << endl;
2284 
2285  for (size_t a = 0; a < CDP_EMT_Event_minus_Outside.size(); a++) {
2286  for (size_t b = 0; b < CDP_EMT_Event_plus_Outside.size(); b++) {
2288  continue; // to make sure that two particles are from two different events
2289 
2290  KFParticle electron = CDP_EMT_KFTrack_minus_Outside[a];
2291  KFParticle positron = CDP_EMT_KFTrack_plus_Outside[b];
2292 
2293  const KFParticle* daughters[2] = {&electron, &positron};
2294  KFParticle intersection;
2295  intersection.Construct(daughters, 2);
2296 
2297  if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
2298  continue; // kick weird intersections
2299 
2300  TVector3 e1(electron.KFParticleBase::Px(),
2301  electron.KFParticleBase::Py(),
2302  electron.KFParticleBase::Pz());
2303  TVector3 e2(positron.KFParticleBase::Px(),
2304  positron.KFParticleBase::Py(),
2305  positron.KFParticleBase::Pz());
2306 
2307  std::vector<TVector3> hits1 = CDP_EMT_Hits_minus_Outside[a];
2308  std::vector<TVector3> hits2 = CDP_EMT_Hits_plus_Outside[b];
2309 
2310  double InvmassReco = CbmKresFunctions::Invmass_2particles_RECO(e1, e2);
2311  double OpeningAngle =
2313  double PlaneAngle_last = CalculatePlaneAngle_last_fromHits(hits1, hits2);
2314 
2315  // double AnnValue = fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, intersection.GetZ(), e1, e2);
2316  fAnnPhotonsSelection->DoSelect(InvmassReco,
2317  OpeningAngle,
2318  PlaneAngle_last,
2319  intersection.GetZ(),
2320  e1,
2321  e2);
2322 
2323  // cuts
2324  if (TMath::Abs(OpeningAngle) > AngleCut) continue;
2325  if (TMath::Abs(InvmassReco) > InvMassCut) continue;
2326  // if (AnnValue < 0.9 || AnnValue > 1.1) continue;
2327 
2328  CbmLmvmKinematicParams params =
2330 
2331  if (params.fRapidity != params.fRapidity) continue;
2332  if (params.fPt != params.fPt) continue;
2333  if (params.fRapidity >= 4) continue;
2334  if (params.fPt >= 3) continue;
2335 
2336  double rap_step = 0.4;
2337  double pt_step = 0.1;
2338  int rap_coef = params.fRapidity / rap_step;
2339  int pt_coef = params.fPt / pt_step;
2340  double weight_all = 0;
2341  double weight_two = 0;
2342  double weight_onetwo = 0;
2343  if (corr_all[rap_coef][pt_coef] != 0)
2344  weight_all = 1 / corr_all[rap_coef][pt_coef];
2345  if (corr_two[rap_coef][pt_coef] != 0)
2346  weight_two = 1 / corr_two[rap_coef][pt_coef];
2347  if (corr_onetwo[rap_coef][pt_coef] != 0)
2348  weight_onetwo = 1 / corr_onetwo[rap_coef][pt_coef];
2349 
2350  if (weight_all > thresholdweight) weight_all = 0;
2351  if (weight_two > thresholdweight) weight_two = 0;
2352  if (weight_onetwo > thresholdweight) weight_onetwo = 0;
2353 
2354  int rings_amount =
2356 
2357  CDP_EMT_Pt_all_Outside->Fill(params.fPt, weight_all);
2358  CDP_EMT_Pt_all_Both->Fill(params.fPt, weight_all);
2359  if (rings_amount == 2) {
2360  CDP_EMT_Pt_two_Outside->Fill(params.fPt, weight_two);
2361  CDP_EMT_Pt_two_Both->Fill(params.fPt, weight_two);
2362  }
2363  if ((rings_amount == 1 || rings_amount == 2)) {
2364  CDP_EMT_Pt_onetwo_Outside->Fill(params.fPt, weight_two);
2365  CDP_EMT_Pt_onetwo_Both->Fill(params.fPt, weight_two);
2366  }
2367  }
2368  }
2369 }
2370 
2371 
2373  gDirectory->mkdir("corrected photons");
2374  gDirectory->cd("corrected photons");
2375 
2377 
2378  gDirectory->mkdir("Target");
2379  gDirectory->cd("Target");
2380  gDirectory->mkdir("CheckCuts_Target");
2381  gDirectory->cd("CheckCuts_Target");
2382  for (UInt_t i = 0; i < fHistoList_dp_cuts_Target.size(); i++) {
2383  fHistoList_dp_cuts_Target[i]->Write();
2384  }
2385  gDirectory->cd("..");
2386  gDirectory->mkdir("all");
2387  gDirectory->cd("all");
2388  for (UInt_t i = 0; i < fHistoList_dp_all_Target.size(); i++) {
2389  fHistoList_dp_all_Target[i]->Write();
2390  }
2391  gDirectory->cd("..");
2392  gDirectory->mkdir("two");
2393  gDirectory->cd("two");
2394  for (UInt_t i = 0; i < fHistoList_dp_two_Target.size(); i++) {
2395  fHistoList_dp_two_Target[i]->Write();
2396  }
2397  gDirectory->cd("..");
2398  gDirectory->mkdir("onetwo");
2399  gDirectory->cd("onetwo");
2400  for (UInt_t i = 0; i < fHistoList_dp_onetwo_Target.size(); i++) {
2401  fHistoList_dp_onetwo_Target[i]->Write();
2402  }
2403  gDirectory->cd("..");
2404  for (UInt_t i = 0; i < fHistoList_dp_Target.size(); i++) {
2405  fHistoList_dp_Target[i]->Write();
2406  }
2407  gDirectory->cd("..");
2408 
2409 
2410  gDirectory->mkdir("Outside");
2411  gDirectory->cd("Outside");
2412  gDirectory->mkdir("CheckCuts_Outside");
2413  gDirectory->cd("CheckCuts_Outside");
2414  for (UInt_t i = 0; i < fHistoList_dp_cuts_Outside.size(); i++) {
2415  fHistoList_dp_cuts_Outside[i]->Write();
2416  }
2417  gDirectory->cd("..");
2418  gDirectory->mkdir("all");
2419  gDirectory->cd("all");
2420  for (UInt_t i = 0; i < fHistoList_dp_all_Outside.size(); i++) {
2421  fHistoList_dp_all_Outside[i]->Write();
2422  }
2423  gDirectory->cd("..");
2424  gDirectory->mkdir("two");
2425  gDirectory->cd("two");
2426  for (UInt_t i = 0; i < fHistoList_dp_two_Outside.size(); i++) {
2427  fHistoList_dp_two_Outside[i]->Write();
2428  }
2429  gDirectory->cd("..");
2430  gDirectory->mkdir("onetwo");
2431  gDirectory->cd("onetwo");
2432  for (UInt_t i = 0; i < fHistoList_dp_onetwo_Outside.size(); i++) {
2433  fHistoList_dp_onetwo_Outside[i]->Write();
2434  }
2435  gDirectory->cd("..");
2436  for (UInt_t i = 0; i < fHistoList_dp_Outside.size(); i++) {
2437  fHistoList_dp_Outside[i]->Write();
2438  }
2439  gDirectory->cd("..");
2440 
2441 
2442  gDirectory->mkdir("Both");
2443  gDirectory->cd("Both");
2444  gDirectory->mkdir("CheckCuts_Both");
2445  gDirectory->cd("CheckCuts_Both");
2446  for (UInt_t i = 0; i < fHistoList_dp_cuts_Both.size(); i++) {
2447  fHistoList_dp_cuts_Both[i]->Write();
2448  }
2449  gDirectory->cd("..");
2450  gDirectory->mkdir("all");
2451  gDirectory->cd("all");
2452  for (UInt_t i = 0; i < fHistoList_dp_all_Both.size(); i++) {
2453  fHistoList_dp_all_Both[i]->Write();
2454  }
2455  gDirectory->cd("..");
2456  gDirectory->mkdir("two");
2457  gDirectory->cd("two");
2458  for (UInt_t i = 0; i < fHistoList_dp_two_Both.size(); i++) {
2459  fHistoList_dp_two_Both[i]->Write();
2460  }
2461  gDirectory->cd("..");
2462  gDirectory->mkdir("onetwo");
2463  gDirectory->cd("onetwo");
2464  for (UInt_t i = 0; i < fHistoList_dp_onetwo_Both.size(); i++) {
2465  fHistoList_dp_onetwo_Both[i]->Write();
2466  }
2467  gDirectory->cd("..");
2468  for (UInt_t i = 0; i < fHistoList_dp_Both.size(); i++) {
2469  fHistoList_dp_Both[i]->Write();
2470  }
2471  gDirectory->cd("..");
2472 
2473 
2474  gDirectory->cd("..");
2475 }
2476 
2477 
2479  // Target
2481  new TH1D("CMother_PDG_Target", "CMother_PDG_Target; Id;#", 1000, -10, 490);
2483  CGrandMother_PDG_Target = new TH1D(
2484  "CGrandMother_PDG_Target", "CGrandMother_PDG_Target; Id;#", 1000, -10, 490);
2486 
2487  // Outside
2488  CMother_PDG_Outside = new TH1D(
2489  "CMother_PDG_Outside", "CMother_PDG_Outside; Id;#", 1000, -10, 490);
2491  CGrandMother_PDG_Outside = new TH1D("CGrandMother_PDG_Outside",
2492  "CGrandMother_PDG_Outside; Id;#",
2493  1000,
2494  -10,
2495  490);
2497 
2498  // Both
2500  new TH2D("CPdg_vs_Distance_for_dp",
2501  "CPdg_vs_Distance_for_dp; pdg; distance in cm",
2502  2500,
2503  0,
2504  2499,
2505  500,
2506  0,
2507  50);
2510  new TH2D("CP_vs_Distance_for_dp",
2511  "CDistance between projected track and center of the ring (for e+ "
2512  "and e-); P in GeV/c^{2}; distance in cm",
2513  300,
2514  0,
2515  3,
2516  300,
2517  0,
2518  15);
2520  CDP_AnnTruePairs = new TH1D(
2521  "CDP_AnnTruePairs", "CDP_AnnTruePairs; Ann value ;#", 100, -1.2, 1.2);
2523  CDP_AnnFalsePairs = new TH1D(
2524  "CDP_AnnFalsePairs", "CDP_AnnFalsePairs; Ann value ;#", 100, -1.2, 1.2);
2527  new TH1D("CDP_AnnTruePairs_AfterCuts",
2528  "CDP_AnnTruePairs_AfterCuts; Ann value ;#",
2529  100,
2530  -1.2,
2531  1.2);
2534  new TH1D("CDP_AnnFalsePairs_AfterCuts",
2535  "CDP_AnnFalsePairs_AfterCuts; Ann value ;#",
2536  100,
2537  -1.2,
2538  1.2);
2540 
2541 
2545  new TH2D("CDP_candidates_InvMass_vs_OA_Both",
2546  "CDP_candidates_InvMass_vs_OA_Both; invariant mass in GeV/c^{2}; "
2547  "opening angle in degree",
2548  500,
2549  0,
2550  0.5,
2551  500,
2552  0,
2553  50);
2555  CDP_InvMass_vs_OA_Both = new TH2D("CDP_InvMass_vs_OA_Both",
2556  "CDP_InvMass_vs_OA_Both; invariant mass in "
2557  "GeV/c^{2}; opening angle in degree",
2558  500,
2559  0,
2560  0.5,
2561  500,
2562  0,
2563  50);
2566  new TH1D("CDP_candidates_InvMass_Both",
2567  "CDP_candidates_InvMass_Both; invariant mass in GeV/c^{2};#",
2568  510,
2569  -0.01,
2570  0.5);
2572  CDP_InvMass_Both = new TH1D("CDP_InvMass_Both",
2573  "CDP_InvMass_Both; invariant mass in GeV/c^{2};#",
2574  510,
2575  -0.01,
2576  0.5);
2579  new TH1D("CDP_candidates_OA_Both",
2580  "CDP_candidates_OA_Both; opening angle in degree;#",
2581  300,
2582  -0.1,
2583  29.9);
2585  CDP_OA_Both = new TH1D(
2586  "CDP_OA_Both", "CDP_OA_Both; opening angle in degree;#", 300, -0.1, 29.9);
2589  new TH1D("CDP_candidates_PlaneAngles_last_Both",
2590  "CDP_candidates_PlaneAngles_last_Both; #theta angle in degree;#",
2591  720,
2592  -1.,
2593  179.);
2596  new TH1D("CDP_PlaneAngles_last_Both",
2597  "CDP_PlaneAngles_last_Both; #theta angle in degree;#",
2598  720,
2599  -1.,
2600  179.);
2603  new TH1D("CDP_candidates_PlaneAngles_first_Both",
2604  "CDP_candidates_PlaneAngles_first_Both; #theta angle in degree;#",
2605  720,
2606  -1.,
2607  179.);
2610  new TH1D("CDP_PlaneAngles_first_Both",
2611  "CDP_PlaneAngles_first_Both; #theta angle in degree;#",
2612  720,
2613  -1.,
2614  179.);
2616 
2619  new TH2D("CDP_candidates_InvMass_vs_OA_Target",
2620  "CDP_candidates_InvMass_vs_OA_Target; invariant mass in "
2621  "GeV/c^{2}; opening angle in degree",
2622  500,
2623  0,
2624  0.5,
2625  500,
2626  0,
2627  50);
2630  new TH2D("CDP_InvMass_vs_OA_Target",
2631  "CDP_InvMass_vs_OA_Target; invariant mass in GeV/c^{2}; opening "
2632  "angle in degree",
2633  500,
2634  0,
2635  0.5,
2636  500,
2637  0,
2638  50);
2641  new TH1D("CDP_candidates_InvMass_Target",
2642  "CDP_candidates_InvMass_Target; invariant mass in GeV/c^{2};#",
2643  510,
2644  -0.01,
2645  0.5);
2648  new TH1D("CDP_InvMass_Target",
2649  "CDP_InvMass_Target; invariant mass in GeV/c^{2};#",
2650  510,
2651  -0.01,
2652  0.5);
2655  new TH1D("CDP_candidates_OA_Target",
2656  "CDP_candidates_OA_Target; opening angle in degree;#",
2657  300,
2658  -0.1,
2659  29.9);
2661  CDP_OA_Target = new TH1D("CDP_OA_Target",
2662  "CDP_OA_Target; opening angle in degree;#",
2663  300,
2664  -0.1,
2665  29.9);
2668  new TH1D("CDP_candidates_PlaneAngles_last_Target",
2669  "CDP_candidates_PlaneAngles_last_Target; #theta angle in degree;#",
2670  720,
2671  -1.,
2672  179.);
2675  new TH1D("CDP_PlaneAngles_last_Target",
2676  "CDP_PlaneAngles_last_Target; #theta angle in degree;#",
2677  720,
2678  -1.,
2679  179.);
2682  "CDP_candidates_PlaneAngles_first_Target",
2683  "CDP_candidates_PlaneAngles_first_Target; #theta angle in degree;#",
2684  720,
2685  -1.,
2686  179.);
2689  new TH1D("CDP_PlaneAngles_first_Target",
2690  "CDP_PlaneAngles_first_Target; #theta angle in degree;#",
2691  720,
2692  -1.,
2693  179.);
2695 
2698  new TH2D("CDP_candidates_InvMass_vs_OA_Outside",
2699  "CDP_candidates_InvMass_vs_OA_Outside; invariant mass in "
2700  "GeV/c^{2}; opening angle in degree",
2701  500,
2702  0,
2703  0.5,
2704  500,
2705  0,
2706  50);
2709  new TH2D("CDP_InvMass_vs_OA_Outside",
2710  "CDP_InvMass_vs_OA_Outside; invariant mass in GeV/c^{2}; opening "
2711  "angle in degree",
2712  500,
2713  0,
2714  0.5,
2715  500,
2716  0,
2717  50);
2720  new TH1D("CDP_candidates_InvMass_Outside",
2721  "CDP_candidates_InvMass_Outside; invariant mass in GeV/c^{2};#",
2722  510,
2723  -0.01,
2724  0.5);
2727  new TH1D("CDP_InvMass_Outside",
2728  "CDP_InvMass_Outside; invariant mass in GeV/c^{2};#",
2729  510,
2730  -0.01,
2731  0.5);
2734  new TH1D("CDP_candidates_OA_Outside",
2735  "CDP_candidates_OA_Outside; opening angle in degree;#",
2736  300,
2737  -0.1,
2738  29.9);
2740  CDP_OA_Outside = new TH1D("CDP_OA_Outside",
2741  "CDP_OA_Outside; opening angle in degree;#",
2742  300,
2743  -0.1,
2744  29.9);
2747  "CDP_candidates_PlaneAngles_last_Outside",
2748  "CDP_candidates_PlaneAngles_last_Outside; #theta angle in degree;#",
2749  720,
2750  -1.,
2751  179.);
2754  new TH1D("CDP_PlaneAngles_last_Outside",
2755  "CDP_PlaneAngles_last_Outside; #theta angle in degree;#",
2756  720,
2757  -1.,
2758  179.);
2761  "CDP_candidates_PlaneAngles_first_Outside",
2762  "CDP_candidates_PlaneAngles_first_Outside; #theta angle in degree;#",
2763  720,
2764  -1.,
2765  179.);
2766  fHistoList_dp_cuts_Outside.push_back(
2769  new TH1D("CDP_PlaneAngles_first_Outside",
2770  "CDP_PlaneAngles_first_Outside; #theta angle in degree;#",
2771  720,
2772  -1.,
2773  179.);
2775 
2776 
2777  // Target => all
2779  new TH1D("CDP_InvMassReco_all_Target",
2780  "CDP_InvMassReco_all_Target; invariant mass in GeV/c^{2};#",
2781  50,
2782  -0.005,
2783  0.045);
2786  new TH1D("CDP_OpeningAngleReco_all_Target",
2787  "CDP_OpeningAngleReco_all_Target; angle [deg];#",
2788  45,
2789  -0.5,
2790  4.);
2793  new TH1D("CDP_Pdg_all_Target", "CDP_Pdg_all_Target; Id;#", 1000, -10, 490);
2795  CDP_P_reco_all_Target = new TH1D("CDP_P_reco_all_Target",
2796  "CDP_P_reco_all_Target; P in GeV/c^{2};#",
2797  200,
2798  0,
2799  10);
2802  new TH1D("CDP_Pt_reco_all_Target",
2803  "CDP_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2804  30,
2805  0,
2806  3);
2809  new TH1D("CPh_fromTarget_Pt_reco_all_Target",
2810  "CPh_fromTarget_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2811  30,
2812  0,
2813  3);
2816  new TH1D("CPh_fromPions_Pt_reco_all_Target",
2817  "CPh_fromPions_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2818  30,
2819  0,
2820  3);
2823  new TH1D("CPh_fromEtas_Pt_reco_all_Target",
2824  "CPh_fromEtas_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2825  30,
2826  0,
2827  3);
2830  new TH1D("CPh_fromDalitz_Pt_reco_all_Target",
2831  "CPh_fromDalitz_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2832  30,
2833  0,
2834  3);
2837  new TH1D("CPh_fromXi_Pt_reco_all_Target",
2838  "CPh_fromXi_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2839  30,
2840  0,
2841  3);
2844  new TH1D("CPh_fromOther_Pt_reco_all_Target",
2845  "CPh_fromOther_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2846  30,
2847  0,
2848  3);
2851  new TH1D("CPh_twoFromTarget_Pt_reco_all_Target",
2852  "CPh_twoFromTarget_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2853  30,
2854  0,
2855  3);
2858  new TH1D("CPh_fromCombinatorial_Pt_reco_all_Target",
2859  "CPh_fromCombinatorial_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2860  30,
2861  0,
2862  3);
2865  new TH1D("CPh_fromConversion_Pt_reco_all_Target",
2866  "CPh_fromConversion_Pt_reco_all_Target; P_{t} in GeV/c^{2};#",
2867  30,
2868  0,
2869  3);
2872  new TH2D("CPh_pt_vs_rap_est_all_Target",
2873  "CPh_pt_vs_rap_est_all_Target; rapidity y; p_{t} in GeV/c ",
2874  10,
2875  0.,
2876  4.,
2877  40,
2878  0.,
2879  4.);
2882  new TH2D("CPh_pt_vs_rap_est_corr_all_Target",
2883  "CPh_pt_vs_rap_est_corr_all_Target; rapidity y; p_{t} in GeV/c ",
2884  10,
2885  0.,
2886  4.,
2887  40,
2888  0.,
2889  4.);
2891 
2892  // Target => two
2894  new TH1D("CDP_InvMassReco_two_Target",
2895  "CDP_InvMassReco_two_Target; invariant mass in GeV/c^{2};#",
2896  50,
2897  -0.005,
2898  0.045);
2901  new TH1D("CDP_OpeningAngleReco_two_Target",
2902  "CDP_OpeningAngleReco_two_Target; angle [deg];#",
2903  45,
2904  -0.5,
2905  4.);
2908  new TH1D("CDP_Pdg_two_Target", "CDP_Pdg_two_Target; Id;#", 1000, -10, 490);
2910  CDP_P_reco_two_Target = new TH1D("CDP_P_reco_two_Target",
2911  "CDP_P_reco_two_Target; P in GeV/c^{2};#",
2912  200,
2913  0,
2914  10);
2917  new TH1D("CDP_Pt_reco_two_Target",
2918  "CDP_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2919  30,
2920  0,
2921  3);
2924  new TH1D("CPh_fromTarget_Pt_reco_two_Target",
2925  "CPh_fromTarget_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2926  30,
2927  0,
2928  3);
2931  new TH1D("CPh_fromPions_Pt_reco_two_Target",
2932  "CPh_fromPions_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2933  30,
2934  0,
2935  3);
2938  new TH1D("CPh_fromEtas_Pt_reco_two_Target",
2939  "CPh_fromEtas_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2940  30,
2941  0,
2942  3);
2945  new TH1D("CPh_fromDalitz_Pt_reco_two_Target",
2946  "CPh_fromDalitz_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2947  30,
2948  0,
2949  3);
2952  new TH1D("CPh_fromXi_Pt_reco_two_Target",
2953  "CPh_fromXi_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2954  30,
2955  0,
2956  3);
2959  new TH1D("CPh_fromOther_Pt_reco_two_Target",
2960  "CPh_fromOther_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2961  30,
2962  0,
2963  3);
2966  new TH1D("CPh_twoFromTarget_Pt_reco_two_Target",
2967  "CPh_twoFromTarget_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2968  30,
2969  0,
2970  3);
2973  new TH1D("CPh_fromCombinatorial_Pt_reco_two_Target",
2974  "CPh_fromCombinatorial_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2975  30,
2976  0,
2977  3);
2980  new TH1D("CPh_fromConversion_Pt_reco_two_Target",
2981  "CPh_fromConversion_Pt_reco_two_Target; P_{t} in GeV/c^{2};#",
2982  30,
2983  0,
2984  3);
2987  new TH2D("CPh_pt_vs_rap_est_two_Target",
2988  "CPh_pt_vs_rap_est_two_Target; rapidity y; p_{t} in GeV/c ",
2989  10,
2990  0.,
2991  4.,
2992  40,
2993  0.,
2994  4.);
2997  new TH2D("CPh_pt_vs_rap_est_corr_two_Target",
2998  "CPh_pt_vs_rap_est_corr_two_Target; rapidity y; p_{t} in GeV/c ",
2999  10,
3000  0.,
3001  4.,
3002  40,
3003  0.,
3004  4.);
3006 
3007  // Target => onetwo
3009  new TH1D("CDP_InvMassReco_onetwo_Target",
3010  "CDP_InvMassReco_onetwo_Target; invariant mass in GeV/c^{2};#",
3011  50,
3012  -0.005,
3013  0.045);
3016  new TH1D("CDP_OpeningAngleReco_onetwo_Target",
3017  "CDP_OpeningAngleReco_onetwo_Target; angle [deg];#",
3018  45,
3019  -0.5,
3020  4.);
3022  CDP_Pdg_onetwo_Target = new TH1D(
3023  "CDP_Pdg_onetwo_Target", "CDP_Pdg_onetwo_Target; Id;#", 1000, -10, 490);
3026  new TH1D("CDP_P_reco_onetwo_Target",
3027  "CDP_P_reco_onetwo_Target; P in GeV/c^{2};#",
3028  200,
3029  0,
3030  10);
3033  new TH1D("CDP_Pt_reco_onetwo_Target",
3034  "CDP_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3035  30,
3036  0,
3037  3);
3040  new TH1D("CPh_fromTarget_Pt_reco_onetwo_Target",
3041  "CPh_fromTarget_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3042  30,
3043  0,
3044  3);
3047  new TH1D("CPh_fromPions_Pt_reco_onetwo_Target",
3048  "CPh_fromPions_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3049  30,
3050  0,
3051  3);
3054  new TH1D("CPh_fromEtas_Pt_reco_onetwo_Target",
3055  "CPh_fromEtas_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3056  30,
3057  0,
3058  3);
3061  new TH1D("CPh_fromDalitz_Pt_reco_onetwo_Target",
3062  "CPh_fromDalitz_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3063  30,
3064  0,
3065  3);
3068  new TH1D("CPh_fromXi_Pt_reco_onetwo_Target",
3069  "CPh_fromXi_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3070  30,
3071  0,
3072  3);
3075  new TH1D("CPh_fromOther_Pt_reco_onetwo_Target",
3076  "CPh_fromOther_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3077  30,
3078  0,
3079  3);
3082  new TH1D("CPh_twoFromTarget_Pt_reco_onetwo_Target",
3083  "CPh_twoFromTarget_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3084  30,
3085  0,
3086  3);
3087  fHistoList_dp_onetwo_Target.push_back(
3090  "CPh_fromCombinatorial_Pt_reco_onetwo_Target",
3091  "CPh_fromCombinatorial_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3092  30,
3093  0,
3094  3);
3095  fHistoList_dp_onetwo_Target.push_back(
3098  new TH1D("CPh_fromConversion_Pt_reco_onetwo_Target",
3099  "CPh_fromConversion_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
3100  30,
3101  0,
3102  3);
3103  fHistoList_dp_onetwo_Target.push_back(
3106  new TH2D("CPh_pt_vs_rap_est_onetwo_Target",
3107  "CPh_pt_vs_rap_est_onetwo_Target; rapidity y; p_{t} in GeV/c ",
3108  10,
3109  0.,
3110  4.,
3111  40,
3112  0.,
3113  4.);
3116  "CPh_pt_vs_rap_est_corr_onetwo_Target",
3117  "CPh_pt_vs_rap_est_corr_onetwo_Target; rapidity y; p_{t} in GeV/c ",
3118  10,
3119  0.,
3120  4.,
3121  40,
3122  0.,
3123  4.);
3125 
3126 
3127  // Outside => all
3129  new TH1D("CDP_InvMassReco_all_Outside",
3130  "CDP_InvMassReco_all_Outside; invariant mass in GeV/c^{2};#",
3131  50,
3132  -0.005,
3133  0.045);
3136  new TH1D("CDP_OpeningAngleReco_all_Outside",
3137  "CDP_OpeningAngleReco_all_Outside; angle [deg];#",
3138  45,
3139  -0.5,
3140  4.);
3142  CDP_Pdg_all_Outside = new TH1D(
3143  "CDP_Pdg_all_Outside", "CDP_Pdg_all_Outside; Id;#", 1000, -10, 490);
3145  CDP_P_reco_all_Outside = new TH1D("CDP_P_reco_all_Outside",
3146  "CDP_P_reco_all_Outside; P in GeV/c^{2};#",
3147  200,
3148  0,
3149  10);
3152  new TH1D("CDP_Pt_reco_all_Outside",
3153  "CDP_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3154  30,
3155  0,
3156  3);
3159  new TH1D("CPh_fromTarget_Pt_reco_all_Outside",
3160  "CPh_fromTarget_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3161  30,
3162  0,
3163  3);
3166  new TH1D("CPh_fromPions_Pt_reco_all_Outside",
3167  "CPh_fromPions_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3168  30,
3169  0,
3170  3);
3173  new TH1D("CPh_fromEtas_Pt_reco_all_Outside",
3174  "CPh_fromEtas_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3175  30,
3176  0,
3177  3);
3180  new TH1D("CPh_fromDalitz_Pt_reco_all_Outside",
3181  "CPh_fromDalitz_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3182  30,
3183  0,
3184  3);
3187  new TH1D("CPh_fromXi_Pt_reco_all_Outside",
3188  "CPh_fromXi_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3189  30,
3190  0,
3191  3);
3194  new TH1D("CPh_fromOther_Pt_reco_all_Outside",
3195  "CPh_fromOther_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3196  30,
3197  0,
3198  3);
3201  new TH1D("CPh_twoFromTarget_Pt_reco_all_Outside",
3202  "CPh_twoFromTarget_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3203  30,
3204  0,
3205  3);
3208  new TH1D("CPh_fromCombinatorial_Pt_reco_all_Outside",
3209  "CPh_fromCombinatorial_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3210  30,
3211  0,
3212  3);
3213  fHistoList_dp_all_Outside.push_back(
3216  new TH1D("CPh_fromConversion_Pt_reco_all_Outside",
3217  "CPh_fromConversion_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#",
3218  30,
3219  0,
3220  3);
3223  new TH2D("CPh_pt_vs_rap_est_all_Outside",
3224  "CPh_pt_vs_rap_est_all_Outside; rapidity y; p_{t} in GeV/c ",
3225  10,
3226  0.,
3227  4.,
3228  40,
3229  0.,
3230  4.);
3233  new TH2D("CPh_pt_vs_rap_est_corr_all_Outside",
3234  "CPh_pt_vs_rap_est_corr_all_Outside; rapidity y; p_{t} in GeV/c ",
3235  10,
3236  0.,
3237  4.,
3238  40,
3239  0.,
3240  4.);
3242 
3243  // Outside => two
3245  new TH1D("CDP_InvMassReco_two_Outside",
3246  "CDP_InvMassReco_two_Outside; invariant mass in GeV/c^{2};#",
3247  50,
3248  -0.005,
3249  0.045);
3252  new TH1D("CDP_OpeningAngleReco_two_Outside",
3253  "CDP_OpeningAngleReco_two_Outside; angle [deg];#",
3254  45,
3255  -0.5,
3256  4.);
3258  CDP_Pdg_two_Outside = new TH1D(
3259  "CDP_Pdg_two_Outside", "CDP_Pdg_two_Outside; Id;#", 1000, -10, 490);
3261  CDP_P_reco_two_Outside = new TH1D("CDP_P_reco_two_Outside",
3262  "CDP_P_reco_two_Outside; P in GeV/c^{2};#",
3263  200,
3264  0,
3265  10);
3268  new TH1D("CDP_Pt_reco_two_Outside",
3269  "CDP_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3270  30,
3271  0,
3272  3);
3275  new TH1D("CPh_fromTarget_Pt_reco_two_Outside",
3276  "CPh_fromTarget_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3277  30,
3278  0,
3279  3);
3282  new TH1D("CPh_fromPions_Pt_reco_two_Outside",
3283  "CPh_fromPions_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3284  30,
3285  0,
3286  3);
3289  new TH1D("CPh_fromEtas_Pt_reco_two_Outside",
3290  "CPh_fromEtas_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3291  30,
3292  0,
3293  3);
3296  new TH1D("CPh_fromDalitz_Pt_reco_two_Outside",
3297  "CPh_fromDalitz_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3298  30,
3299  0,
3300  3);
3303  new TH1D("CPh_fromXi_Pt_reco_two_Outside",
3304  "CPh_fromXi_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3305  30,
3306  0,
3307  3);
3310  new TH1D("CPh_fromOther_Pt_reco_two_Outside",
3311  "CPh_fromOther_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3312  30,
3313  0,
3314  3);
3317  new TH1D("CPh_twoFromTarget_Pt_reco_two_Outside",
3318  "CPh_twoFromTarget_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3319  30,
3320  0,
3321  3);
3324  new TH1D("CPh_fromCombinatorial_Pt_reco_two_Outside",
3325  "CPh_fromCombinatorial_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3326  30,
3327  0,
3328  3);
3329  fHistoList_dp_two_Outside.push_back(
3332  new TH1D("CPh_fromConversion_Pt_reco_two_Outside",
3333  "CPh_fromConversion_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#",
3334  30,
3335  0,
3336  3);
3339  new TH2D("CPh_pt_vs_rap_est_two_Outside",
3340  "CPh_pt_vs_rap_est_two_Outside; rapidity y; p_{t} in GeV/c ",
3341  10,
3342  0.,
3343  4.,
3344  40,
3345  0.,
3346  4.);
3349  new TH2D("CPh_pt_vs_rap_est_corr_two_Outside",
3350  "CPh_pt_vs_rap_est_corr_two_Outside; rapidity y; p_{t} in GeV/c ",
3351  10,
3352  0.,
3353  4.,
3354  40,
3355  0.,
3356  4.);
3358 
3359  // Outside => onetwo
3361  new TH1D("CDP_InvMassReco_onetwo_Outside",
3362  "CDP_InvMassReco_onetwo_Outside; invariant mass in GeV/c^{2};#",
3363  50,
3364  -0.005,
3365  0.045);
3368  new TH1D("CDP_OpeningAngleReco_onetwo_Outside",
3369  "CDP_OpeningAngleReco_onetwo_Outside; angle [deg];#",
3370  45,
3371  -0.5,
3372  4.);
3374  CDP_Pdg_onetwo_Outside = new TH1D(
3375  "CDP_Pdg_onetwo_Outside", "CDP_Pdg_onetwo_Outside; Id;#", 1000, -10, 490);
3378  new TH1D("CDP_P_reco_onetwo_Outside",
3379  "CDP_P_reco_onetwo_Outside; P in GeV/c^{2};#",
3380  200,
3381  0,
3382  10);
3385  new TH1D("CDP_Pt_reco_onetwo_Outside",
3386  "CDP_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3387  30,
3388  0,
3389  3);
3392  new TH1D("CPh_fromTarget_Pt_reco_onetwo_Outside",
3393  "CPh_fromTarget_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3394  30,
3395  0,
3396  3);
3399  new TH1D("CPh_fromPions_Pt_reco_onetwo_Outside",
3400  "CPh_fromPions_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3401  30,
3402  0,
3403  3);
3406  new TH1D("CPh_fromEtas_Pt_reco_onetwo_Outside",
3407  "CPh_fromEtas_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3408  30,
3409  0,
3410  3);
3413  new TH1D("CPh_fromDalitz_Pt_reco_onetwo_Outside",
3414  "CPh_fromDalitz_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3415  30,
3416  0,
3417  3);
3420  new TH1D("CPh_fromXi_Pt_reco_onetwo_Outside",
3421  "CPh_fromXi_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3422  30,
3423  0,
3424  3);
3427  new TH1D("CPh_fromOther_Pt_reco_onetwo_Outside",
3428  "CPh_fromOther_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3429  30,
3430  0,
3431  3);
3434  new TH1D("CPh_twoFromTarget_Pt_reco_onetwo_Outside",
3435  "CPh_twoFromTarget_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3436  30,
3437  0,
3438  3);
3439  fHistoList_dp_onetwo_Outside.push_back(
3442  "CPh_fromCombinatorial_Pt_reco_onetwo_Outside",
3443  "CPh_fromCombinatorial_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3444  30,
3445  0,
3446  3);
3447  fHistoList_dp_onetwo_Outside.push_back(
3450  new TH1D("CPh_fromConversion_Pt_reco_onetwo_Outside",
3451  "CPh_fromConversion_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#",
3452  30,
3453  0,
3454  3);
3455  fHistoList_dp_onetwo_Outside.push_back(
3458  new TH2D("CPh_pt_vs_rap_est_onetwo_Outside",
3459  "CPh_pt_vs_rap_est_onetwo_Outside; rapidity y; p_{t} in GeV/c ",
3460  10,
3461  0.,
3462  4.,
3463  40,
3464  0.,
3465  4.);
3468  "CPh_pt_vs_rap_est_corr_onetwo_Outside",
3469  "CPh_pt_vs_rap_est_corr_onetwo_Outside; rapidity y; p_{t} in GeV/c ",
3470  10,
3471  0.,
3472  4.,
3473  40,
3474  0.,
3475  4.);
3477 
3478 
3479  // Both => all
3481  new TH1D("CDP_InvMassReco_all_Both",
3482  "CDP_InvMassReco_all_Both; invariant mass in GeV/c^{2};#",
3483  50,
3484  -0.005,
3485  0.045);
3488  new TH1D("CDP_OpeningAngleReco_all_Both",
3489  "CDP_OpeningAngleReco_all_Both; angle [deg];#",
3490  45,
3491  -0.5,
3492  4.);
3495  new TH1D("CDP_Pdg_all_Both", "CDP_Pdg_all_Both; Id;#", 1000, -10, 490);
3497  CDP_P_reco_all_Both = new TH1D(
3498  "CDP_P_reco_all_Both", "CDP_P_reco_all_Both; P in GeV/c^{2};#", 200, 0, 10);
3500  CDP_Pt_reco_all_Both = new TH1D("CDP_Pt_reco_all_Both",
3501  "CDP_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3502  30,
3503  0,
3504  3);
3507  new TH1D("CPh_fromTarget_Pt_reco_all_Both",
3508  "CPh_fromTarget_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3509  30,
3510  0,
3511  3);
3514  new TH1D("CPh_fromPions_Pt_reco_all_Both",
3515  "CPh_fromPions_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3516  30,
3517  0,
3518  3);
3521  new TH1D("CPh_fromEtas_Pt_reco_all_Both",
3522  "CPh_fromEtas_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3523  30,
3524  0,
3525  3);
3528  new TH1D("CPh_fromDalitz_Pt_reco_all_Both",
3529  "CPh_fromDalitz_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3530  30,
3531  0,
3532  3);
3535  new TH1D("CPh_fromXi_Pt_reco_all_Both",
3536  "CPh_fromXi_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3537  30,
3538  0,
3539  3);
3542  new TH1D("CPh_fromOther_Pt_reco_all_Both",
3543  "CPh_fromOther_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3544  30,
3545  0,
3546  3);
3549  new TH1D("CPh_twoFromTarget_Pt_reco_all_Both",
3550  "CPh_twoFromTarget_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3551  30,
3552  0,
3553  3);
3556  new TH1D("CPh_fromCombinatorial_Pt_reco_all_Both",
3557  "CPh_fromCombinatorial_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3558  30,
3559  0,
3560  3);
3563  new TH1D("CPh_fromConversion_Pt_reco_all_Both",
3564  "CPh_fromConversion_Pt_reco_all_Both; P_{t} in GeV/c^{2};#",
3565  30,
3566  0,
3567  3);
3570  new TH2D("CPh_pt_vs_rap_est_all_Both",
3571  "CPh_pt_vs_rap_est_all_Both; rapidity y; p_{t} in GeV/c ",
3572  10,
3573  0.,
3574  4.,
3575  40,
3576  0.,
3577  4.);
3580  new TH2D("CPh_pt_vs_rap_est_corr_all_Both",
3581  "CPh_pt_vs_rap_est_corr_all_Both; rapidity y; p_{t} in GeV/c ",
3582  10,
3583  0.,
3584  4.,
3585  40,
3586  0.,
3587  4.);
3589 
3590  // Both => two
3592  new TH1D("CDP_InvMassReco_two_Both",
3593  "CDP_InvMassReco_two_Both; invariant mass in GeV/c^{2};#",
3594  50,
3595  -0.005,
3596  0.045);
3599  new TH1D("CDP_OpeningAngleReco_two_Both",
3600  "CDP_OpeningAngleReco_two_Both; angle [deg];#",
3601  45,
3602  -0.5,
3603  4.);
3606  new TH1D("CDP_Pdg_two_Both", "CDP_Pdg_two_Both; Id;#", 1000, -10, 490);
3608  CDP_P_reco_two_Both = new TH1D(
3609  "CDP_P_reco_two_Both", "CDP_P_reco_two_Both; P in GeV/c^{2};#", 200, 0, 10);
3611  CDP_Pt_reco_two_Both = new TH1D("CDP_Pt_reco_two_Both",
3612  "CDP_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3613  30,
3614  0,
3615  3);
3618  new TH1D("CPh_fromTarget_Pt_reco_two_Both",
3619  "CPh_fromTarget_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3620  30,
3621  0,
3622  3);
3625  new TH1D("CPh_fromPions_Pt_reco_two_Both",
3626  "CPh_fromPions_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3627  30,
3628  0,
3629  3);
3632  new TH1D("CPh_fromEtas_Pt_reco_two_Both",
3633  "CPh_fromEtas_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3634  30,
3635  0,
3636  3);
3639  new TH1D("CPh_fromDalitz_Pt_reco_two_Both",
3640  "CPh_fromDalitz_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3641  30,
3642  0,
3643  3);
3646  new TH1D("CPh_fromXi_Pt_reco_two_Both",
3647  "CPh_fromXi_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3648  30,
3649  0,
3650  3);
3653  new TH1D("CPh_fromOther_Pt_reco_two_Both",
3654  "CPh_fromOther_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3655  30,
3656  0,
3657  3);
3660  new TH1D("CPh_twoFromTarget_Pt_reco_two_Both",
3661  "CPh_twoFromTarget_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3662  30,
3663  0,
3664  3);
3667  new TH1D("CPh_fromCombinatorial_Pt_reco_two_Both",
3668  "CPh_fromCombinatorial_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3669  30,
3670  0,
3671  3);
3674  new TH1D("CPh_fromConversion_Pt_reco_two_Both",
3675  "CPh_fromConversion_Pt_reco_two_Both; P_{t} in GeV/c^{2};#",
3676  30,
3677  0,
3678  3);
3681  new TH2D("CPh_pt_vs_rap_est_two_Both",
3682  "CPh_pt_vs_rap_est_two_Both; rapidity y; p_{t} in GeV/c ",
3683  10,
3684  0.,
3685  4.,
3686  40,
3687  0.,
3688  4.);
3691  new TH2D("CPh_pt_vs_rap_est_corr_two_Both",
3692  "CPh_pt_vs_rap_est_corr_two_Both; rapidity y; p_{t} in GeV/c ",
3693  10,
3694  0.,
3695  4.,
3696  40,
3697  0.,
3698  4.);
3700 
3701  // Both => onetwo
3703  new TH1D("CDP_InvMassReco_onetwo_Both",
3704  "CDP_InvMassReco_onetwo_Both; invariant mass in GeV/c^{2};#",
3705  50,
3706  -0.005,
3707  0.045);
3710  new TH1D("CDP_OpeningAngleReco_onetwo_Both",
3711  "CDP_OpeningAngleReco_onetwo_Both; angle [deg];#",
3712  45,
3713  -0.5,
3714  4.);
3716  CDP_Pdg_onetwo_Both = new TH1D(
3717  "CDP_Pdg_onetwo_Both", "CDP_Pdg_onetwo_Both; Id;#", 1000, -10, 490);
3719  CDP_P_reco_onetwo_Both = new TH1D("CDP_P_reco_onetwo_Both",
3720  "CDP_P_reco_onetwo_Both; P in GeV/c^{2};#",
3721  200,
3722  0,
3723  10);
3726  new TH1D("CDP_Pt_reco_onetwo_Both",
3727  "CDP_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3728  30,
3729  0,
3730  3);
3733  new TH1D("CPh_fromTarget_Pt_reco_onetwo_Both",
3734  "CPh_fromTarget_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3735  30,
3736  0,
3737  3);
3740  new TH1D("CPh_fromPions_Pt_reco_onetwo_Both",
3741  "CPh_fromPions_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3742  30,
3743  0,
3744  3);
3747  new TH1D("CPh_fromEtas_Pt_reco_onetwo_Both",
3748  "CPh_fromEtas_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3749  30,
3750  0,
3751  3);
3754  new TH1D("CPh_fromDalitz_Pt_reco_onetwo_Both",
3755  "CPh_fromDalitz_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3756  30,
3757  0,
3758  3);
3761  new TH1D("CPh_fromXi_Pt_reco_onetwo_Both",
3762  "CPh_fromXi_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3763  30,
3764  0,
3765  3);
3768  new TH1D("CPh_fromOther_Pt_reco_onetwo_Both",
3769  "CPh_fromOther_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3770  30,
3771  0,
3772  3);
3775  new TH1D("CPh_twoFromTarget_Pt_reco_onetwo_Both",
3776  "CPh_twoFromTarget_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3777  30,
3778  0,
3779  3);
3782  new TH1D("CPh_fromCombinatorial_Pt_reco_onetwo_Both",
3783  "CPh_fromCombinatorial_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3784  30,
3785  0,
3786  3);
3787  fHistoList_dp_onetwo_Both.push_back(
3790  new TH1D("CPh_fromConversion_Pt_reco_onetwo_Both",
3791  "CPh_fromConversion_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#",
3792  30,
3793  0,
3794  3);
3797  new TH2D("CPh_pt_vs_rap_est_onetwo_Both",
3798  "CPh_pt_vs_rap_est_onetwo_Both; rapidity y; p_{t} in GeV/c ",
3799  10,
3800  0.,
3801  4.,
3802  40,
3803  0.,
3804  4.);
3807  new TH2D("CPh_pt_vs_rap_est_corr_onetwo_Both",
3808  "CPh_pt_vs_rap_est_corr_onetwo_Both; rapidity y; p_{t} in GeV/c ",
3809  10,
3810  0.,
3811  4.,
3812  40,
3813  0.,
3814  4.);
3816 
3817  // EMT Target
3819  new TH1D("CDP_EMT_Pt_all_Target",
3820  "CDP_EMT_Pt_all_Target; P_{t} in GeV/c^{2};#",
3821  30,
3822  0,
3823  3);
3826  new TH1D("CDP_EMT_Pt_two_Target",
3827  "CDP_EMT_Pt_two_Target; P_{t} in GeV/c^{2};#",
3828  30,
3829  0,
3830  3);
3833  new TH1D("CDP_EMT_Pt_onetwo_Target",
3834  "CDP_EMT_Pt_onetwo_Target; P_{t} in GeV/c^{2};#",
3835  30,
3836  0,
3837  3);
3839 
3840  // EMT Outside
3842  new TH1D("CDP_EMT_Pt_all_Outside",
3843  "CDP_EMT_Pt_all_Outside; P_{t} in GeV/c^{2};#",
3844  30,
3845  0,
3846  3);
3849  new TH1D("CDP_EMT_Pt_two_Outside",
3850  "CDP_EMT_Pt_two_Outside; P_{t} in GeV/c^{2};#",
3851  30,
3852  0,
3853  3);
3856  new TH1D("CDP_EMT_Pt_onetwo_Outside",
3857  "CDP_EMT_Pt_onetwo_Outside; P_{t} in GeV/c^{2};#",
3858  30,
3859  0,
3860  3);
3862 
3863  // EMT Both
3864  CDP_EMT_Pt_all_Both = new TH1D("CDP_EMT_Pt_all_Both",
3865  "CDP_EMT_Pt_all_Both; P_{t} in GeV/c^{2};#",
3866  30,
3867  0,
3868  3);
3870  CDP_EMT_Pt_two_Both = new TH1D("CDP_EMT_Pt_two_Both",
3871  "CDP_EMT_Pt_two_Both; P_{t} in GeV/c^{2};#",
3872  30,
3873  0,
3874  3);
3877  new TH1D("CDP_EMT_Pt_onetwo_Both",
3878  "CDP_EMT_Pt_onetwo_Both; P_{t} in GeV/c^{2};#",
3879  30,
3880  0,
3881  3);
3883 
3884 
3885  // CDP_LK_EMT Target
3887  new TH1D("CDP_LK_EMT_Pt_all_Target",
3888  "CDP_LK_EMT_Pt_all_Target; P_{t} in GeV/c^{2};#",
3889  30,
3890  0,
3891  3);
3894  new TH1D("CDP_LK_EMT_Pt_two_Target",
3895  "CDP_LK_EMT_Pt_two_Target; P_{t} in GeV/c^{2};#",
3896  30,
3897  0,
3898  3);
3901  new TH1D("CDP_LK_EMT_Pt_onetwo_Target",
3902  "CDP_LK_EMT_Pt_onetwo_Target; P_{t} in GeV/c^{2};#",
3903  30,
3904  0,
3905  3);
3907 
3908 
3909  // CDP_LK_EMT Outside
3911  new TH1D("CDP_LK_EMT_Pt_all_Outside",
3912  "CDP_LK_EMT_Pt_all_Outside; P_{t} in GeV/c^{2};#",
3913  30,
3914  0,
3915  3);
3918  new TH1D("CDP_LK_EMT_Pt_two_Outside",
3919  "CDP_LK_EMT_Pt_two_Outside; P_{t} in GeV/c^{2};#",
3920  30,
3921  0,
3922  3);
3925  new TH1D("CDP_LK_EMT_Pt_onetwo_Outside",
3926  "CDP_LK_EMT_Pt_onetwo_Outside; P_{t} in GeV/c^{2};#",
3927  30,
3928  0,
3929  3);
3931 
3932 
3933  // CDP_LK_EMT Both
3935  new TH1D("CDP_LK_EMT_Pt_all_Both",
3936  "CDP_LK_EMT_Pt_all_Both; P_{t} in GeV/c^{2};#",
3937  30,
3938  0,
3939  3);
3942  new TH1D("CDP_LK_EMT_Pt_two_Both",
3943  "CDP_LK_EMT_Pt_two_Both; P_{t} in GeV/c^{2};#",
3944  30,
3945  0,
3946  3);
3949  new TH1D("CDP_LK_EMT_Pt_onetwo_Both",
3950  "CDP_LK_EMT_Pt_onetwo_Both; P_{t} in GeV/c^{2};#",
3951  30,
3952  0,
3953  3);
3955 }
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_two_Target
TH1D * CPh_twoFromTarget_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:313
CbmKresConversionCorrectedPhotons::fPrimVertex
CbmVertex * fPrimVertex
Definition: CbmKresConversionCorrectedPhotons.h:138
CbmKresConversionCorrectedPhotons::CDP_P_reco_two_Outside
TH1D * CDP_P_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:363
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_plus_index_Target
std::vector< int > CDP_LK_EMT_STS_plus_index_Target
Definition: CbmKresConversionCorrectedPhotons.h:182
CbmKresConversionCorrectedPhotons::VMCtracks_plus_Target
vector< CbmMCTrack * > VMCtracks_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:165
CbmKresConversionCorrectedPhotons::fHistoList_dp_two_Both
vector< TH1 * > fHistoList_dp_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:417
CbmHit::GetZ
Double_t GetZ() const
Definition: CbmHit.h:70
CbmKresConversionCorrectedPhotons::VRings_plus_Outside
std::vector< int > VRings_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:152
CbmMCTrack::GetMotherId
Int_t GetMotherId() const
Definition: CbmMCTrack.h:71
CbmMatch::GetMatchedLink
const CbmLink & GetMatchedLink() const
Definition: CbmMatch.h:37
CbmKresConversionCorrectedPhotons::VStsIndex_minus_Target
std::vector< int > VStsIndex_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:162
CbmKresConversionCorrectedPhotons::CDP_EMT_Event_minus_Target
std::vector< int > CDP_EMT_Event_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:195
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_onetwo_Outside
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:394
CbmKresConversionCorrectedPhotons::fHistoList_dp_Target
vector< TH1 * > fHistoList_dp_Target
Definition: CbmKresConversionCorrectedPhotons.h:221
CbmKresConversionCorrectedPhotons::CDP_Pdg_onetwo_Both
TH1D * CDP_Pdg_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:439
CbmKresConversionCorrectedPhotons::InitHistograms
void InitHistograms()
Definition: CbmKresConversionCorrectedPhotons.cxx:2478
CbmKresConversionCorrectedPhotons::VMomenta_plus_Target
vector< TVector3 > VMomenta_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:167
CbmKresConversionCorrectedPhotons::CDP_P_reco_two_Both
TH1D * CDP_P_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:421
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_two_Both
TH2D * CPh_pt_vs_rap_est_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:432
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_minus_index_Target
std::vector< int > CDP_LK_EMT_STS_minus_index_Target
Definition: CbmKresConversionCorrectedPhotons.h:177
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_all_Target
TH1D * CDP_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:287
CbmKresConversionCorrectedPhotons::CDP_Pdg_all_Outside
TH1D * CDP_Pdg_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:343
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_onetwo_Both
TH1D * CPh_fromPions_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:443
CbmKresConversionCorrectedPhotons::VRichRing_plus_Target
vector< CbmRichRing * > VRichRing_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:170
CbmKresConversionCorrectedPhotons::VMCtracks_plus_Outside
vector< CbmMCTrack * > VMCtracks_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:151
CbmKresConversionCorrectedPhotons::CDP_Pdg_all_Target
TH1D * CDP_Pdg_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:285
CbmPixelHit::Position
void Position(TVector3 &pos) const
Copies hit position to pos.
Definition: CbmPixelHit.cxx:64
CbmKresConversionCorrectedPhotons::CDP_candidates_PlaneAngles_last_Target
TH1D * CDP_candidates_PlaneAngles_last_Target
Definition: CbmKresConversionCorrectedPhotons.h:262
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_all_Both
TH2D * CPh_pt_vs_rap_est_corr_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:414
CbmKresConversionCorrectedPhotons::CDP_candidates_InvMass_vs_OA_Target
TH2D * CDP_candidates_InvMass_vs_OA_Target
Definition: CbmKresConversionCorrectedPhotons.h:256
CbmKresConversionCorrectedPhotons::CalculatePlaneAngle_first
double CalculatePlaneAngle_first(CbmStsTrack *Sts_1, CbmStsTrack *Sts_2)
Definition: CbmKresConversionCorrectedPhotons.cxx:1770
CbmPixelHit::GetX
Double_t GetX() const
Definition: CbmPixelHit.h:83
CbmKresConversionCorrectedPhotons::CDP_P_reco_all_Target
TH1D * CDP_P_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:286
CbmMatch::GetNofLinks
Int_t GetNofLinks() const
Definition: CbmMatch.h:38
CbmKFParticleInterface::SetKFParticleFromStsTrack
static void SetKFParticleFromStsTrack(CbmStsTrack *track, KFParticle *particle, Int_t pdg=211, Bool_t firstPoint=kTRUE)
Definition: CbmKFParticleInterface.cxx:28
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_all_Target
TH1D * CPh_fromEtas_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:290
CbmKresConversionCorrectedPhotons::CGrandMother_PDG_Outside
TH1D * CGrandMother_PDG_Outside
Definition: CbmKresConversionCorrectedPhotons.h:228
CbmKresConversionCorrectedPhotons::~CbmKresConversionCorrectedPhotons
virtual ~CbmKresConversionCorrectedPhotons()
Definition: CbmKresConversionCorrectedPhotons.cxx:337
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_all_Both
TH1D * CPh_fromTarget_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:404
CbmKresTrainAnnDirectPhotons::Exec
void Exec(int event, int IdForANN, double InvariantMass, double OpeningAngle, double PlaneAngle_last, double ZPos, TVector3 Momentum1, TVector3 Momentum2)
Definition: CbmKresTrainAnnDirectPhotons.cxx:67
CbmKresConversionCorrectedPhotons::fArrayStsHit
TClonesArray * fArrayStsHit
Definition: CbmKresConversionCorrectedPhotons.h:136
CbmRichRingFitterEllipseTau
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
Definition: CbmRichRingFitterEllipseTau.h:35
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_two_Outside
TH2D * CPh_pt_vs_rap_est_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:374
CbmKresConversionCorrectedPhotons::corr_all
std::vector< std::vector< double > > corr_all
Definition: CbmKresConversionCorrectedPhotons.h:121
CbmPixelHit::GetY
Double_t GetY() const
Definition: CbmPixelHit.h:84
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_two_Both
TH1D * CDP_LK_EMT_Pt_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:485
CbmKresConversionCorrectedPhotons::fKFVertex
CbmKFVertex fKFVertex
Definition: CbmKresConversionCorrectedPhotons.h:139
CbmKresConversionCorrectedPhotons::CDP_candidates_InvMass_vs_OA_Both
TH2D * CDP_candidates_InvMass_vs_OA_Both
Definition: CbmKresConversionCorrectedPhotons.h:243
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_onetwo_Both
TH1D * CPh_fromXi_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:446
CbmKresConversionCorrectedPhotons::CDP_PlaneAngles_first_Both
TH1D * CDP_PlaneAngles_first_Both
Definition: CbmKresConversionCorrectedPhotons.h:252
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_two_Target
TH1D * CPh_fromOther_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:312
CbmKresConversionCorrectedPhotons::CDP_EMT_Hits_plus_Outside
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:216
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_all_Outside
TH1D * CPh_fromTarget_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:346
CbmKresGammaCorrection
Definition: CbmKresGammaCorrection.h:9
CbmKresSelectAnnPhotons
Definition: CbmKresSelectAnnPhotons.h:10
CbmKresConversionCorrectedPhotons::CDP_EMT_momenta_plus_Outside
std::vector< CbmStsTrack * > CDP_EMT_momenta_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:213
L1Field.h
CbmKresConversionCorrectedPhotons::fStsTracks
TClonesArray * fStsTracks
Definition: CbmKresConversionCorrectedPhotons.h:129
CbmKresConversionCorrectedPhotons::CDP_candidates_InvMass_vs_OA_Outside
TH2D * CDP_candidates_InvMass_vs_OA_Outside
Definition: CbmKresConversionCorrectedPhotons.h:269
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_two_Target
TH1D * CDP_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:306
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_all_Outside
TH1D * CDP_InvMassReco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:341
CbmKresConversionCorrectedPhotons::CDP_EMT_NofRings_minus_Outside
std::vector< int > CDP_EMT_NofRings_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:209
CbmKresConversionCorrectedPhotons::VStsIndex_plus_Target
std::vector< int > VStsIndex_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:169
CbmKresConversionCorrectedPhotons::fHistoList_dp_two_Target
vector< TH1 * > fHistoList_dp_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:301
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_two_Both
TH1D * CPh_fromDalitz_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:426
CbmKresConversionCorrectedPhotons::CGrandMother_PDG_Target
TH1D * CGrandMother_PDG_Target
Definition: CbmKresConversionCorrectedPhotons.h:223
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:349
CbmKresConversionCorrectedPhotons::UseCorrection
Int_t UseCorrection
Definition: CbmKresConversionCorrectedPhotons.h:120
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_two_Both
TH1D * CPh_twoFromTarget_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:429
CbmKresFunctions::CalculateKinematicParamsReco
static CbmLmvmKinematicParams CalculateKinematicParamsReco(const TVector3 electron1, const TVector3 electron2)
Definition: CbmKresFunctions.h:180
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_all_Both
TH1D * CPh_fromDalitz_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:407
CbmKresConversionCorrectedPhotons::CDP_EMT_momenta_minus_Outside
std::vector< CbmStsTrack * > CDP_EMT_momenta_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:207
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_onetwo_Target
TH1D * CDP_EMT_Pt_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:458
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_onetwo_Outside
TH1D * CPh_fromTarget_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:384
CbmKresConversionCorrectedPhotons::CDP_AnnTruePairs
TH1D * CDP_AnnTruePairs
Definition: CbmKresConversionCorrectedPhotons.h:234
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_two_Both
TH1D * CPh_fromOther_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:428
CbmKresConversionCorrectedPhotons::AnnTrainPhotons
Int_t AnnTrainPhotons
Definition: CbmKresConversionCorrectedPhotons.h:116
CbmGlobalTrack::GetRichRingIndex
Int_t GetRichRingIndex() const
Definition: CbmGlobalTrack.h:41
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_two_Both
TH2D * CPh_pt_vs_rap_est_corr_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:433
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_all_Both
TH2D * CPh_pt_vs_rap_est_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:413
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_onetwo_Target
TH1D * CDP_OpeningAngleReco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:322
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_all_Target
TH1D * CDP_EMT_Pt_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:456
CbmKresConversionCorrectedPhotons.h
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_onetwo_Target
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:329
CbmKresConversionCorrectedPhotons::CDP_candidates_OA_Outside
TH1D * CDP_candidates_OA_Outside
Definition: CbmKresConversionCorrectedPhotons.h:273
CbmKFVertex::GetRefX
Double_t & GetRefX()
Definition: CbmKFVertex.h:23
CbmMCTrack::GetPdgCode
Int_t GetPdgCode() const
Definition: CbmMCTrack.h:70
i
int i
Definition: L1/vectors/P4_F32vec4.h:25
CbmKresConversionCorrectedPhotons::fHistoList_dp_cuts_Both
vector< TH1 * > fHistoList_dp_cuts_Both
Definition: CbmKresConversionCorrectedPhotons.h:242
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_two_Outside
TH1D * CPh_fromConversion_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:373
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_all_Target
TH1D * CPh_fromConversion_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:296
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_two_Outside
TH1D * CPh_fromOther_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:370
CbmKresConversionCorrectedPhotons::VMomenta_minus_Target
vector< TVector3 > VMomenta_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:160
CbmKresSelectAnnPhotons::Init
void Init()
Definition: CbmKresSelectAnnPhotons.cxx:34
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_all_Both
TH1D * CPh_fromEtas_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:406
CbmKresConversionCorrectedPhotons::SaveTargetTracks
void SaveTargetTracks(CbmMCTrack *mcTrack1, CbmStsTrack *stsTrack, TVector3 refmom, double charge, int stsInd, int richInd, int stsMcTrackId, CbmRichRing *RING)
Definition: CbmKresConversionCorrectedPhotons.cxx:657
CbmKresConversionCorrectedPhotons::fRichProjections
TClonesArray * fRichProjections
Definition: CbmKresConversionCorrectedPhotons.h:131
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_all_Target
TH1D * CPh_fromTarget_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:288
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_all_Outside
TH1D * CPh_fromPions_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:347
CbmGlobalTrack.h
CbmKresConversionCorrectedPhotons::CDP_P_reco_all_Both
TH1D * CDP_P_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:402
CbmKresConversionCorrectedPhotons::CDP_EMT_NofRings_plus_Target
std::vector< int > CDP_EMT_NofRings_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:202
CbmKresConversionCorrectedPhotons::CDP_EMT_Event_minus_Outside
std::vector< int > CDP_EMT_Event_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:206
CbmKresConversionCorrectedPhotons::Exec
void Exec(int fEventNumDP, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
Definition: CbmKresConversionCorrectedPhotons.cxx:448
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_two_Target
TH1D * CPh_fromPions_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:308
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_two_Target
TH1D * CDP_InvMassReco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:302
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_onetwo_Both
TH1D * CPh_fromEtas_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:444
CbmRichRing::GetNofHits
Int_t GetNofHits() const
Definition: CbmRichRing.h:40
CbmKresConversionCorrectedPhotons::CDP_OA_Both
TH1D * CDP_OA_Both
Definition: CbmKresConversionCorrectedPhotons.h:248
CbmRichRing
Definition: CbmRichRing.h:17
CbmKresConversionCorrectedPhotons::fHistoList_dp_cuts_Outside
vector< TH1 * > fHistoList_dp_cuts_Outside
Definition: CbmKresConversionCorrectedPhotons.h:268
CbmKresConversionCorrectedPhotons::CDP_P_reco_two_Target
TH1D * CDP_P_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:305
CbmKresConversionCorrectedPhotons::CDP_Pdg_onetwo_Target
TH1D * CDP_Pdg_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:323
CbmKresConversionCorrectedPhotons::VStsTrack_minus_Target
vector< CbmStsTrack * > VStsTrack_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:159
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_momenta_plus_Target
std::vector< TVector3 > CDP_LK_EMT_momenta_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:179
CbmKresConversionCorrectedPhotons::fRichRings
TClonesArray * fRichRings
Definition: CbmKresConversionCorrectedPhotons.h:132
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_two_Outside
TH1D * CDP_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:364
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_onetwo_Outside
TH2D * CPh_pt_vs_rap_est_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:393
CbmRichRing.h
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_two_Target
TH1D * CDP_OpeningAngleReco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:303
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_two_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:372
CbmKresConversionCorrectedPhotons::fHistoList_dp_two_Outside
vector< TH1 * > fHistoList_dp_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:359
CbmKresConversionCorrectedPhotons::fHistoList_dp_Outside
vector< TH1 * > fHistoList_dp_Outside
Definition: CbmKresConversionCorrectedPhotons.h:226
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_all_Target
TH1D * CDP_InvMassReco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:283
CbmKresConversionCorrectedPhotons::CDP_Pdg_all_Both
TH1D * CDP_Pdg_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:401
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_onetwo_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:391
CbmKresConversionCorrectedPhotons::CDP_candidates_PlaneAngles_first_Both
TH1D * CDP_candidates_PlaneAngles_first_Both
Definition: CbmKresConversionCorrectedPhotons.h:251
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_onetwo_Outside
TH1D * CPh_fromOther_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:389
CbmKresConversionCorrectedPhotons::CDP_EMT_NofRings_plus_Outside
std::vector< int > CDP_EMT_NofRings_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:215
CbmKresConversionCorrectedPhotons::CDP_candidates_PlaneAngles_last_Outside
TH1D * CDP_candidates_PlaneAngles_last_Outside
Definition: CbmKresConversionCorrectedPhotons.h:275
CbmKresConversionCorrectedPhotons::CDP_EMT_Hits_plus_Target
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:203
CbmKresConversionCorrectedPhotons::CDP_PlaneAngles_first_Outside
TH1D * CDP_PlaneAngles_first_Outside
Definition: CbmKresConversionCorrectedPhotons.h:278
CbmKresConversionCorrectedPhotons::SaveOutsideTracks
void SaveOutsideTracks(CbmMCTrack *mcTrack1, CbmStsTrack *stsTrack, double charge, int stsInd, int richInd, int stsMcTrackId, CbmRichRing *RING)
Definition: CbmKresConversionCorrectedPhotons.cxx:633
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_onetwo_Outside
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:390
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_onetwo_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:480
CbmKresConversionCorrectedPhotons::VRichRing_plus_Outside
vector< CbmRichRing * > VRichRing_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:154
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_onetwo_Both
TH1D * CDP_EMT_Pt_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:468
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_two_Both
TH1D * CPh_fromCombinatorial_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:430
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_all_Outside
TH2D * CPh_pt_vs_rap_est_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:355
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_onetwo_Target
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:332
CbmMvdHit
Definition: CbmMvdHit.h:29
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_two_Outside
TH1D * CPh_fromDalitz_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:368
CbmKresConversionCorrectedPhotons::Init
void Init(double OA, double IM)
Definition: CbmKresConversionCorrectedPhotons.cxx:339
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_onetwo_Outside
TH1D * CPh_fromXi_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:388
CbmKresConversionCorrectedPhotons::CDP_EMT_Event_plus_Outside
std::vector< int > CDP_EMT_Event_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:212
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_two_Both
TH1D * CDP_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:422
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_all_Target
TH1D * CPh_fromXi_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:292
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_all_Target
TH1D * CPh_fromPions_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:289
CbmRichUtil::GetRingTrackDistance
static Double_t GetRingTrackDistance(Int_t globalTrackId)
Definition: alignment/CbmRichUtil.h:20
CbmStsTrack::GetNofMvdHits
Int_t GetNofMvdHits() const
Definition: CbmStsTrack.h:84
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_all_Outside
TH1D * CDP_OpeningAngleReco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:342
CbmKresConversionCorrectedPhotons::CDP_EMT_Hits_minus_Outside
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:210
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_two_Both
TH1D * CPh_fromConversion_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:431
CbmStsHit
data class for a reconstructed 3-d hit in the STS
Definition: CbmStsHit.h:31
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_two_Outside
TH1D * CDP_InvMassReco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:360
CbmKresConversionCorrectedPhotons::VMCtracks_minus_Outside
vector< CbmMCTrack * > VMCtracks_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:145
CbmKresConversionCorrectedPhotons::VRichRing_minus_Outside
vector< CbmRichRing * > VRichRing_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:148
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_two_Both
TH1D * CPh_fromEtas_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:425
CbmKresConversionCorrectedPhotons::CDP_InvMass_Outside
TH1D * CDP_InvMass_Outside
Definition: CbmKresConversionCorrectedPhotons.h:272
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_two_Outside
TH2D * CPh_pt_vs_rap_est_corr_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:375
CbmRichRing::GetHit
UInt_t GetHit(Int_t i) const
Definition: CbmRichRing.h:42
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_onetwo_Outside
TH1D * CPh_fromConversion_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:392
CbmStsTrack.h
Data class for STS tracks.
CbmGlobalTrack::GetStsTrackIndex
Int_t GetStsTrackIndex() const
Definition: CbmGlobalTrack.h:38
CbmRichRingLight::GetAaxis
float GetAaxis() const
Definition: CbmRichRingLight.h:163
CbmKresConversionCorrectedPhotons::fTauFit
CbmRichRingFitterEllipseTau * fTauFit
Definition: CbmKresConversionCorrectedPhotons.h:141
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_all_Target
TH2D * CPh_pt_vs_rap_est_corr_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:298
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_all_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:348
CbmKresConversionCorrectedPhotons::CDP_EMT_momenta_plus_Target
std::vector< TVector3 > CDP_EMT_momenta_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:201
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_two_Outside
TH1D * CPh_fromXi_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:369
CbmKresConversionCorrectedPhotons::CDP_AnnTruePairs_AfterCuts
TH1D * CDP_AnnTruePairs_AfterCuts
Definition: CbmKresConversionCorrectedPhotons.h:236
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_two_Both
TH1D * CPh_fromXi_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:427
CbmKresConversionCorrectedPhotons::CDP_EMT_KFTrack_minus_Outside
std::vector< KFParticle > CDP_EMT_KFTrack_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:208
CbmKresConversionCorrectedPhotons::CDP_PlaneAngles_last_Target
TH1D * CDP_PlaneAngles_last_Target
Definition: CbmKresConversionCorrectedPhotons.h:263
CbmKresConversionCorrectedPhotons::CDP_PlaneAngles_last_Both
TH1D * CDP_PlaneAngles_last_Both
Definition: CbmKresConversionCorrectedPhotons.h:250
CbmKresConversionCorrectedPhotons::CDP_EMT_Hits_minus_Target
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:198
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_two_Both
TH1D * CDP_EMT_Pt_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:467
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_onetwo_Target
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:333
CbmKFVertex::GetRefZ
Double_t & GetRefZ()
Definition: CbmKFVertex.h:25
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_all_Both
TH1D * CDP_EMT_Pt_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:466
CbmKresConversionCorrectedPhotons::corr_two
std::vector< std::vector< double > > corr_two
Definition: CbmKresConversionCorrectedPhotons.h:122
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_onetwo_Both
TH1D * CPh_fromOther_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:447
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_two_Target
TH1D * CDP_LK_EMT_Pt_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:473
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_minus_index_Outside
std::vector< int > CDP_LK_EMT_STS_minus_index_Outside
Definition: CbmKresConversionCorrectedPhotons.h:187
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_onetwo_Target
TH1D * CDP_LK_EMT_Pt_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:474
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_two_Both
TH1D * CDP_InvMassReco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:418
CbmKresConversionCorrectedPhotons::CDP_candidates_InvMass_Outside
TH1D * CDP_candidates_InvMass_Outside
Definition: CbmKresConversionCorrectedPhotons.h:271
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_onetwo_Both
TH1D * CDP_InvMassReco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:437
CbmKresConversionCorrectedPhotons::CDP_EMT_KFTrack_plus_Outside
std::vector< KFParticle > CDP_EMT_KFTrack_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:214
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_two_Both
TH1D * CPh_fromPions_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:424
CbmKresConversionCorrectedPhotons::FindGammasTarget
void FindGammasTarget(int EventNumMan, double AngleCut, double InvMassCut, int RealPID, vector< CbmMCTrack * > MCtracks_minus, vector< CbmMCTrack * > MCtracks_plus, vector< CbmStsTrack * > StsTrack_minus, vector< CbmStsTrack * > StsTrack_plus, vector< TVector3 > Momenta_minus, vector< TVector3 > Momenta_plus, std::vector< int > Rings_minus, std::vector< int > Rings_plus, std::vector< int > stsIndex_minus, std::vector< int > stsIndex_plus, vector< CbmRichRing * > richRing_minus, vector< CbmRichRing * > richRing_plus)
Definition: CbmKresConversionCorrectedPhotons.cxx:685
CbmRichRingLight.h
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_NofRings_minus_Target
std::vector< int > CDP_LK_EMT_NofRings_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:175
CbmKresConversionCorrectedPhotons::fStsTrackMatches
TClonesArray * fStsTrackMatches
Definition: CbmKresConversionCorrectedPhotons.h:130
CbmKresConversionCorrectedPhotons::fHistoList_dp_all_Outside
vector< TH1 * > fHistoList_dp_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:340
CbmKresConversionCorrectedPhotons::CDP_InvMass_vs_OA_Outside
TH2D * CDP_InvMass_vs_OA_Outside
Definition: CbmKresConversionCorrectedPhotons.h:270
CbmKresConversionCorrectedPhotons::CDP_candidates_PlaneAngles_last_Both
TH1D * CDP_candidates_PlaneAngles_last_Both
Definition: CbmKresConversionCorrectedPhotons.h:249
CbmKresConversionCorrectedPhotons::corr_onetwo
std::vector< std::vector< double > > corr_onetwo
Definition: CbmKresConversionCorrectedPhotons.h:123
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_onetwo_Both
TH1D * CDP_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:441
CbmTrackMatchNew.h
CbmKresSelectAnnPhotons::DoSelect
double DoSelect(double InvariantMass, double OpeningAngle, double PlaneAngle_last, double ZPos, TVector3 Momentum1, TVector3 Momentum2)
Definition: CbmKresSelectAnnPhotons.cxx:56
CbmVertex
Definition: CbmVertex.h:26
CbmKresConversionCorrectedPhotons::thresholdweight
double thresholdweight
Definition: CbmKresConversionCorrectedPhotons.h:124
CbmRichRingLight::AddHit
void AddHit(CbmRichHitLight hit)
Add new hit to the ring.
Definition: CbmRichRingLight.h:87
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_onetwo_Target
TH1D * CPh_fromPions_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:327
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_onetwo_Both
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:452
CbmL1PFFitter.h
CbmKresConversionCorrectedPhotons::CDP_PlaneAngles_last_Outside
TH1D * CDP_PlaneAngles_last_Outside
Definition: CbmKresConversionCorrectedPhotons.h:276
CbmKresFunctions::FitToVertex
static TVector3 FitToVertex(CbmStsTrack *stsTrack, double x, double y, double z)
Definition: CbmKresFunctions.h:29
CbmKresConversionCorrectedPhotons::CDP_P_reco_onetwo_Outside
TH1D * CDP_P_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:382
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_all_Outside
TH1D * CDP_LK_EMT_Pt_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:478
CbmKresConversionCorrectedPhotons::CMother_PDG_Outside
TH1D * CMother_PDG_Outside
Definition: CbmKresConversionCorrectedPhotons.h:227
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_two_Target
TH1D * CPh_fromTarget_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:307
CbmKresConversionCorrectedPhotons::CP_vs_Distance_for_dp
TH2D * CP_vs_Distance_for_dp
Definition: CbmKresConversionCorrectedPhotons.h:233
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_two_Outside
TH1D * CDP_OpeningAngleReco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:361
CbmKresGammaCorrection::Init
void Init(std::vector< std::vector< double >> &vect_all, std::vector< std::vector< double >> &vect_two, std::vector< std::vector< double >> &vect_onetwo, double OA, double IM)
Definition: CbmKresGammaCorrection.cxx:36
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_two_Outside
TH1D * CPh_fromEtas_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:367
CbmKresConversionCorrectedPhotons::CDP_EMT_Event_plus_Target
std::vector< int > CDP_EMT_Event_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:200
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_two_Target
TH1D * CPh_fromEtas_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:309
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_all_Both
TH1D * CDP_InvMassReco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:399
CbmKresConversionCorrectedPhotons::CDP_likesign_Mixing_Target
void CDP_likesign_Mixing_Target(double AngleCut, double InvMassCut)
Definition: CbmKresConversionCorrectedPhotons.cxx:1871
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_all_Both
TH1D * CPh_twoFromTarget_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:410
CbmLmvmKinematicParams::fRapidity
Double_t fRapidity
Definition: CbmLmvmKinematicParams.h:21
CbmKresConversionCorrectedPhotons::CDP_InvMass_Both
TH1D * CDP_InvMass_Both
Definition: CbmKresConversionCorrectedPhotons.h:246
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_two_Target
TH2D * CPh_pt_vs_rap_est_corr_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:317
CbmKFParticleInterface.h
CbmKresConversionCorrectedPhotons::FindInRich
int FindInRich(int richInd, int stsMcTrackId)
Definition: CbmKresConversionCorrectedPhotons.cxx:1536
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_two_Target
TH1D * CDP_EMT_Pt_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:457
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_NofRings_plus_Outside
std::vector< int > CDP_LK_EMT_NofRings_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:189
CbmKresConversionCorrectedPhotons::VMCtracks_minus_Target
vector< CbmMCTrack * > VMCtracks_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:158
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_all_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:353
xMath::Pi
double Pi()
Definition: xMath.h:5
CbmKresConversionCorrectedPhotons::fRichHits
TClonesArray * fRichHits
Definition: CbmKresConversionCorrectedPhotons.h:134
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_onetwo_Target
TH1D * CDP_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:325
CbmRichRingLight::GetBaxis
float GetBaxis() const
Definition: CbmRichRingLight.h:164
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_onetwo_Target
TH1D * CPh_fromEtas_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:328
CbmKresConversionCorrectedPhotons::CDP_P_reco_onetwo_Both
TH1D * CDP_P_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:440
CbmTrack::GetParamFirst
const FairTrackParam * GetParamFirst() const
Definition: CbmTrack.h:61
CbmKresConversionCorrectedPhotons::fHistoList_dp_all_Target
vector< TH1 * > fHistoList_dp_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:282
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_onetwo_Both
TH1D * CPh_fromTarget_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:442
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_two_Outside
TH1D * CDP_EMT_Pt_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:462
CbmKresConversionCorrectedPhotons::CDP_AnnFalsePairs_AfterCuts
TH1D * CDP_AnnFalsePairs_AfterCuts
Definition: CbmKresConversionCorrectedPhotons.h:237
CbmRichHitLight
Definition: CbmRichRingLight.h:14
CbmKresConversionCorrectedPhotons::fHistoList_dp_onetwo_Both
vector< TH1 * > fHistoList_dp_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:436
CbmKresConversionCorrectedPhotons::CDP_Mixing_Target
void CDP_Mixing_Target(double AngleCut, double InvMassCut)
Definition: CbmKresConversionCorrectedPhotons.cxx:2198
CbmKresConversionCorrectedPhotons::fMcTracks
TClonesArray * fMcTracks
Definition: CbmKresConversionCorrectedPhotons.h:127
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_all_Both
TH1D * CPh_fromCombinatorial_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:411
CbmKresConversionCorrectedPhotons::VRichRing_minus_Target
vector< CbmRichRing * > VRichRing_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:163
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_plus_Outside
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:190
CbmKresConversionCorrectedPhotons::CDP_likesign_Mixing_Outside
void CDP_likesign_Mixing_Outside(double AngleCut, double InvMassCut)
Definition: CbmKresConversionCorrectedPhotons.cxx:2020
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_onetwo_Outside
TH1D * CDP_OpeningAngleReco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:380
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_all_Both
TH1D * CDP_LK_EMT_Pt_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:484
CbmKresFunctions::Invmass_2particles_RECO
static double Invmass_2particles_RECO(const TVector3 part1, const TVector3 part2)
Definition: CbmKresFunctions.h:107
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_minus_Target
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:176
CbmKresFunctions.h
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_all_Outside
TH1D * CPh_fromConversion_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:354
CbmKresConversionCorrectedPhotons::fHistoList_dp_all_Both
vector< TH1 * > fHistoList_dp_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:398
CbmGlobalTrack
Definition: CbmGlobalTrack.h:26
CbmKresConversionCorrectedPhotons::CDP_InvMass_vs_OA_Target
TH2D * CDP_InvMass_vs_OA_Target
Definition: CbmKresConversionCorrectedPhotons.h:257
CbmKresConversionCorrectedPhotons::VRings_minus_Target
std::vector< int > VRings_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:161
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_NofRings_minus_Outside
std::vector< int > CDP_LK_EMT_NofRings_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:185
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_onetwo_Outside
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:387
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_two_Target
TH1D * CPh_fromXi_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:311
CbmKresConversionCorrectedPhotons::VStsIndex_minus_Outside
std::vector< int > VStsIndex_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:147
CbmKresConversionCorrectedPhotons::fHistoList_dp_cuts_Target
vector< TH1 * > fHistoList_dp_cuts_Target
Definition: CbmKresConversionCorrectedPhotons.h:255
CbmKresConversionCorrectedPhotons::CDP_EMT_momenta_minus_Target
std::vector< TVector3 > CDP_EMT_momenta_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:196
CbmKresConversionCorrectedPhotons::fHistoList_dp_onetwo_Target
vector< TH1 * > fHistoList_dp_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:320
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_all_Target
TH1D * CPh_fromCombinatorial_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:295
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_onetwo_Both
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:449
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_plus_Target
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:181
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_all_Target
TH1D * CPh_twoFromTarget_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:294
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_two_Outside
TH1D * CDP_LK_EMT_Pt_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:479
CbmMCTrack.h
CbmKresConversionCorrectedPhotons::CDP_InvMass_vs_OA_Both
TH2D * CDP_InvMass_vs_OA_Both
Definition: CbmKresConversionCorrectedPhotons.h:244
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_onetwo_Target
TH1D * CPh_fromTarget_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:326
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_minus_Outside
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:186
CbmKresConversionCorrectedPhotons::CheckIfElectron
int CheckIfElectron(CbmRichRing *ring, double momentum)
Definition: CbmKresConversionCorrectedPhotons.cxx:1561
CbmKresConversionCorrectedPhotons::CDP_PlaneAngles_first_Target
TH1D * CDP_PlaneAngles_first_Target
Definition: CbmKresConversionCorrectedPhotons.h:265
CbmKresConversionCorrectedPhotons::fHistoList_dp_onetwo_Outside
vector< TH1 * > fHistoList_dp_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:378
CbmKresConversionCorrectedPhotons::VRings_plus_Target
std::vector< int > VRings_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:168
CbmKresTrainAnnDirectPhotons::Init
void Init()
Definition: CbmKresTrainAnnDirectPhotons.cxx:65
CbmKresFunctions::FitToVertexAndGetChi
static TVector3 FitToVertexAndGetChi(CbmStsTrack *stsTrack, double x, double y, double z, double &chi)
Definition: CbmKresFunctions.h:67
CbmKresConversionCorrectedPhotons::VStsTrack_plus_Target
vector< CbmStsTrack * > VStsTrack_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:166
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_all_Target
TH1D * CPh_fromDalitz_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:291
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_all_Both
TH1D * CPh_fromXi_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:408
CbmKresConversionCorrectedPhotons::SaveAllHits
std::vector< TVector3 > SaveAllHits(CbmStsTrack *track)
Definition: CbmKresConversionCorrectedPhotons.cxx:1587
CbmMCTrack
Definition: CbmMCTrack.h:34
CbmKresConversionCorrectedPhotons::VRings_minus_Outside
std::vector< int > VRings_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:146
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_onetwo_Target
TH1D * CPh_fromConversion_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:334
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_all_Outside
TH1D * CDP_EMT_Pt_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:461
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_onetwo_Both
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:445
CbmKresConversionCorrectedPhotons::CPh_fromCombinatorial_Pt_reco_two_Target
TH1D * CPh_fromCombinatorial_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:314
CbmMvdHit.h
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_STS_plus_index_Outside
std::vector< int > CDP_LK_EMT_STS_plus_index_Outside
Definition: CbmKresConversionCorrectedPhotons.h:191
CbmKresConversionCorrectedPhotons::CDP_EMT_Pt_onetwo_Outside
TH1D * CDP_EMT_Pt_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:463
CbmKresConversionCorrectedPhotons::Finish
void Finish()
Definition: CbmKresConversionCorrectedPhotons.cxx:2372
CbmKresConversionCorrectedPhotons::UseAnnPhotons
Int_t UseAnnPhotons
Definition: CbmKresConversionCorrectedPhotons.h:118
CbmKresGammaCorrection::Finish
void Finish()
Definition: CbmKresGammaCorrection.cxx:114
CbmKresConversionCorrectedPhotons::CDP_P_reco_onetwo_Target
TH1D * CDP_P_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:324
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_two_Outside
TH1D * CPh_fromPions_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:366
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_two_Target
TH1D * CPh_fromConversion_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:315
CbmStsTrack::GetMvdHitIndex
Int_t GetMvdHitIndex(Int_t iHit) const
Definition: CbmStsTrack.h:70
CbmKresConversionCorrectedPhotons::fHistoList_dp_Both
vector< TH1 * > fHistoList_dp_Both
Definition: CbmKresConversionCorrectedPhotons.h:231
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_onetwo_Both
TH2D * CPh_pt_vs_rap_est_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:451
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_onetwo_Outside
TH1D * CDP_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:383
CbmKFVertex::GetRefY
Double_t & GetRefY()
Definition: CbmKFVertex.h:24
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_onetwo_Both
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:448
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_all_Outside
TH1D * CPh_fromOther_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:351
CbmLmvmKinematicParams::fMomentumMag
Double_t fMomentumMag
Definition: CbmLmvmKinematicParams.h:19
CbmKresConversionCorrectedPhotons::CDP_candidates_OA_Both
TH1D * CDP_candidates_OA_Both
Definition: CbmKresConversionCorrectedPhotons.h:247
CbmKresConversionCorrectedPhotons::fTrainPhotons
CbmKresTrainAnnDirectPhotons * fTrainPhotons
Definition: CbmKresConversionCorrectedPhotons.h:115
CbmTrackMatchNew
Definition: CbmTrackMatchNew.h:19
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_onetwo_Target
TH1D * CPh_fromOther_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:331
CbmKresConversionCorrectedPhotons::CDP_Pdg_two_Target
TH1D * CDP_Pdg_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:304
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_onetwo_Target
TH1D * CDP_InvMassReco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:321
CbmKresConversionCorrectedPhotons::VStsTrack_plus_Outside
vector< CbmStsTrack * > VStsTrack_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:150
CbmKresConversionCorrectedPhotons::fArrayMvdHit
TClonesArray * fArrayMvdHit
Definition: CbmKresConversionCorrectedPhotons.h:135
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_all_Outside
TH1D * CPh_fromXi_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:350
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_two_Target
TH2D * CPh_pt_vs_rap_est_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:316
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_all_Both
TH1D * CPh_fromPions_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:405
CbmKresConversionCorrectedPhotons::fAnnPhotonsSelection
CbmKresSelectAnnPhotons * fAnnPhotonsSelection
Definition: CbmKresConversionCorrectedPhotons.h:117
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_two_Both
TH1D * CDP_OpeningAngleReco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:419
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_all_Target
TH1D * CPh_fromOther_Pt_reco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:293
CbmRichHit.h
CbmKresConversionCorrectedPhotons::CDP_Pdg_two_Both
TH1D * CDP_Pdg_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:420
CbmStsTrack::GetStsHitIndex
Int_t GetStsHitIndex(Int_t iHit) const
Definition: CbmStsTrack.h:98
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_onetwo_Target
TH2D * CPh_pt_vs_rap_est_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:335
CbmKresConversionCorrectedPhotons::CMother_PDG_Target
TH1D * CMother_PDG_Target
Definition: CbmKresConversionCorrectedPhotons.h:222
CbmKresConversionCorrectedPhotons::VStsTrack_minus_Outside
vector< CbmStsTrack * > VStsTrack_minus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:144
CbmKresConversionCorrectedPhotons::CPh_fromXi_Pt_reco_onetwo_Target
TH1D * CPh_fromXi_Pt_reco_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:330
CbmRichRingFitterEllipseTau::DoFit
virtual void DoFit(CbmRichRingLight *ring)
Inherited from CbmRichRingFitterBase.
Definition: CbmRichRingFitterEllipseTau.cxx:94
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_onetwo_Both
TH1D * CPh_fromConversion_Pt_reco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:450
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_momenta_minus_Target
std::vector< TVector3 > CDP_LK_EMT_momenta_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:174
CbmStsTrack
Definition: CbmStsTrack.h:37
CbmKresConversionCorrectedPhotons::CDP_AnnFalsePairs
TH1D * CDP_AnnFalsePairs
Definition: CbmKresConversionCorrectedPhotons.h:235
CbmKresConversionCorrectedPhotons::FindGammasOutside
void FindGammasOutside(int EventNumMan, double AngleCut, double InvMassCut, int RealPID, vector< CbmMCTrack * > MCtracks_minus_Outside, vector< CbmMCTrack * > MCtracks_plus_Outside, vector< CbmStsTrack * > StsTrack_minus_Outside, vector< CbmStsTrack * > StsTrack_plus_Outside, std::vector< int > Rings_minus_Outside, std::vector< int > Rings_plus_Outside, std::vector< int > stsIndex_minus_Outside, std::vector< int > stsIndex_plus_Outside, vector< CbmRichRing * > richRing_minus_Outside, vector< CbmRichRing * > richRing_plus_Outside)
Definition: CbmKresConversionCorrectedPhotons.cxx:1099
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_two_Outside
TH1D * CPh_twoFromTarget_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:371
CbmKresConversionCorrectedPhotons::CDP_candidates_PlaneAngles_first_Outside
TH1D * CDP_candidates_PlaneAngles_first_Outside
Definition: CbmKresConversionCorrectedPhotons.h:277
CbmKresConversionCorrectedPhotons::CDP_candidates_InvMass_Both
TH1D * CDP_candidates_InvMass_Both
Definition: CbmKresConversionCorrectedPhotons.h:245
CbmKresConversionCorrectedPhotons::CDP_Pdg_onetwo_Outside
TH1D * CDP_Pdg_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:381
CbmKresConversionCorrectedPhotons::fGlobalTracks
TClonesArray * fGlobalTracks
Definition: CbmKresConversionCorrectedPhotons.h:128
CbmKresConversionCorrectedPhotons::CPh_fromDalitz_Pt_reco_two_Target
TH1D * CPh_fromDalitz_Pt_reco_two_Target
Definition: CbmKresConversionCorrectedPhotons.h:310
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_two_Outside
TH1D * CPh_fromTarget_Pt_reco_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:365
CbmKresTrainAnnDirectPhotons
Definition: CbmKresTrainAnnDirectPhotons.h:12
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_all_Outside
TH2D * CPh_pt_vs_rap_est_corr_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:356
CbmKresFunctions::CalculateOpeningAngle_Reco
static Double_t CalculateOpeningAngle_Reco(TVector3 electron1, TVector3 electron2)
Definition: CbmKresFunctions.h:251
CbmKresConversionBG.h
CbmKresConversionCorrectedPhotons::fGammaCorrection
CbmKresGammaCorrection * fGammaCorrection
Definition: CbmKresConversionCorrectedPhotons.h:119
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_all_Both
TH1D * CDP_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:403
CbmKresConversionCorrectedPhotons::CDP_candidates_PlaneAngles_first_Target
TH1D * CDP_candidates_PlaneAngles_first_Target
Definition: CbmKresConversionCorrectedPhotons.h:264
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_all_Target
TH1D * CDP_LK_EMT_Pt_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:472
CbmKresConversionCorrectedPhotons::CDP_OA_Target
TH1D * CDP_OA_Target
Definition: CbmKresConversionCorrectedPhotons.h:261
CbmKresConversionCorrectedPhotons::CPh_twoFromTarget_Pt_reco_all_Outside
TH1D * CPh_twoFromTarget_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:352
CbmRichRingLight
Definition: CbmRichRingLight.h:39
CbmKresConversionCorrectedPhotons::CPh_fromEtas_Pt_reco_onetwo_Outside
TH1D * CPh_fromEtas_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:386
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_Pt_onetwo_Both
TH1D * CDP_LK_EMT_Pt_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:486
CbmKresConversionCorrectedPhotons::CPh_fromOther_Pt_reco_all_Both
TH1D * CPh_fromOther_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:409
CbmMCTrack::GetP
Double_t GetP() const
Definition: CbmMCTrack.h:100
CbmKresConversionCorrectedPhotons::CPh_fromTarget_Pt_reco_two_Both
TH1D * CPh_fromTarget_Pt_reco_two_Both
Definition: CbmKresConversionCorrectedPhotons.h:423
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_corr_onetwo_Target
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Target
Definition: CbmKresConversionCorrectedPhotons.h:336
CbmKresConversionCorrectedPhotons::CPh_pt_vs_rap_est_all_Target
TH2D * CPh_pt_vs_rap_est_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:297
CbmKresConversionCorrectedPhotons::CDP_Mixing_Outside
void CDP_Mixing_Outside(double AngleCut, double InvMassCut)
Definition: CbmKresConversionCorrectedPhotons.cxx:2277
CbmLmvmKinematicParams
Definition: CbmLmvmKinematicParams.h:17
CbmLmvmKinematicParams::fPt
Double_t fPt
Definition: CbmLmvmKinematicParams.h:20
CbmKresConversionCorrectedPhotons::CDP_Pdg_two_Outside
TH1D * CDP_Pdg_two_Outside
Definition: CbmKresConversionCorrectedPhotons.h:362
CbmKresConversionCorrectedPhotons::CDP_candidates_InvMass_Target
TH1D * CDP_candidates_InvMass_Target
Definition: CbmKresConversionCorrectedPhotons.h:258
CbmKresConversionCorrectedPhotons::CDP_P_reco_all_Outside
TH1D * CDP_P_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:344
CbmKresConversionCorrectedPhotons::CDP_EMT_NofRings_minus_Target
std::vector< int > CDP_EMT_NofRings_minus_Target
Definition: CbmKresConversionCorrectedPhotons.h:197
CbmKresConversionCorrectedPhotons::CPdg_vs_Distance_for_dp
TH2D * CPdg_vs_Distance_for_dp
Definition: CbmKresConversionCorrectedPhotons.h:232
CbmKresConversionCorrectedPhotons::CDP_OA_Outside
TH1D * CDP_OA_Outside
Definition: CbmKresConversionCorrectedPhotons.h:274
CbmKresConversionCorrectedPhotons::CalculatePlaneAngle_last_fromHits
double CalculatePlaneAngle_last_fromHits(std::vector< TVector3 > track_1, std::vector< TVector3 > track_2)
Definition: CbmKresConversionCorrectedPhotons.cxx:1612
CbmRichHit
Definition: CbmRichHit.h:19
CbmKresConversionCorrectedPhotons::fRichRingMatches
TClonesArray * fRichRingMatches
Definition: CbmKresConversionCorrectedPhotons.h:133
CbmKresConversionCorrectedPhotons::CDP_InvMassReco_onetwo_Outside
TH1D * CDP_InvMassReco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:379
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_all_Both
TH1D * CDP_OpeningAngleReco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:400
CbmKresConversionCorrectedPhotons::VStsIndex_plus_Outside
std::vector< int > VStsIndex_plus_Outside
Definition: CbmKresConversionCorrectedPhotons.h:153
CbmKresConversionCorrectedPhotons::CDP_candidates_OA_Target
TH1D * CDP_candidates_OA_Target
Definition: CbmKresConversionCorrectedPhotons.h:260
CbmKresConversionCorrectedPhotons::CPh_fromConversion_Pt_reco_all_Both
TH1D * CPh_fromConversion_Pt_reco_all_Both
Definition: CbmKresConversionCorrectedPhotons.h:412
CbmKFVertex
Definition: CbmKFVertex.h:6
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_onetwo_Both
TH1D * CDP_OpeningAngleReco_onetwo_Both
Definition: CbmKresConversionCorrectedPhotons.h:438
CbmStsHit.h
Data class for a reconstructed hit in the STS.
CbmKresConversionCorrectedPhotons::CbmKresConversionCorrectedPhotons
CbmKresConversionCorrectedPhotons()
Definition: CbmKresConversionCorrectedPhotons.cxx:41
CbmKresConversionCorrectedPhotons::CDP_InvMass_Target
TH1D * CDP_InvMass_Target
Definition: CbmKresConversionCorrectedPhotons.h:259
CbmKresConversionCorrectedPhotons::CalculatePlaneAngle_last
double CalculatePlaneAngle_last(CbmStsTrack *Sts_1, CbmStsTrack *Sts_2)
Definition: CbmKresConversionCorrectedPhotons.cxx:1669
CbmKresConversionCorrectedPhotons::CDP_OpeningAngleReco_all_Target
TH1D * CDP_OpeningAngleReco_all_Target
Definition: CbmKresConversionCorrectedPhotons.h:284
CbmStsTrack::GetNofStsHits
Int_t GetNofStsHits() const
Definition: CbmStsTrack.h:90
CbmKresConversionCorrectedPhotons::CPh_fromPions_Pt_reco_onetwo_Outside
TH1D * CPh_fromPions_Pt_reco_onetwo_Outside
Definition: CbmKresConversionCorrectedPhotons.h:385
CbmKresConversionCorrectedPhotons::CDP_LK_EMT_NofRings_plus_Target
std::vector< int > CDP_LK_EMT_NofRings_plus_Target
Definition: CbmKresConversionCorrectedPhotons.h:180
CbmKresConversionCorrectedPhotons::CDP_Pt_reco_all_Outside
TH1D * CDP_Pt_reco_all_Outside
Definition: CbmKresConversionCorrectedPhotons.h:345