@@ -90,18 +90,21 @@ struct v0selector {
9090 Configurable<float > cutAPL2{" cutAPL2" , -0.69 , " cutAPL2" };
9191 Configurable<float > cutAPL3{" cutAPL3" , 0.5 , " cutAPL3" };
9292 Configurable<bool > produceV0ID{" produceV0ID" , false , " Produce additional V0ID table" };
93+ Configurable<bool > produceCascID{" produceCascID" , false , " Produce additional CascID table" };
9394
9495 enum { // Reconstructed V0
9596 kUndef = -1 ,
9697 kGamma = 0 ,
9798 kK0S = 1 ,
9899 kLambda = 2 ,
99100 kAntiLambda = 3 ,
100- kOmega = 4
101+ kOmega = 4 ,
102+ kAntiOmega = 5
101103 };
102104
103105 Produces<o2::aod::V0Bits> v0bits;
104106 Produces<o2::aod::V0MapID> v0mapID;
107+ Produces<o2::aod::CascMapID> cascMapID;
105108
106109 // int checkV0(const array<float, 3>& ppos, const array<float, 3>& pneg)
107110 int checkV0 (const float alpha, const float qt)
@@ -116,7 +119,7 @@ struct v0selector {
116119
117120 // // K0S cuts
118121 // const float cutQTK0S[2] = {0.1075, 0.215};
119- // const float cutAPK0S[2] = {0.199, 0.8}; // parameters for curved QT cut
122+ // const float cutAPK0S[2] = {0.199, 0.8}; // parameters for curved QT cut
120123
121124 // // Lambda & A-Lambda cuts
122125 // const float cutQTL = 0.03;
@@ -158,6 +161,12 @@ struct v0selector {
158161 return kUndef ;
159162 }
160163
164+ int checkCascade ()
165+ {
166+ // to be implemented;
167+ return kOmega ;
168+ }
169+
161170 // Configurables
162171 Configurable<float > v0max_mee{" v0max_mee" , 0.1 , " max mee for photon" };
163172 Configurable<float > maxpsipair{" maxpsipair" , 1.6 , " max psi_pair for photon" };
@@ -180,6 +189,7 @@ struct v0selector {
180189 {
181190 if (fillhisto) {
182191 registry.add (" hV0Candidate" , " hV0Candidate" , HistType::kTH1F , {{2 , 0 .5f , 2 .5f }});
192+ registry.add (" hCascCandidate" , " hCascCandidate" , HistType::kTH1F , {{2 , 0 .5f , 2 .5f }});
183193 registry.add (" hMassGamma" , " hMassGamma" , HistType::kTH2F , {{900 , 0 .0f , 90 .0f }, {100 , 0 .0f , 0 .1f }});
184194 registry.add (" hGammaRxy" , " hGammaRxy" , HistType::kTH2F , {{1800 , -90 .0f , 90 .0f }, {1800 , -90 .0f , 90 .0f }});
185195 registry.add (" hMassK0S" , " hMassK0S" , HistType::kTH2F , {{900 , 0 .0f , 90 .0f }, {100 , 0.45 , 0.55 }});
@@ -203,7 +213,7 @@ struct v0selector {
203213 }
204214 }
205215
206- void process (aod::V0Datas const & V0s, FullTracksExt const & tracks, aod::Collisions const &)
216+ void process (aod::V0Datas const & V0s, aod::CascDatas const & Cascs, FullTracksExt const & tracks, aod::Collisions const &)
207217 {
208218 std::vector<uint8_t > pidmap;
209219 pidmap.clear ();
@@ -214,6 +224,11 @@ struct v0selector {
214224 if (produceV0ID.value ) {
215225 v0pidmap.resize (V0s.size (), -1 );
216226 }
227+ std::vector<int8_t > cascpidmap;
228+ cascpidmap.clear ();
229+ if (produceCascID.value ) {
230+ cascpidmap.resize (V0s.size (), kUndef );
231+ }
217232 for (auto & V0 : V0s) {
218233 // if (!(V0.posTrack_as<FullTracksExt>().trackType() & o2::aod::track::TPCrefit)) {
219234 // continue;
@@ -380,6 +395,20 @@ struct v0selector {
380395 v0mapID (v0pidmap[V0.globalIndex ()]);
381396 }
382397 }
398+ for (const auto & Casc : Cascs) {
399+ if (fillhisto) {
400+ registry.fill (HIST (" hCascCandidate" ), 1 );
401+ }
402+
403+ // topological selections
404+
405+ if (fillhisto) {
406+ registry.fill (HIST (" hCascCandidate" ), 2 );
407+ }
408+
409+ const float mOmega = Casc.mOmega ();
410+
411+ } // end of Casc loop
383412 for (auto & track : tracks) {
384413 // printf("setting pidmap[%lld] = %d\n",track.globalIndex(),pidmap[track.globalIndex()]);
385414 v0bits (pidmap[track.globalIndex ()]);
0 commit comments