hps-java/src/main/java/org/lcsim/hps/users/phansson
diff -u -r1.5 -r1.6
--- FastTrackResidualDriver.java 9 May 2012 17:24:15 -0000 1.5
+++ FastTrackResidualDriver.java 11 May 2012 15:49:20 -0000 1.6
@@ -86,7 +86,7 @@
ecalBeamgapCorr = 20.0;
// Position of the conversion
- conversionZ = -1400.0;
+ conversionZ = -1500.0;
ecalClusterSel = 1;
@@ -97,8 +97,8 @@
else side="down";
ncl_ecal.add(hf.createHistogram1D("FT_ncl_ecal_" + side , 20, 0, 20));
- selcl_ecal_e.add(hf.createHistogram1D("FT_selcl_ecal_e" + side , 100, 0, 20000));
- cl_ecal_e.add(hf.createHistogram1D("FT_cl_ecal_e" + side , 100, 0, 20000));
+ selcl_ecal_e.add(hf.createHistogram1D("FT_selcl_ecal_e" + side , 100, 0, 4000));
+ cl_ecal_e.add(hf.createHistogram1D("FT_cl_ecal_e" + side , 100, 0, 4000));
nhits_tracker.add(hf.createHistogram1D("FT_nhits_tracker_" + side , 15, 0, 15));
@@ -170,7 +170,7 @@
public void setecalBeamgapCorr(double val) {
this.ecalBeamgapCorr = val;
- System.out.println("offset set: " + ecalBeamgapCorr);
+ System.out.println("beamgap corr set: " + ecalBeamgapCorr);
}
public void setDebug(boolean flag) {
@@ -183,10 +183,12 @@
public void setEcalZPosition(double val) {
this.EcalZPosition = val;
+ System.out.println("EcalZPosition set: " + EcalZPosition);
}
public void setEcalClusterSel(int id) {
this.ecalClusterSel = id;
+ System.out.println("ecalClusterSel set: " + ecalClusterSel);
}
@@ -263,22 +265,28 @@
//Fill map of Ecal hits
for( int icl=0; icl<ecal_cls.size(); ++icl) {
+ if(debug) System.out.println("icl " + icl);
int clid = ecal_cls.get(icl);
+ if(debug) System.out.println("clid " + clid + " all clusters size " + ecal_all_clusters.size());
double p_cl[] = ecal_all_clusters.get(clid).getPosition();
int clpos[] = getCrystalPair(p_cl);
+ if(debug) System.out.println("clpos " + clpos[0] + "," + clpos[1]);
ncl_ecal_map.get(iSide).fill(clpos[0], clpos[1]);
+ if(debug) System.out.println("clpos " + clpos[0] + "," + clpos[1]);
cl_ecal_e.get(iSide).fill(ecal_all_clusters.get(icl).getEnergy());
}
sel_ecal_idx = selectCluster(ecal_cls,ecal_all_clusters);
- if (debug) System.out.println("Selected clid " + sel_ecal_idx + " is cluster " + ecal_all_clusters.get(sel_ecal_idx).toString() + " and will be used as pointer of fast track ");
if (sel_ecal_idx < 0) {
if (debug) System.out.println("No selected cluster!");
continue;
}
+ if (debug) System.out.println("Selected clid " + sel_ecal_idx + " is cluster " + ecal_all_clusters.get(sel_ecal_idx).toString() + " and will be used as pointer of fast track ");
+
+
selclids = getCrystalPair(ecal_all_clusters.get(sel_ecal_idx).getPosition());
nselcl_ecal_map.get(iSide).fill(selclids[0], selclids[1]);
@@ -503,6 +511,7 @@
private int selectCluster(List<Integer> ids, List<HPSEcalCluster> clusters) {
//need to decide which cluster to take
+
if (clusters.size()==0) {
throw new RuntimeException("No clusters to select from!!!");
}
@@ -511,14 +520,18 @@
throw new RuntimeException("No idx to clusters to select from!!!");
}
+ if(debug) {
+ System.out.println("Select among " + clusters.size() + " clusters restricted to indexes" + ids.toString());
+ }
+
int sel_id = -1;
switch (ecalClusterSel) {
case 1:
- //Require at least 3000MeV cluster
+ //Require at least 1000MeV cluster
double E = -1.0;
for (int i=0;i<ids.size();++i) {
- if (clusters.get(ids.get(i)).getEnergy()>3000.0 && clusters.get(ids.get(i)).getEnergy()>E ) {
+ if (clusters.get(ids.get(i)).getEnergy()>1000.0 && clusters.get(ids.get(i)).getEnergy()>E ) {
sel_id = ids.get(i);
E = clusters.get(ids.get(i)).getEnergy();
}
@@ -531,7 +544,8 @@
}
break;
}
-
+ if (debug) System.out.println("Selected ecal cluster id " + sel_id);
+
return sel_id;
}
@@ -609,7 +623,7 @@
return nhits;
}
- private int[] getNAxialHitsPerLayer(List<SiTrackerHitStrip1D> trackerHits, String side) {
+ public int[] getNAxialHitsPerLayer(List<SiTrackerHitStrip1D> trackerHits, String side) {
int nhits=0;
String si_side;
SiSensor siSensor;
@@ -665,9 +679,9 @@
int ilayer = -1;// = Integer.parseInt(layer.substring(layer.length()-1));
if (name.contains("layer")) {
- String l = name.substring(13);
- l = l.substring(0, l.indexOf("_"));
- ilayer = Integer.parseInt(l);
+ //String str_l = name.substring(13);
+ String str_l = name.substring(name.indexOf("layer")+5, name.indexOf("_module"));
+ ilayer = Integer.parseInt(str_l);
if ( ilayer < 1 || ilayer > 10 ) {
System.out.println("This layer doesn't exist?");