Author: [log in to unmask]
Date: Mon Mar 9 10:29:31 2015
New Revision: 2375
Log:
Further book-keeping for LedSequence monitor driver, that will run in the monitoring app
Added:
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/LedSequenceMonitor.java
- copied, changed from r2372, java/trunk/users/src/main/java/org/hps/users/celentan/LedAnalysis.java
Removed:
java/trunk/users/src/main/java/org/hps/users/celentan/LedAnalysis.java
Modified:
java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java
java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalLedSequenceMonitor.lcsim
Copied: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/LedSequenceMonitor.java (from r2372, java/trunk/users/src/main/java/org/hps/users/celentan/LedAnalysis.java)
=============================================================================
--- java/trunk/users/src/main/java/org/hps/users/celentan/LedAnalysis.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/LedSequenceMonitor.java Mon Mar 9 10:29:31 2015
@@ -1,4 +1,4 @@
-package org.hps.users.celentan;
+package org.hps.monitoring.ecal.plots;
import hep.aida.ICloud1D;
@@ -51,7 +51,7 @@
/* This is the driver used to determine the response of each calorimeter channel after a LED run
* @author Andrea Celentano <[log in to unmask]>
*/
-public class LedAnalysis extends Driver{
+public class LedSequenceMonitor extends Driver{
private static final int NUM_CHANNELS = 11 * 47;
@@ -159,7 +159,7 @@
fFunction= new ArrayList<IFunction>(NUM_CHANNELS);
fFunction1= new ArrayList<IFunction>(NUM_CHANNELS);
hCharge = new ArrayList<IHistogram1D>(NUM_CHANNELS);
- // hChargeVsTime = new ArrayList<IHistogram2D>(NUM_CHANNELS);
+ // hChargeVsTime = new ArrayList<IHistogram2D>(NUM_CHANNELS);
hChargeALL = new ArrayList<IHistogram1D>(NUM_CHANNELS);
hChargeVsTimeALL = new ArrayList<IHistogram2D>(NUM_CHANNELS);
hMeanCharge2D = aida.histogram2D("Average LED response", 47, -23.5, 23.5, 11, -5.5, 5.5);
@@ -168,7 +168,7 @@
int row = EcalMonitoringUtilities.getRowFromHistoID(ii);
int column = EcalMonitoringUtilities.getColumnFromHistoID(ii);
iTuple.add(aida.analysisFactory().createTupleFactory(aida.tree()).create("nTuple"+ii,"nTuple"+ii,"int fEvn=0 , double fCharge=0.,double fTime=0.",""));
-
+
hChargeALL.add(aida.histogram1D("ChargeAllEvents_"+ii,400,0.,100.));
hChargeVsTimeALL.add(aida.histogram2D("ChargeVsTimeAllEvents_"+ii,100,0.,400.,100,0.,100.));
}
@@ -201,7 +201,7 @@
//fill "all" histograms
hChargeALL.get(id).fill(fillEnergy);
hChargeVsTimeALL.get(id).fill(fillTime,fillEnergy);
-
+
//find the LED
chid = ChannelCollection.findGeometric(cellID).getChannelId();
if (row>0){
@@ -225,9 +225,8 @@
if (iStep[driverid]==-1) continue;
/*Case 1: this led is the one in the corresponding step*/;
- if (ledid==LEDStep[driverid][iStep[driverid]]){
- //hRaw.get(id).fill(rawEnergy);
- //cStrip.get(id).fill(nEvents[id],rawEnergy);
+ //if (ledid==LEDStep[driverid][iStep[driverid]]){
+ if (true){
iTuple.get(id).fill(0,nEvents[id]);
iTuple.get(id).fill(1,fillEnergy);
@@ -243,7 +242,7 @@
/*Add a debug print */
if (eventN % 10000==0){
- System.out.println("Debug. LED ID: "+ledid+" DRIVER ID: "+driverid+" ECAL ID: "+id+" ROW: "+row+" COLUMN: "+column);
+ System.out.println("Debug. LED ID: "+ledid+" DRIVER ID: "+driverid+" ECAL ID: "+id+" ROW: "+row+" COLUMN: "+column+ "HISTO ID: "+id);
}
}
if (eventN % 10000==0){
@@ -270,9 +269,11 @@
*/
@Override
public void endOfData() {
+ }
+ public void MYendOfData() {
System.out.println("LedAnalysis::end of data");
-
+
double e,eMin,eMax;
double t;
int n,nBins,nFits,nSkip;
@@ -291,7 +292,7 @@
eMax=-9999;
row = EcalMonitoringUtilities.getRowFromHistoID(id);
column = EcalMonitoringUtilities.getColumnFromHistoID(id);
-
+ System.out.println("Doing channel: X= "+column+" Y= "+row);
/*Create the profile. Create it for all the channels, to keep sync.*/
nBins=nEvents[id]/100;
if (nBins<=0) nBins=1;
@@ -304,18 +305,22 @@
if (EcalMonitoringUtilities.isInHole(row,column)==true){
hCharge.add(aida.histogram1D("charge_"+id,200,0.,1.)); //create here the histogram to keep sync
- // hChargeVsTime.add(aida.histogram2D("chargeVsTime_"+id,200,0.,400.,200,0.,1.));
+ // hChargeVsTime.add(aida.histogram2D("chargeVsTime_"+id,200,0.,400.,200,0.,1.));
continue;
}
if (nEvents[id]==0) {
hCharge.add(aida.histogram1D("charge_"+id,200,0.,1.)); //create here the histogram to keep sync
- // hChargeVsTime.add(aida.histogram2D("chargeVsTime_"+id,200,0.,400.,200,0.,1.));
+ // hChargeVsTime.add(aida.histogram2D("chargeVsTime_"+id,200,0.,400.,200,0.,1.));
//System.out.println("LedAnalysis: channel x= "+column+" y= "+row+" not found");
continue;
}
/*Fill the profile*/
nSkip=(int)(nEvents[id]*skipInitial);
+ if (nSkip>iTuple.get(id).rows()){
+ System.out.println("Can't skip initial events?");
+ nSkip=0;
+ }
iTuple.get(id).start();
iTuple.get(id).skip(nSkip); /*This is the work-around for those channels with charge starting from 0 and rapidly growing*/
n=0;
@@ -374,7 +379,7 @@
and emit warning
*/
hCharge.add(aida.histogram1D("charge_"+id,200,eMin*0.9,eMax*1.1));
- // hChargeVsTime.add(aida.histogram2D("chargeVsTime_"+id,200,0.,400.,200,eMin*0.9,eMax*1.1));
+ // hChargeVsTime.add(aida.histogram2D("chargeVsTime_"+id,200,0.,400.,200,eMin*0.9,eMax*1.1));
nSkip=(int)( fPars[1]*5);
if (nSkip < (nEvents[id]/2)){
System.out.println("LedAnalysis:: Skip number too low: "+nSkip+" Increment it to "+nEvents[id]/2);
@@ -391,7 +396,7 @@
e=iTuple.get(id).getDouble(1);
t=iTuple.get(id).getDouble(2);
hCharge.get(id).fill(e);
- // hChargeVsTime.get(id).fill(t,e);
+ // hChargeVsTime.get(id).fill(t,e);
n++;
}
@@ -416,13 +421,13 @@
System.out.println("\n");
}/*End loop on channels*/
-
+
pPlotter.createRegions(1,1);
IPlotterStyle style = pPlotter.region(0).style();
style.setParameter("hist2DStyle", "colorMap");
style.dataStyle().fillStyle().setParameter("colorMapScheme", "rainbow");
style.dataStyle().fillStyle().setParameter("showZeroHeightBins", Boolean.FALSE.toString());
-
+
pPlotter.region(0).plot(hMeanCharge2D);
pPlotter.show();
@@ -438,7 +443,7 @@
// uploadToDB();
}
}
- /* System.err.println("\n\n\n***************************************************************\n");
+ /* System.err.println("\n\n\n***************************************************************\n");
String userInput="";
String outputFilePrefix="";
userInput=cc.readLine("Enter filename prefix, or just press RETURN ...");
@@ -449,10 +454,10 @@
outputFilePrefix = userInput;
}*/
-
-
-
-
+
+
+
+
}/*End endOfData*/
Modified: java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java
=============================================================================
--- java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java (original)
+++ java/trunk/monitoring-drivers/src/main/java/org/hps/monitoring/ecal/plots/EcalEventDisplay.java Mon Mar 9 10:29:31 2015
@@ -39,8 +39,7 @@
* <li>If the user clicks on a crystal, the corresponding energy and time
* distributions (both of type <code>IHistogram1D</code>) are shown in
* the last panel of the monitoring application, as well as a 2D histogram
- * (hit time vs. hit energy). Finally, if available, the raw waveshape (in
- * mV) is displayed.</li>
+ * (hit time vs. hit energy).The fourth panel reports energy for the crystal.</li>
*
* @author Andrea Celentano
*/
Modified: java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalLedSequenceMonitor.lcsim
=============================================================================
--- java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalLedSequenceMonitor.lcsim (original)
+++ java/trunk/steering-files/src/main/resources/org/hps/steering/monitoring/EcalLedSequenceMonitor.lcsim Mon Mar 9 10:29:31 2015
@@ -10,6 +10,7 @@
<driver name="EcalRunningPedestal"/>
<driver name="EcalRawConverter" />
<driver name="LedAnalysisDriver"/>
+ <driver name="EcalEventDisplay" /> <!-- Ecal event display -->
<driver name="AidaSaveDriver"/>
</execute>
<drivers>
@@ -31,8 +32,17 @@
<driver name="LedAnalysisDriver" type="org.hps.users.celentan.LedAnalysis">
<useRawEnergy>true</useRawEnergy>
</driver>
+ <driver name="EcalEventDisplay" type="org.hps.monitoring.ecal.plots.EcalEventDisplay">
+ <inputCollection>EcalCalHits</inputCollection>
+ <inputCollectionRaw>EcalReadoutHits</inputCollectionRaw>
+ <inputClusterCollection>EcalClusters</inputClusterCollection>
+ <pedSamples>20</pedSamples>
+ <maxEch>5.0</maxEch>
+ <minEch>0.005</minEch>
+ <eventRefreshRate>5</eventRefreshRate>
+ </driver>
<driver name="AidaSaveDriver" type="org.lcsim.job.AidaSaveDriver">
- <outputFileName>${outputFile}.aida</outputFileName>
+ <outputFileName>LedSequenceMonitorOut.aida</outputFileName>
</driver>
</drivers>
</lcsim>
|