@@ -62,10 +62,14 @@ DECLARE_SOA_TABLE(MuonTrackCuts, "AOD", "DQANAMUONCUTSA", dqanalysisflags::IsMuo
6262}
6363
6464// Declarations of various short names
65+ using MyEvents = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended>;
6566using MyEventsSelected = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::EventCuts>;
67+ using MyEventsVtxCov = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::ReducedEventsVtxCov>;
68+ using MyEventsVtxCovSelected = soa::Join<aod::ReducedEvents, aod::ReducedEventsExtended, aod::ReducedEventsVtxCov, aod::EventCuts>;
6669
6770using MyPairCandidatesSelected = soa::Join<aod::Dimuons, aod::DimuonsExtra>;
68- using MyMuonTracksSelected = soa::Join<aod::ReducedMuonsAssoc, aod::MuonTrackCuts>;
71+ using MyMuonTracks = soa::Join<aod::ReducedMuons, aod::ReducedMuonsExtra>;
72+ using MyMuonAssocsSelected = soa::Join<aod::ReducedMuonsAssoc, aod::MuonTrackCuts>;
6973
7074// bit maps used for the Fill functions of the VarManager
7175constexpr static uint32_t gkEventFillMap = VarManager::ObjTypes::ReducedEvent | VarManager::ObjTypes::ReducedEventExtended;
@@ -74,8 +78,15 @@ constexpr static uint32_t gkMuonFillMap = VarManager::ObjTypes::ReducedMuon | Va
7478struct DqJPsiMuonCorrelations {
7579
7680 // Configurables for the dilepton and dilepton cuts
77- Configurable<float > fConfigDileptonLowMass {" cfgDileptonLowMass" , 2 ., " Low mass cut for the dileptons used in analysis" };
78- Configurable<float > fConfigDileptonHighMass {" cfgDileptonHighMass" , 4 ., " High mass cut for the dileptons used in analysis" };
81+ Configurable<float > fConfigDileptonLowMass {" cfgDileptonLowMass" , 2.8 , " Low mass cut for the dileptons used in analysis" };
82+ Configurable<float > fConfigDileptonHighMass {" cfgDileptonHighMass" , 3.4 , " High mass cut for the dileptons used in analysis" };
83+ Configurable<float > fConfigBackgroundLowMass {" cfgBackgroundLowMass" , 2.5 , " Low mass cut for the background used in analysis" };
84+ Configurable<float > fConfigBackgroundHighMass {" cfgBackgroundHighMass" , 3.7 , " High mass cut for the background used in analysis" };
85+
86+ ConfigurableAxis axisPt{" axisPt" , {VARIABLE_WIDTH , 1 .0f , 2 .0f , 3 .0f , 4 .0f , 5 .0f , 6 .0f , 7 .0f , 8 .0f , 10 .0f , 12 .0f , 14 .0f , 16 .0f , 18 .0f , 20 .0f }, " p_{T} (GeV/c)" };
87+ ConfigurableAxis axisInvMass{" axisInvMass" , {80 , 1 .0f , 5 .0f }, " Invariant Mass (GeV/c^{2})" };
88+ ConfigurableAxis axisDeltaPhi{" axisDeltaPhi" , {10 , -constants::math::PI /2 .0f , 3 .0f *constants::math::PI /2 .0f }, " #Delta#phi (rad)" };
89+ ConfigurableAxis axisDeltaEta{" axisDeltaEta" , {10 , -2 .0f , 2 .0f }, " #Delta#eta" };
7990
8091 // Connect to ccdb
8192 Service<ccdb::BasicCCDBManager> ccdb;
@@ -111,11 +122,17 @@ struct DqJPsiMuonCorrelations {
111122
112123 // nMuons = 0;
113124 // nEvents = 0;
125+
126+ registry.add (" h2dDimuonPtInvVsInvMass" , " h2dDimuonPtInvVsInvMass" , kTH2D , {axisInvMass, axisPt});
127+ registry.add (" h2dDimuonMuonDeltaEtaVsMuonPtSignal" , " h2dDimuonMuonDeltaEtaVsMuonPtSignal" , kTH2D , {axisDeltaEta, axisPt});
128+ registry.add (" h2dDimuonMuonDeltaPhiVsMuonPtSignal" , " h2dDimuonMuonDeltaPhiVsMuonPtSignal" , kTH2D , {axisDeltaPhi, axisPt});
129+ registry.add (" h2dDimuonMuonDeltaEtaVsMuonPtBackground" , " h2dDimuonMuonDeltaEtaVsMuonPtBackground" , kTH2D , {axisDeltaEta, axisPt});
130+ registry.add (" h2dDimuonMuonDeltaPhiVsMuonPtBackground" , " h2dDimuonMuonDeltaPhiVsMuonPtBackground" , kTH2D , {axisDeltaPhi, axisPt});
114131 }
115132
116133 // Template function to run pair - muon combinations
117- template <int TCandidateType, uint32_t TEventFillMap, uint32_t TMuonFillMap, typename TEvent, typename TMuons , typename TDileptons>
118- void runDileptonMuon (TEvent const & event, TMuons const & muons , TDileptons const & dileptons)
134+ template <int TCandidateType, uint32_t TEventFillMap, uint32_t TMuonFillMap, typename TEvent, typename TMuonAssocs, typename TMuonTracks , typename TDileptons>
135+ void runDileptonMuon (TEvent const & event, TMuonAssocs const & assocs, TMuonTracks const & /* tracks */ , TDileptons const & dileptons)
119136 {
120137 // VarManager::ResetValues(0, VarManager::kNVars, fValuesHadron);
121138 VarManager::ResetValues (0 , VarManager::kNVars , fValuesMuon );
@@ -152,12 +169,34 @@ struct DqJPsiMuonCorrelations {
152169 // nEvents++;
153170 // LOG(info) << "Total number of events processed: " << nEvents << std::endl;
154171
172+ if (dileptons.size () > 0 ) {
173+
174+ for (auto & dilepton : dileptons) {
175+ VarManager::FillTrack<fgDimuonsFillMap>(dilepton, fValuesDilepton );
176+ registry.fill (HIST (" h2dDimuonPtInvVsInvMass" ), dilepton.mass (), dilepton.pt ());
155177
178+ for (auto & assoc : assocs) {
179+ if (!assoc.isMuonSelected_bit (0 )) {
180+ continue ;
181+ }
182+ auto track = assoc.template reducedmuon_as <TMuonTracks>();
183+
184+ if (dilepton.mass () > fConfigDileptonLowMass && dilepton.mass () < fConfigDileptonHighMass ) {
185+ registry.fill (HIST (" h2dDimuonMuonDeltaEtaVsMuonPtSignal" ), track.eta () - dilepton.eta (), track.pt ());
186+ registry.fill (HIST (" h2dDimuonMuonDeltaPhiVsMuonPtSignal" ), track.phi () - dilepton.phi (), track.pt ());
187+ } else if (dilepton.mass () > fConfigBackgroundLowMass && dilepton.mass () < fConfigBackgroundHighMass ) {
188+ registry.fill (HIST (" h2dDimuonMuonDeltaEtaVsMuonPtBackground" ), track.eta () - dilepton.eta (), track.pt ());
189+ registry.fill (HIST (" h2dDimuonMuonDeltaPhiVsMuonPtBackground" ), track.phi () - dilepton.phi (), track.pt ());
190+ }
191+ }
192+
193+ }
194+ }
156195 }
157196
158- void processSkimmedDimuon (MyEventsSelected::iterator const & event, MyMuonTracksSelected const & muons , soa::Filtered<MyPairCandidatesSelected> const & dileptons)
197+ void processSkimmedDimuon (MyEventsSelected::iterator const & event, MyMuonAssocsSelected const & muonassocs, MyMuonTracks const & muontracks , soa::Filtered<MyPairCandidatesSelected> const & dileptons)
159198 {
160- runDileptonMuon<VarManager::kDecayToMuMu , gkEventFillMap, gkMuonFillMap>(event, muons , dileptons);
199+ runDileptonMuon<VarManager::kDecayToMuMu , gkEventFillMap, gkMuonFillMap>(event, muonassocs, muontracks , dileptons);
161200 }
162201 void processDummy (MyEvents&)
163202 {
0 commit comments