3030
3131#include < string>
3232
33- using namespace o2 ;
34- using namespace o2 ::soa;
35- using namespace o2 ::framework;
36- using namespace o2 ::framework::expressions;
37-
3833struct testPV {
3934
4035 // Configurables
41- Configurable<std::string> ccdburl{" ccdb-url" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
36+ o2::framework:: Configurable<std::string> ccdburl{" ccdb-url" , " http://alice-ccdb.cern.ch" , " url of the ccdb repository" };
4237
43- struct : ConfigurableGroup {
38+ struct : o2::framework:: ConfigurableGroup {
4439 std::string prefix = " eventCut" ;
45- Configurable<int > cfgEventGeneratorId{" cfgEventGeneratorId" , -1 , " event generator index. e.g. select gap/signal events" };
46- Configurable<float > cfgChi2PerNcontribMax{" cfgChi2PerNcontribMax" , 1e+10 , " max. chi2/Ncontrib of PV" };
47- Configurable<float > cfgZvtxMin{" cfgZvtxMin" , -10 .f , " min. Zvtx" };
48- Configurable<float > cfgZvtxMax{" cfgZvtxMax" , 10 .f , " max. Zvtx" };
49- Configurable<bool > cfgRequireFT0AND{" cfgRequireFT0AND" , true , " require FT0AND" };
50- Configurable<bool > cfgRequireNoTFB{" cfgRequireNoTFB" , true , " require No time frame border" };
51- Configurable<bool > cfgRequireNoITSROFB{" cfgRequireNoITSROFB" , false , " require no ITS readout frame border" };
52- Configurable<bool > cfgRequireNoSameBunchPileup{" cfgRequireNoSameBunchPileup" , false , " require no same bunch pileup in event cut" };
53- Configurable<bool > cfgRequireGoodZvtxFT0vsPV{" cfgRequireGoodZvtxFT0vsPV" , false , " require good Zvtx between FT0 vs. PV in event cut" };
54- Configurable<bool > cfgRequireVertexITSTPC{" cfgRequireVertexITSTPC" , false , " require Vertex ITSTPC in event cut" }; // ITS-TPC matched track contributes PV.
55- Configurable<bool > cfgRequireVertexTOFmatched{" cfgRequireVertexTOFmatched" , false , " require Vertex TOFmatched in event cut" }; // ITS-TPC-TOF matched track contributes PV.
40+ o2::framework:: Configurable<int > cfgEventGeneratorId{" cfgEventGeneratorId" , -1 , " event generator index. e.g. select gap/signal events" };
41+ o2::framework:: Configurable<float > cfgChi2PerNcontribMax{" cfgChi2PerNcontribMax" , 1e+10 , " max. chi2/Ncontrib of PV" };
42+ o2::framework:: Configurable<float > cfgZvtxMin{" cfgZvtxMin" , -10 .f , " min. Zvtx" };
43+ o2::framework:: Configurable<float > cfgZvtxMax{" cfgZvtxMax" , 10 .f , " max. Zvtx" };
44+ o2::framework:: Configurable<bool > cfgRequireFT0AND{" cfgRequireFT0AND" , true , " require FT0AND" };
45+ o2::framework:: Configurable<bool > cfgRequireNoTFB{" cfgRequireNoTFB" , true , " require No time frame border" };
46+ o2::framework:: Configurable<bool > cfgRequireNoITSROFB{" cfgRequireNoITSROFB" , false , " require no ITS readout frame border" };
47+ o2::framework:: Configurable<bool > cfgRequireNoSameBunchPileup{" cfgRequireNoSameBunchPileup" , false , " require no same bunch pileup in event cut" };
48+ o2::framework:: Configurable<bool > cfgRequireGoodZvtxFT0vsPV{" cfgRequireGoodZvtxFT0vsPV" , false , " require good Zvtx between FT0 vs. PV in event cut" };
49+ o2::framework:: Configurable<bool > cfgRequireVertexITSTPC{" cfgRequireVertexITSTPC" , false , " require Vertex ITSTPC in event cut" }; // ITS-TPC matched track contributes PV.
50+ o2::framework:: Configurable<bool > cfgRequireVertexTOFmatched{" cfgRequireVertexTOFmatched" , false , " require Vertex TOFmatched in event cut" }; // ITS-TPC-TOF matched track contributes PV.
5651
5752 // for RCT
5853 o2::framework::Configurable<bool > cfgRequireGoodRCT{" cfgRequireGoodRCT" , true , " require good detector flag in run condtion table" };
@@ -62,14 +57,14 @@ struct testPV {
6257 } eventCut;
6358
6459 // for zorro
65- struct : ConfigurableGroup {
60+ struct : o2::framework:: ConfigurableGroup {
6661 std::string prefix = " zorroGroup" ;
67- Configurable<std::string> cfgTriggerName{" cfgTriggerName" , " fGlobalDimuon" , " desired software trigger name" };
68- Configurable<std::string> ccdbPathSoftwareTrigger{" ccdbPathSoftwareTrigger" , " EventFiltering/Zorro/" , " ccdb path for ZORRO objects" };
69- Configurable<uint64_t > bcMarginForSoftwareTrigger{" bcMarginForSoftwareTrigger" , 100 , " Number of BCs of margin for software triggers" };
62+ o2::framework:: Configurable<std::string> cfgTriggerName{" cfgTriggerName" , " fGlobalDimuon" , " desired software trigger name" };
63+ o2::framework:: Configurable<std::string> ccdbPathSoftwareTrigger{" ccdbPathSoftwareTrigger" , " EventFiltering/Zorro/" , " ccdb path for ZORRO objects" };
64+ o2::framework:: Configurable<uint64_t > bcMarginForSoftwareTrigger{" bcMarginForSoftwareTrigger" , 100 , " Number of BCs of margin for software triggers" };
7065 } zorroGroup;
7166
72- HistogramRegistry fRegistry {" fRegistry" };
67+ o2::framework:: HistogramRegistry fRegistry {" fRegistry" };
7368 Zorro zorro;
7469
7570 void init (o2::framework::InitContext&)
@@ -85,7 +80,7 @@ struct testPV {
8580 }
8681
8782 int mRunNumber {0 };
88- Service<o2::ccdb::BasicCCDBManager> ccdb;
83+ o2::framework:: Service<o2::ccdb::BasicCCDBManager> ccdb;
8984
9085 template <bool isTriggerAnalysis, typename TBC >
9186 void initCCDB (TBC const & bc)
@@ -105,26 +100,26 @@ struct testPV {
105100
106101 void addHistograms ()
107102 {
108- auto hCollisionCounter = fRegistry .add <TH1 >(" hCollisionCounter" , " collision counter" , kTH1D , {{2 , 0 .5f , 2 .5f }}, false );
103+ auto hCollisionCounter = fRegistry .add <TH1 >(" hCollisionCounter" , " collision counter" , o2::framework::HistType:: kTH1D , {{2 , 0 .5f , 2 .5f }}, false );
109104 hCollisionCounter->GetXaxis ()->SetBinLabel (1 , " all" );
110105 hCollisionCounter->GetXaxis ()->SetBinLabel (2 , " accepted" );
111106
112- fRegistry .add (" Vertex/hZvtx" , " vertex z; Z_{vtx} (cm)" , kTH1F , {{100 , -50 , +50 }}, false );
113- fRegistry .add (" Vertex/hNContrib" , " Number of PV contributors;N_{contrib}" , kTH1F , {{101 , -0.5 , 100.5 }}, false );
114- fRegistry .add (" Vertex/hChi2" , " vertex chi2;#chi^{2}/N_{contrib}" , kTH1F , {{100 , 0 , 10 }}, false );
115- fRegistry .add (" Vertex/hChi2vsNContrib" , " vertex #chi^{2}/N_{contrib} vs. N_{contrib};N_{contrib};#chi^{2}/N_{contrib}" , kTH2F , {{101 , -0.5 , 100.5 }, {100 , 0 , 10 }}, false );
107+ fRegistry .add (" Vertex/hZvtx" , " vertex z; Z_{vtx} (cm)" , o2::framework::HistType:: kTH1F , {{100 , -50 , +50 }}, false );
108+ fRegistry .add (" Vertex/hNContrib" , " Number of PV contributors;N_{contrib}" , o2::framework::HistType:: kTH1F , {{101 , -0.5 , 100.5 }}, false );
109+ fRegistry .add (" Vertex/hChi2" , " vertex chi2;#chi^{2}/N_{contrib}" , o2::framework::HistType:: kTH1F , {{100 , 0 , 10 }}, false );
110+ fRegistry .add (" Vertex/hChi2vsNContrib" , " vertex #chi^{2}/N_{contrib} vs. N_{contrib};N_{contrib};#chi^{2}/N_{contrib}" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {100 , 0 , 10 }}, false );
116111
117- fRegistry .add (" Vertex/hSigmaX" , " vertex #sigma_{X} vs. N_{contrib};N_{contrib};#sigma_{X} (#mum)" , kTH2F , {{101 , -0.5 , 100.5 }, {1000 , 0 , 100 }}, false );
118- fRegistry .add (" Vertex/hSigmaY" , " vertex #sigma_{Y} vs. N_{contrib};N_{contrib};#sigma_{Y} (#mum)" , kTH2F , {{101 , -0.5 , 100.5 }, {1000 , 0 , 100 }}, false );
119- fRegistry .add (" Vertex/hSigmaZ" , " vertex #sigma_{Z} vs. N_{contrib};N_{contrib};#sigma_{Z} (#mum)" , kTH2F , {{101 , -0.5 , 100.5 }, {1000 , 0 , 100 }}, false );
112+ fRegistry .add (" Vertex/hSigmaX" , " vertex #sigma_{X} vs. N_{contrib};N_{contrib};#sigma_{X} (#mum)" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {1000 , 0 , 100 }}, false );
113+ fRegistry .add (" Vertex/hSigmaY" , " vertex #sigma_{Y} vs. N_{contrib};N_{contrib};#sigma_{Y} (#mum)" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {1000 , 0 , 100 }}, false );
114+ fRegistry .add (" Vertex/hSigmaZ" , " vertex #sigma_{Z} vs. N_{contrib};N_{contrib};#sigma_{Z} (#mum)" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {1000 , 0 , 100 }}, false );
120115
121- fRegistry .add (" Vertex/hCollisionTime" , " vertex time;N_{contrib};collision time (ns)" , kTH2F , {{101 , -0.5 , 100.5 }, {500 , -25 , 25 }}, false );
122- fRegistry .add (" Vertex/hCollisionTimeRes" , " vertex time resolution;N_{contrib};collision time resolution (ns)" , kTH2F , {{101 , -0.5 , 100.5 }, {250 , 0 , 25 }}, false );
116+ fRegistry .add (" Vertex/hCollisionTime" , " vertex time;N_{contrib};collision time (ns)" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {500 , -25 , 25 }}, false );
117+ fRegistry .add (" Vertex/hCollisionTimeRes" , " vertex time resolution;N_{contrib};collision time resolution (ns)" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {250 , 0 , 25 }}, false );
123118
124119 if (doprocessMC) {
125- fRegistry .add (" Vertex/hDeltaX" , " vertex #DeltaX vs. N_{contrib};N_{contrib};#DeltaX = (X_{rec} #minus X_{gen})/#sigma_{X}" , kTH2F , {{101 , -0.5 , 100.5 }, {200 , -10 , 10 }}, false );
126- fRegistry .add (" Vertex/hDeltaY" , " vertex #DeltaY vs. N_{contrib};N_{contrib};#DeltaY = (Y_{rec} #minus Y_{gen})/#sigma_{Y}" , kTH2F , {{101 , -0.5 , 100.5 }, {200 , -10 , 10 }}, false );
127- fRegistry .add (" Vertex/hDeltaZ" , " vertex #DeltaZ vs. N_{contrib};N_{contrib};#DeltaZ = (Z_{rec} #minus Z_{gen})/#sigma_{Z}" , kTH2F , {{101 , -0.5 , 100.5 }, {200 , -10 , 10 }}, false );
120+ fRegistry .add (" Vertex/hDeltaX" , " vertex #DeltaX vs. N_{contrib};N_{contrib};#DeltaX = (X_{rec} #minus X_{gen})/#sigma_{X}" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {200 , -10 , 10 }}, false );
121+ fRegistry .add (" Vertex/hDeltaY" , " vertex #DeltaY vs. N_{contrib};N_{contrib};#DeltaY = (Y_{rec} #minus Y_{gen})/#sigma_{Y}" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {200 , -10 , 10 }}, false );
122+ fRegistry .add (" Vertex/hDeltaZ" , " vertex #DeltaZ vs. N_{contrib};N_{contrib};#DeltaZ = (Z_{rec} #minus Z_{gen})/#sigma_{Z}" , o2::framework::HistType:: kTH2F , {{101 , -0.5 , 100.5 }, {200 , -10 , 10 }}, false );
128123 }
129124 }
130125
@@ -218,13 +213,13 @@ struct testPV {
218213 } // end of collision loop
219214 }
220215
221- using MyCollisions = soa::Join<aod::Collisions, aod::EvSels>;
222- using MyCollisionsMC = soa::Join<MyCollisions, aod::McCollisionLabels>;
223- using MyBCs = soa::Join<aod::BCsWithTimestamps, aod::BcSels>;
216+ using MyCollisions = o2:: soa::Join<o2:: aod::Collisions, o2:: aod::EvSels>;
217+ using MyCollisionsMC = o2:: soa::Join<MyCollisions, o2:: aod::McCollisionLabels>;
218+ using MyBCs = o2:: soa::Join<o2:: aod::BCsWithTimestamps, o2:: aod::BcSels>;
224219
225- Filter collisionFilter_evsel = eventCut.cfgZvtxMin < o2::aod::collision::posZ && o2::aod::collision::posZ < eventCut.cfgZvtxMax;
226- using FilteredMyCollisions = soa::Filtered<MyCollisions>;
227- using FilteredMyCollisionsMC = soa::Filtered<MyCollisionsMC>;
220+ o2::framework::expressions:: Filter collisionFilter_evsel = eventCut.cfgZvtxMin < o2::aod::collision::posZ && o2::aod::collision::posZ < eventCut.cfgZvtxMax;
221+ using FilteredMyCollisions = o2:: soa::Filtered<MyCollisions>;
222+ using FilteredMyCollisionsMC = o2:: soa::Filtered<MyCollisionsMC>;
228223
229224 void processData (FilteredMyCollisions const & collisions, MyBCs const & bcs)
230225 {
@@ -236,9 +231,9 @@ struct testPV {
236231 {
237232 run<false , true >(bcs, collisions, nullptr , nullptr );
238233 }
239- PROCESS_SWITCH (testPV, processTriggeredData, " processTriggeredData" , true );
234+ PROCESS_SWITCH (testPV, processTriggeredData, " processTriggeredData" , false );
240235
241- void processMC (FilteredMyCollisionsMC const & collisions, MyBCs const & bcs, aod::McCollisions const & mcCollisions, aod::McParticles const & mcParticles)
236+ void processMC (FilteredMyCollisionsMC const & collisions, MyBCs const & bcs, o2:: aod::McCollisions const & mcCollisions, o2:: aod::McParticles const & mcParticles)
242237 {
243238 run<true , false >(bcs, collisions, mcCollisions, mcParticles);
244239 }
@@ -247,7 +242,7 @@ struct testPV {
247242 void processDummy (MyCollisions const &) {}
248243 PROCESS_SWITCH (testPV, processDummy, " processDummy" , false );
249244};
250- WorkflowSpec defineDataProcessing (ConfigContext const & cfgc)
245+ o2::framework:: WorkflowSpec defineDataProcessing (o2::framework:: ConfigContext const & cfgc)
251246{
252- return WorkflowSpec{adaptAnalysisTask<testPV>(cfgc, TaskName{" test-pv" })};
247+ return o2::framework:: WorkflowSpec{adaptAnalysisTask<testPV>(cfgc, o2::framework:: TaskName{" test-pv" })};
253248}
0 commit comments