Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,21 @@ protected void process(EventHeader event) {
// doesn't skip the event.
if (!event.hasCollection(Track.class))
return;

int runNumber = event.getRunNumber();
TrackUtils.RunPeriod runPeriod = TrackUtils.RunPeriod.PhysRun2021;
if (4441 < runNumber && runNumber < 5967) {
runPeriod = TrackUtils.RunPeriod.EngRun2015;
}
if (7219 < runNumber && runNumber < 8100) {
runPeriod = TrackUtils.RunPeriod.EngRun2016;
}
if (9001 < runNumber && runNumber < 10740) {
runPeriod = TrackUtils.RunPeriod.PhysRun2019;
}
if (14131 < runNumber && runNumber < 14775) {
runPeriod = TrackUtils.RunPeriod.PhysRun2021;
}

// Get all collections of the type Track from the event. This is
// required since the event contains a track collection for each of the
Expand Down Expand Up @@ -220,7 +235,7 @@ protected void process(EventHeader event) {

// Extrapolate the track to the face of the Ecal and get the TrackState
if (TrackType.isGBL(track.getType())) {
TrackState stateEcal = TrackUtils.getTrackExtrapAtEcalRK(track, bFieldMap);
TrackState stateEcal = TrackUtils.getTrackExtrapAtEcalRK(track, bFieldMap,runPeriod);
if (stateEcal != null)
track.getTrackStates().add(stateEcal);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -366,6 +366,21 @@ public void process(EventHeader event) {
if (!matchTrigger(event)) {
return;
}

int runNumber = event.getRunNumber();
TrackUtils.RunPeriod runPeriod = TrackUtils.RunPeriod.PhysRun2021;
if (4441 < runNumber && runNumber < 5967) {
runPeriod = TrackUtils.RunPeriod.EngRun2015;
}
if (7219 < runNumber && runNumber < 8100) {
runPeriod = TrackUtils.RunPeriod.EngRun2016;
}
if (9001 < runNumber && runNumber < 10740) {
runPeriod = TrackUtils.RunPeriod.PhysRun2019;
}
if (14131 < runNumber && runNumber < 14775) {
runPeriod = TrackUtils.RunPeriod.PhysRun2021;
}

List<ReconstructedParticle> unConstrainedV0List = event.get(ReconstructedParticle.class,
unconstrainedV0CandidatesColName);
Expand Down Expand Up @@ -425,8 +440,8 @@ public void process(EventHeader event) {
Hep3Vector pTopRot = VecOp.mult(beamAxisRotation, top.getMomentum());
Hep3Vector pBotRot = VecOp.mult(beamAxisRotation, bot.getMomentum());

Hep3Vector topAtEcal = TrackUtils.getTrackPositionAtEcal(top.getTracks().get(0));
Hep3Vector botAtEcal = TrackUtils.getTrackPositionAtEcal(bot.getTracks().get(0));
Hep3Vector topAtEcal = TrackUtils.getTrackPositionAtEcal(top.getTracks().get(0), runPeriod);
Hep3Vector botAtEcal = TrackUtils.getTrackPositionAtEcal(bot.getTracks().get(0), runPeriod);

BilliorVertexer vtxFitter = new BilliorVertexer(TrackUtils.getBField(event.getDetector()).y());
vtxFitter.setBeamSize(beamSize);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -327,6 +327,21 @@ protected void detectorChanged(Detector detector) {
@Override
public void process(EventHeader event) {

int runNumber = event.getRunNumber();
TrackUtils.RunPeriod runPeriod = TrackUtils.RunPeriod.PhysRun2021;
if (4441 < runNumber && runNumber < 5967) {
runPeriod = TrackUtils.RunPeriod.EngRun2015;
}
if (7219 < runNumber && runNumber < 8100) {
runPeriod = TrackUtils.RunPeriod.EngRun2016;
}
if (9001 < runNumber && runNumber < 10740) {
runPeriod = TrackUtils.RunPeriod.PhysRun2019;
}
if (14131 < runNumber && runNumber < 14775) {
runPeriod = TrackUtils.RunPeriod.PhysRun2021;
}

aida.tree().cd("/");

if (!event.hasCollection(LCRelation.class, helicalTrackHitRelationsCollectionName) || !event.hasCollection(LCRelation.class, rotatedHelicalTrackHitRelationsCollectionName))
Expand Down Expand Up @@ -383,7 +398,7 @@ public void process(EventHeader event) {
int cntTop = 0;
int cntBot = 0;
for (Track trk : tracks) {
Hep3Vector trackPosAtEcalFace = TrackUtils.getTrackPositionAtEcal(trk);
Hep3Vector trackPosAtEcalFace = TrackUtils.getTrackPositionAtEcal(trk, runPeriod);
double xAtECal = trackPosAtEcalFace.x();
double yAtECal = trackPosAtEcalFace.y();
if (yAtECal > 0) {
Expand Down
18 changes: 9 additions & 9 deletions analysis/src/main/java/org/hps/analysis/ecal/MassCalculator.java
Original file line number Diff line number Diff line change
Expand Up @@ -139,10 +139,10 @@ static double cosTheta(ReconstructedParticle v0) {
*
* @return combined momentum (GeV)
*/
public static double combinedMomentum(Cluster cluster, Track track, double momentum) {
public static double combinedMomentum(Cluster cluster, Track track, double momentum,TrackUtils.RunPeriod runPeriod) {
double energy = cluster.getEnergy();
TrackState trackState = track.getTrackStates().get(0);
Hep3Vector posAtEcal = TrackUtils.getTrackPositionAtEcal(trackState);
Hep3Vector posAtEcal = TrackUtils.getTrackPositionAtEcal(trackState, runPeriod);

int ix = ClusterUtilities.findSeedHit(cluster).getIdentifierFieldValue("ix");
double yraw = posAtEcal.y();
Expand All @@ -168,14 +168,14 @@ public static double combinedMomentum(Cluster cluster, Track track, double momen
*
* @return weighted invariant mass (GeV)
*/
public static double combinedMass(Cluster clusterA, Cluster clusterB, ReconstructedParticle v0) {
public static double combinedMass(Cluster clusterA, Cluster clusterB, ReconstructedParticle v0, TrackUtils.RunPeriod runPeriod) {
double momentumA = Math.sqrt(Math.pow(v0.getStartVertex().getParameters().get("p1X"), 2)
+ Math.pow(v0.getStartVertex().getParameters().get("p1Y"), 2) + Math.pow(v0.getStartVertex().getParameters().get("p1Z"), 2));
double momentumB = Math.sqrt(Math.pow(v0.getStartVertex().getParameters().get("p2X"), 2)
+ Math.pow(v0.getStartVertex().getParameters().get("p2Y"), 2) + Math.pow(v0.getStartVertex().getParameters().get("p2Z"), 2));

double energyA = combinedMomentum(clusterA, v0.getParticles().get(0).getTracks().get(0), momentumA);
double energyB = combinedMomentum(clusterB, v0.getParticles().get(1).getTracks().get(0), momentumB);
double energyA = combinedMomentum(clusterA, v0.getParticles().get(0).getTracks().get(0), momentumA, runPeriod);
double energyB = combinedMomentum(clusterB, v0.getParticles().get(1).getTracks().get(0), momentumB, runPeriod);

double cosT = cosTheta(v0);
double mass = Math.sqrt(2 * energyA * energyB * (1 - cosT));
Expand All @@ -192,13 +192,13 @@ public static double combinedMass(Cluster clusterA, Cluster clusterB, Reconstruc
*
* @return weighted invariant mass (GeV)
*/
public static double combinedMass(Track trackA, Cluster clusterB, ReconstructedParticle v0) {
public static double combinedMass(Track trackA, Cluster clusterB, ReconstructedParticle v0, TrackUtils.RunPeriod runPeriod) {
double momentumA = Math.sqrt(Math.pow(v0.getStartVertex().getParameters().get("p1X"), 2)
+ Math.pow(v0.getStartVertex().getParameters().get("p1Y"), 2) + Math.pow(v0.getStartVertex().getParameters().get("p1Z"), 2));
double momentumB = Math.sqrt(Math.pow(v0.getStartVertex().getParameters().get("p2X"), 2)
+ Math.pow(v0.getStartVertex().getParameters().get("p2Y"), 2) + Math.pow(v0.getStartVertex().getParameters().get("p2Z"), 2));
double energyA = momentumA;
double energyB = combinedMomentum(clusterB, v0.getParticles().get(1).getTracks().get(0), momentumB);
double energyB = combinedMomentum(clusterB, v0.getParticles().get(1).getTracks().get(0), momentumB, runPeriod);

double cosT = cosTheta(v0);
double mass = Math.sqrt(2 * energyA * energyB * (1 - cosT));
Expand All @@ -214,12 +214,12 @@ public static double combinedMass(Track trackA, Cluster clusterB, ReconstructedP
*
* @return weighted invariant mass (GeV)
*/
public static double combinedMass(Cluster clusterA, Track trackB, ReconstructedParticle v0) {
public static double combinedMass(Cluster clusterA, Track trackB, ReconstructedParticle v0, TrackUtils.RunPeriod runPeriod) {
double momentumA = Math.sqrt(Math.pow(v0.getStartVertex().getParameters().get("p1X"), 2)
+ Math.pow(v0.getStartVertex().getParameters().get("p1Y"), 2) + Math.pow(v0.getStartVertex().getParameters().get("p1Z"), 2));
double momentumB = Math.sqrt(Math.pow(v0.getStartVertex().getParameters().get("p2X"), 2)
+ Math.pow(v0.getStartVertex().getParameters().get("p2Y"), 2) + Math.pow(v0.getStartVertex().getParameters().get("p2Z"), 2));
double energyA = combinedMomentum(clusterA, v0.getParticles().get(0).getTracks().get(0), momentumA);
double energyA = combinedMomentum(clusterA, v0.getParticles().get(0).getTracks().get(0), momentumA, runPeriod);
double energyB = momentumB;

double cosT = cosTheta(v0);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import org.hps.analysis.MC.MCFullDetectorTruth;
import org.hps.recon.particle.ReconParticleDriver;
import org.hps.recon.tracking.TrackType;
import org.hps.recon.tracking.TrackUtils;
import org.hps.recon.vertexing.BilliorVertex;
import org.hps.record.triggerbank.TIData;
import org.lcsim.event.CalorimeterHit;
Expand All @@ -29,6 +30,8 @@

public class RefitTrackTruthTupleDriver extends TupleMaker {

TrackUtils.RunPeriod runPeriod = TrackUtils.RunPeriod.PhysRun2021;

private final String trackColName = "GBLTracks";
private final String badTrackColName = "GBLTracks_bad";
private final String simhitOutputColName = "TrackerHits_truth";
Expand Down Expand Up @@ -86,6 +89,20 @@ protected void setupVariables() {
@Override
public void process(EventHeader event) {
setupCollections(event);
int runNumber = event.getRunNumber();

if (4441 < runNumber && runNumber < 5967) {
runPeriod = TrackUtils.RunPeriod.EngRun2015;
}
if (7219 < runNumber && runNumber < 8100) {
runPeriod = TrackUtils.RunPeriod.EngRun2016;
}
if (9001 < runNumber && runNumber < 10740) {
runPeriod = TrackUtils.RunPeriod.PhysRun2019;
}
if (14131 < runNumber && runNumber < 14775) {
runPeriod = TrackUtils.RunPeriod.PhysRun2021;
}
for (ReconstructedParticle uncV0 : unConstrainedV0List) {
tupleMap.clear();
boolean isOK = fillBasicRefitTuple(event, triggerData, uncV0);
Expand Down Expand Up @@ -179,7 +196,7 @@ private boolean fillBasicRefitTuple(EventHeader event, TIData triggerData, Recon
tupleMap.put("minNegativeIso/D", minNegativeIso);
tupleMap.put("minIso/D", minIso);

fillVertexVariables("Badunc", uncV0, false);
fillVertexVariables("Badunc", uncV0, false, runPeriod);

List<LCRelation> badMCParticleRelation = event.get(LCRelation.class,badMCParticleRelationsColName);
MCParticle badEle = null;
Expand Down Expand Up @@ -217,18 +234,18 @@ else if(((Track) rel.getFrom()).equals(positron.getTracks().get(0))){

fillParticleVariables(event, electronTruth, "eleTruth", true, true, true, "GBLKinkDataRelations_truth");
fillParticleVariables(event, positronTruth, "posTruth", true, true, true, "GBLKinkDataRelations_truth");
fillVertexVariables("Truthunc", temp, false);
fillVertexVariables("Truthunc", temp, false, runPeriod);
}
if (unc2bscTruth != null) {
ReconstructedParticle temp2 = unc2bscTruth.get(temp);
if (temp2 != null){
fillVertexVariables("Truthbsc", temp2, false);
fillVertexVariables("Truthbsc", temp2, false, runPeriod);
}
}
if (unc2tarTruth != null) {
ReconstructedParticle temp2 = unc2tarTruth.get(temp);
if (temp2 != null){
fillVertexVariables("Truthtar", temp2, false);
fillVertexVariables("Truthtar", temp2, false, runPeriod);
}
}
}
Expand All @@ -238,14 +255,14 @@ else if(((Track) rel.getFrom()).equals(positron.getTracks().get(0))){
if (temp == null)
isOK = false;
else{
fillVertexVariables("Badbsc", temp, false);
fillVertexVariables("Badbsc", temp, false, runPeriod);
}
}
if (unc2tar != null) {
ReconstructedParticle temp = unc2tar.get(uncV0);
if (temp == null)
isOK = false;
fillVertexVariables("Badtar", temp, false);
fillVertexVariables("Badtar", temp, false, runPeriod);
}

return isOK;
Expand Down
34 changes: 24 additions & 10 deletions analysis/src/main/java/org/hps/analysis/tuple/TupleMaker.java
Original file line number Diff line number Diff line change
Expand Up @@ -301,6 +301,20 @@ protected boolean fillBasicTuple(EventHeader event, TIData triggerData, Reconstr
if (isGBL != TrackType.isGBL(uncV0.getType())) {
return false;
}
int runNumber = event.getRunNumber();
TrackUtils.RunPeriod runPeriod = TrackUtils.RunPeriod.PhysRun2021;
if (4441 < runNumber && runNumber < 5967) {
runPeriod = TrackUtils.RunPeriod.EngRun2015;
}
if (7219 < runNumber && runNumber < 8100) {
runPeriod = TrackUtils.RunPeriod.EngRun2016;
}
if (9001 < runNumber && runNumber < 10740) {
runPeriod = TrackUtils.RunPeriod.PhysRun2019;
}
if (14131 < runNumber && runNumber < 14775) {
runPeriod = TrackUtils.RunPeriod.PhysRun2021;
}

fillEventVariables(event, triggerData);

Expand Down Expand Up @@ -334,19 +348,19 @@ protected boolean fillBasicTuple(EventHeader event, TIData triggerData, Reconstr
tupleMap.put("minNegativeIso/D", minNegativeIso);
tupleMap.put("minIso/D", minIso);

fillVertexVariables("unc", uncV0, false);
fillVertexVariables("unc", uncV0, false, runPeriod);
if (unc2bsc != null) {
ReconstructedParticle temp = unc2bsc.get(uncV0);
if (temp == null)
isOK = false;
else
fillVertexVariables("bsc", temp, false);
fillVertexVariables("bsc", temp, false, runPeriod);
}
if (unc2bsc != null) {
ReconstructedParticle temp = unc2tar.get(uncV0);
if (temp == null)
isOK = false;
fillVertexVariables("tar", temp, false);
fillVertexVariables("tar", temp, false, runPeriod);
}

return isOK;
Expand Down Expand Up @@ -1196,7 +1210,7 @@ protected void fillVertexCov(String prefix, ReconstructedParticle theV0) {
tupleMap.put(prefix + "CovZZ/D", theCov.e(2, 2));
}

protected void fillVertexVariables(String prefix, ReconstructedParticle theV0, boolean isMoller) {
protected void fillVertexVariables(String prefix, ReconstructedParticle theV0, boolean isMoller, TrackUtils.RunPeriod runPeriod) {
String[] mollerParticleNames = {"Top", "Bot"};
String[] v0ParticleNames = {"Ele", "Pos"};

Expand Down Expand Up @@ -1280,15 +1294,15 @@ protected void fillVertexVariables(String prefix, ReconstructedParticle theV0, b
particle1.getTracks().get(0),
Math.sqrt(Math.pow(theV0.getStartVertex().getParameters().get("p1X"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p1Y"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p1Z"), 2))));
+ Math.pow(theV0.getStartVertex().getParameters().get("p1Z"), 2)), runPeriod));

if (nClusters2>0) {
tupleMap.put(prefix+particleNames[1] + "WtP/D", MassCalculator.combinedMomentum(particle2.getClusters().get(0), particle2
.getTracks().get(0), Math.sqrt(Math.pow(theV0.getStartVertex().getParameters().get("p2X"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Y"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Z"), 2))));
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Z"), 2)), runPeriod));
tupleMap.put(prefix+"WtM/D", MassCalculator.combinedMass(particle1.getClusters().get(0), particle2
.getClusters().get(0), theV0));
.getClusters().get(0), theV0, runPeriod));
}
else {
tupleMap.put(
Expand All @@ -1297,7 +1311,7 @@ protected void fillVertexVariables(String prefix, ReconstructedParticle theV0, b
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Y"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Z"), 2)));
tupleMap.put(prefix+"WtM/D",
MassCalculator.combinedMass(particle1.getClusters().get(0), particle2.getTracks().get(0), theV0));
MassCalculator.combinedMass(particle1.getClusters().get(0), particle2.getTracks().get(0), theV0, runPeriod));
}
}
if (nClusters2 > 0 && nClusters1 == 0) {// e+ has cluster, e- does not
Expand All @@ -1309,14 +1323,14 @@ protected void fillVertexVariables(String prefix, ReconstructedParticle theV0, b
particle2.getTracks().get(0),
Math.sqrt(Math.pow(theV0.getStartVertex().getParameters().get("p2X"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Y"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Z"), 2))));
+ Math.pow(theV0.getStartVertex().getParameters().get("p2Z"), 2)), runPeriod));
tupleMap.put(
prefix+particleNames[0] + "WtP/D",
Math.sqrt(Math.pow(theV0.getStartVertex().getParameters().get("p1X"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p1Y"), 2)
+ Math.pow(theV0.getStartVertex().getParameters().get("p1Z"), 2)));
tupleMap.put(prefix+"WtM/D",
MassCalculator.combinedMass(particle1.getTracks().get(0), particle2.getClusters().get(0), theV0));
MassCalculator.combinedMass(particle1.getTracks().get(0), particle2.getClusters().get(0), theV0, runPeriod));
}
if (nClusters2 == 0 && nClusters1 == 0) {

Expand Down
Loading