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
1 change: 1 addition & 0 deletions etc/bankdefs/hipo4/dc.json
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
"info": "reconstructed hits using DC wire positions",
"entries": [
{"name":"id", "type":"S", "info":"id of the hit"},
{"name": "indexTDC", "type":"S", "info":"inex in the bank DC::TDC"},
{"name":"status", "type":"S", "info":"id of the hit"},
{"name":"sector", "type":"B", "info":"DC sector"},
{"name":"superlayer", "type":"B", "info":"DC superlayer (1...6)"},
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public class HitReader {
private int run = 0;
private long tiTimeStamp = 0;
private DataEvent event = null;

private IndexedTable tt = null;
private IndexedTable reverseTT = null;
private IndexedTable dcrbjitters = null;
Expand All @@ -54,7 +54,8 @@ public class HitReader {
private IndexedTable docares = null;
private IndexedTable time2dist = null;
private IndexedTable t0s = null;


private int numTDCBankRows = -1;
private List<Hit> _DCHits;
private List<FittedHit> _HBHits; //hit-based tracking hit information
private List<FittedHit> _TBHits; //time-based tracking hit information
Expand Down Expand Up @@ -263,6 +264,7 @@ private void fetch_DCHits(Clas12NoiseAnalysis noiseAnalysis,

RawDataBank bankFiltered = new RawDataBank(bankNames.getTdcBank(), rawBankOrders);
bankFiltered.read(event);
this.set_NumTDCBankRows(bankFiltered.rows());
for (int i = 0; i < bankFiltered.rows(); i++) {
int sector = bankFiltered.getByte("sector", i);
int layer = (bankFiltered.getByte("layer", i)-1)%6 + 1;
Expand Down Expand Up @@ -339,6 +341,7 @@ private void fetch_DCHits(Clas12NoiseAnalysis noiseAnalysis,
hit.calc_CellSize(detector);
double posError = hit.get_CellSize() / Math.sqrt(12.);
hit.set_DocaErr(posError);
hit.set_IndexTDC(index);
this._DCHits.add(hit);
}
}
Expand Down Expand Up @@ -624,6 +627,7 @@ private void read_NNHits() {
tPars[2] = (double)bankAI.getFloat("phi", j);
tPars[3] = (double)bankAI.getByte("id", j);

aimatch.clear();
for (int k = 0; k < 6; k++) {
aimatch.put(Ids[k], tPars);
}
Expand Down Expand Up @@ -915,4 +919,20 @@ public List<Hit> get_DCHits(int sectorSelect) {
return list;
}
}

/**
*
* @param num # of rows in DC::TDC bank
*/
public void set_NumTDCBankRows(int num){
this.numTDCBankRows = num;
}

/**
*
* @return # of rows in DC::TDC bank
*/
public int get_NumTDCBankRows(){
return numTDCBankRows;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -36,21 +36,65 @@ public RecoBankWriter(Banks names) {

public void updateListsWithClusterInfo(List<FittedHit> fhits,
List<FittedCluster> clusters) {

ArrayList rmHits = new ArrayList<FittedHit>();
ArrayList addHits = new ArrayList<FittedHit>();
for (int i = 0; i < clusters.size(); i++) {
clusters.get(i).set_Id(i + 1);
for (int j = 0; j < clusters.get(i).size(); j++) {

clusters.get(i).get(j).set_AssociatedClusterID(clusters.get(i).get_Id());
addHits.add(clusters.get(i).get(j));
for (int k = 0; k < fhits.size(); k++) {
if (fhits.get(k).get_Id() == clusters.get(i).get(j).get_Id()) {
fhits.remove(k);
fhits.add(clusters.get(i).get(j));

rmHits.add(fhits.get(k));
}
}
}
}

fhits.removeAll(rmHits);
fhits.addAll(addHits);
}

public DataBank fillHitsBank(DataEvent event, List<FittedHit> hitlist) {
String name = bankNames.getHitsBank();

int rejCnt = 0;
for (int i = 0; i < hitlist.size(); i++) {
// if (hitlist.get(i).get_Id() == -1 /*|| hitlist.get(i).get_Id()==0*/) { //PASS1
if (hitlist.get(i).get_Id() == -1 || hitlist.get(i).get_Id()==0) {
rejCnt++;
}
}
DataBank bank = event.createBank(name, hitlist.size()-rejCnt);
rejCnt=0;
for (int i = 0; i < hitlist.size(); i++) {
// if (hitlist.get(i).get_Id() == -1 /*|| hitlist.get(i).get_Id()==0*/) { //PASS1
if (hitlist.get(i).get_Id() == -1 || hitlist.get(i).get_Id()==0) {
rejCnt++;
continue;
}
bank.setShort("id", i-rejCnt, (short) hitlist.get(i).get_Id());
bank.setShort("indexTDC", i-rejCnt, (short) hitlist.get(i).get_IndexTDC());
bank.setShort("status", i-rejCnt, (short) hitlist.get(i).get_QualityFac());
bank.setByte("superlayer", i-rejCnt, (byte) hitlist.get(i).get_Superlayer());
bank.setByte("layer", i-rejCnt, (byte) hitlist.get(i).get_Layer());
bank.setByte("sector", i-rejCnt, (byte) hitlist.get(i).get_Sector());
bank.setShort("wire", i-rejCnt, (short) hitlist.get(i).get_Wire());
bank.setFloat("docaError", i-rejCnt, (float) hitlist.get(i).get_DocaErr());
bank.setFloat("trkDoca", i-rejCnt, (float) hitlist.get(i).get_ClusFitDoca());
bank.setFloat("LocX", i-rejCnt, (float) hitlist.get(i).get_lX());
bank.setFloat("LocY", i-rejCnt, (float) hitlist.get(i).get_lY());
bank.setFloat("X", i-rejCnt, (float) hitlist.get(i).get_X());
bank.setFloat("Z", i-rejCnt, (float) hitlist.get(i).get_Z());
bank.setByte("LR", i-rejCnt, (byte) hitlist.get(i).get_LeftRightAmb());
bank.setShort("clusterID", i-rejCnt, (short) hitlist.get(i).get_AssociatedClusterID());
bank.setInt("TDC",i-rejCnt,hitlist.get(i).get_TDC());
bank.setByte("jitter",i, (byte) hitlist.get(i).getJitter());

}

return bank;

}

Expand Down Expand Up @@ -829,6 +873,7 @@ public List<FittedHit> createRawHitList(List<Hit> hits) {
hit.get_Layer(), hit.get_Wire(), hit.get_TDC(), hit.getJitter(),
hit.get_Id());
fhit.set_Id(hit.get_Id());
fhit.set_IndexTDC(hit.get_IndexTDC());
fhit.set_DocaErr(hit.get_DocaErr());
fhits.add(fhit);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,9 @@ public class Cluster extends ArrayList<Hit> {
private int _Sector; // sector[1...6]
private int _Superlayer; // superlayer [1,...6]
private int _Id; // cluster Id

private int _MinWire;
private int _MaxWire;

/**
*
* @param sector the sector (1...6)
Expand Down Expand Up @@ -107,6 +109,38 @@ public int get_RegionSlayer() {
return (this._Superlayer + 1) % 2 + 1;
}

/**
*
* @return the min wire of the cluster (1...112)
*/
public int get_MinWire() {
return _MinWire;
}

/**
*
* @param _MinWire min wire of the cluster (1...112)
*/
public void set_MinWire(int _MinWire) {
this._MinWire = _MinWire;
}

/**
*
* @return the max wire of the cluster (1...112)
*/
public int get_MaxWire() {
return _MaxWire;
}

/**
*
* @param _MaxWire max wire of the cluster (1...112)
*/
public void set_MaxWire(int _MaxWire) {
this._MaxWire = _MaxWire;
}

/**
*
* @return cluster info. about location and number of hits contained in it
Expand Down
Loading