@@ -86,29 +86,47 @@ struct alice3multicharm {
8686 Configurable<float > dcaXiCCDaughtersSelection{" dcaXiCCDaughtersSelection" , 0 .002f , " DCA between XiCC daughters (cm)" };
8787
8888 Configurable<float > piFromXiC_dcaXYconstant{" piFromXiC_dcaXYconstant" , 0 .001f , " [0] in |DCAxy| > [0]+[1]/pT" };
89+ Configurable<float > piFromXiC_dcaZconstant{" piFromXiC_dcaZconstant" , 0 .001f , " [0] in |DCAxy| > [0]+[1]/pT" };
8990 Configurable<float > piFromXiC_dcaXYpTdep{" piFromXiC_dcaXYpTdep" , 0.0 , " [1] in |DCAxy| > [0]+[1]/pT" };
91+ Configurable<float > piFromXiC_dcaZpTdep{" piFromXiC_dcaZpTdep" , 0.0 , " [1] in |DCAxy| > [0]+[1]/pT" };
9092 Configurable<float > piFromXiCC_dcaXYconstant{" piFromXiCC_dcaXYconstant" , 0 .001f , " [0] in |DCAxy| > [0]+[1]/pT" };
93+ Configurable<float > piFromXiCC_dcaZconstant{" piFromXiCC_dcaZconstant" , 0 .001f , " [0] in |DCAxy| > [0]+[1]/pT" };
9194 Configurable<float > piFromXiCC_dcaXYpTdep{" piFromXiCC_dcaXYpTdep" , 0.0 , " [1] in |DCAxy| > [0]+[1]/pT" };
95+ Configurable<float > piFromXiCC_dcaZpTdep{" piFromXiCC_dcaZpTdep" , 0.0 , " [1] in |DCAxy| > [0]+[1]/pT" };
9296 Configurable<float > xiFromXiC_dcaXYconstant{" xiFromXiC_dcaXYconstant" , 0 .001f , " [0] in |DCAxy| > [0]+[1]/pT" };
97+ Configurable<float > xiFromXiC_dcaZconstant{" xiFromXiC_dcaZconstant" , 0 .001f , " [0] in |DCAxy| > [0]+[1]/pT" };
9398 Configurable<float > xiFromXiC_dcaXYpTdep{" xiFromXiC_dcaXYpTdep" , 0.0 , " [1] in |DCAxy| > [0]+[1]/pT" };
99+ Configurable<float > xiFromXiC_dcaZpTdep{" xiFromXiC_dcaZpTdep" , 0.0 , " [1] in |DCAxy| > [0]+[1]/pT" };
100+
101+ Configurable<float > xiCFromXiCC_dcaXY{" xiCFromXiCC_dcaXY" , 0 .0015f , " maxDCA" };
102+ Configurable<float > xiCFromXiCC_dcaZ{" xiCFromXiCC_dcaZ" , 0 .0015f , " maxDCA" };
103+ Configurable<float > xiCC_dcaXY{" xiCC_dcaXY" , 0 .002f , " maxDCA" };
104+ Configurable<float > xiCC_dcaZ{" xiCC_dcaZ" , 0 .002f , " maxDCA" };
94105
95106 Configurable<float > minPiCPt{" minPiCPt" , 0.15 , " Minimum pT for XiC pions" };
96107 Configurable<float > minPiCCPt{" minPiCCPt" , 0.3 , " Minimum pT for XiCC pions" };
97108 Configurable<float > minNTracks{" minNTracks" , -1 , " Minimum number of tracks" };
98109
99110 Configurable<float > minXiCRadius{" minXiCRadius" , 0.001 , " Minimum R2D for XiC decay (cm)" };
111+ Configurable<float > minXiCCRadius{" minXiCCRadius" , 0.005 , " Minimum R2D for XiCC decay (cm)" };
112+ Configurable<float > xicMinProperLength{" xicMinProperLength" , 0.002 , " Minimum proper length for XiC decay (cm)" };
113+ Configurable<float > xicMaxProperLength{" xicMaxProperLength" , 0.06 , " Minimum proper length for XiC decay (cm)" };
114+ Configurable<float > xiccMinProperLength{" xiccMinProperLength" , 0.004 , " Minimum proper length for XiCC decay (cm)" };
115+ Configurable<float > xiccMaxProperLength{" xiccMaxProperLength" , 999 , " Minimum proper length for XiCC decay (cm)" };
100116 Configurable<float > massWindowXi{" massWindowXi" , 0.015 , " Mass window around Xi peak" };
101117 Configurable<float > massWindowXiC{" massWindowXiC" , 0.015 , " Mass window around XiC peak" };
102118
103119 ConfigurableAxis axisEta{" axisEta" , {80 , -4 .0f , +4 .0f }, " #eta" };
104120 ConfigurableAxis axisPt{" axisPt" , {VARIABLE_WIDTH, 0 .0f , 0 .1f , 0 .2f , 0 .3f , 0 .4f , 0 .5f , 0 .6f , 0 .7f , 0 .8f , 0 .9f , 1 .0f , 1 .1f , 1 .2f , 1 .3f , 1 .4f , 1 .5f , 1 .6f , 1 .7f , 1 .8f , 1 .9f , 2 .0f , 2 .2f , 2 .4f , 2 .6f , 2 .8f , 3 .0f , 3 .2f , 3 .4f , 3 .6f , 3 .8f , 4 .0f , 4 .4f , 4 .8f , 5 .2f , 5 .6f , 6 .0f , 6 .5f , 7 .0f , 7 .5f , 8 .0f , 9 .0f , 10 .0f , 11 .0f , 12 .0f , 13 .0f , 14 .0f , 15 .0f , 17 .0f , 19 .0f , 21 .0f , 23 .0f , 25 .0f , 30 .0f , 35 .0f , 40 .0f , 50 .0f }, " pt axis for QA histograms" };
105- ConfigurableAxis axisDCA{" axisDCA" , {200 , -100 , 100 }, " DCA (#mum)" };
121+ ConfigurableAxis axisDCA2d{" axisDCA2d" , {400 , -200 , 200 }, " DCA2d (#mum)" };
122+ ConfigurableAxis axisDCA{" axisDCA" , {200 , 0 , 200 }, " DCA (#mum)" };
123+ ConfigurableAxis axisRadius{" axisRadius" , {1000 , 0 , 1000 }, " Decay radius (#mum)" };
124+ ConfigurableAxis axisDecayLength{" axisDecayLength" , {2000 , 0 , 2000 }, " Decay lenght (#mum)" };
106125
107126 ConfigurableAxis axisXiMass{" axisXiMass" , {200 , 1 .221f , 1 .421f }, " Xi Inv Mass (GeV/c^{2})" };
108127 ConfigurableAxis axisXiCMass{" axisXiCMass" , {200 , 2 .368f , 2 .568f }, " XiC Inv Mass (GeV/c^{2})" };
109128 ConfigurableAxis axisXiCCMass{" axisXiCCMass" , {200 , 3 .521f , 3 .721f }, " XiCC Inv Mass (GeV/c^{2})" };
110129
111- ConfigurableAxis axisDCAXi{" axisDCAXi" , {200 , 0 , 200 }, " DCA (mum)" };
112130 ConfigurableAxis axisDCAXiCDaughters{" axisDCAXiCDaughters" , {200 , 0 , 100 }, " DCA (mum)" };
113131 ConfigurableAxis axisDCAXiCCDaughters{" axisDCAXiCCDaughters" , {200 , 0 , 100 }, " DCA (mum)" };
114132
@@ -129,9 +147,9 @@ struct alice3multicharm {
129147
130148 // partitions for Xi daughters
131149 Partition<alice3tracks> tracksPiFromXiC =
132- ((aod::a3DecayMap::decayMap & trackSelectionPiFromXiC) == trackSelectionPiFromXiC) && aod::track::signed1Pt > 0 .0f && 1 .0f / nabs(aod::track::signed1Pt) > minPiCPt&& nabs(aod::track::dcaXY) > piFromXiC_dcaXYconstant + piFromXiC_dcaXYpTdep* nabs (aod::track::signed1Pt);
133- Partition<alice3tracks> tracksPiFromXiCC =
134- ((aod::a3DecayMap::decayMap & trackSelectionPiFromXiCC) == trackSelectionPiFromXiCC) && aod::track::signed1Pt > 0 .0f && 1 .0f / nabs(aod::track::signed1Pt) > minPiCCPt&& nabs(aod::track::dcaXY) > piFromXiCC_dcaXYconstant + piFromXiCC_dcaXYpTdep* nabs (aod::track::signed1Pt);
150+ ((aod::a3DecayMap::decayMap & trackSelectionPiFromXiC) == trackSelectionPiFromXiC) && aod::track::signed1Pt > 0 .0f && 1 .0f / nabs(aod::track::signed1Pt) > minPiCPt&& nabs(aod::track::dcaXY) > piFromXiC_dcaXYconstant + piFromXiC_dcaXYpTdep* nabs (aod::track::signed1Pt) && nabs(aod::track::dcaZ) > piFromXiC_dcaZconstant + piFromXiC_dcaZpTdep* nabs(aod::track::signed1Pt) ;
151+
152+ Partition<alice3tracks> tracksPiFromXiCC = ((aod::a3DecayMap::decayMap & trackSelectionPiFromXiCC) == trackSelectionPiFromXiCC) && aod::track::signed1Pt > 0 .0f && 1 .0f / nabs(aod::track::signed1Pt) > minPiCCPt&& nabs(aod::track::dcaXY) > piFromXiCC_dcaXYconstant + piFromXiCC_dcaXYpTdep* nabs (aod::track::signed1Pt);
135153
136154 // Helper struct to pass candidate information
137155 struct {
@@ -386,28 +404,41 @@ struct alice3multicharm {
386404
387405 histos.add (" hEtaXiCC" , " hEtaXiCC" , kTH1D , {axisEta});
388406 histos.add (" hPtXiCC" , " hPtXiCC" , kTH1D , {axisPt});
389- histos.add (" hMcPtXiCC" , " hMcPtXiCC" , kTH1D , {axisPt});
390407 histos.add (" h3dMassXiCC" , " h3dMassXiCC" , kTH3D , {axisPt, axisEta, axisXiCCMass});
391408
392409 histos.add (" hDCAXiCDaughters" , " hDCAXiCDaughters" , kTH1D , {axisDCAXiCDaughters});
393410 histos.add (" hDCAXiCCDaughters" , " hDCAXiCCDaughters" , kTH1D , {axisDCAXiCCDaughters});
394- histos.add (" hDCAXi" , " hDCAXi" , kTH1D , {axisDCAXi});
411+ histos.add (" hDCAxyXi" , " hDCAxyXi" , kTH1D , {axisDCA});
412+ histos.add (" hDCAzXi" , " hDCAzXi" , kTH1D , {axisDCA});
413+
414+ histos.add (" hDCAxyXiC" , " hDCAxyXiC" , kTH1D , {axisDCA});
415+ histos.add (" hDCAzXiC" , " hDCAzXiC" , kTH1D , {axisDCA});
416+
417+ histos.add (" hDCAxyXiCC" , " hDCAxyXiCC" , kTH1D , {axisDCA});
418+ histos.add (" hDCAzXiCC" , " hDCAzXiCC" , kTH1D , {axisDCA});
419+
395420 histos.add (" hPi1cPt" , " hPi1cPt" , kTH1D , {axisPt});
396421 histos.add (" hPi2cPt" , " hPi2cPt" , kTH1D , {axisPt});
397422 histos.add (" hPiccPt" , " hPiccPt" , kTH1D , {axisPt});
398423
424+ histos.add (" hMinXiCDecayRadius" , " hMinXiCDecayRadius" , kTH1D , {axisRadius});
425+ histos.add (" hMinXiCCDecayRadius" , " hMinXiCCDecayRadius" , kTH1D , {axisRadius});
426+
427+ histos.add (" hProperLengthXiC" , " hProperLengthXiC" , kTH1D , {axisDecayLength});
428+ histos.add (" hProperLengthXiCC" , " hProperLengthXiCC" , kTH1D , {axisDecayLength});
429+
399430 // These histograms bookkeep the exact number of combinations attempted
400431 // CombinationsXiC: triplets Xi-pi-pi considered per Xi
401432 // CombinationsXiCC: doublets XiC-pi considered per XiC
402433 histos.add (" hCombinationsXiC" , " hCombinationsXiC" , kTH1D , {axisNConsidered});
403434 histos.add (" hCombinationsXiCC" , " hCombinationsXiCC" , kTH1D , {axisNConsidered});
404435 histos.add (" hNCollisions" , " hNCollisions" , kTH1D , {{2 , 0.5 , 2.5 }});
405- histos.add (" hNTracks" , " hNTracks" , kTH1D , {{500 , 0 , 5000 }});
436+ histos.add (" hNTracks" , " hNTracks" , kTH1D , {{20000 , 0 , 20000 }});
406437
407438 if (doDCAplots) {
408- histos.add (" h2dDCAxyVsPtXiFromXiC" , " h2dDCAxyVsPtXiFromXiC" , kTH2D , {axisPt, axisDCA });
409- histos.add (" h2dDCAxyVsPtPiFromXiC" , " h2dDCAxyVsPtPiFromXiC" , kTH2D , {axisPt, axisDCA });
410- histos.add (" h2dDCAxyVsPtPiFromXiCC" , " h2dDCAxyVsPtPiFromXiCC" , kTH2D , {axisPt, axisDCA });
439+ histos.add (" h2dDCAxyVsPtXiFromXiC" , " h2dDCAxyVsPtXiFromXiC" , kTH2D , {axisPt, axisDCA2d });
440+ histos.add (" h2dDCAxyVsPtPiFromXiC" , " h2dDCAxyVsPtPiFromXiC" , kTH2D , {axisPt, axisDCA2d });
441+ histos.add (" h2dDCAxyVsPtPiFromXiCC" , " h2dDCAxyVsPtPiFromXiCC" , kTH2D , {axisPt, axisDCA2d });
411442 }
412443 }
413444
@@ -420,7 +451,6 @@ struct alice3multicharm {
420451 histos.fill (HIST (" h2dGenXiC" ), mcParticle.pt (), mcParticle.eta ());
421452 for (auto const & mcParticle : trueXiCC) {
422453 histos.fill (HIST (" h2dGenXiCC" ), mcParticle.pt (), mcParticle.eta ());
423- histos.fill (HIST (" hMcPtXiCC" ), mcParticle.pt ());
424454 }
425455 }
426456
@@ -460,7 +490,7 @@ struct alice3multicharm {
460490 for (auto const & xiCand : cascades) {
461491 histos.fill (HIST (" hMassXi" ), xiCand.mXi ());
462492
463- if (std::abs (xiCand.mXi () - o2::constants::physics::MassXiMinus) > massWindowXi)
493+ if (std::fabs (xiCand.mXi () - o2::constants::physics::MassXiMinus) > massWindowXi)
464494 continue ; // out of mass region
465495
466496 uint32_t nCombinationsC = 0 ;
@@ -472,11 +502,9 @@ struct alice3multicharm {
472502 if (!bitcheck (xi.decayMap (), kTrueXiFromXiC ))
473503 continue ;
474504
475- if (xi.dcaXY () < xiFromXiC_dcaXYconstant)
505+ if (std::fabs ( xi.dcaXY ()) < xiFromXiC_dcaXYconstant || std::fabs (xi. dcaZ ()) < xiFromXiC_dcaZconstant )
476506 continue ;
477507
478- histos.fill (HIST (" hDCAXi" ), xi.dcaXY () * 1e+4 );
479-
480508 for (auto const & pi1c : tracksPiFromXiCgrouped) {
481509 if (mcSameMotherCheck && !checkSameMother (xi, pi1c))
482510 continue ;
@@ -485,8 +513,6 @@ struct alice3multicharm {
485513 if (pi1c.pt () < minPiCPt)
486514 continue ;
487515
488- histos.fill (HIST (" hPi1cPt" ), pi1c.pt ());
489-
490516 // second pion from XiC decay for starts here
491517 for (auto const & pi2c : tracksPiFromXiCgrouped) {
492518
@@ -499,8 +525,6 @@ struct alice3multicharm {
499525 if (pi2c.pt () < minPiCPt)
500526 continue ;
501527
502- histos.fill (HIST (" hPi2cPt" ), pi2c.pt ());
503-
504528 // if I am here, it means this is a triplet to be considered for XiC vertexing.
505529 // will now attempt to build a three-body decay candidate with these three track rows.
506530
@@ -509,7 +533,7 @@ struct alice3multicharm {
509533 if (!buildDecayCandidateThreeBody (xi, pi1c, pi2c, o2::constants::physics::MassXiMinus, o2::constants::physics::MassPionCharged, o2::constants::physics::MassPionCharged))
510534 continue ; // failed at building candidate
511535
512- if (std::abs (thisXiCcandidate.mass - o2::constants::physics::MassXiCPlus) > massWindowXiC)
536+ if (std::fabs (thisXiCcandidate.mass - o2::constants::physics::MassXiCPlus) > massWindowXiC)
513537 continue ; // out of mass region
514538 histos.fill (HIST (" hCharmBuilding" ), 1 .0f );
515539
@@ -519,62 +543,93 @@ struct alice3multicharm {
519543 thisXiCcandidate.prong0mom [2 ] + thisXiCcandidate.prong1mom [2 ] + thisXiCcandidate.prong2mom [2 ]};
520544
521545 o2::track::TrackParCov xicTrack (thisXiCcandidate.xyz , momentumC, thisXiCcandidate.parentTrackCovMatrix , +1 );
522-
523- if (std::hypot (thisXiCcandidate. xyz [ 0 ], thisXiCcandidate. xyz [ 1 ]) < minXiCRadius)
546+ double xicDecayRadius2D = std::hypot (thisXiCcandidate. xyz [ 0 ], thisXiCcandidate. xyz [ 1 ]);
547+ if (xicDecayRadius2D < minXiCRadius)
524548 continue ; // do not take if radius too small, likely a primary combination
525549
526550 o2::dataformats::DCA dcaInfo;
527- float xicdcaXY = 1e+10 ;
551+ float xicdcaXY = 1e+10 , xicdcaZ = 1e+10 ;
552+ ;
528553 o2::track::TrackParCov xicTrackCopy (xicTrack); // paranoia
529-
530554 o2::vertexing::PVertex primaryVertex;
531555 primaryVertex.setXYZ (collision.posX (), collision.posY (), collision.posZ ());
532556
533557 if (xicTrackCopy.propagateToDCA (primaryVertex, magneticField, &dcaInfo)) {
534558 xicdcaXY = dcaInfo.getY ();
559+ xicdcaZ = dcaInfo.getZ ();
535560 }
536561
562+ if (std::fabs (xicdcaXY) < xiCFromXiCC_dcaXY || std::fabs (xicdcaZ) < xiCFromXiCC_dcaZ)
563+ continue ;
564+
537565 histos.fill (HIST (" hMassXiC" ), thisXiCcandidate.mass );
538- histos.fill (HIST (" hDCAXiCDaughters" ), thisXiCcandidate.dca * 1e+4 );
539566
540567 // attempt XiCC finding
541568 uint32_t nCombinationsCC = 0 ;
542569 for (auto const & picc : tracksPiFromXiCCgrouped) {
543-
544570 if (mcSameMotherCheck && !checkSameMotherExtra (xi, picc))
545571 continue ;
546572 if (xiCand.posTrackId () == picc.globalIndex () || xiCand.negTrackId () == picc.globalIndex () || xiCand.bachTrackId () == picc.globalIndex ())
547573 continue ; // avoid using any track that was already used
548574 if (picc.pt () < minPiCCPt)
549575 continue ;
550576
551- histos.fill (HIST (" hPiccPt" ), picc.pt ());
552-
553577 o2::track::TrackParCov piccTrack = getTrackParCov (picc);
554578 nCombinationsCC++;
555579 histos.fill (HIST (" hCharmBuilding" ), 2 .0f );
556580 if (!buildDecayCandidateTwoBody (xicTrack, piccTrack, o2::constants::physics::MassXiCPlus, o2::constants::physics::MassPionCharged))
557581 continue ; // failed at building candidate
558582
559- histos.fill (HIST (" hCharmBuilding" ), 3 .0f );
560- histos.fill (HIST (" hMassXiCC" ), thisXiCCcandidate.mass );
561- histos.fill (HIST (" hPtXiCC" ), thisXiCCcandidate.pt );
562- histos.fill (HIST (" hEtaXiCC" ), thisXiCCcandidate.eta );
563- histos.fill (HIST (" h3dMassXiCC" ), thisXiCCcandidate.pt , thisXiCCcandidate.eta , thisXiCCcandidate.mass );
564- histos.fill (HIST (" hDCAXiCCDaughters" ), thisXiCCcandidate.dca * 1e+4 );
565-
566583 const std::array<float , 3 > momentumCC = {
567584 thisXiCCcandidate.prong0mom [0 ] + thisXiCCcandidate.prong1mom [0 ],
568585 thisXiCCcandidate.prong0mom [1 ] + thisXiCCcandidate.prong1mom [1 ],
569586 thisXiCCcandidate.prong0mom [2 ] + thisXiCCcandidate.prong1mom [2 ]};
570587
571588 o2::track::TrackParCov xiccTrack (thisXiCCcandidate.xyz , momentumCC, thisXiCCcandidate.parentTrackCovMatrix , +2 );
589+ double xiccDecayRadius2D = std::hypot (thisXiCCcandidate.xyz [0 ], thisXiCCcandidate.xyz [1 ]);
590+ if (xiccDecayRadius2D < minXiCCRadius)
591+ continue ; // do not take if radius too small, likely a primary combination
572592
573- float xiccdcaXY = 1e+10 ;
593+ double totalMomentumC = std::hypot (momentumC[0 ], momentumC[1 ], momentumC[2 ]);
594+ double xicProperLength = std::fabs (std::hypot (thisXiCcandidate.xyz [0 ], thisXiCcandidate.xyz [1 ], thisXiCcandidate.xyz [2 ]) - std::hypot (thisXiCCcandidate.xyz [0 ], thisXiCCcandidate.xyz [1 ], thisXiCCcandidate.xyz [2 ]) * totalMomentumC) / (std::fabs (totalMomentumC) * thisXiCcandidate.mass );
595+ if (xicProperLength < xicMinProperLength || xicProperLength > xicMaxProperLength)
596+ continue ;
597+
598+ double totalMomentumCC = std::hypot (momentumCC[0 ], momentumCC[1 ], momentumCC[2 ]);
599+ double xiccProperLength = std::fabs (std::hypot (collision.posX (), collision.posY (), collision.posZ ()) - std::hypot (thisXiCCcandidate.xyz [0 ], thisXiCCcandidate.xyz [1 ], thisXiCCcandidate.xyz [2 ]) * totalMomentumCC) / (std::fabs (totalMomentumCC) * thisXiCCcandidate.mass );
600+ if (xiccProperLength < xiccMinProperLength || xiccProperLength > xicMaxProperLength)
601+ continue ;
602+
603+ float xiccdcaXY = 1e+10 , xiccdcaZ = 1e+10 ;
574604 if (xiccTrack.propagateToDCA (primaryVertex, magneticField, &dcaInfo)) {
575605 xiccdcaXY = dcaInfo.getY ();
606+ xiccdcaZ = dcaInfo.getZ ();
576607 }
577608
609+ if (std::fabs (xiccdcaXY) > xiCC_dcaXY || std::fabs (xiccdcaZ) > xiCC_dcaZ)
610+ continue ;
611+
612+ histos.fill (HIST (" hDCAXiCDaughters" ), thisXiCcandidate.dca * 1e+4 );
613+ histos.fill (HIST (" hDCAXiCCDaughters" ), thisXiCCcandidate.dca * 1e+4 );
614+ histos.fill (HIST (" hProperLengthXiCC" ), xiccProperLength * 1e+4 );
615+ histos.fill (HIST (" hProperLengthXiC" ), xicProperLength * 1e+4 );
616+ histos.fill (HIST (" hMinXiCCDecayRadius" ), xiccDecayRadius2D * 1e+4 );
617+ histos.fill (HIST (" hMinXiCDecayRadius" ), xicDecayRadius2D * 1e+4 );
618+ histos.fill (HIST (" hPi2cPt" ), pi2c.pt ());
619+ histos.fill (HIST (" hPi1cPt" ), pi1c.pt ());
620+ histos.fill (HIST (" hPiccPt" ), picc.pt ());
621+ histos.fill (HIST (" hDCAxyXi" ), std::fabs (xi.dcaXY () * 1e+4 ));
622+ histos.fill (HIST (" hDCAzXi" ), std::fabs (xi.dcaZ () * 1e+4 ));
623+ histos.fill (HIST (" hDCAxyXiC" ), std::fabs (xicdcaXY * 1e+4 ));
624+ histos.fill (HIST (" hDCAzXiC" ), std::fabs (xicdcaZ * 1e+4 ));
625+ histos.fill (HIST (" hDCAxyXiCC" ), std::fabs (xiccdcaXY * 1e+4 ));
626+ histos.fill (HIST (" hDCAzXiCC" ), std::fabs (xiccdcaZ * 1e+4 ));
627+ histos.fill (HIST (" hCharmBuilding" ), 3 .0f );
628+ histos.fill (HIST (" hMassXiCC" ), thisXiCCcandidate.mass );
629+ histos.fill (HIST (" hPtXiCC" ), thisXiCCcandidate.pt );
630+ histos.fill (HIST (" hEtaXiCC" ), thisXiCCcandidate.eta );
631+ histos.fill (HIST (" h3dMassXiCC" ), thisXiCCcandidate.pt , thisXiCCcandidate.eta , thisXiCCcandidate.mass );
632+
578633 // produce multi-charm table for posterior analysis
579634 if (fillDerivedTable) {
580635 multiCharmCore (
0 commit comments