20 const IInterface*
p ) : base_class(
t,
n,
p)
22 declareProperty(
"InDetTrackParticlesKey",
m_TP_key=
"InDetTrackParticles");
23 declareProperty(
"TrackSelectionTools",
m_trkSelTools,
"Track selection tools" );
24 declareProperty(
"cutLevels",
m_cutLevels,
"Cut levels");
25 declareProperty(
"nHarmonic",
m_nHarmonic = 1,
"Flow harmonic starting from v2" );
37 for (
unsigned int its = 0; its < nTrackSels; ++its) {
56 return StatusCode::SUCCESS;
64 return StatusCode::SUCCESS;
72 if(evtStore()->
retrieve( eventInfo ).isFailure()){
74 return StatusCode::FAILURE;
82 return StatusCode::FAILURE;
87 std::vector <int> TrackParticleMultiplicity(nTrackSels,0);
88 for(
auto tp : *tracks)
92 for (
unsigned int its = 0; its < nTrackSels; ++its) {
98 for (
unsigned int its = 0; its < nTrackSels; ++its) {
110 float HalfFCalEtA = 0;
111 float HalfFCalEtC = 0;
127 if(evtStore()->
retrieve( eventShape,
"HIEventShape" ).isFailure()){
129 return StatusCode::FAILURE;
133 for(
const auto* ptrEvtShp : *eventShape){
134 if(ptrEvtShp->layer()!=21 && ptrEvtShp->layer()!=22 &&
135 ptrEvtShp->layer()!=23)
continue;
137 float eta = ptrEvtShp->etaMin();
138 const std::vector<float>&
c1 = ptrEvtShp->etCos();
139 const std::vector<float>&s1 = ptrEvtShp->etSin();
142 FCalEtA += ptrEvtShp->et();
144 FCalEtA_Qnx.at(vn-1) +=
c1.at(vn);
145 FCalEtA_Qny.at(vn-1) += s1.at(vn);
148 HalfFCalEtA += ptrEvtShp->et();
150 HalfFCalEtA_Qnx.at(vn-1) +=
c1.at(vn);
151 HalfFCalEtA_Qny.at(vn-1) += s1.at(vn);
154 }
else if (eta < 0) {
155 FCalEtC += ptrEvtShp->et();
157 FCalEtC_Qnx.at(vn-1) +=
c1.at(vn);
158 FCalEtC_Qny.at(vn-1) += s1.at(vn);
161 HalfFCalEtC += ptrEvtShp->et();
163 HalfFCalEtC_Qnx.at(vn-1) +=
c1.at(vn);
164 HalfFCalEtC_Qny.at(vn-1) += s1.at(vn);
174 decTopoClusterFCalCut(*eventInfo) =
false;
179 bool hasTowerA{
false};
180 bool hasTowerC{
false};
181 for (
const auto topo : *topos) {
182 float topo_eta =
topo->eta();
183 if (abs(topo_eta) > 3.2 && abs(topo_eta) < 4.9) {
184 float topo_pt =
topo->pt() * 1
e-3;
197 decFCalEtA(*eventInfo) = FCalEtA;
198 decFCalEtC(*eventInfo) = FCalEtC;
199 decHalfFCalEtA(*eventInfo) = HalfFCalEtA;
200 decHalfFCalEtC(*eventInfo) = HalfFCalEtC;
201 decTopoClusterFCalCut(*eventInfo) = (hasTowerA && hasTowerC);
214 return StatusCode::SUCCESS;