1+ // Copyright 2019-2020 CERN and copyright holders of ALICE O2.
2+ // See https://alice-o2.web.cern.ch/copyright for details of the copyright holders.
3+ // All rights not expressly granted are reserved.
4+ //
5+ // This software is distributed under the terms of the GNU General Public
6+ // License v3 (GPL Version 3), copied verbatim in the file "COPYING".
7+ //
8+ // In applying this license CERN does not waive the privileges and immunities
9+ // granted to it by virtue of its status as an Intergovernmental Organization
10+ // or submit itself to any jurisdiction.
11+
12+ #include "CCDB/CcdbApi.h"
13+ #include "TString.h"
14+ #include "map"
15+ #include "string"
16+ #include "EventSelectionParams.h"
17+ using std ::map ;
18+ using std ::string ;
19+
20+ void fillMapOfCustomOrbitShifts (std ::map < int , int > & mapOrbitShift );
21+
22+ void upload_event_selection_params_run3 ()
23+ {
24+ o2 ::ccdb ::CcdbApi ccdb ;
25+ ccdb .init ("https://alice-ccdb.cern.ch" );
26+
27+ std ::map < int , int > mapOrbitShift ;
28+ fillMapOfCustomOrbitShifts (mapOrbitShift );
29+ map < string , string > metadata , metadataRCT , header ;
30+
31+ EventSelectionParams * params = new EventSelectionParams ();
32+ params -> fV0ABBlower = -3.0 ; // ns
33+ params -> fV0ABBupper = +2.0 ; // ns
34+ params -> fV0ABGlower = 2.0 ; // ns
35+ params -> fV0ABGupper = 5.0 ; // ns
36+ params -> fFDABBlower = -3.0 ; // ns
37+ params -> fFDABBupper = +3.0 ; // ns
38+ params -> fFDABGlower = 10.0 ; // ns
39+ params -> fFDABGupper = 13.0 ; // ns
40+ params -> fFDCBBlower = -3.0 ; // ns
41+ params -> fFDCBBupper = +3.0 ; // ns
42+ params -> fFDCBGlower = -10.0 ; // ns
43+ params -> fFDCBGupper = -3.0 ; // ns
44+ params -> fT0ABBlower = -1.0 ; // ns
45+ params -> fT0ABBupper = +1.0 ; // ns
46+ params -> fT0CBBlower = -1.0 ; // ns
47+ params -> fT0CBBupper = +1.0 ; // ns
48+
49+ // default object
50+ bool uploadDefaultParameters = 1 ;
51+ if (uploadDefaultParameters ) {
52+ LOGP (info , "Uploading default object" );
53+ ULong64_t sorRun3 = 1543767116001 ;
54+ ULong64_t eorRun3 = 1893445200000 ;
55+ metadata ["runNumber" ] = "Default Run 3" ;
56+ ccdb .storeAsTFileAny (params , "EventSelection/EventSelectionParams" , metadata , sorRun3 , eorRun3 );
57+ }
58+
59+ // fill param objects for runs with custom orbit shifts
60+ for (auto m : mapOrbitShift ) {
61+ int run = m .first ;
62+ int orbitShift = m .second ;
63+ LOGP (info , "Uploading custom object for run = {}: orbitShift = {}" , run , orbitShift );
64+ params -> fTimeFrameOrbitShift = orbitShift ;
65+ header = ccdb .retrieveHeaders (Form ("RCT/Info/RunInformation/%i" , run ), metadataRCT , -1 );
66+ ULong64_t sor = atol (header ["SOR" ].c_str ());
67+ ULong64_t eor = atol (header ["EOR" ].c_str ());
68+ metadata ["runNumber" ] = Form ("%d" , run );
69+ ccdb .storeAsTFileAny (params , "EventSelection/EventSelectionParams" , metadata , sor , eor + 10000 ); // adding tolerance of 10s to eor
70+ }
71+ }
72+
73+ // map of custom orbit shifts of the first orbit in TF wrt (SOR-OrbitReset)%TFDuration (in orbits)
74+ void fillMapOfCustomOrbitShifts (std ::map < int , int > & mapOrbitShift )
75+ {
76+ mapOrbitShift [517619 ] = 109 ;
77+ mapOrbitShift [517620 ] = 109 ;
78+ mapOrbitShift [517623 ] = 109 ;
79+ mapOrbitShift [517677 ] = 127 ;
80+ mapOrbitShift [517678 ] = 127 ;
81+ mapOrbitShift [517679 ] = 127 ;
82+ mapOrbitShift [517685 ] = 127 ;
83+ mapOrbitShift [517690 ] = 127 ;
84+ mapOrbitShift [517693 ] = 127 ;
85+ mapOrbitShift [517737 ] = 127 ;
86+ mapOrbitShift [517748 ] = 127 ;
87+ mapOrbitShift [517751 ] = 127 ;
88+ mapOrbitShift [517753 ] = 127 ;
89+ mapOrbitShift [517758 ] = 127 ;
90+ mapOrbitShift [517767 ] = 127 ;
91+ mapOrbitShift [518541 ] = 40 ;
92+ mapOrbitShift [518543 ] = 92 ;
93+ mapOrbitShift [518546 ] = 124 ;
94+ mapOrbitShift [518547 ] = 47 ;
95+ mapOrbitShift [519041 ] = 59 ;
96+ mapOrbitShift [519043 ] = 59 ;
97+ mapOrbitShift [519045 ] = 59 ;
98+ mapOrbitShift [519497 ] = 86 ;
99+ mapOrbitShift [519498 ] = 86 ;
100+ mapOrbitShift [519499 ] = 86 ;
101+ mapOrbitShift [519502 ] = 86 ;
102+ mapOrbitShift [519503 ] = 86 ;
103+ mapOrbitShift [519504 ] = 86 ;
104+ mapOrbitShift [519506 ] = 86 ;
105+ mapOrbitShift [519507 ] = 86 ;
106+ mapOrbitShift [519903 ] = 62 ;
107+ mapOrbitShift [519904 ] = 62 ;
108+ mapOrbitShift [519905 ] = 62 ;
109+ mapOrbitShift [519906 ] = 62 ;
110+ mapOrbitShift [520259 ] = 76 ;
111+ mapOrbitShift [520294 ] = 76 ;
112+ mapOrbitShift [520471 ] = 46 ;
113+ mapOrbitShift [520472 ] = 46 ;
114+ mapOrbitShift [520473 ] = 46 ;
115+ mapOrbitShift [523142 ] = 127 ;
116+ mapOrbitShift [523148 ] = 127 ;
117+ mapOrbitShift [523182 ] = 127 ;
118+ mapOrbitShift [523186 ] = 127 ;
119+ mapOrbitShift [523298 ] = 28 ;
120+ mapOrbitShift [523306 ] = 28 ;
121+ mapOrbitShift [523308 ] = 28 ;
122+ mapOrbitShift [523309 ] = 28 ;
123+ mapOrbitShift [523397 ] = 110 ;
124+ mapOrbitShift [523399 ] = 110 ;
125+ mapOrbitShift [523401 ] = 110 ;
126+ mapOrbitShift [523441 ] = 117 ;
127+ mapOrbitShift [523541 ] = 103 ;
128+ mapOrbitShift [523559 ] = 103 ;
129+ mapOrbitShift [523669 ] = 39 ;
130+ mapOrbitShift [523671 ] = 39 ;
131+ mapOrbitShift [523677 ] = 39 ;
132+ mapOrbitShift [523728 ] = 113 ;
133+ mapOrbitShift [523731 ] = 113 ;
134+ mapOrbitShift [523779 ] = 41 ;
135+ mapOrbitShift [523783 ] = 41 ;
136+ mapOrbitShift [523786 ] = 41 ;
137+ mapOrbitShift [523788 ] = 41 ;
138+ mapOrbitShift [523789 ] = 41 ;
139+ mapOrbitShift [523792 ] = 41 ;
140+ mapOrbitShift [523797 ] = 41 ;
141+ mapOrbitShift [523821 ] = 36 ;
142+ mapOrbitShift [523897 ] = 38 ;
143+ }
0 commit comments