1616// / \author Nicolò Jacazio <nicolo.jacazio@cern.ch>, Universita del Piemonte Orientale (IT)
1717// /
1818
19- #include " GeometryContainer.h"
19+ #include " ALICE3/Core/FastTracker.h"
20+ #include " ALICE3/DataModel/OTFLUT.h"
2021
2122#include < CCDB/BasicCCDBManager.h>
22- #include < Framework/AnalysisDataModel.h>
23- #include < Framework/AnalysisHelpers.h>
2423#include < Framework/AnalysisTask.h>
25- #include < Framework/Configurable.h>
2624#include < Framework/HistogramRegistry.h>
27- #include < Framework/HistogramSpec.h>
28- #include < Framework/InitContext.h>
29- #include < Framework/OutputObjHeader.h>
3025#include < Framework/runDataProcessing.h>
3126
32- #include < TH1.h>
33- #include < TString.h>
34-
35- #include < cstdlib>
27+ #include < map>
3628#include < string>
3729#include < vector>
3830
@@ -42,40 +34,55 @@ struct OnTheFlyDetectorGeometryProvider {
4234 o2::framework::Configurable<std::vector<std::string>> detectorConfiguration{" detectorConfiguration" ,
4335 std::vector<std::string>{" $O2PHYSICS_ROOT/share/alice3/a3geometry_v3.ini" },
4436 " Paths of the detector geometry configuration files" };
37+ o2::framework::Produces<o2::aod::Timestamps> tableTimestamps;
4538 o2::framework::Service<o2::ccdb::BasicCCDBManager> ccdb;
39+
40+ bool ccdbIsInitialized = false ;
4641 void init (o2::framework::InitContext&)
4742 {
48- ccdb->setURL (" http://alice-ccdb.cern.ch" );
49- ccdb->setTimestamp (-1 );
50- o2::fastsim::GeometryContainer geometryContainer; // Checking that the geometry files can be accessed and loaded
51- geometryContainer.setCcdbManager (ccdb.operator ->());
52- LOG (info) << " On-the-fly detector geometry provider running." ;
53- if (detectorConfiguration.value .empty ()) {
54- LOG (fatal) << " No detector configuration files provided." ;
55- return ;
56- }
57- int idx = 0 ;
58- for (std::string& configFile : detectorConfiguration.value ) {
59- LOG (info) << " Loading detector geometry from configuration file: " << configFile;
60- histos.add <TH1 >(Form (" GeometryConfigFile_%d" , idx++), configFile.c_str (), o2::framework::HistType::kTH1D , {{1 , 0 , 1 }})->Fill (0.5 );
61- geometryContainer.addEntry (configFile);
62- }
43+ // o2::fastsim::GeometryContainer geometryContainer; // Checking that the geometry files can be accessed and loaded
44+ // geometryContainer.setCcdbManager(ccdb.operator->());
45+ // LOG(info) << "On-the-fly detector geometry provider running.";
46+ // if (detectorConfiguration.value.empty()) {
47+ // LOG(fatal) << "No detector configuration files provided.";
48+ // return;
49+ // }
50+ // int idx = 0;
51+ // for (std::string& configFile : detectorConfiguration.value) {
52+ // LOG(info) << "Loading detector geometry from configuration file: " << configFile;
53+ // histos.add<TH1>(Form("GeometryConfigFile_%d", idx++), configFile.c_str(), o2::framework::HistType::kTH1D, {{1, 0, 1}})->Fill(0.5);
54+ // geometryContainer.addEntry(configFile);
55+ // }
6356
64- // First we check that the magnetic field is consistent
65- const int nGeometries = geometryContainer.getNumberOfConfigurations ();
66- const float mMagneticField = geometryContainer.getFloatValue (0 , " global" , " magneticfield" );
67- for (int icfg = 0 ; icfg < nGeometries; ++icfg) {
68- const float cfgBfield = geometryContainer.getFloatValue (icfg, " global" , " magneticfield" );
69- if (std::abs (cfgBfield - mMagneticField ) > 1e-3 ) {
70- LOG (fatal) << " Inconsistent magnetic field values between configurations 0 and " << icfg << " : " << mMagneticField << " vs " << cfgBfield;
71- }
72- }
57+ // // First we check that the magnetic field is consistent
58+ // const int nGeometries = geometryContainer.getNumberOfConfigurations();
59+ // const float mMagneticField = geometryContainer.getFloatValue(0, "global", "magneticfield");
60+ // for (int icfg = 0; icfg < nGeometries; ++icfg) {
61+ // const float cfgBfield = geometryContainer.getFloatValue(icfg, "global", "magneticfield");
62+ // if (std::abs(cfgBfield - mMagneticField) > 1e-3) {
63+ // LOG(fatal) << "Inconsistent magnetic field values between configurations 0 and " << icfg << ": " << mMagneticField << " vs " << cfgBfield;
64+ // }
65+ // }
7366 LOG (info) << " Initialization completed" ;
7467 }
7568
69+ void initCCDB ()
70+ {
71+ if (!ccdbIsInitialized) {
72+ tableTimestamps (o2::upgrade::TimestampLUT); // c2b3d801393540b7bddb949d600b199f, ecacb915-3d70-11f0-ac6f-808de0f5250c
73+ ccdbIsInitialized = true ;
74+ LOG (info) << " CCDB initialization completed" ;
75+ }
76+ }
77+
7678 void process (o2::aod::McCollisions const & mcCollisions, o2::aod::McParticles const & mcParticles)
7779 {
78- LOG (debug) << " On-the-fly detector geometry provider processing " << mcCollisions.size () << " collisions and " << mcParticles.size () << " particles." ;
80+ initCCDB ();
81+ for (const auto & mcCollision : mcCollisions) {
82+ LOG (debug)<< " On-the-fly detector geometry provider processing " << mcCollision.size () << " collisions and " << mcParticles.size () << " particles." ;
83+ }
84+
85+ LOG (debug)<< " On-the-fly detector geometry provider processing " << mcCollisions.size () << " collisions and " << mcParticles.size () << " particles." ;
7986 }
8087};
8188
@@ -103,4 +110,4 @@ o2::framework::WorkflowSpec defineDataProcessing(o2::framework::ConfigContext co
103110 spec.push_back (adaptAnalysisTask<OnTheFlyDetectorGeometryUser>(cfgc));
104111#endif
105112 return spec;
106- }
113+ }
0 commit comments