@@ -57,6 +57,8 @@ using namespace o2::constants::physics;
5757using namespace o2 ::constants::math;
5858using namespace pwgmm ::mult;
5959
60+ auto static constexpr kMinCharge = 3 .f;
61+
6062AxisSpec ptAxis = {1001 , -0.005 , 10.005 };
6163AxisSpec multAxis = {701 , -0.5 , 700.5 , " N_{trk}" };
6264AxisSpec zAxis = {60 , -30 ., 30 .};
@@ -102,79 +104,49 @@ struct DndetaMFTPbPb {
102104
103105 struct : ConfigurableGroup {
104106 Configurable<bool > usephiCut{" usephiCut" , false , " use azimuthal angle cut" };
105- Configurable<float > phiCut{" phiCut" , 0 .1f ,
106- " Cut on azimuthal angle of MFT tracks" };
107+ Configurable<float > phiCut{" phiCut" , 0 .1f , " Cut on azimuthal angle of MFT tracks" };
107108 Configurable<float > minPhi{" minPhi" , 0 .f , " " };
108109 Configurable<float > maxPhi{" maxPhi" , 6.2832 , " " };
109110 Configurable<float > minEta{" minEta" , -3 .6f , " " };
110111 Configurable<float > maxEta{" maxEta" , -2 .5f , " " };
111- Configurable<int > minNclusterMft{" minNclusterMft" , 5 ,
112- " minimum number of MFT clusters" };
112+ Configurable<int > minNclusterMft{" minNclusterMft" , 5 , " minimum number of MFT clusters" };
113113 Configurable<bool > useChi2Cut{" useChi2Cut" , false , " use track chi2 cut" };
114114 Configurable<float > maxChi2NCl{" maxChi2NCl" , 1000 .f , " maximum chi2 per MFT clusters" };
115115 Configurable<bool > usePtCut{" usePtCut" , false , " use track pT cut" };
116116 Configurable<double > minPt{" minPt" , 0 ., " minimum pT of the MFT tracks" };
117- Configurable<bool > requireCA{
118- " requireCA" , false , " Use Cellular Automaton track-finding algorithm" };
117+ Configurable<bool > requireCA{" requireCA" , false , " Use Cellular Automaton track-finding algorithm" };
119118 Configurable<float > maxDCAxy{" maxDCAxy" , 2 .0f , " Cut on dcaXY" };
120119 } trackCuts;
121120
122121 struct : ConfigurableGroup {
123122 Configurable<float > maxZvtx{" maxZvtx" , 10 .0f , " maximum cut on z-vtx (cm)" };
124123 Configurable<float > minZvtx{" minZvtx" , -10 .0f , " minimum cut on z-vtx (cm)" };
125- Configurable<bool > useZDiffCut{" useZDiffCut" , false ,
126- " use Zvtx reco-mc diff. cut" };
127- Configurable<float > maxZvtxDiff{
128- " maxZvtxDiff" , 1 .0f ,
129- " max allowed Z vtx difference for reconstruced collisions (cm)" };
124+ Configurable<bool > useZDiffCut{" useZDiffCut" , false , " use Zvtx reco-mc diff. cut" };
125+ Configurable<float > maxZvtxDiff{" maxZvtxDiff" , 1 .0f , " max allowed Z vtx difference for reconstruced collisions (cm)" };
130126 Configurable<bool > requireIsGoodZvtxFT0VsPV{" requireIsGoodZvtxFT0VsPV" , true , " require events with PV position along z consistent (within 1 cm) between PV reconstructed using tracks and PV using FT0 A-C time difference" };
131127 Configurable<bool > requireRejectSameBunchPileup{" requireRejectSameBunchPileup" , true , " reject collisions in case of pileup with another collision in the same foundBC" };
132128 Configurable<bool > requireNoCollInTimeRangeStrict{" requireNoCollInTimeRangeStrict" , false , " requireNoCollInTimeRangeStrict" };
133129 Configurable<bool > requireNoCollInRofStrict{" requireNoCollInRofStrict" , false , " requireNoCollInRofStrict" };
134130 Configurable<bool > requireNoCollInRofStandard{" requireNoCollInRofStandard" , false , " requireNoCollInRofStandard" };
135131 Configurable<bool > requireNoHighMultCollInPrevRof{" requireNoHighMultCollInPrevRof" , false , " requireNoHighMultCollInPrevRof" };
136- Configurable<bool > requireNoCollInTimeRangeStd{
137- " requireNoCollInTimeRangeStd" , true ,
138- " reject collisions corrupted by the cannibalism, with other collisions "
139- " within +/- 10 microseconds" };
140- Configurable<bool > requireNoCollInTimeRangeNarrow{
141- " requireNoCollInTimeRangeNarrow" , false ,
142- " reject collisions corrupted by the cannibalism, with other collisions "
143- " within +/- 10 microseconds" };
144- Configurable<uint> occupancyEstimator{
145- " occupancyEstimator" , 1 ,
146- " Occupancy estimator: 1 = trackOccupancyInTimeRange, 2 = "
147- " ft0cOccupancyInTimeRange" };
148- Configurable<float > minOccupancy{
149- " minOccupancy" , -1 , " minimum occupancy from neighbouring collisions" };
150- Configurable<float > maxOccupancy{
151- " maxOccupancy" , -1 , " maximum occupancy from neighbouring collisions" };
132+ Configurable<bool > requireNoCollInTimeRangeStd{" requireNoCollInTimeRangeStd" , true , " reject collisions corrupted by the cannibalism, with other collisions within +/- 10 microseconds" };
133+ Configurable<bool > requireNoCollInTimeRangeNarrow{" requireNoCollInTimeRangeNarrow" , false , " reject collisions corrupted by the cannibalism, with other collisions within +/- 10 microseconds" };
134+ Configurable<uint> occupancyEstimator{" occupancyEstimator" , 1 , " Occupancy estimator: 1 = trackOccupancyInTimeRange, 2 = ft0cOccupancyInTimeRange" };
135+ Configurable<float > minOccupancy{" minOccupancy" , -1 , " minimum occupancy from neighbouring collisions" };
136+ Configurable<float > maxOccupancy{" maxOccupancy" , -1 , " maximum occupancy from neighbouring collisions" };
152137 Configurable<float > minIR{" minIR" , -1 , " minimum IR (kHz) collisions" };
153138 Configurable<float > maxIR{" maxIR" , -1 , " maximum IR (kHz) collisions" };
154139 } eventCuts;
155140
156- ConfigurableAxis occupancyBins{" occupancyBins" ,
157- {VARIABLE_WIDTH, 0 .0f , 250 .0f , 500 .0f , 750 .0f ,
158- 1000 .0f , 1500 .0f , 2000 .0f , 3000 .0f , 4500 .0f ,
159- 6000 .0f , 8000 .0f , 10000 .0f , 50000 .0f },
160- " Occupancy" };
161- ConfigurableAxis centralityBins{
162- " centralityBins" ,
163- {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 },
164- " Centrality" };
141+ ConfigurableAxis occupancyBins{" occupancyBins" , {VARIABLE_WIDTH, 0 .0f , 250 .0f , 500 .0f , 750 .0f , 1000 .0f , 1500 .0f , 2000 .0f , 3000 .0f , 4500 .0f , 6000 .0f , 8000 .0f , 10000 .0f , 50000 .0f }, " Occupancy" };
142+ ConfigurableAxis centralityBins{" centralityBins" , {VARIABLE_WIDTH, 0 , 5 , 10 , 20 , 30 , 40 , 50 , 60 , 70 , 80 , 90 , 100 }, " Centrality" };
165143 ConfigurableAxis irBins{" irBins" , {500 , 0 , 50 }, " Interaction rate (kHz)" };
166144
167145 Service<o2::framework::O2DatabasePDG> pdg;
168146
169147 Service<ccdb::BasicCCDBManager> ccdb;
170- Configurable<int64_t > ccdbNoLaterThan{
171- " ccdbNoLaterThan" ,
172- std::chrono::duration_cast<std::chrono::milliseconds>(
173- std::chrono::system_clock::now ().time_since_epoch ())
174- .count (),
175- " latest acceptable timestamp of creation for the object" };
176- Configurable<std::string> ccdbUrl{" ccdbUrl" , " http://alice-ccdb.cern.ch" ,
177- " url of the ccdb repository" };
148+ Configurable<int64_t > ccdbNoLaterThan{" ccdbNoLaterThan" , std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now ().time_since_epoch ()).count (), " latest acceptable timestamp of creation for the object" };
149+ Configurable<std::string> ccdbUrl{" ccdbUrl" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
178150
179151 int mRunNumber {-1 };
180152 uint64_t mSOR {0 };
@@ -1061,7 +1033,7 @@ struct DndetaMFTPbPb {
10611033 if (p != nullptr ) {
10621034 charge = p->Charge ();
10631035 }
1064- return std::abs (charge) >= 3 . ;
1036+ return std::abs (charge) >= kMinCharge ;
10651037 }
10661038
10671039 template <bool isCent, typename P>
@@ -1371,27 +1343,27 @@ struct DndetaMFTPbPb {
13711343 bool gtZeroColl = false ;
13721344 int gtOneColl = 0 ;
13731345
1374- float cgen = -1 ;
1346+ float cGen = -1 ;
13751347 if constexpr (has_reco_cent<C>) {
1376- float crec_min = 105 .f ;
1348+ float crecMin = 105 .f ;
13771349 for (const auto & collision : collisions) {
13781350 if (isGoodEvent<false >(collision)) {
13791351 float c = getRecoCent (collision);
1380- if (c < crec_min ) {
1381- crec_min = c;
1352+ if (c < crecMin ) {
1353+ crecMin = c;
13821354 }
13831355 }
13841356 }
1385- if (cgen < 0 )
1386- cgen = crec_min ;
1357+ if (cGen < 0 )
1358+ cGen = crecMin ;
13871359 }
13881360
1389- float occgen = -1 .;
1361+ float occGen = -1 .;
13901362 for (const auto & collision : collisions) {
13911363 if (isGoodEvent<false >(collision)) {
13921364 float o = getOccupancy (collision, eventCuts.occupancyEstimator );
1393- if (o > occgen ) {
1394- occgen = o;
1365+ if (o > occGen ) {
1366+ occGen = o;
13951367 }
13961368 }
13971369 }
@@ -1449,9 +1421,9 @@ struct DndetaMFTPbPb {
14491421 }
14501422
14511423 if constexpr (has_reco_cent<C>) {
1452- registry.fill (HIST (" Events/Centrality/EvtEffGen" ), 3 ., cgen, occgen );
1424+ registry.fill (HIST (" Events/Centrality/EvtEffGen" ), 3 ., cGen, occGen );
14531425 } else {
1454- registry.fill (HIST (" Events/EvtEffGen" ), 3 ., occgen );
1426+ registry.fill (HIST (" Events/EvtEffGen" ), 3 ., occGen );
14551427 }
14561428
14571429 auto perCollMCsample = mcSample->sliceByCached (
@@ -1461,7 +1433,7 @@ struct DndetaMFTPbPb {
14611433
14621434 if (gtOneColl > 1 ) {
14631435 if constexpr (has_reco_cent<C>) {
1464- qaregistry.fill (HIST (" Events/Centrality/SplitMult" ), nchrg, zvtxMC, cgen );
1436+ qaregistry.fill (HIST (" Events/Centrality/SplitMult" ), nchrg, zvtxMC, cGen );
14651437 } else {
14661438 qaregistry.fill (HIST (" Events/SplitMult" ), nchrg, zvtxMC);
14671439 }
@@ -1470,17 +1442,17 @@ struct DndetaMFTPbPb {
14701442 auto nCharged = countPart (particles);
14711443 if constexpr (has_reco_cent<C>) {
14721444 registry.fill (HIST (" Events/Centrality/NtrkZvtxGen_t" ), nCharged, zvtxMC,
1473- cgen );
1445+ cGen );
14741446 } else {
14751447 registry.fill (HIST (" Events/NtrkZvtxGen_t" ), nCharged, zvtxMC);
14761448 }
14771449
1478- fillHistMC<has_reco_cent<C>>(particles, cgen, occgen , zvtxMC, gtZeroColl);
1450+ fillHistMC<has_reco_cent<C>>(particles, cGen, occGen , zvtxMC, gtZeroColl);
14791451
14801452 if (collisions.size () == 0 ) {
14811453 if constexpr (has_reco_cent<C>) {
14821454 qaregistry.fill (HIST (" Events/Centrality/NotFoundEventZvtx" ),
1483- mcCollision.posZ (), cgen );
1455+ mcCollision.posZ (), cGen );
14841456 } else {
14851457 qaregistry.fill (HIST (" Events/NotFoundEventZvtx" ), mcCollision.posZ ());
14861458 }
@@ -1574,27 +1546,27 @@ struct DndetaMFTPbPb {
15741546 FiltBestTracks const & besttracks)
15751547 {
15761548 bool gtZeroColl = false ;
1577- float cgen = -1 ;
1549+ float cGen = -1 ;
15781550 if constexpr (has_reco_cent<C>) {
1579- float crec_min = 105 .f ;
1551+ float crecMin = 105 .f ;
15801552 for (const auto & collision : collisions) {
15811553 if (isGoodEvent<false >(collision)) {
15821554 float c = getRecoCent (collision);
1583- if (c < crec_min ) {
1584- crec_min = c;
1555+ if (c < crecMin ) {
1556+ crecMin = c;
15851557 }
15861558 }
15871559 }
1588- if (cgen < 0 )
1589- cgen = crec_min ;
1560+ if (cGen < 0 )
1561+ cGen = crecMin ;
15901562 }
15911563
1592- float occgen = -1 .;
1564+ float occGen = -1 .;
15931565 for (const auto & collision : collisions) {
15941566 if (isGoodEvent<false >(collision)) {
15951567 float o = getOccupancy (collision, eventCuts.occupancyEstimator );
1596- if (o > occgen ) {
1597- occgen = o;
1568+ if (o > occGen ) {
1569+ occGen = o;
15981570 }
15991571 }
16001572 }
@@ -1637,26 +1609,26 @@ struct DndetaMFTPbPb {
16371609 }
16381610
16391611 if constexpr (has_reco_cent<C>) {
1640- registry.fill (HIST (" Events/Centrality/EvtEffGen" ), 3 ., cgen, occgen );
1612+ registry.fill (HIST (" Events/Centrality/EvtEffGen" ), 3 ., cGen, occGen );
16411613 } else {
1642- registry.fill (HIST (" Events/EvtEffGen" ), 3 ., occgen );
1614+ registry.fill (HIST (" Events/EvtEffGen" ), 3 ., occGen );
16431615 }
16441616
16451617 auto zvtxMC = mcCollision.posZ ();
16461618 auto nCharged = countPart (particles);
16471619 if constexpr (has_reco_cent<C>) {
16481620 registry.fill (HIST (" Events/Centrality/NtrkZvtxGen_t" ), nCharged, zvtxMC,
1649- cgen );
1621+ cGen );
16501622 } else {
16511623 registry.fill (HIST (" Events/NtrkZvtxGen_t" ), nCharged, zvtxMC);
16521624 }
16531625
1654- fillHistMC<has_reco_cent<C>>(particles, cgen, occgen , zvtxMC, gtZeroColl);
1626+ fillHistMC<has_reco_cent<C>>(particles, cGen, occGen , zvtxMC, gtZeroColl);
16551627
16561628 if (collisions.size () == 0 ) {
16571629 if constexpr (has_reco_cent<C>) {
16581630 qaregistry.fill (HIST (" Events/Centrality/NotFoundEventZvtx" ),
1659- mcCollision.posZ (), cgen );
1631+ mcCollision.posZ (), cGen );
16601632 } else {
16611633 qaregistry.fill (HIST (" Events/NotFoundEventZvtx" ), mcCollision.posZ ());
16621634 }
0 commit comments