|
56 | 56 | #include "DetectorsBase/Propagator.h" |
57 | 57 | #include "DetectorsBase/GeometryManager.h" |
58 | 58 | #include "EventFiltering/Zorro.h" |
59 | | -#include "Framework/HistogramRegistry.h" |
60 | 59 |
|
61 | 60 | using std::cout; |
62 | 61 | using std::endl; |
@@ -182,12 +181,13 @@ struct TableMaker { |
182 | 181 | struct : ConfigurableGroup { |
183 | 182 | Configurable<bool> fConfigRunZorro{"cfgRunZorro", false, "Enable event selection with zorro [WARNING: under debug, do not enable!]"}; |
184 | 183 | Configurable<string> fConfigZorroTrigMask{"cfgZorroTriggerMask", "fDiMuon", "DQ Trigger masks: fSingleE,fLMeeIMR,fLMeeHMR,fDiElectron,fSingleMuLow,fSingleMuHigh,fDiMuon"}; |
| 184 | + Configurable<bool> fConfigRunZorroSel{"cfgRunZorroSel", false, "Select events with trigger mask"}; |
185 | 185 | } useZorro; |
186 | 186 |
|
187 | 187 | struct : ConfigurableGroup { |
188 | 188 | Configurable<string> fConfigCcdbUrl{"useCCDBConfigurations.ccdb-url", "http://alice-ccdb.cern.ch", "url of the ccdb repository"}; |
189 | 189 | Configurable<string> fConfigCcdbPathTPC{"useCCDBConfigurations.ccdb-path-tpc", "Users/z/zhxiong/TPCPID/PostCalib", "base path to the ccdb object"}; |
190 | | - Configurable<string> fConfigCcdbPathZorro{"useCCDBConfigurations.ccdb-path-zorro", "Users/r/rlietava/EventFiltering/OTS/", "base path to the ccdb object for zorro"}; |
| 190 | + Configurable<string> fConfigCcdbPathZorro{"useCCDBConfigurations.ccdb-path-zorro", "/Users/m/mpuccio/EventFiltering/OTS/", "base path to the ccdb object for zorro"}; |
191 | 191 | } useCCDBConfigurations; |
192 | 192 |
|
193 | 193 | Configurable<int64_t> fConfigNoLaterThan{"ccdb-no-later-than", std::chrono::duration_cast<std::chrono::milliseconds>(std::chrono::system_clock::now().time_since_epoch()).count(), "latest acceptable timestamp of creation for the object"}; |
@@ -223,8 +223,6 @@ struct TableMaker { |
223 | 223 | bool fDoDetailedQA = false; // Bool to set detailed QA true, if QA is set true |
224 | 224 | int fCurrentRun; // needed to detect if the run changed and trigger update of calibrations etc. |
225 | 225 |
|
226 | | - HistogramRegistry registry{"registry"}; |
227 | | - |
228 | 226 | // TODO: filter on TPC dedx used temporarily until electron PID will be improved |
229 | 227 | Filter barrelSelectedTracks = ifnode(fIsRun2.node() == true, aod::track::trackType == uint8_t(aod::track::Run2Track), aod::track::trackType == uint8_t(aod::track::Track)) && o2::aod::track::pt >= fConfigBarrelTrackPtLow && nabs(o2::aod::track::eta) <= fConfigBarrelTrackMaxAbsEta && o2::aod::track::tpcSignal >= fConfigMinTpcSignal && o2::aod::track::tpcSignal <= fConfigMaxTpcSignal && o2::aod::track::tpcChi2NCl < 4.0f && o2::aod::track::itsChi2NCl < 36.0f; |
230 | 228 |
|
@@ -448,12 +446,14 @@ struct TableMaker { |
448 | 446 | if (useZorro.fConfigRunZorro) { |
449 | 447 | zorro.setBaseCCDBPath(useCCDBConfigurations.fConfigCcdbPathZorro.value); |
450 | 448 | zorro.initCCDB(fCCDB.service, fCurrentRun, bc.timestamp(), useZorro.fConfigZorroTrigMask.value); |
451 | | - |
452 | | - zorro.populateHistRegistry(registry, fCurrentRun); |
453 | | - |
454 | | - if (zorro.isSelected(bc.globalBC())) { |
| 449 | + zorro.populateExternalHists(fCurrentRun, reinterpret_cast<TH2D*>(fStatsList->At(3)), reinterpret_cast<TH2D*>(fStatsList->At(4))); |
| 450 | + bool zorroSel = zorro.isSelected(bc.globalBC(), 100UL, reinterpret_cast<TH2D*>(fStatsList->At(4))); |
| 451 | + if (zorroSel) { |
455 | 452 | tag |= (static_cast<uint64_t>(true) << 56); // the same bit is used for this zorro selections from ccdb |
456 | 453 | } |
| 454 | + if (useZorro.fConfigRunZorroSel && (!zorroSel || !fEventCut->IsSelected(VarManager::fgValues))) { |
| 455 | + return; |
| 456 | + } |
457 | 457 | } else { |
458 | 458 | if (!fEventCut->IsSelected(VarManager::fgValues)) { |
459 | 459 | return; |
@@ -826,7 +826,7 @@ struct TableMaker { |
826 | 826 | } |
827 | 827 | } |
828 | 828 | } // end if constexpr (TMuonFillMap) |
829 | | - } // end fullSkimming() |
| 829 | + } // end fullSkimming() |
830 | 830 |
|
831 | 831 | // Templated function instantianed for all of the process functions |
832 | 832 | template <uint32_t TEventFillMap, uint32_t TTrackFillMap, uint32_t TMuonFillMap, typename TEvent, typename TTracks, typename TMuons, typename AssocTracks, typename AssocMuons> |
@@ -909,12 +909,14 @@ struct TableMaker { |
909 | 909 | if (useZorro.fConfigRunZorro) { |
910 | 910 | zorro.setBaseCCDBPath(useCCDBConfigurations.fConfigCcdbPathZorro.value); |
911 | 911 | zorro.initCCDB(fCCDB.service, fCurrentRun, bc.timestamp(), useZorro.fConfigZorroTrigMask.value); |
912 | | - |
913 | | - zorro.populateHistRegistry(registry, fCurrentRun); |
914 | | - |
915 | | - if (zorro.isSelected(bc.globalBC())) { |
| 912 | + zorro.populateExternalHists(fCurrentRun, reinterpret_cast<TH2D*>(fStatsList->At(3)), reinterpret_cast<TH2D*>(fStatsList->At(4))); |
| 913 | + bool zorroSel = zorro.isSelected(bc.globalBC(), 100UL, reinterpret_cast<TH2D*>(fStatsList->At(4))); |
| 914 | + if (zorroSel) { |
916 | 915 | tag |= (static_cast<uint64_t>(true) << 56); // the same bit is used for this zorro selections from ccdb |
917 | 916 | } |
| 917 | + if (useZorro.fConfigRunZorroSel && (!zorroSel || !fEventCut->IsSelected(VarManager::fgValues))) { |
| 918 | + return; |
| 919 | + } |
918 | 920 | } else { |
919 | 921 | if (!fEventCut->IsSelected(VarManager::fgValues)) { |
920 | 922 | return; |
@@ -1187,22 +1189,22 @@ struct TableMaker { |
1187 | 1189 | muon.matchScoreMCHMFT(), muon.mchBitMap(), muon.midBitMap(), |
1188 | 1190 | muon.midBoards(), muon.trackType(), VarManager::fgValues[VarManager::kMuonDCAx], VarManager::fgValues[VarManager::kMuonDCAy], |
1189 | 1191 | muon.trackTime(), muon.trackTimeRes()); |
1190 | | - } else { |
1191 | | - muonExtra(muon.nClusters(), muon.pDca(), muon.rAtAbsorberEnd(), |
1192 | | - muon.chi2(), muon.chi2MatchMCHMID(), muon.chi2MatchMCHMFT(), |
1193 | | - muon.matchScoreMCHMFT(), muon.mchBitMap(), muon.midBitMap(), |
1194 | | - muon.midBoards(), muon.trackType(), muon.fwdDcaX(), muon.fwdDcaY(), |
1195 | | - muon.trackTime(), muon.trackTimeRes()); |
1196 | | - } |
| 1192 | + } else { |
| 1193 | + muonExtra(muon.nClusters(), muon.pDca(), muon.rAtAbsorberEnd(), |
| 1194 | + muon.chi2(), muon.chi2MatchMCHMID(), muon.chi2MatchMCHMFT(), |
| 1195 | + muon.matchScoreMCHMFT(), muon.mchBitMap(), muon.midBitMap(), |
| 1196 | + muon.midBoards(), muon.trackType(), muon.fwdDcaX(), muon.fwdDcaY(), |
| 1197 | + muon.trackTime(), muon.trackTimeRes()); |
| 1198 | + } |
1197 | 1199 |
|
1198 | | - muonCov(VarManager::fgValues[VarManager::kX], VarManager::fgValues[VarManager::kY], VarManager::fgValues[VarManager::kZ], VarManager::fgValues[VarManager::kPhi], VarManager::fgValues[VarManager::kTgl], muon.sign() / VarManager::fgValues[VarManager::kPt], |
1199 | | - VarManager::fgValues[VarManager::kMuonCXX], VarManager::fgValues[VarManager::kMuonCXY], VarManager::fgValues[VarManager::kMuonCYY], VarManager::fgValues[VarManager::kMuonCPhiX], VarManager::fgValues[VarManager::kMuonCPhiY], VarManager::fgValues[VarManager::kMuonCPhiPhi], |
1200 | | - VarManager::fgValues[VarManager::kMuonCTglX], VarManager::fgValues[VarManager::kMuonCTglY], VarManager::fgValues[VarManager::kMuonCTglPhi], VarManager::fgValues[VarManager::kMuonCTglTgl], VarManager::fgValues[VarManager::kMuonC1Pt2X], VarManager::fgValues[VarManager::kMuonC1Pt2Y], |
1201 | | - VarManager::fgValues[VarManager::kMuonC1Pt2Phi], VarManager::fgValues[VarManager::kMuonC1Pt2Tgl], VarManager::fgValues[VarManager::kMuonC1Pt21Pt2]); |
| 1200 | + muonCov(VarManager::fgValues[VarManager::kX], VarManager::fgValues[VarManager::kY], VarManager::fgValues[VarManager::kZ], VarManager::fgValues[VarManager::kPhi], VarManager::fgValues[VarManager::kTgl], muon.sign() / VarManager::fgValues[VarManager::kPt], |
| 1201 | + VarManager::fgValues[VarManager::kMuonCXX], VarManager::fgValues[VarManager::kMuonCXY], VarManager::fgValues[VarManager::kMuonCYY], VarManager::fgValues[VarManager::kMuonCPhiX], VarManager::fgValues[VarManager::kMuonCPhiY], VarManager::fgValues[VarManager::kMuonCPhiPhi], |
| 1202 | + VarManager::fgValues[VarManager::kMuonCTglX], VarManager::fgValues[VarManager::kMuonCTglY], VarManager::fgValues[VarManager::kMuonCTglPhi], VarManager::fgValues[VarManager::kMuonCTglTgl], VarManager::fgValues[VarManager::kMuonC1Pt2X], VarManager::fgValues[VarManager::kMuonC1Pt2Y], |
| 1203 | + VarManager::fgValues[VarManager::kMuonC1Pt2Phi], VarManager::fgValues[VarManager::kMuonC1Pt2Tgl], VarManager::fgValues[VarManager::kMuonC1Pt21Pt2]); |
1202 | 1204 | } |
1203 | 1205 | } |
1204 | 1206 | } // end if constexpr (TMuonFillMap) |
1205 | | - } // end fullSkimming() |
| 1207 | + } // end fullSkimming() |
1206 | 1208 |
|
1207 | 1209 | void DefineHistograms(TString histClasses) |
1208 | 1210 | { |
@@ -1287,6 +1289,13 @@ struct TableMaker { |
1287 | 1289 | histMuons->GetXaxis()->SetBinLabel(ib, (*cut).GetName()); |
1288 | 1290 | } |
1289 | 1291 | fStatsList->Add(histMuons); |
| 1292 | + |
| 1293 | + if (useZorro.fConfigRunZorro) { |
| 1294 | + TH2D* histZorroInfo = new TH2D("ZorroInfo", "Zorro information", 1, -0.5, 0.5, 1, -0.5, 0.5); |
| 1295 | + fStatsList->Add(histZorroInfo); |
| 1296 | + TH2D* histZorroSel = new TH2D("ZorroSel", "trigger of interested", 1, -0.5, 0.5, 1, -0.5, 0.5); |
| 1297 | + fStatsList->Add(histZorroSel); |
| 1298 | + } |
1290 | 1299 | } |
1291 | 1300 |
|
1292 | 1301 | // Produce barrel + muon tables ------------------------------------------------------------------------------------------------------------- |
|
0 commit comments