Author: [log in to unmask]
Date: Mon May 25 07:32:44 2015
New Revision: 3018
Log: (empty)
Added:
java/trunk/users/src/main/java/org/hps/users/luca/FeeCalibHistCreator.java
Added: java/trunk/users/src/main/java/org/hps/users/luca/FeeCalibHistCreator.java
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/luca/FeeCalibHistCreator.java (added)
+++ java/trunk/users/src/main/java/org/hps/users/luca/FeeCalibHistCreator.java Mon May 25 07:32:44 2015
@@ -0,0 +1,129 @@
+/*
+ * To change this license header, choose License Headers in Project Properties.
+ * To change this template file, choose Tools | Templates
+ * and open the template in the editor.
+ */
+package org.hps.users.luca;
+import hep.aida.IHistogram1D;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.hps.conditions.ecal.EcalChannel.EcalChannelCollection;
+import org.hps.conditions.ecal.EcalConditions;
+import org.lcsim.conditions.ConditionsManager;
+import org.lcsim.event.CalorimeterHit;
+import org.lcsim.event.Cluster;
+import org.lcsim.event.EventHeader;
+import org.lcsim.geometry.Subdetector;
+import org.lcsim.util.Driver;
+import org.lcsim.util.aida.AIDA;
+/**
+ *
+ * @author Luca
+ */
+public class FeeCalibHistCreator extends Driver {
+
+double energyThreshold=0;
+ protected String clusterCollectionName = "EcalClustersGTP";
+
+
+ private EcalConditions ecalConditions = null;
+ final private String ecalName = "Ecal";
+ private Subdetector ecal;
+ private EcalChannelCollection channels= null;
+ double[] gain=new double[442];
+
+ //Declaration of histograms array
+ AIDA aida = AIDA.defaultInstance();
+ ArrayList<IHistogram1D> GTPHists = new ArrayList<IHistogram1D>(442);
+ ArrayList<IHistogram1D> GTPSeedHists = new ArrayList<IHistogram1D>(442);
+
+
+ public void setEnergyThreshold (double threshold){
+ this.energyThreshold=threshold;
+ }
+
+
+
+
+
+ @Override
+public void startOfData(){
+ //initialize histograms
+ for(int t=0; t<442; t++){
+ String cristallo=String.valueOf(t+1);
+ String GTPhistName="GTP Cluster Energy(Run)" + cristallo;
+ String GTPSeedHistName="GTP Seed Energy(Run)"+ cristallo;
+
+
+ IHistogram1D GTPseedhisto=aida.histogram1D(GTPSeedHistName, 200, 0.0,2.5);
+ IHistogram1D GTPclushisto=aida.histogram1D(GTPhistName, 200, 0.0,2.5);
+
+ GTPHists.add(GTPclushisto);
+ GTPSeedHists.add(GTPseedhisto);
+
+ }
+
+
+}
+
+
+
+ @Override
+ public void endOfData(){
+
+}
+ @Override
+ public void process (EventHeader event){
+
+ //here it writes the GTP clusters info
+ if(event.hasCollection(Cluster.class,"EcalClustersGTP"))
+ {List<Cluster> clusters= event.get(Cluster.class,"EcalClustersGTP");
+ for(Cluster cluster : clusters){
+ int idBack;
+
+
+ idBack=getDBID(cluster);
+
+
+ //riempio gli istogrammi
+ if(cluster.getEnergy()>energyThreshold){
+ GTPHists.get(idBack -1).fill(cluster.getEnergy());
+ GTPSeedHists.get(idBack-1).fill(cluster.getCalorimeterHits().get(0).getCorrectedEnergy());
+ }
+ }
+ }
+
+ }
+
+
+ public int getDBID ( Cluster cluster ){
+ int xx= cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("ix");
+ int yy=cluster.getCalorimeterHits().get(0).getIdentifierFieldValue("iy");
+ int XOFFSET=23;
+ int YOFFSET=5;
+ int ix = xx<0 ? xx+XOFFSET : xx+XOFFSET-1;
+ int iy = yy<0 ? yy+YOFFSET : yy+YOFFSET-1;
+ int dbid = ix + 2*XOFFSET*(YOFFSET*2-iy-1) + 1;
+ if (yy == 1 && xx>-10){ dbid-=9;}
+ else if (yy == -1 && xx<-10) {dbid-=9;}
+ else if (yy < 0){dbid-=18;}
+ return dbid;
+}
+
+public int getDBID ( CalorimeterHit hit ){
+ int xx= hit.getIdentifierFieldValue("ix");
+ int yy= hit.getIdentifierFieldValue("iy");
+ int XOFFSET=23;
+ int YOFFSET=5;
+ int ix = xx<0 ? xx+XOFFSET : xx+XOFFSET-1;
+ int iy = yy<0 ? yy+YOFFSET : yy+YOFFSET-1;
+ int dbid = ix + 2*XOFFSET*(YOFFSET*2-iy-1) + 1;
+ if (yy == 1 && xx>-10){ dbid-=9;}
+ else if (yy == -1 && xx<-10) {dbid-=9;}
+ else if (yy < 0){dbid-=18;}
+ return dbid;
+}
+
+}
|