363 |
|
|
364 |
|
|
365 |
|
//set position of primary vertex in event, in order to calculate quantities relative to it |
366 |
+ |
primaryVertex_ = 0; |
367 |
|
vector<bool> vertexFlags = cumulativeFlags["primaryvertexs"].back(); |
368 |
|
for (uint vertexIndex = 0; vertexIndex != vertexFlags.size(); vertexIndex++){ |
369 |
|
if(!vertexFlags.at(vertexIndex)) continue; |
370 |
< |
vertexPosition.SetXYZ (primaryvertexs->at(vertexIndex).x,primaryvertexs->at(vertexIndex).y,primaryvertexs->at(vertexIndex).z); |
370 |
> |
primaryVertex_ = new BNprimaryvertex (primaryvertexs->at (vertexIndex)); |
371 |
|
break; |
372 |
|
} |
373 |
|
|
774 |
|
else if(variable == "time_ndof") value = object->time_ndof; |
775 |
|
|
776 |
|
//user-defined variables |
777 |
< |
else if(variable == "d0Sig") value = object->correctedD0Vertex / object->tkD0err; |
777 |
> |
else if(variable == "correctedD0VertexErr") value = hypot (object->tkD0err, hypot (primaryVertex_->xError, primaryVertex_->yError)); |
778 |
> |
else if(variable == "correctedD0VertexSig") value = object->correctedD0Vertex / hypot (object->tkD0err, hypot (primaryVertex_->xError, primaryVertex_->yError)); |
779 |
|
else if(variable == "detIso") value = (object->trackIso + object->caloIso) / object->pt; |
780 |
|
else if(variable == "relPFdBetaIso") value = (object->pfIsoR04SumChargedHadronPt + max(0.0, object->pfIsoR04SumNeutralHadronEt + object->pfIsoR04SumPhotonEt - 0.5*object->pfIsoR04SumPUPt)) / object->pt; |
781 |
|
else if(variable == "relPFrhoIso") value = ( object->chargedHadronIso + max(0.0, object->neutralHadronIso + object->photonIso - object->AEffDr03*object->rhoPrime) ) / object->pt; |
972 |
|
else if(variable == "passConvVeto") value = object->passConvVeto; |
973 |
|
|
974 |
|
//user-defined variables |
975 |
< |
else if(variable == "d0Sig") value = object->correctedD0Vertex / object->tkD0err; |
975 |
> |
else if(variable == "correctedD0VertexErr") value = hypot (object->tkD0err, hypot (primaryVertex_->xError, primaryVertex_->yError)); |
976 |
> |
else if(variable == "correctedD0VertexSig") value = object->correctedD0Vertex / hypot (object->tkD0err, hypot (primaryVertex_->xError, primaryVertex_->yError)); |
977 |
|
else if(variable == "detIso") value = (object->trackIso + object->caloIso) / object->pt; |
978 |
|
else if(variable == "relPFrhoIso") value = ( object->chargedHadronIsoDR03 + max(0.0, object->neutralHadronIsoDR03 + object->photonIsoDR03 - object->AEffDr03*object->rhoPrime) ) / object->pt; |
979 |
|
|
1339 |
|
|
1340 |
|
//user-defined variables |
1341 |
|
else if (variable == "d0"){ |
1342 |
< |
double vx = object->vx - vertexPosition.X (), |
1343 |
< |
vy = object->vy - vertexPosition.Y (), |
1342 |
> |
double vx = object->vx - primaryVertex_->x, |
1343 |
> |
vy = object->vy - primaryVertex_->y, |
1344 |
|
px = object->px, |
1345 |
|
py = object->py, |
1346 |
|
pt = object->pt; |
1347 |
|
value = (-vx * py + vy * px) / pt; |
1348 |
|
} |
1349 |
|
else if (variable == "dz"){ |
1350 |
< |
double vx = object->vx - vertexPosition.X (), |
1351 |
< |
vy = object->vy - vertexPosition.Y (), |
1352 |
< |
vz = object->vz - vertexPosition.Z (), |
1350 |
> |
double vx = object->vx - primaryVertex_->x, |
1351 |
> |
vy = object->vy - primaryVertex_->y, |
1352 |
> |
vz = object->vz - primaryVertex_->z, |
1353 |
|
px = object->px, |
1354 |
|
py = object->py, |
1355 |
|
pz = object->pz, |