Skip to content

Commit 5203ef4

Browse files
committed
new changes
1 parent 4981245 commit 5203ef4

1 file changed

Lines changed: 111 additions & 15 deletions

File tree

PWGMM/Lumi/Tasks/lumiStability.cxx

Lines changed: 111 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -82,8 +82,9 @@ struct lumiStabilityTask {
8282
return false;
8383
}
8484

85-
void processFDDFT0(aod::FT0s const& ft0s, aod::FDDs const& fdds, BCsRun3 const& bcs)
85+
void processMain(aod::FT0s const& ft0s, aod::FDDs const& fdds, aod::FV0As const& fv0s, BCsRun3 const& bcs)
8686
{
87+
int CountNormal(0), CountPastProtec(0);
8788
for (auto const& fdd : fdds) {
8889
auto bc = fdd.bc_as<BCsRun3>();
8990
if (bc.timestamp() == 0) {
@@ -98,21 +99,41 @@ struct lumiStabilityTask {
9899
int maxDeltaBC = 5; // maximum difference
99100
bool pastActivityFDD = false;
100101
while (deltaBC < maxDeltaBC) {
102+
deltaIndex++;
101103
if (bc.globalIndex() - deltaIndex < 0) {
102104
break;
103105
}
104-
deltaIndex++;
105106
const auto& bc_past = bcs.iteratorAt(bc.globalIndex() - deltaIndex);
106-
deltaBC = globalBC = bc_past.globalBC();
107+
deltaBC = globalBC - bc_past.globalBC();
107108
if (deltaBC < maxDeltaBC) {
108109
pastActivityFDD |= bc_past.has_fdd();
109110
}
110111
}
112+
deltaIndex = 0;
113+
deltaBC = 0;
111114

112-
if (pastActivityFDD == false) {
115+
bool futureActivityFDD = false;
116+
while (deltaBC < maxDeltaBC) {
117+
deltaIndex++;
118+
if (bc.globalIndex() + deltaIndex >= bcs.size()) {
119+
break;
120+
}
121+
const auto& bc_future = bcs.iteratorAt(bc.globalIndex() + deltaIndex);
122+
deltaBC = bc_future.globalBC() - globalBC;
123+
if (deltaBC < maxDeltaBC) {
124+
futureActivityFDD |= bc_future.has_fdd();
125+
}
126+
}
127+
128+
CountNormal++;
129+
if (pastActivityFDD == true || futureActivityFDD == true) {
130+
CountPastProtec++;
113131
continue;
114-
std::cout << "BC skipped!" << std::endl;
115132
}
133+
/*if (pastActivityFDD == true) {
134+
CountPastProtec++;
135+
continue;
136+
}*/
116137

117138
std::bitset<8> fddTriggers = fdd.triggerMask();
118139
bool vertex = fddTriggers[o2::fdd::Triggers::bitVertex];
@@ -173,13 +194,51 @@ struct lumiStabilityTask {
173194

174195
for (auto const& ft0 : ft0s) {
175196
auto bc = ft0.bc_as<BCsRun3>();
176-
if (bc.timestamp() == false) {
197+
if (bc.timestamp() == 0) {
177198
continue;
178199
}
179200

180201
Long64_t globalBC = bc.globalBC();
181202
int localBC = globalBC % nBCsPerOrbit;
182203

204+
int deltaIndex = 0; // backward move counts
205+
int deltaBC = 0; // current difference wrt globalBC
206+
int maxDeltaBC = 5; // maximum difference
207+
bool pastActivityFT0 = false;
208+
while (deltaBC < maxDeltaBC) {
209+
deltaIndex++;
210+
if (bc.globalIndex() - deltaIndex < 0) {
211+
break;
212+
}
213+
const auto& bc_past = bcs.iteratorAt(bc.globalIndex() - deltaIndex);
214+
deltaBC = globalBC - bc_past.globalBC();
215+
if (deltaBC < maxDeltaBC) {
216+
pastActivityFT0 |= bc_past.has_ft0();
217+
}
218+
}
219+
deltaIndex = 0;
220+
deltaBC = 0;
221+
222+
bool futureActivityFT0 = false;
223+
while (deltaBC < maxDeltaBC) {
224+
deltaIndex++;
225+
if (bc.globalIndex() + deltaIndex >= bcs.size()) {
226+
break;
227+
}
228+
const auto& bc_future = bcs.iteratorAt(bc.globalIndex() + deltaIndex);
229+
deltaBC = bc_future.globalBC() - globalBC;
230+
if (deltaBC < maxDeltaBC) {
231+
futureActivityFT0 |= bc_future.has_ft0();
232+
}
233+
}
234+
235+
if (pastActivityFT0 == true || futureActivityFT0 == true) {
236+
continue;
237+
}
238+
/*if (pastActivityFT0 == true) {
239+
continue;
240+
}*/
241+
183242
std::bitset<8> fT0Triggers = ft0.triggerMask();
184243
bool vertex = fT0Triggers[o2::fdd::Triggers::bitVertex];
185244

@@ -207,21 +266,55 @@ struct lumiStabilityTask {
207266
}
208267
}
209268
} // loop over FT0 events
210-
} // end processFDDFT0
211-
212-
PROCESS_SWITCH(lumiStabilityTask, processFDDFT0, "Process FDD and FT0 to lumi stability analysis", true);
213269

214-
void processV0(aod::FV0As const& fv0s, aod::BCsWithTimestamps const&)
215-
{
216270
for (auto const& fv0 : fv0s) {
217-
auto bc = fv0.bc_as<BCsWithTimestamps>();
218-
if (bc.timestamp() == false) {
271+
auto bc = fv0.bc_as<BCsRun3>();
272+
if (bc.timestamp() == 0) {
219273
continue;
220274
}
221275

222276
Long64_t globalBC = bc.globalBC();
223277
int localBC = globalBC % nBCsPerOrbit;
224278

279+
int deltaIndex = 0; // backward move counts
280+
int deltaBC = 0; // current difference wrt globalBC
281+
int maxDeltaBC = 5; // maximum difference
282+
bool pastActivityV0A = false;
283+
while (deltaBC < maxDeltaBC) {
284+
deltaIndex++;
285+
if (bc.globalIndex() - deltaIndex < 0) {
286+
break;
287+
}
288+
const auto& bc_past = bcs.iteratorAt(bc.globalIndex() - deltaIndex);
289+
deltaBC = globalBC - bc_past.globalBC();
290+
if (deltaBC < maxDeltaBC) {
291+
pastActivityV0A |= bc_past.has_fv0a();
292+
}
293+
}
294+
deltaIndex = 0;
295+
deltaBC = 0;
296+
297+
bool futureActivityV0A = false;
298+
while (deltaBC < maxDeltaBC) {
299+
deltaIndex++;
300+
if (bc.globalIndex() + deltaIndex >= bcs.size()) {
301+
break;
302+
}
303+
const auto& bc_future = bcs.iteratorAt(bc.globalIndex() + deltaIndex);
304+
deltaBC = bc_future.globalBC() - globalBC;
305+
if (deltaBC < maxDeltaBC) {
306+
futureActivityV0A |= bc_future.has_fv0a();
307+
}
308+
}
309+
310+
if (pastActivityV0A == true || futureActivityV0A == true) {
311+
continue;
312+
}
313+
314+
/*if (pastActivityV0A == true) {
315+
continue;
316+
}*/
317+
225318
std::bitset<8> fv0Triggers = fv0.triggerMask();
226319
bool aOut = fv0Triggers[o2::fdd::Triggers::bitAOut];
227320
bool aIn = fv0Triggers[o2::fdd::Triggers::bitAIn];
@@ -247,9 +340,12 @@ struct lumiStabilityTask {
247340
}
248341
}
249342
} // loop over V0 events
250-
} // end processV0
343+
std::cout << "************ >>>>>>>>>>>>>> "
344+
<< "Whithout Past Protection: " << CountNormal << " "
345+
<< "Avoided Whith Past Protection: " << CountPastProtec << "<<<<<<<<<<<< ********************" << std::endl;
346+
} // end processMain
251347

252-
PROCESS_SWITCH(lumiStabilityTask, processV0, "Process V0 to lumi stability analysis", true);
348+
PROCESS_SWITCH(lumiStabilityTask, processMain, "Process FDD and FT0 to lumi stability analysis", true);
253349
};
254350

255351
WorkflowSpec defineDataProcessing(ConfigContext const& cfgc)

0 commit comments

Comments
 (0)