@@ -165,6 +165,54 @@ DECLARE_SOA_TABLE(CF2ProngTracks, "AOD", "CF2PRONGTRACK", //! Reduced track tabl
165165using CF2ProngTrack = CF2ProngTracks::iterator;
166166// ------
167167
168+ // adding table for systematic
169+ // ---- systematics bit layout (cut × WP) ----
170+ namespace cf2prngcuttrack
171+ {
172+
173+ // Keys to refer back to collisions/tracks (handy for checks)
174+ DECLARE_SOA_INDEX_COLUMN_FULL (CFTrackProng0, cfTrackProng0, int , CFTracks, " _0" );
175+ DECLARE_SOA_INDEX_COLUMN_FULL (CFTrackProng1, cfTrackProng1, int , CFTracks, " _1" );
176+
177+ // Kinematics + decay (to keep downstream code unchanged)
178+ DECLARE_SOA_COLUMN (Pt, pt, float );
179+ DECLARE_SOA_COLUMN (Eta, eta, float );
180+ DECLARE_SOA_COLUMN (Phi, phi, float );
181+ DECLARE_SOA_COLUMN (InvMass, invMass, float );
182+ DECLARE_SOA_COLUMN (Decay, decay, uint8_t );
183+
184+ // Systematics bitmasks (flattened cut × WP)
185+ DECLARE_SOA_COLUMN (SelMask0, selMask0, uint64_t ); // bits [0..63]
186+ DECLARE_SOA_COLUMN (SelMask1, selMask1, uint64_t ); // bits [64..127]
187+
188+ // Cut categories; WP index is handled separately
189+ enum CutId : uint8_t {
190+ kCutCosPA , // cosPA
191+ kCutDcaDau , // DCA(daughters)
192+ kCutDcaPi , // DCA(pi→PV)
193+ kCutDcaPr , // DCA(pr→PV)
194+ kCutRadMin , // radmin
195+ kCutLT , // lifetime
196+ kCutPID , // PID
197+ kNCuts // to count total number of systematic cuts
198+ };
199+ static constexpr int kMaxWP = 2 ; // reserve 16 WPs per cut
200+ static constexpr int kTotalBits = kNCuts * kMaxWP ; // total bit capacity
201+
202+ } // namespace cf2prngcuttrack
203+
204+ // Self-contained “systematics” table
205+ DECLARE_SOA_TABLE (CF2PrngCutTracks, " AOD" , " CF2PRNGCUTTRACK" ,
206+ o2::soa::Index<>,
207+ cftrack::CFCollisionId,
208+ cf2prngcuttrack::CFTrackProng0Id,
209+ cf2prngcuttrack::CFTrackProng1Id,
210+ cf2prngcuttrack::Pt, cf2prngcuttrack::Eta, cf2prngcuttrack::Phi,
211+ cf2prngcuttrack::InvMass, cf2prngcuttrack::Decay,
212+ cf2prngcuttrack::SelMask0, cf2prngcuttrack::SelMask1);
213+ using CF2PrngCutTrack = CF2PrngCutTracks::iterator;
214+ // /-------------------
215+
168216namespace cf2prongtrackml
169217{
170218DECLARE_SOA_COLUMN (MlProbD0, mlProbD0, std::vector<float >); // !
0 commit comments