36#include "FairRootManager.h"
37#include "KFParticle/KFParticle.h"
345 FairRootManager* ioman = FairRootManager::Instance();
346 if (
nullptr == ioman) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"RootManager not instantised!"); }
348 fMcTracks = (TClonesArray*) ioman->GetObject(
"MCTrack");
349 if (
nullptr ==
fMcTracks) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No MCTrack array!"); }
353 if (
nullptr ==
fPrimVertex) { LOG(fatal) <<
"CbmKresConversionCorrectedPhotons::Init No PrimaryVertex array!"; }
355 fGlobalTracks = (TClonesArray*) ioman->GetObject(
"GlobalTrack");
356 if (
nullptr ==
fGlobalTracks) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No GlobalTrack array!"); }
358 fStsTracks = (TClonesArray*) ioman->GetObject(
"StsTrack");
359 if (
nullptr ==
fStsTracks) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No StsTrack array!"); }
362 if (
nullptr ==
fStsTrackMatches) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No StsTrackMatch array!"); }
365 if (
nullptr ==
fRichProjections) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No RichProjection array!"); }
367 fRichRings = (TClonesArray*) ioman->GetObject(
"RichRing");
368 if (
nullptr ==
fRichRings) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No RichRing array!"); }
371 if (
nullptr ==
fRichRingMatches) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No RichRingMatch array!"); }
373 fRichHits = (TClonesArray*) ioman->GetObject(
"RichHit");
374 if (
nullptr ==
fRichHits) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No RichHit array!"); }
376 fArrayMvdHit = (TClonesArray*) ioman->GetObject(
"MvdHit");
377 if (
nullptr ==
fArrayMvdHit) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No MvdHit array!"); }
379 fArrayStsHit = (TClonesArray*) ioman->GetObject(
"StsHit");
380 if (
nullptr ==
fArrayStsHit) { Fatal(
"CbmKresConversionCorrectedPhotons::Init",
"No StsHit array!"); }
398 cout <<
"\t *** CbmKresTrainAnnDirectPhotons ==> is "
408 cout <<
"\t *** CbmKresSelectAnnPhotons ==> is "
417 cout <<
"\t *** CbmKresGammaCorrection ==> is "
427 cout <<
"CbmKresConversionCorrectedPhotons, event No. " << fEventNumDP << endl;
431 Fatal(
"CbmKresConversionCorrectedPhotons::Exec",
"No PrimaryVertex array!");
460 for (
Int_t i = 0; i < ngTracks; i++) {
462 if (
nullptr == gTrack)
continue;
466 if (stsInd < 0)
continue;
468 if (stsTrack ==
nullptr)
continue;
470 if (stsMatch ==
nullptr)
continue;
473 if (stsMcTrackId < 0)
continue;
475 if (mcTrack ==
nullptr)
continue;
479 if (richInd < 0 && proj->GetX() > -115 && proj->GetX() < 115
480 && ((proj->GetY() < -120 && proj->GetY() > -200) || (proj->GetY() > 120 && proj->GetY() < 200)))
495 double charge = track_par->GetQp();
498 if (chi2 != chi2)
continue;
499 if (chi2 == 0)
continue;
501 if (chi2 > 3) {
SaveOutsideTracks(mcTrack, stsTrack, charge, stsInd, richInd, stsMcTrackId, Ring); }
502 if (chi2 > 3)
continue;
504 SaveTargetTracks(mcTrack, stsTrack, Momentum, charge, stsInd, richInd, stsMcTrackId, Ring);
520 int numformix = 1000;
521 if (fEventNumDP % numformix == 0) {
534 if (fEventNumDP % numformix == 0) {
573 int stsInd,
int richInd,
int stsMcTrackId,
CbmRichRing* RING)
575 int InRich =
FindInRich(richInd, stsMcTrackId);
593 double charge,
int stsInd,
int richInd,
int stsMcTrackId,
596 int InRich =
FindInRich(richInd, stsMcTrackId);
617 int EventNumMan,
double AngleCut,
double InvMassCut,
int RealPID, vector<CbmMCTrack*> MCtracks_minus,
618 vector<CbmMCTrack*> MCtracks_plus, vector<CbmStsTrack*> StsTrack_minus, vector<CbmStsTrack*> StsTrack_plus,
619 vector<TVector3> Momenta_minus, vector<TVector3> Momenta_plus, std::vector<int> Rings_minus,
620 std::vector<int> Rings_plus, std::vector<int> stsIndex_minus, std::vector<int> stsIndex_plus,
621 vector<CbmRichRing*> richRing_minus, vector<CbmRichRing*> richRing_plus)
623 for (
size_t i = 0; i < Momenta_minus.size(); i++) {
624 for (
size_t j = 0; j < Momenta_plus.size(); j++) {
629 TVector3 part1 = Momenta_minus[i];
630 TVector3 part2 = Momenta_plus[j];
633 int sts1_index = stsIndex_minus[i];
634 int sts2_index = stsIndex_plus[j];
640 richcheck_0 =
CheckIfElectron(richRing_minus[i], Momenta_minus[i].Mag());
641 richcheck_1 =
CheckIfElectron(richRing_plus[j], Momenta_plus[j].Mag());
645 richcheck_0 = Rings_minus[i];
646 richcheck_1 = Rings_plus[j];
648 int richcheck = richcheck_0 + richcheck_1;
655 if (params.
fPt != params.
fPt)
continue;
657 if (params.
fPt >= 3)
continue;
659 double rap_step = 0.4;
660 double pt_step = 0.1;
661 int rap_coef = params.
fRapidity / rap_step;
662 int pt_coef = params.
fPt / pt_step;
694 fTrainPhotons->Exec(EventNumMan, IdForANN, InvmassReco, OpeningAngle, PlaneAngle_last,
fKFVertex.GetRefZ(),
699 double AnnValue = 999;
715 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
716 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
721 int fromFireball = 0;
725 int fromCombinatorial = 0;
726 int fromConversion = 0;
727 int twoFromTarget = 0;
731 if (mcTrackmama->
GetMotherId() == -1) { fromFireball = 1; }
734 if (mcTrackGrmama->
GetPdgCode() == 111) fromPions = 1;
735 if (mcTrackGrmama->
GetPdgCode() == 221) fromEta = 1;
736 if (mcTrackGrmama->
GetPdgCode() == 3212) fromXi = 1;
741 if (mcTrackmama->
GetPdgCode() == 111) fromDalitz = 1;
742 if (mcTrackmama->
GetPdgCode() != 111) fromOther = 1;
749 fromCombinatorial = 1;
771 std::vector<TVector3> minusTrack =
SaveAllHits(sts1);
772 std::vector<TVector3> plusTrack =
SaveAllHits(sts2);
797 if (richcheck == 0 || richcheck == 1 || richcheck == 2) {
798 double weight_all = 0;
799 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
813 if (fromFireball == 1) {
821 if (fromPions == 1) {
829 if (fromDalitz == 1) {
837 if (fromOther == 1) {
841 if (fromCombinatorial == 1) {
845 if (fromConversion == 1) {
849 if (twoFromTarget == 1) {
856 if (richcheck == 2) {
857 double weight_two = 0;
858 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
872 if (fromFireball == 1) {
880 if (fromPions == 1) {
888 if (fromDalitz == 1) {
896 if (fromOther == 1) {
900 if (fromCombinatorial == 1) {
904 if (fromConversion == 1) {
908 if (twoFromTarget == 1) {
915 if (richcheck == 1 || richcheck == 2) {
916 double weight_onetwo = 0;
933 if (fromFireball == 1) {
941 if (fromPions == 1) {
949 if (fromDalitz == 1) {
957 if (fromOther == 1) {
961 if (fromCombinatorial == 1) {
965 if (fromConversion == 1) {
969 if (twoFromTarget == 1) {
980 int EventNumMan,
double AngleCut,
double InvMassCut,
int RealPID, vector<CbmMCTrack*> MCtracks_minus_Outside,
981 vector<CbmMCTrack*> MCtracks_plus_Outside, vector<CbmStsTrack*> StsTrack_minus_Outside,
982 vector<CbmStsTrack*> StsTrack_plus_Outside, std::vector<int> Rings_minus_Outside, std::vector<int> Rings_plus_Outside,
983 std::vector<int> stsIndex_minus_Outside, std::vector<int> ,
984 vector<CbmRichRing*> richRing_minus_Outside, vector<CbmRichRing*> richRing_plus_Outside)
986 for (
size_t i = 0; i < StsTrack_minus_Outside.size(); i++) {
987 for (
size_t j = 0; j < StsTrack_plus_Outside.size(); j++) {
991 CbmMCTrack* part1MC = MCtracks_minus_Outside[i];
992 CbmMCTrack* part2MC = MCtracks_plus_Outside[j];
993 int sts1_index = stsIndex_minus_Outside[i];
1000 const KFParticle* daughters[2] = {&electron, &positron};
1001 KFParticle intersection;
1002 intersection.Construct(daughters, 2);
1004 if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
continue;
1016 int richcheck_0 = 0;
1017 int richcheck_1 = 0;
1020 richcheck_0 =
CheckIfElectron(richRing_minus_Outside[i], part1.Mag());
1022 richcheck = richcheck_0 + richcheck_1;
1026 richcheck = Rings_minus_Outside[i] + Rings_plus_Outside[j];
1035 if (params.
fPt != params.
fPt)
continue;
1037 if (params.
fPt >= 3)
continue;
1039 double rap_step = 0.4;
1040 double pt_step = 0.1;
1041 int rap_coef = params.
fRapidity / rap_step;
1042 int pt_coef = params.
fPt / pt_step;
1074 fTrainPhotons->Exec(EventNumMan, IdForANN, InvmassReco, OpeningAngle, PlaneAngle_last, intersection.GetZ(),
1079 double AnnValue = 999;
1082 fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, intersection.GetZ(), part1, part2);
1093 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
1094 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
1100 int fromFireball = 0;
1104 int fromCombinatorial = 0;
1105 int fromConversion = 0;
1106 int twoFromTarget = 0;
1110 if (mcTrackmama->
GetMotherId() == -1) { fromFireball = 1; }
1113 if (mcTrackGrmama->
GetPdgCode() == 111) fromPions = 1;
1114 if (mcTrackGrmama->
GetPdgCode() == 221) fromEta = 1;
1115 if (mcTrackGrmama->
GetPdgCode() == 3212) fromXi = 1;
1120 if (mcTrackmama->
GetPdgCode() == 111) fromDalitz = 1;
1121 if (mcTrackmama->
GetPdgCode() != 111) fromOther = 1;
1128 fromCombinatorial = 1;
1151 std::vector<TVector3> minusTrack =
SaveAllHits(part1STS);
1152 std::vector<TVector3> plusTrack =
SaveAllHits(part2STS);
1178 if (richcheck == 0 || richcheck == 1 || richcheck == 2) {
1179 double weight_all = 0;
1182 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
1196 if (fromFireball == 1) {
1204 if (fromPions == 1) {
1212 if (fromDalitz == 1) {
1220 if (fromOther == 1) {
1224 if (fromCombinatorial == 1) {
1228 if (fromConversion == 1) {
1232 if (twoFromTarget == 1) {
1239 if (richcheck == 2) {
1240 double weight_two = 0;
1241 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
1255 if (fromFireball == 1) {
1263 if (fromPions == 1) {
1271 if (fromDalitz == 1) {
1279 if (fromOther == 1) {
1283 if (fromCombinatorial == 1) {
1287 if (fromConversion == 1) {
1291 if (twoFromTarget == 1) {
1298 if (richcheck == 1 || richcheck == 2) {
1299 double weight_onetwo = 0;
1314 if (fromFireball == 1) {
1322 if (fromPions == 1) {
1330 if (fromDalitz == 1) {
1338 if (fromOther == 1) {
1342 if (fromCombinatorial == 1) {
1346 if (fromConversion == 1) {
1350 if (twoFromTarget == 1) {
1362 int RingsInRich = 0;
1365 if (richMatch !=
nullptr && richMatch->
GetNofLinks() > 0) {
1367 if (richMcTrackId > 0) {
1368 if (stsMcTrackId == richMcTrackId) {
1370 if (mcTrack2 !=
nullptr) {
1372 if (TMath::Abs(pdgRICH) == 11) RingsInRich++;
1386 if (
nullptr != ring) {
1389 for (
int i = 0; i < nofHits; i++) {
1390 int hitInd = ring->
GetHit(i);
1392 if (
nullptr == hit)
continue;
1398 && momentum > 0.2 && momentum < 4.)
1408 std::vector<TVector3> AllHitsOfTrack;
1409 AllHitsOfTrack.clear();
1414 for (
int i = 0; i < hitsMVD; i++) {
1419 AllHitsOfTrack.push_back(position);
1421 for (
int i = 0; i < hitsSTS; i++) {
1426 AllHitsOfTrack.push_back(position);
1429 return AllHitsOfTrack;
1433 std::vector<TVector3> track_2)
1435 double FinalAngle = 400;
1437 int hits_1 = track_1.size();
1438 int hits_2 = track_2.size();
1447 TVector3 last1 = track_1[hits_1 - 1];
1448 TVector3 last2 = track_2[hits_2 - 1];
1451 if (TMath::Abs(last1.Z() - last2.Z()) > 2
1452 && last1.Z() > last2.Z()) {
1453 for (
int i = hits_1 - 2; i > -1; i--) {
1454 if (TMath::Abs(last1.Z() - last2.Z()) < 2)
continue;
1462 if (TMath::Abs(last1.Z() - last2.Z()) > 2
1463 && last1.Z() < last2.Z()) {
1464 for (
int i = hits_2 - 2; i > -1; i--) {
1465 if (TMath::Abs(last1.Z() - last2.Z()) < 2)
continue;
1474 if (TMath::Abs(Zpart1 - Zpart2) < 2 && Zpart1 != 0 && Zpart2 != 0) {
1475 FinalAngle = TMath::ATan2(Ypart1 - Ypart2, Xpart1 - Xpart2) * (180 / TMath::Pi());
1478 return TMath::Abs(TMath::Abs(FinalAngle) - 180);
1484 double FinalAngle = 400;
1499 Xpart1 = stsHit1->
GetX();
1500 Ypart1 = stsHit1->
GetY();
1501 Zpart1 = stsHit1->
GetZ();
1506 Xpart1 = mvdHit1->
GetX();
1507 Ypart1 = mvdHit1->
GetY();
1508 Zpart1 = mvdHit1->
GetZ();
1514 Xpart2 = stsHit2->
GetX();
1515 Ypart2 = stsHit2->
GetY();
1516 Zpart2 = stsHit2->
GetZ();
1521 Xpart2 = mvdHit2->
GetX();
1522 Ypart2 = mvdHit2->
GetY();
1523 Zpart2 = mvdHit2->
GetZ();
1527 if (TMath::Abs(Zpart1 - Zpart2) > 2
1528 && Zpart1 > Zpart2) {
1529 for (
int i = hits1sts - 2; i > -1; i--) {
1530 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1533 Xpart1 = stsHit->
GetX();
1534 Ypart1 = stsHit->
GetY();
1535 Zpart1 = stsHit->
GetZ();
1537 if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 > Zpart2) {
1538 for (
int i = hits1mvd - 2; i > -1; i--) {
1539 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1542 Xpart1 = mvdHit->
GetX();
1543 Ypart1 = mvdHit->
GetY();
1544 Zpart1 = mvdHit->
GetZ();
1549 if (TMath::Abs(Zpart1 - Zpart2) > 2
1550 && Zpart1 < Zpart2) {
1551 for (
int i = hits2sts - 2; i > -1; i--) {
1552 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1555 Xpart2 = stsHit->
GetX();
1556 Ypart2 = stsHit->
GetY();
1557 Zpart2 = stsHit->
GetZ();
1559 if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 < Zpart2) {
1560 for (
int i = hits2mvd - 2; i > -1; i--) {
1561 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1564 Xpart2 = mvdHit->
GetX();
1565 Ypart2 = mvdHit->
GetY();
1566 Zpart2 = mvdHit->
GetZ();
1572 if (TMath::Abs(Zpart1 - Zpart2) < 2 && Zpart1 != 0 && Zpart2 != 0) {
1573 FinalAngle = TMath::ATan2(Ypart1 - Ypart2, Xpart1 - Xpart2) * (180 / TMath::Pi());
1576 return TMath::Abs(TMath::Abs(FinalAngle) - 180);
1581 double FinalAngle = 400;
1596 Xpart1 = mvdHit1->
GetX();
1597 Ypart1 = mvdHit1->
GetY();
1598 Zpart1 = mvdHit1->
GetZ();
1603 Xpart1 = stsHit1->
GetX();
1604 Ypart1 = stsHit1->
GetY();
1605 Zpart1 = stsHit1->
GetZ();
1611 Xpart2 = mvdHit2->
GetX();
1612 Ypart2 = mvdHit2->
GetY();
1613 Zpart2 = mvdHit2->
GetZ();
1618 Xpart2 = stsHit2->
GetX();
1619 Ypart2 = stsHit2->
GetY();
1620 Zpart2 = stsHit2->
GetZ();
1624 if (TMath::Abs(Zpart1 - Zpart2) > 2
1625 && Zpart1 < Zpart2) {
1626 for (
int i = 1; i < hits1mvd; i++) {
1627 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1630 Xpart1 = mvdHit->
GetX();
1631 Ypart1 = mvdHit->
GetY();
1632 Zpart1 = mvdHit->
GetZ();
1634 if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 < Zpart2) {
1635 for (
int i = 0; i < hits1sts; i++) {
1636 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1639 Xpart1 = stsHit->
GetX();
1640 Ypart1 = stsHit->
GetY();
1641 Zpart1 = stsHit->
GetZ();
1646 if (TMath::Abs(Zpart1 - Zpart2) > 2
1647 && Zpart1 > Zpart2) {
1648 for (
int i = 1; i < hits2mvd; i++) {
1649 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1652 Xpart2 = mvdHit->
GetX();
1653 Ypart2 = mvdHit->
GetY();
1654 Zpart2 = mvdHit->
GetZ();
1656 if (TMath::Abs(Zpart1 - Zpart2) > 2 && Zpart1 > Zpart2) {
1657 for (
int i = 0; i < hits2sts; i++) {
1658 if (TMath::Abs(Zpart1 - Zpart2) < 2)
continue;
1661 Xpart2 = stsHit->
GetX();
1662 Ypart2 = stsHit->
GetY();
1663 Zpart2 = stsHit->
GetZ();
1669 if (TMath::Abs(Zpart1 - Zpart2) < 2 && Zpart1 != 0 && Zpart2 != 0) {
1670 FinalAngle = TMath::ATan2(Ypart1 - Ypart2, Xpart1 - Xpart2) * (180 / TMath::Pi());
1673 return TMath::Abs(TMath::Abs(FinalAngle) - 180);
1680 for (
int a = 0; a < nof_minus - 1; a++) {
1681 for (
int b = a + 1; b < nof_minus; b++) {
1696 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
1697 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
1703 if (params.
fPt != params.
fPt)
continue;
1705 if (params.
fPt >= 3)
continue;
1707 double rap_step = 0.4;
1708 double pt_step = 0.1;
1709 int rap_coef = params.
fRapidity / rap_step;
1710 int pt_coef = params.
fPt / pt_step;
1711 double weight_all = 0;
1712 double weight_two = 0;
1713 double weight_onetwo = 0;
1714 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
1715 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
1735 for (
int a = 0; a < nof_plus - 1; a++) {
1736 for (
int b = a + 1; b < nof_plus; b++) {
1751 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
1752 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
1758 if (params.
fPt != params.
fPt)
continue;
1760 if (params.
fPt >= 3)
continue;
1762 double rap_step = 0.4;
1763 double pt_step = 0.1;
1764 int rap_coef = params.
fRapidity / rap_step;
1765 int pt_coef = params.
fPt / pt_step;
1766 double weight_all = 0;
1767 double weight_two = 0;
1768 double weight_onetwo = 0;
1769 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
1770 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
1793 for (
int a = 0; a < nof_minus - 1; a++) {
1794 for (
int b = a + 1; b < nof_minus; b++) {
1799 KFParticle electron;
1801 KFParticle positron;
1803 const KFParticle* daughters[2] = {&electron, &positron};
1804 KFParticle intersection;
1805 intersection.Construct(daughters, 2);
1807 if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
continue;
1820 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
1821 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
1827 if (params.
fPt != params.
fPt)
continue;
1829 if (params.
fPt >= 3)
continue;
1831 double rap_step = 0.4;
1832 double pt_step = 0.1;
1833 int rap_coef = params.
fRapidity / rap_step;
1834 int pt_coef = params.
fPt / pt_step;
1835 double weight_all = 0;
1836 double weight_two = 0;
1837 double weight_onetwo = 0;
1838 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
1839 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
1859 for (
int a = 0; a < nof_plus - 1; a++) {
1860 for (
int b = a + 1; b < nof_plus; b++) {
1865 KFParticle electron;
1867 KFParticle positron;
1869 const KFParticle* daughters[2] = {&electron, &positron};
1870 KFParticle intersection;
1871 intersection.Construct(daughters, 2);
1873 if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
continue;
1886 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
1887 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
1893 if (params.
fPt != params.
fPt)
continue;
1895 if (params.
fPt >= 3)
continue;
1897 double rap_step = 0.4;
1898 double pt_step = 0.1;
1899 int rap_coef = params.
fRapidity / rap_step;
1900 int pt_coef = params.
fPt / pt_step;
1901 double weight_all = 0;
1902 double weight_two = 0;
1903 double weight_onetwo = 0;
1904 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
1905 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
1929 cout <<
"Mixing for corrected direct photons in Target - nof entries " << nof_Target << endl;
1948 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
1949 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
1955 if (params.
fPt != params.
fPt)
continue;
1957 if (params.
fPt >= 3)
continue;
1959 double rap_step = 0.4;
1960 double pt_step = 0.1;
1961 int rap_coef = params.
fRapidity / rap_step;
1962 int pt_coef = params.
fPt / pt_step;
1963 double weight_all = 0;
1964 double weight_two = 0;
1965 double weight_onetwo = 0;
1966 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
1967 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
1978 if (rings_amount == 2) {
1982 if ((rings_amount == 1 || rings_amount == 2)) {
1995 cout <<
"Mixing for corrected direct photons in Outside - nof entries " << nof_Outside << endl;
2005 const KFParticle* daughters[2] = {&electron, &positron};
2006 KFParticle intersection;
2007 intersection.Construct(daughters, 2);
2009 if (intersection.GetZ() > 75 || intersection.GetZ() < -5)
continue;
2011 TVector3 e1(electron.KFParticleBase::Px(), electron.KFParticleBase::Py(), electron.KFParticleBase::Pz());
2012 TVector3 e2(positron.KFParticleBase::Px(), positron.KFParticleBase::Py(), positron.KFParticleBase::Pz());
2022 fAnnPhotonsSelection->DoSelect(InvmassReco, OpeningAngle, PlaneAngle_last, intersection.GetZ(), e1, e2);
2025 if (TMath::Abs(OpeningAngle) > AngleCut)
continue;
2026 if (TMath::Abs(InvmassReco) > InvMassCut)
continue;
2032 if (params.
fPt != params.
fPt)
continue;
2034 if (params.
fPt >= 3)
continue;
2036 double rap_step = 0.4;
2037 double pt_step = 0.1;
2038 int rap_coef = params.
fRapidity / rap_step;
2039 int pt_coef = params.
fPt / pt_step;
2040 double weight_all = 0;
2041 double weight_two = 0;
2042 double weight_onetwo = 0;
2043 if (
corr_all[rap_coef][pt_coef] != 0) weight_all = 1 /
corr_all[rap_coef][pt_coef];
2044 if (
corr_two[rap_coef][pt_coef] != 0) weight_two = 1 /
corr_two[rap_coef][pt_coef];
2055 if (rings_amount == 2) {
2059 if ((rings_amount == 1 || rings_amount == 2)) {
2070 gDirectory->mkdir(
"corrected photons");
2071 gDirectory->cd(
"corrected photons");
2075 gDirectory->mkdir(
"Target");
2076 gDirectory->cd(
"Target");
2077 gDirectory->mkdir(
"CheckCuts_Target");
2078 gDirectory->cd(
"CheckCuts_Target");
2082 gDirectory->cd(
"..");
2083 gDirectory->mkdir(
"all");
2084 gDirectory->cd(
"all");
2088 gDirectory->cd(
"..");
2089 gDirectory->mkdir(
"two");
2090 gDirectory->cd(
"two");
2094 gDirectory->cd(
"..");
2095 gDirectory->mkdir(
"onetwo");
2096 gDirectory->cd(
"onetwo");
2100 gDirectory->cd(
"..");
2104 gDirectory->cd(
"..");
2107 gDirectory->mkdir(
"Outside");
2108 gDirectory->cd(
"Outside");
2109 gDirectory->mkdir(
"CheckCuts_Outside");
2110 gDirectory->cd(
"CheckCuts_Outside");
2114 gDirectory->cd(
"..");
2115 gDirectory->mkdir(
"all");
2116 gDirectory->cd(
"all");
2120 gDirectory->cd(
"..");
2121 gDirectory->mkdir(
"two");
2122 gDirectory->cd(
"two");
2126 gDirectory->cd(
"..");
2127 gDirectory->mkdir(
"onetwo");
2128 gDirectory->cd(
"onetwo");
2132 gDirectory->cd(
"..");
2136 gDirectory->cd(
"..");
2139 gDirectory->mkdir(
"Both");
2140 gDirectory->cd(
"Both");
2141 gDirectory->mkdir(
"CheckCuts_Both");
2142 gDirectory->cd(
"CheckCuts_Both");
2146 gDirectory->cd(
"..");
2147 gDirectory->mkdir(
"all");
2148 gDirectory->cd(
"all");
2152 gDirectory->cd(
"..");
2153 gDirectory->mkdir(
"two");
2154 gDirectory->cd(
"two");
2158 gDirectory->cd(
"..");
2159 gDirectory->mkdir(
"onetwo");
2160 gDirectory->cd(
"onetwo");
2164 gDirectory->cd(
"..");
2168 gDirectory->cd(
"..");
2171 gDirectory->cd(
"..");
2178 CMother_PDG_Target =
new TH1D(
"CMother_PDG_Target",
"CMother_PDG_Target; Id;#", 1000, -10, 490);
2180 CGrandMother_PDG_Target =
new TH1D(
"CGrandMother_PDG_Target",
"CGrandMother_PDG_Target; Id;#", 1000, -10, 490);
2184 CMother_PDG_Outside =
new TH1D(
"CMother_PDG_Outside",
"CMother_PDG_Outside; Id;#", 1000, -10, 490);
2191 new TH2D(
"CPdg_vs_Distance_for_dp",
"CPdg_vs_Distance_for_dp; pdg; distance in cm", 2500, 0, 2499, 500, 0, 50);
2194 "CDistance between projected track and center of the ring (for e+ "
2195 "and e-); P in GeV/c^{2}; distance in cm",
2196 300, 0, 3, 300, 0, 15);
2198 CDP_AnnTruePairs =
new TH1D(
"CDP_AnnTruePairs",
"CDP_AnnTruePairs; Ann value ;#", 100, -1.2, 1.2);
2200 CDP_AnnFalsePairs =
new TH1D(
"CDP_AnnFalsePairs",
"CDP_AnnFalsePairs; Ann value ;#", 100, -1.2, 1.2);
2203 new TH1D(
"CDP_AnnTruePairs_AfterCuts",
"CDP_AnnTruePairs_AfterCuts; Ann value ;#", 100, -1.2, 1.2);
2206 new TH1D(
"CDP_AnnFalsePairs_AfterCuts",
"CDP_AnnFalsePairs_AfterCuts; Ann value ;#", 100, -1.2, 1.2);
2213 "CDP_candidates_InvMass_vs_OA_Both; invariant mass in GeV/c^{2}; "
2214 "opening angle in degree",
2215 500, 0, 0.5, 500, 0, 50);
2218 "CDP_InvMass_vs_OA_Both; invariant mass in "
2219 "GeV/c^{2}; opening angle in degree",
2220 500, 0, 0.5, 500, 0, 50);
2223 "CDP_candidates_InvMass_Both; invariant mass in GeV/c^{2};#", 510, -0.01, 0.5);
2225 CDP_InvMass_Both =
new TH1D(
"CDP_InvMass_Both",
"CDP_InvMass_Both; invariant mass in GeV/c^{2};#", 510, -0.01, 0.5);
2228 new TH1D(
"CDP_candidates_OA_Both",
"CDP_candidates_OA_Both; opening angle in degree;#", 300, -0.1, 29.9);
2230 CDP_OA_Both =
new TH1D(
"CDP_OA_Both",
"CDP_OA_Both; opening angle in degree;#", 300, -0.1, 29.9);
2233 new TH1D(
"CDP_candidates_PlaneAngles_last_Both",
"CDP_candidates_PlaneAngles_last_Both; #theta angle in degree;#",
2237 new TH1D(
"CDP_PlaneAngles_last_Both",
"CDP_PlaneAngles_last_Both; #theta angle in degree;#", 720, -1., 179.);
2240 new TH1D(
"CDP_candidates_PlaneAngles_first_Both",
"CDP_candidates_PlaneAngles_first_Both; #theta angle in degree;#",
2244 new TH1D(
"CDP_PlaneAngles_first_Both",
"CDP_PlaneAngles_first_Both; #theta angle in degree;#", 720, -1., 179.);
2249 "CDP_candidates_InvMass_vs_OA_Target; invariant mass in "
2250 "GeV/c^{2}; opening angle in degree",
2251 500, 0, 0.5, 500, 0, 50);
2254 "CDP_InvMass_vs_OA_Target; invariant mass in GeV/c^{2}; opening "
2256 500, 0, 0.5, 500, 0, 50);
2259 "CDP_candidates_InvMass_Target",
"CDP_candidates_InvMass_Target; invariant mass in GeV/c^{2};#", 510, -0.01, 0.5);
2262 new TH1D(
"CDP_InvMass_Target",
"CDP_InvMass_Target; invariant mass in GeV/c^{2};#", 510, -0.01, 0.5);
2265 new TH1D(
"CDP_candidates_OA_Target",
"CDP_candidates_OA_Target; opening angle in degree;#", 300, -0.1, 29.9);
2267 CDP_OA_Target =
new TH1D(
"CDP_OA_Target",
"CDP_OA_Target; opening angle in degree;#", 300, -0.1, 29.9);
2270 new TH1D(
"CDP_candidates_PlaneAngles_last_Target",
2271 "CDP_candidates_PlaneAngles_last_Target; #theta angle in degree;#", 720, -1., 179.);
2274 new TH1D(
"CDP_PlaneAngles_last_Target",
"CDP_PlaneAngles_last_Target; #theta angle in degree;#", 720, -1., 179.);
2277 new TH1D(
"CDP_candidates_PlaneAngles_first_Target",
2278 "CDP_candidates_PlaneAngles_first_Target; #theta angle in degree;#", 720, -1., 179.);
2281 new TH1D(
"CDP_PlaneAngles_first_Target",
"CDP_PlaneAngles_first_Target; #theta angle in degree;#", 720, -1., 179.);
2286 "CDP_candidates_InvMass_vs_OA_Outside; invariant mass in "
2287 "GeV/c^{2}; opening angle in degree",
2288 500, 0, 0.5, 500, 0, 50);
2291 "CDP_InvMass_vs_OA_Outside; invariant mass in GeV/c^{2}; opening "
2293 500, 0, 0.5, 500, 0, 50);
2296 "CDP_candidates_InvMass_Outside",
"CDP_candidates_InvMass_Outside; invariant mass in GeV/c^{2};#", 510, -0.01, 0.5);
2299 new TH1D(
"CDP_InvMass_Outside",
"CDP_InvMass_Outside; invariant mass in GeV/c^{2};#", 510, -0.01, 0.5);
2302 new TH1D(
"CDP_candidates_OA_Outside",
"CDP_candidates_OA_Outside; opening angle in degree;#", 300, -0.1, 29.9);
2304 CDP_OA_Outside =
new TH1D(
"CDP_OA_Outside",
"CDP_OA_Outside; opening angle in degree;#", 300, -0.1, 29.9);
2307 new TH1D(
"CDP_candidates_PlaneAngles_last_Outside",
2308 "CDP_candidates_PlaneAngles_last_Outside; #theta angle in degree;#", 720, -1., 179.);
2311 new TH1D(
"CDP_PlaneAngles_last_Outside",
"CDP_PlaneAngles_last_Outside; #theta angle in degree;#", 720, -1., 179.);
2314 new TH1D(
"CDP_candidates_PlaneAngles_first_Outside",
2315 "CDP_candidates_PlaneAngles_first_Outside; #theta angle in degree;#", 720, -1., 179.);
2318 "CDP_PlaneAngles_first_Outside; #theta angle in degree;#", 720, -1., 179.);
2324 "CDP_InvMassReco_all_Target; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2327 new TH1D(
"CDP_OpeningAngleReco_all_Target",
"CDP_OpeningAngleReco_all_Target; angle [deg];#", 45, -0.5, 4.);
2329 CDP_Pdg_all_Target =
new TH1D(
"CDP_Pdg_all_Target",
"CDP_Pdg_all_Target; Id;#", 1000, -10, 490);
2331 CDP_P_reco_all_Target =
new TH1D(
"CDP_P_reco_all_Target",
"CDP_P_reco_all_Target; P in GeV/c^{2};#", 200, 0, 10);
2333 CDP_Pt_reco_all_Target =
new TH1D(
"CDP_Pt_reco_all_Target",
"CDP_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2336 new TH1D(
"CPh_fromTarget_Pt_reco_all_Target",
"CPh_fromTarget_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2339 new TH1D(
"CPh_fromPions_Pt_reco_all_Target",
"CPh_fromPions_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2342 new TH1D(
"CPh_fromEtas_Pt_reco_all_Target",
"CPh_fromEtas_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2345 new TH1D(
"CPh_fromDalitz_Pt_reco_all_Target",
"CPh_fromDalitz_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2348 new TH1D(
"CPh_fromXi_Pt_reco_all_Target",
"CPh_fromXi_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2351 new TH1D(
"CPh_fromOther_Pt_reco_all_Target",
"CPh_fromOther_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2354 "CPh_twoFromTarget_Pt_reco_all_Target",
"CPh_twoFromTarget_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2357 new TH1D(
"CPh_fromCombinatorial_Pt_reco_all_Target",
2358 "CPh_fromCombinatorial_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2361 "CPh_fromConversion_Pt_reco_all_Target",
"CPh_fromConversion_Pt_reco_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2364 new TH2D(
"CPh_pt_vs_rap_est_all_Target",
"CPh_pt_vs_rap_est_all_Target; rapidity y; p_{t} in GeV/c ", 10, 0., 4.,
2368 new TH2D(
"CPh_pt_vs_rap_est_corr_all_Target",
"CPh_pt_vs_rap_est_corr_all_Target; rapidity y; p_{t} in GeV/c ", 10,
2369 0., 4., 40, 0., 4.);
2374 "CDP_InvMassReco_two_Target; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2377 new TH1D(
"CDP_OpeningAngleReco_two_Target",
"CDP_OpeningAngleReco_two_Target; angle [deg];#", 45, -0.5, 4.);
2379 CDP_Pdg_two_Target =
new TH1D(
"CDP_Pdg_two_Target",
"CDP_Pdg_two_Target; Id;#", 1000, -10, 490);
2381 CDP_P_reco_two_Target =
new TH1D(
"CDP_P_reco_two_Target",
"CDP_P_reco_two_Target; P in GeV/c^{2};#", 200, 0, 10);
2383 CDP_Pt_reco_two_Target =
new TH1D(
"CDP_Pt_reco_two_Target",
"CDP_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2386 new TH1D(
"CPh_fromTarget_Pt_reco_two_Target",
"CPh_fromTarget_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2389 new TH1D(
"CPh_fromPions_Pt_reco_two_Target",
"CPh_fromPions_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2392 new TH1D(
"CPh_fromEtas_Pt_reco_two_Target",
"CPh_fromEtas_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2395 new TH1D(
"CPh_fromDalitz_Pt_reco_two_Target",
"CPh_fromDalitz_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2398 new TH1D(
"CPh_fromXi_Pt_reco_two_Target",
"CPh_fromXi_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2401 new TH1D(
"CPh_fromOther_Pt_reco_two_Target",
"CPh_fromOther_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2404 "CPh_twoFromTarget_Pt_reco_two_Target",
"CPh_twoFromTarget_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2407 new TH1D(
"CPh_fromCombinatorial_Pt_reco_two_Target",
2408 "CPh_fromCombinatorial_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2411 "CPh_fromConversion_Pt_reco_two_Target",
"CPh_fromConversion_Pt_reco_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2414 new TH2D(
"CPh_pt_vs_rap_est_two_Target",
"CPh_pt_vs_rap_est_two_Target; rapidity y; p_{t} in GeV/c ", 10, 0., 4.,
2418 new TH2D(
"CPh_pt_vs_rap_est_corr_two_Target",
"CPh_pt_vs_rap_est_corr_two_Target; rapidity y; p_{t} in GeV/c ", 10,
2419 0., 4., 40, 0., 4.);
2424 "CDP_InvMassReco_onetwo_Target",
"CDP_InvMassReco_onetwo_Target; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2427 new TH1D(
"CDP_OpeningAngleReco_onetwo_Target",
"CDP_OpeningAngleReco_onetwo_Target; angle [deg];#", 45, -0.5, 4.);
2429 CDP_Pdg_onetwo_Target =
new TH1D(
"CDP_Pdg_onetwo_Target",
"CDP_Pdg_onetwo_Target; Id;#", 1000, -10, 490);
2432 new TH1D(
"CDP_P_reco_onetwo_Target",
"CDP_P_reco_onetwo_Target; P in GeV/c^{2};#", 200, 0, 10);
2435 new TH1D(
"CDP_Pt_reco_onetwo_Target",
"CDP_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2438 "CPh_fromTarget_Pt_reco_onetwo_Target",
"CPh_fromTarget_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2441 "CPh_fromPions_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2444 "CPh_fromEtas_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2447 "CPh_fromDalitz_Pt_reco_onetwo_Target",
"CPh_fromDalitz_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2450 new TH1D(
"CPh_fromXi_Pt_reco_onetwo_Target",
"CPh_fromXi_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2453 "CPh_fromOther_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2456 new TH1D(
"CPh_twoFromTarget_Pt_reco_onetwo_Target",
"CPh_twoFromTarget_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#",
2460 new TH1D(
"CPh_fromCombinatorial_Pt_reco_onetwo_Target",
2461 "CPh_fromCombinatorial_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2464 new TH1D(
"CPh_fromConversion_Pt_reco_onetwo_Target",
2465 "CPh_fromConversion_Pt_reco_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2468 new TH2D(
"CPh_pt_vs_rap_est_onetwo_Target",
"CPh_pt_vs_rap_est_onetwo_Target; rapidity y; p_{t} in GeV/c ", 10, 0.,
2472 new TH2D(
"CPh_pt_vs_rap_est_corr_onetwo_Target",
2473 "CPh_pt_vs_rap_est_corr_onetwo_Target; rapidity y; p_{t} in GeV/c ", 10, 0., 4., 40, 0., 4.);
2479 "CDP_InvMassReco_all_Outside",
"CDP_InvMassReco_all_Outside; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2482 new TH1D(
"CDP_OpeningAngleReco_all_Outside",
"CDP_OpeningAngleReco_all_Outside; angle [deg];#", 45, -0.5, 4.);
2484 CDP_Pdg_all_Outside =
new TH1D(
"CDP_Pdg_all_Outside",
"CDP_Pdg_all_Outside; Id;#", 1000, -10, 490);
2486 CDP_P_reco_all_Outside =
new TH1D(
"CDP_P_reco_all_Outside",
"CDP_P_reco_all_Outside; P in GeV/c^{2};#", 200, 0, 10);
2489 new TH1D(
"CDP_Pt_reco_all_Outside",
"CDP_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2492 "CPh_fromTarget_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2495 new TH1D(
"CPh_fromPions_Pt_reco_all_Outside",
"CPh_fromPions_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2498 new TH1D(
"CPh_fromEtas_Pt_reco_all_Outside",
"CPh_fromEtas_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2501 "CPh_fromDalitz_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2504 new TH1D(
"CPh_fromXi_Pt_reco_all_Outside",
"CPh_fromXi_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2507 new TH1D(
"CPh_fromOther_Pt_reco_all_Outside",
"CPh_fromOther_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2510 "CPh_twoFromTarget_Pt_reco_all_Outside",
"CPh_twoFromTarget_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2513 new TH1D(
"CPh_fromCombinatorial_Pt_reco_all_Outside",
2514 "CPh_fromCombinatorial_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2517 "CPh_fromConversion_Pt_reco_all_Outside",
"CPh_fromConversion_Pt_reco_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2520 new TH2D(
"CPh_pt_vs_rap_est_all_Outside",
"CPh_pt_vs_rap_est_all_Outside; rapidity y; p_{t} in GeV/c ", 10, 0., 4.,
2524 new TH2D(
"CPh_pt_vs_rap_est_corr_all_Outside",
"CPh_pt_vs_rap_est_corr_all_Outside; rapidity y; p_{t} in GeV/c ",
2525 10, 0., 4., 40, 0., 4.);
2530 "CDP_InvMassReco_two_Outside",
"CDP_InvMassReco_two_Outside; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2533 new TH1D(
"CDP_OpeningAngleReco_two_Outside",
"CDP_OpeningAngleReco_two_Outside; angle [deg];#", 45, -0.5, 4.);
2535 CDP_Pdg_two_Outside =
new TH1D(
"CDP_Pdg_two_Outside",
"CDP_Pdg_two_Outside; Id;#", 1000, -10, 490);
2537 CDP_P_reco_two_Outside =
new TH1D(
"CDP_P_reco_two_Outside",
"CDP_P_reco_two_Outside; P in GeV/c^{2};#", 200, 0, 10);
2540 new TH1D(
"CDP_Pt_reco_two_Outside",
"CDP_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2543 "CPh_fromTarget_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2546 new TH1D(
"CPh_fromPions_Pt_reco_two_Outside",
"CPh_fromPions_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2549 new TH1D(
"CPh_fromEtas_Pt_reco_two_Outside",
"CPh_fromEtas_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2552 "CPh_fromDalitz_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2555 new TH1D(
"CPh_fromXi_Pt_reco_two_Outside",
"CPh_fromXi_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2558 new TH1D(
"CPh_fromOther_Pt_reco_two_Outside",
"CPh_fromOther_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2561 "CPh_twoFromTarget_Pt_reco_two_Outside",
"CPh_twoFromTarget_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2564 new TH1D(
"CPh_fromCombinatorial_Pt_reco_two_Outside",
2565 "CPh_fromCombinatorial_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2568 "CPh_fromConversion_Pt_reco_two_Outside",
"CPh_fromConversion_Pt_reco_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2571 new TH2D(
"CPh_pt_vs_rap_est_two_Outside",
"CPh_pt_vs_rap_est_two_Outside; rapidity y; p_{t} in GeV/c ", 10, 0., 4.,
2575 new TH2D(
"CPh_pt_vs_rap_est_corr_two_Outside",
"CPh_pt_vs_rap_est_corr_two_Outside; rapidity y; p_{t} in GeV/c ",
2576 10, 0., 4., 40, 0., 4.);
2581 new TH1D(
"CDP_InvMassReco_onetwo_Outside",
"CDP_InvMassReco_onetwo_Outside; invariant mass in GeV/c^{2};#", 50,
2585 new TH1D(
"CDP_OpeningAngleReco_onetwo_Outside",
"CDP_OpeningAngleReco_onetwo_Outside; angle [deg];#", 45, -0.5, 4.);
2587 CDP_Pdg_onetwo_Outside =
new TH1D(
"CDP_Pdg_onetwo_Outside",
"CDP_Pdg_onetwo_Outside; Id;#", 1000, -10, 490);
2590 new TH1D(
"CDP_P_reco_onetwo_Outside",
"CDP_P_reco_onetwo_Outside; P in GeV/c^{2};#", 200, 0, 10);
2593 new TH1D(
"CDP_Pt_reco_onetwo_Outside",
"CDP_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2596 "CPh_fromTarget_Pt_reco_onetwo_Outside",
"CPh_fromTarget_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2599 "CPh_fromPions_Pt_reco_onetwo_Outside",
"CPh_fromPions_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2602 "CPh_fromEtas_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2605 "CPh_fromDalitz_Pt_reco_onetwo_Outside",
"CPh_fromDalitz_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2608 new TH1D(
"CPh_fromXi_Pt_reco_onetwo_Outside",
"CPh_fromXi_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2611 "CPh_fromOther_Pt_reco_onetwo_Outside",
"CPh_fromOther_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2614 new TH1D(
"CPh_twoFromTarget_Pt_reco_onetwo_Outside",
2615 "CPh_twoFromTarget_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2618 new TH1D(
"CPh_fromCombinatorial_Pt_reco_onetwo_Outside",
2619 "CPh_fromCombinatorial_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2622 new TH1D(
"CPh_fromConversion_Pt_reco_onetwo_Outside",
2623 "CPh_fromConversion_Pt_reco_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2626 new TH2D(
"CPh_pt_vs_rap_est_onetwo_Outside",
"CPh_pt_vs_rap_est_onetwo_Outside; rapidity y; p_{t} in GeV/c ", 10,
2627 0., 4., 40, 0., 4.);
2630 new TH2D(
"CPh_pt_vs_rap_est_corr_onetwo_Outside",
2631 "CPh_pt_vs_rap_est_corr_onetwo_Outside; rapidity y; p_{t} in GeV/c ", 10, 0., 4., 40, 0., 4.);
2637 new TH1D(
"CDP_InvMassReco_all_Both",
"CDP_InvMassReco_all_Both; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2640 new TH1D(
"CDP_OpeningAngleReco_all_Both",
"CDP_OpeningAngleReco_all_Both; angle [deg];#", 45, -0.5, 4.);
2642 CDP_Pdg_all_Both =
new TH1D(
"CDP_Pdg_all_Both",
"CDP_Pdg_all_Both; Id;#", 1000, -10, 490);
2644 CDP_P_reco_all_Both =
new TH1D(
"CDP_P_reco_all_Both",
"CDP_P_reco_all_Both; P in GeV/c^{2};#", 200, 0, 10);
2646 CDP_Pt_reco_all_Both =
new TH1D(
"CDP_Pt_reco_all_Both",
"CDP_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2649 new TH1D(
"CPh_fromTarget_Pt_reco_all_Both",
"CPh_fromTarget_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2652 new TH1D(
"CPh_fromPions_Pt_reco_all_Both",
"CPh_fromPions_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2655 new TH1D(
"CPh_fromEtas_Pt_reco_all_Both",
"CPh_fromEtas_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2658 new TH1D(
"CPh_fromDalitz_Pt_reco_all_Both",
"CPh_fromDalitz_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2661 new TH1D(
"CPh_fromXi_Pt_reco_all_Both",
"CPh_fromXi_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2664 new TH1D(
"CPh_fromOther_Pt_reco_all_Both",
"CPh_fromOther_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2667 "CPh_twoFromTarget_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2670 "CPh_fromCombinatorial_Pt_reco_all_Both",
"CPh_fromCombinatorial_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2673 "CPh_fromConversion_Pt_reco_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2676 "CPh_pt_vs_rap_est_all_Both",
"CPh_pt_vs_rap_est_all_Both; rapidity y; p_{t} in GeV/c ", 10, 0., 4., 40, 0., 4.);
2679 new TH2D(
"CPh_pt_vs_rap_est_corr_all_Both",
"CPh_pt_vs_rap_est_corr_all_Both; rapidity y; p_{t} in GeV/c ", 10, 0.,
2685 new TH1D(
"CDP_InvMassReco_two_Both",
"CDP_InvMassReco_two_Both; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2688 new TH1D(
"CDP_OpeningAngleReco_two_Both",
"CDP_OpeningAngleReco_two_Both; angle [deg];#", 45, -0.5, 4.);
2690 CDP_Pdg_two_Both =
new TH1D(
"CDP_Pdg_two_Both",
"CDP_Pdg_two_Both; Id;#", 1000, -10, 490);
2692 CDP_P_reco_two_Both =
new TH1D(
"CDP_P_reco_two_Both",
"CDP_P_reco_two_Both; P in GeV/c^{2};#", 200, 0, 10);
2694 CDP_Pt_reco_two_Both =
new TH1D(
"CDP_Pt_reco_two_Both",
"CDP_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2697 new TH1D(
"CPh_fromTarget_Pt_reco_two_Both",
"CPh_fromTarget_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2700 new TH1D(
"CPh_fromPions_Pt_reco_two_Both",
"CPh_fromPions_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2703 new TH1D(
"CPh_fromEtas_Pt_reco_two_Both",
"CPh_fromEtas_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2706 new TH1D(
"CPh_fromDalitz_Pt_reco_two_Both",
"CPh_fromDalitz_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2709 new TH1D(
"CPh_fromXi_Pt_reco_two_Both",
"CPh_fromXi_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2712 new TH1D(
"CPh_fromOther_Pt_reco_two_Both",
"CPh_fromOther_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2715 "CPh_twoFromTarget_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2718 "CPh_fromCombinatorial_Pt_reco_two_Both",
"CPh_fromCombinatorial_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2721 "CPh_fromConversion_Pt_reco_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2724 "CPh_pt_vs_rap_est_two_Both",
"CPh_pt_vs_rap_est_two_Both; rapidity y; p_{t} in GeV/c ", 10, 0., 4., 40, 0., 4.);
2727 new TH2D(
"CPh_pt_vs_rap_est_corr_two_Both",
"CPh_pt_vs_rap_est_corr_two_Both; rapidity y; p_{t} in GeV/c ", 10, 0.,
2733 "CDP_InvMassReco_onetwo_Both",
"CDP_InvMassReco_onetwo_Both; invariant mass in GeV/c^{2};#", 50, -0.005, 0.045);
2736 new TH1D(
"CDP_OpeningAngleReco_onetwo_Both",
"CDP_OpeningAngleReco_onetwo_Both; angle [deg];#", 45, -0.5, 4.);
2738 CDP_Pdg_onetwo_Both =
new TH1D(
"CDP_Pdg_onetwo_Both",
"CDP_Pdg_onetwo_Both; Id;#", 1000, -10, 490);
2740 CDP_P_reco_onetwo_Both =
new TH1D(
"CDP_P_reco_onetwo_Both",
"CDP_P_reco_onetwo_Both; P in GeV/c^{2};#", 200, 0, 10);
2743 new TH1D(
"CDP_Pt_reco_onetwo_Both",
"CDP_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2746 "CPh_fromTarget_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2749 new TH1D(
"CPh_fromPions_Pt_reco_onetwo_Both",
"CPh_fromPions_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2752 new TH1D(
"CPh_fromEtas_Pt_reco_onetwo_Both",
"CPh_fromEtas_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2755 "CPh_fromDalitz_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2758 new TH1D(
"CPh_fromXi_Pt_reco_onetwo_Both",
"CPh_fromXi_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2761 new TH1D(
"CPh_fromOther_Pt_reco_onetwo_Both",
"CPh_fromOther_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2764 "CPh_twoFromTarget_Pt_reco_onetwo_Both",
"CPh_twoFromTarget_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2767 new TH1D(
"CPh_fromCombinatorial_Pt_reco_onetwo_Both",
2768 "CPh_fromCombinatorial_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2771 "CPh_fromConversion_Pt_reco_onetwo_Both",
"CPh_fromConversion_Pt_reco_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2774 new TH2D(
"CPh_pt_vs_rap_est_onetwo_Both",
"CPh_pt_vs_rap_est_onetwo_Both; rapidity y; p_{t} in GeV/c ", 10, 0., 4.,
2778 new TH2D(
"CPh_pt_vs_rap_est_corr_onetwo_Both",
"CPh_pt_vs_rap_est_corr_onetwo_Both; rapidity y; p_{t} in GeV/c ",
2779 10, 0., 4., 40, 0., 4.);
2783 CDP_EMT_Pt_all_Target =
new TH1D(
"CDP_EMT_Pt_all_Target",
"CDP_EMT_Pt_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2785 CDP_EMT_Pt_two_Target =
new TH1D(
"CDP_EMT_Pt_two_Target",
"CDP_EMT_Pt_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2788 new TH1D(
"CDP_EMT_Pt_onetwo_Target",
"CDP_EMT_Pt_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2792 CDP_EMT_Pt_all_Outside =
new TH1D(
"CDP_EMT_Pt_all_Outside",
"CDP_EMT_Pt_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2794 CDP_EMT_Pt_two_Outside =
new TH1D(
"CDP_EMT_Pt_two_Outside",
"CDP_EMT_Pt_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2797 new TH1D(
"CDP_EMT_Pt_onetwo_Outside",
"CDP_EMT_Pt_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2801 CDP_EMT_Pt_all_Both =
new TH1D(
"CDP_EMT_Pt_all_Both",
"CDP_EMT_Pt_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2803 CDP_EMT_Pt_two_Both =
new TH1D(
"CDP_EMT_Pt_two_Both",
"CDP_EMT_Pt_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2805 CDP_EMT_Pt_onetwo_Both =
new TH1D(
"CDP_EMT_Pt_onetwo_Both",
"CDP_EMT_Pt_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2811 new TH1D(
"CDP_LK_EMT_Pt_all_Target",
"CDP_LK_EMT_Pt_all_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2814 new TH1D(
"CDP_LK_EMT_Pt_two_Target",
"CDP_LK_EMT_Pt_two_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2817 new TH1D(
"CDP_LK_EMT_Pt_onetwo_Target",
"CDP_LK_EMT_Pt_onetwo_Target; P_{t} in GeV/c^{2};#", 30, 0, 3);
2823 new TH1D(
"CDP_LK_EMT_Pt_all_Outside",
"CDP_LK_EMT_Pt_all_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2826 new TH1D(
"CDP_LK_EMT_Pt_two_Outside",
"CDP_LK_EMT_Pt_two_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2829 new TH1D(
"CDP_LK_EMT_Pt_onetwo_Outside",
"CDP_LK_EMT_Pt_onetwo_Outside; P_{t} in GeV/c^{2};#", 30, 0, 3);
2834 CDP_LK_EMT_Pt_all_Both =
new TH1D(
"CDP_LK_EMT_Pt_all_Both",
"CDP_LK_EMT_Pt_all_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2836 CDP_LK_EMT_Pt_two_Both =
new TH1D(
"CDP_LK_EMT_Pt_two_Both",
"CDP_LK_EMT_Pt_two_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
2839 new TH1D(
"CDP_LK_EMT_Pt_onetwo_Both",
"CDP_LK_EMT_Pt_onetwo_Both; P_{t} in GeV/c^{2};#", 30, 0, 3);
Data class for a reconstructed hit in the STS.
Data class for STS tracks.
int32_t GetStsTrackIndex() const
int32_t GetRichRingIndex() const
static void SetKFParticleFromStsTrack(CbmStsTrack *track, KFParticle *particle, Int_t pdg=211, Bool_t firstPoint=kTRUE)
TH1D * CPh_fromTarget_Pt_reco_two_Both
vector< CbmRichRing * > VRichRing_plus_Outside
std::vector< int > VRings_plus_Outside
TH1D * CDP_EMT_Pt_onetwo_Outside
TH1D * CPh_fromXi_Pt_reco_two_Both
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Target
vector< CbmRichRing * > VRichRing_minus_Target
std::vector< int > VRings_minus_Target
TH2D * CPdg_vs_Distance_for_dp
TH1D * CDP_OpeningAngleReco_onetwo_Both
TH1D * CPh_twoFromTarget_Pt_reco_all_Target
TH2D * CPh_pt_vs_rap_est_corr_two_Target
vector< TVector3 > VMomenta_plus_Target
std::vector< int > CDP_EMT_NofRings_minus_Outside
vector< TH1 * > fHistoList_dp_onetwo_Both
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Both
TH1D * CPh_fromOther_Pt_reco_all_Both
vector< TH1 * > fHistoList_dp_onetwo_Target
std::vector< int > VStsIndex_plus_Target
TH1D * CPh_twoFromTarget_Pt_reco_two_Target
TH1D * CDP_EMT_Pt_onetwo_Target
TH1D * CPh_fromOther_Pt_reco_all_Target
TH1D * CDP_OpeningAngleReco_two_Target
vector< CbmStsTrack * > VStsTrack_minus_Outside
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_minus_Outside
TH1D * CPh_fromXi_Pt_reco_two_Target
TH2D * CP_vs_Distance_for_dp
vector< TH1 * > fHistoList_dp_two_Target
TH1D * CPh_fromOther_Pt_reco_two_Both
TH1D * CDP_PlaneAngles_last_Target
TH1D * CPh_fromCombinatorial_Pt_reco_all_Both
CbmRichRingFitterEllipseTau * fTauFit
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Outside
TH1D * CPh_fromConversion_Pt_reco_onetwo_Target
vector< TH1 * > fHistoList_dp_Outside
std::vector< int > CDP_EMT_Event_minus_Target
TH1D * CDP_LK_EMT_Pt_two_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_two_Target
std::vector< int > CDP_LK_EMT_NofRings_plus_Target
TH2D * CDP_InvMass_vs_OA_Target
TH1D * CDP_InvMassReco_onetwo_Both
int FindInRich(int richInd, int stsMcTrackId)
vector< CbmStsTrack * > VStsTrack_minus_Target
TH1D * CDP_Pdg_all_Target
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_plus_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Both
TH1D * CPh_fromTarget_Pt_reco_all_Both
TH1D * CDP_P_reco_all_Target
TH1D * CDP_LK_EMT_Pt_all_Target
TH1D * CDP_EMT_Pt_two_Outside
TH2D * CDP_candidates_InvMass_vs_OA_Both
TH1D * CDP_Pt_reco_two_Outside
TH1D * CDP_Pt_reco_two_Both
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_plus_Target
TH2D * CPh_pt_vs_rap_est_onetwo_Both
TH1D * CPh_fromDalitz_Pt_reco_all_Outside
TH1D * CDP_candidates_InvMass_Both
TH1D * CDP_InvMassReco_all_Target
TH1D * CPh_fromTarget_Pt_reco_onetwo_Target
vector< TH1 * > fHistoList_dp_two_Outside
TH1D * CDP_InvMassReco_onetwo_Outside
TH1D * CPh_fromTarget_Pt_reco_all_Target
TH2D * CDP_candidates_InvMass_vs_OA_Outside
TH2D * CPh_pt_vs_rap_est_corr_all_Outside
TH1D * CDP_EMT_Pt_all_Target
TClonesArray * fGlobalTracks
void Exec(int fEventNumDP, double OpeningAngleCut, double GammaInvMassCut, int RealPID)
vector< CbmStsTrack * > VStsTrack_plus_Target
TH1D * CDP_LK_EMT_Pt_all_Both
std::vector< TVector3 > CDP_LK_EMT_momenta_minus_Target
TClonesArray * fRichRings
TH1D * CPh_fromPions_Pt_reco_onetwo_Outside
TH2D * CPh_pt_vs_rap_est_corr_all_Target
TH2D * CDP_candidates_InvMass_vs_OA_Target
void SaveTargetTracks(CbmMCTrack *mcTrack1, CbmStsTrack *stsTrack, TVector3 refmom, double charge, int stsInd, int richInd, int stsMcTrackId, CbmRichRing *RING)
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Both
TH1D * CPh_fromXi_Pt_reco_onetwo_Outside
TH1D * CPh_fromOther_Pt_reco_onetwo_Outside
std::vector< TVector3 > SaveAllHits(CbmStsTrack *track)
vector< TH1 * > fHistoList_dp_cuts_Target
vector< TVector3 > VMomenta_minus_Target
void CDP_likesign_Mixing_Outside(double AngleCut, double InvMassCut)
std::vector< int > CDP_LK_EMT_STS_plus_index_Target
TH1D * CDP_P_reco_two_Outside
void CDP_likesign_Mixing_Target(double AngleCut, double InvMassCut)
TH1D * CDP_InvMassReco_onetwo_Target
TH1D * CDP_AnnTruePairs_AfterCuts
TH2D * CPh_pt_vs_rap_est_corr_all_Both
int CheckIfElectron(CbmRichRing *ring, double momentum)
std::vector< std::vector< double > > corr_two
TH1D * CGrandMother_PDG_Target
TH2D * CPh_pt_vs_rap_est_two_Outside
TH1D * CPh_fromTarget_Pt_reco_two_Target
vector< CbmMCTrack * > VMCtracks_minus_Outside
TH1D * CDP_OpeningAngleReco_onetwo_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Target
TH1D * CPh_fromTarget_Pt_reco_onetwo_Outside
void CDP_Mixing_Target(double AngleCut, double InvMassCut)
TH1D * CPh_fromXi_Pt_reco_all_Target
TClonesArray * fArrayMvdHit
TH1D * CDP_InvMassReco_all_Outside
TH1D * CDP_candidates_PlaneAngles_first_Outside
vector< TH1 * > fHistoList_dp_two_Both
std::vector< CbmStsTrack * > CDP_EMT_momenta_plus_Outside
vector< TH1 * > fHistoList_dp_Both
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_plus_Target
std::vector< int > CDP_EMT_Event_plus_Target
TH1D * CDP_candidates_InvMass_Target
TH1D * CPh_fromConversion_Pt_reco_onetwo_Both
TH1D * CDP_P_reco_onetwo_Target
TH1D * CPh_fromDalitz_Pt_reco_two_Target
TH1D * CPh_fromEtas_Pt_reco_two_Both
std::vector< CbmStsTrack * > CDP_EMT_momenta_minus_Outside
TH1D * CDP_Pt_reco_onetwo_Both
double CalculatePlaneAngle_last(CbmStsTrack *Sts_1, CbmStsTrack *Sts_2)
TH1D * CPh_fromXi_Pt_reco_onetwo_Target
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_minus_Outside
TH1D * CPh_fromTarget_Pt_reco_all_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_all_Target
std::vector< CbmStsTrack * > CDP_LK_EMT_STS_minus_Target
std::vector< int > CDP_EMT_Event_minus_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Outside
TH1D * CDP_P_reco_two_Both
TH1D * CPh_fromConversion_Pt_reco_all_Outside
TClonesArray * fStsTracks
TH1D * CDP_OpeningAngleReco_two_Outside
TH1D * CPh_twoFromTarget_Pt_reco_two_Both
TH1D * CPh_fromPions_Pt_reco_two_Both
TH1D * CPh_fromTarget_Pt_reco_onetwo_Both
TH1D * CPh_fromConversion_Pt_reco_all_Target
TH1D * CPh_fromOther_Pt_reco_two_Target
void SaveOutsideTracks(CbmMCTrack *mcTrack1, CbmStsTrack *stsTrack, double charge, int stsInd, int richInd, int stsMcTrackId, CbmRichRing *RING)
std::vector< TVector3 > CDP_EMT_momenta_minus_Target
TClonesArray * fRichRingMatches
vector< TH1 * > fHistoList_dp_all_Target
TH1D * CDP_OpeningAngleReco_onetwo_Target
std::vector< int > VStsIndex_minus_Target
TH1D * CDP_candidates_OA_Both
TH1D * CPh_fromOther_Pt_reco_onetwo_Both
TH1D * CPh_fromEtas_Pt_reco_two_Outside
TH1D * CDP_LK_EMT_Pt_two_Target
CbmKresSelectAnnPhotons * fAnnPhotonsSelection
void CDP_Mixing_Outside(double AngleCut, double InvMassCut)
TH2D * CPh_pt_vs_rap_est_two_Both
TH1D * CDP_EMT_Pt_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Both
TH1D * CGrandMother_PDG_Outside
TH1D * CDP_LK_EMT_Pt_all_Outside
TH1D * CDP_LK_EMT_Pt_onetwo_Both
std::vector< int > CDP_LK_EMT_NofRings_plus_Outside
TH2D * CDP_InvMass_vs_OA_Outside
TH1D * CDP_P_reco_onetwo_Outside
double CalculatePlaneAngle_first(CbmStsTrack *Sts_1, CbmStsTrack *Sts_2)
std::vector< int > CDP_LK_EMT_NofRings_minus_Outside
TH1D * CPh_fromPions_Pt_reco_all_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Target
TH2D * CPh_pt_vs_rap_est_all_Outside
TH1D * CDP_P_reco_two_Target
std::vector< int > CDP_EMT_NofRings_plus_Target
TH1D * CPh_fromEtas_Pt_reco_two_Target
TClonesArray * fRichProjections
TH1D * CDP_P_reco_onetwo_Both
TH1D * CDP_InvMass_Target
CbmKresTrainAnnDirectPhotons * fTrainPhotons
TH2D * CDP_InvMass_vs_OA_Both
TH1D * CPh_fromOther_Pt_reco_all_Outside
TH1D * CPh_fromPions_Pt_reco_two_Outside
TH1D * CPh_fromPions_Pt_reco_onetwo_Target
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Outside
TH1D * CMother_PDG_Outside
TH1D * CPh_fromDalitz_Pt_reco_two_Outside
TH1D * CPh_fromConversion_Pt_reco_onetwo_Outside
TH1D * CDP_Pdg_two_Outside
TH2D * CPh_pt_vs_rap_est_two_Target
TH1D * CPh_fromPions_Pt_reco_all_Target
TH1D * CDP_OpeningAngleReco_all_Outside
TH1D * CPh_fromConversion_Pt_reco_two_Both
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)
void Init(double OA, double IM)
vector< TH1 * > fHistoList_dp_all_Both
CbmKresConversionCorrectedPhotons()
vector< TH1 * > fHistoList_dp_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_all_Target
TH1D * CDP_Pdg_onetwo_Outside
TH1D * CPh_twoFromTarget_Pt_reco_all_Both
vector< CbmMCTrack * > VMCtracks_plus_Target
TH2D * CPh_pt_vs_rap_est_onetwo_Outside
TH1D * CPh_fromTarget_Pt_reco_two_Outside
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Target
TH1D * CPh_twoFromTarget_Pt_reco_onetwo_Both
TH1D * CDP_candidates_PlaneAngles_last_Both
TH1D * CDP_Pt_reco_all_Both
TH1D * CPh_fromDalitz_Pt_reco_all_Both
vector< TH1 * > fHistoList_dp_cuts_Outside
TH1D * CPh_fromConversion_Pt_reco_all_Both
TH1D * CDP_candidates_InvMass_Outside
TH1D * CDP_Pt_reco_onetwo_Outside
TH1D * CPh_fromConversion_Pt_reco_two_Target
TH1D * CDP_Pdg_onetwo_Both
std::vector< std::vector< double > > corr_all
TH1D * CDP_Pdg_all_Outside
TH1D * CPh_fromDalitz_Pt_reco_two_Both
std::vector< TVector3 > CDP_LK_EMT_momenta_plus_Target
TH1D * CDP_InvMassReco_two_Both
TH1D * CPh_fromXi_Pt_reco_onetwo_Both
TH1D * CDP_LK_EMT_Pt_two_Both
TH1D * CPh_fromPions_Pt_reco_onetwo_Both
TH1D * CDP_InvMassReco_two_Target
vector< CbmRichRing * > VRichRing_plus_Target
virtual ~CbmKresConversionCorrectedPhotons()
TH1D * CDP_Pt_reco_all_Outside
TH1D * CPh_fromCombinatorial_Pt_reco_two_Outside
TH1D * CDP_Pt_reco_all_Target
TH1D * CPh_fromEtas_Pt_reco_onetwo_Outside
std::vector< int > CDP_EMT_NofRings_plus_Outside
TH1D * CDP_OpeningAngleReco_all_Target
TH1D * CPh_fromOther_Pt_reco_onetwo_Target
TH1D * CPh_fromXi_Pt_reco_two_Outside
TH1D * CDP_Pdg_onetwo_Target
TH1D * CPh_fromCombinatorial_Pt_reco_two_Both
std::vector< int > CDP_LK_EMT_STS_minus_index_Target
TH1D * CPh_fromCombinatorial_Pt_reco_all_Outside
TH1D * CDP_OpeningAngleReco_two_Both
std::vector< int > VStsIndex_minus_Outside
vector< CbmRichRing * > VRichRing_minus_Outside
std::vector< int > CDP_LK_EMT_STS_minus_index_Outside
TH1D * CDP_candidates_PlaneAngles_first_Target
vector< CbmStsTrack * > VStsTrack_plus_Outside
TClonesArray * fArrayStsHit
std::vector< int > CDP_EMT_NofRings_minus_Target
TH1D * CPh_twoFromTarget_Pt_reco_two_Outside
TH1D * CDP_Pdg_two_Target
TH1D * CPh_fromPions_Pt_reco_two_Target
TH1D * CPh_twoFromTarget_Pt_reco_all_Outside
TH1D * CDP_candidates_PlaneAngles_last_Target
TH1D * CDP_InvMassReco_two_Outside
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_minus_Target
std::vector< std::vector< double > > corr_onetwo
TH1D * CDP_candidates_PlaneAngles_first_Both
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Outside
TH1D * CDP_Pt_reco_two_Target
TH1D * CPh_fromDalitz_Pt_reco_onetwo_Target
TH1D * CPh_fromXi_Pt_reco_all_Outside
std::vector< int > CDP_LK_EMT_STS_plus_index_Outside
TH1D * CDP_PlaneAngles_first_Both
TH1D * CDP_InvMassReco_all_Both
TH1D * CPh_fromEtas_Pt_reco_onetwo_Both
TH1D * CDP_Pt_reco_onetwo_Target
std::vector< TVector3 > CDP_EMT_momenta_plus_Target
TH2D * CPh_pt_vs_rap_est_all_Both
TH1D * CDP_EMT_Pt_two_Target
std::vector< std::vector< TVector3 > > CDP_EMT_Hits_plus_Outside
TH1D * CDP_candidates_PlaneAngles_last_Outside
TH2D * CPh_pt_vs_rap_est_corr_onetwo_Target
TH1D * CPh_fromConversion_Pt_reco_two_Outside
TH1D * CPh_fromEtas_Pt_reco_onetwo_Target
TH1D * CDP_PlaneAngles_last_Both
TH1D * CDP_OpeningAngleReco_all_Both
std::vector< int > VRings_minus_Outside
std::vector< int > CDP_EMT_Event_plus_Outside
TH1D * CDP_candidates_OA_Target
TH2D * CPh_pt_vs_rap_est_all_Target
TH1D * CPh_fromOther_Pt_reco_two_Outside
TH1D * CDP_candidates_OA_Outside
TH1D * CDP_PlaneAngles_last_Outside
TH1D * CDP_PlaneAngles_first_Target
TH1D * CMother_PDG_Target
std::vector< int > CDP_LK_EMT_NofRings_minus_Target
TH1D * CDP_EMT_Pt_two_Both
double CalculatePlaneAngle_last_fromHits(std::vector< TVector3 > track_1, std::vector< TVector3 > track_2)
TH1D * CDP_InvMass_Outside
TH1D * CPh_fromEtas_Pt_reco_all_Outside
vector< CbmMCTrack * > VMCtracks_plus_Outside
TH1D * CDP_EMT_Pt_all_Both
TH1D * CDP_PlaneAngles_first_Outside
std::vector< int > VRings_plus_Target
TH1D * CDP_P_reco_all_Outside
vector< CbmMCTrack * > VMCtracks_minus_Target
TH1D * CDP_P_reco_all_Both
std::vector< int > VStsIndex_plus_Outside
std::vector< KFParticle > CDP_EMT_KFTrack_plus_Outside
TH2D * CPh_pt_vs_rap_est_onetwo_Target
TH1D * CPh_fromCombinatorial_Pt_reco_onetwo_Outside
vector< TH1 * > fHistoList_dp_onetwo_Outside
std::vector< KFParticle > CDP_EMT_KFTrack_minus_Outside
TH1D * CPh_fromXi_Pt_reco_all_Both
TH1D * CPh_fromPions_Pt_reco_all_Both
vector< TH1 * > fHistoList_dp_cuts_Both
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)
CbmKresGammaCorrection * fGammaCorrection
TH1D * CDP_AnnFalsePairs_AfterCuts
TH2D * CPh_pt_vs_rap_est_corr_two_Outside
vector< TH1 * > fHistoList_dp_Target
TH1D * CDP_EMT_Pt_onetwo_Both
TClonesArray * fStsTrackMatches
TH2D * CPh_pt_vs_rap_est_corr_two_Both
static TVector3 FitToVertexAndGetChi(CbmStsTrack *stsTrack, double x, double y, double z, double &chi)
static Double_t CalculateOpeningAngle_Reco(TVector3 electron1, TVector3 electron2)
static double Invmass_2particles_RECO(const TVector3 part1, const TVector3 part2)
static TVector3 FitToVertex(CbmStsTrack *stsTrack, double x, double y, double z)
static LmvmKinePar CalculateKinematicParamsReco(const TVector3 electron1, const TVector3 electron2)
int32_t GetMotherId() const
int32_t GetPdgCode() const
int32_t GetNofLinks() const
const CbmLink & GetMatchedLink() const
void Position(TVector3 &pos) const
Copies hit position to pos.
Here the ring is fitted with Taubin algorithm from A. Ayriyan, G. Ososkov, N. Chernov.
void AddHit(CbmRichHitLight hit)
Add new hit to the ring.
uint32_t GetHit(int32_t i) const
int32_t GetNofHits() const
static double GetRingTrackDistance(int globalTrackId)
data class for a reconstructed 3-d hit in the STS
int32_t GetNofMvdHits() const
int32_t GetMvdHitIndex(int32_t iHit) const
int32_t GetStsHitIndex(int32_t iHit) const
int32_t GetNofStsHits() const
const FairTrackParam * GetParamFirst() const