Skip to content

Commit

Permalink
Merge pull request #66 from JeffersonLab/monitor
Browse files Browse the repository at this point in the history
Pion reconstruction service
  • Loading branch information
baltzell authored Aug 28, 2023
2 parents f650a0c + 8371329 commit a106009
Showing 1 changed file with 73 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,73 @@
/*
* Click nbfs://nbhost/SystemFileSystem/Templates/Licenses/license-default.txt to change this license
* Click nbfs://nbhost/SystemFileSystem/Templates/Classes/Class.java to edit this template
*/
package org.jlab.display.ec;

import org.jlab.clas.physics.LorentzVector;
import org.jlab.clas.reco.ReconstructionEngine;
import org.jlab.groot.data.H1F;
import org.jlab.groot.ui.TGCanvas;
import org.jlab.io.base.DataBank;
import org.jlab.io.base.DataEvent;

/**
*
* @author gavalian
*/
public class ECRECMonitor extends ReconstructionEngine {
TGCanvas canvas = null;
H1F pion = null;

public ECRECMonitor(){
super("ECMon","gavalian","1.0");
}

@Override
public boolean processDataEvent(DataEvent event) {
if(event.hasBank("REC::Particle")==true){
DataBank bank = event.getBank("REC::Particle");
int index1 = this.index(bank, 22, 0);
int index2 = this.index(bank, 22, 1);
if(index1>0&&index2>0){
LorentzVector vL_g1 = this.getVector(bank, index1, 0.0);
LorentzVector vL_g2 = this.getVector(bank, index2, 0.0);
if(vL_g1.p()>1.0&&vL_g2.p()>1.0){
vL_g1.add(vL_g2);
pion.fill(vL_g1.mass());
}
}
}
return true;
}

private LorentzVector getVector(DataBank b, int index, double mass){
LorentzVector v = new LorentzVector();
v.setPxPyPzM(b.getFloat("px", index),
b.getFloat("py", index),
b.getFloat("pz", index),
mass);
return v;
}

private int index(DataBank b, int pid, int skip){
int nrows = b.rows();
int skipped = 0;
for(int r = 0; r < nrows; r++){
int id = b.getInt("pid", r);
if(id==pid){
if(skipped==skip) return r;
skipped++;
}
}
return -1;
}
@Override
public boolean init() {
canvas = new TGCanvas("c","EC Engine Monitoring",500,500);
canvas.getCanvas().initTimer(5000);
pion = new H1F("pion",120,0.005,0.6);
return true;
}

}

0 comments on commit a106009

Please sign in to comment.