Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

I did not filter out non-triggered events, so you'll need to eyeball log plots. Note the ranges are a little different. No gap between 1 and 3. Actually on a log plot there are a few instances of 2.

Addendum 3/8/2006 (RXD)

The odd energy bumps are caused by individual hits:

Image Added

and if I print out some of the hits from CalXtalRecData, I see

No Format

twr, lyr, col = 4 6 11 range 1 ph0 4770.56 E 4770.56
twr, lyr, col = 0 7 0 range 1 ph0 5170.28 E 5170.28
twr, lyr, col = 3 5 9 range 1 ph0 4888.91 E 4888.91
twr, lyr, col = 13 5 6 range 1 ph0 4576.14 E 4576.14
twr, lyr, col = 9 6 1 range 1 ph0 4438.02 E 4438.02

If I did this correctly all these baddies are range 1, and I assume maxed out. This may explain the deficit of range 2 crystals. And maybe some effect for getting range 3.

The plots and printout were done with:

No Format

    CalRecon *calRec = rec->getCalRecon();
    
    if (!calRec) return;
 
    TObjArray*  xtalCol = calRec->getCalXtalRecCol();
    Long64_t numXtal = xtalCol->GetEntries();
    ((TH1F*)GetObjectPtr("CALXTALCOUNT"))->Fill((Float_t)numXtal);
    float totXE = 0.;
    for (int xc=0;xc<numXtal; xc++) {
      CalXtalRecData* xtal = (CalXtalRecData*)xtalCol->At(xc);
      float xtalEnergy = xtal->getEnergy();
      ((TH1F*)GetObjectPtr("CALXTALE"))->Fill(xtalEnergy);
      if (xtalEnergy > 2000) {
	CalXtalId id = xtal->getPackedId();
	int lyr = id.getLayer();
	int twr = id.getTower();
	int col = id.getColumn();
	CalRangeRecData* rData = xtal->getRangeRecData(0);
	int range = rData->getRange(0);
	double ph0 = xtal->getEnergySelectedRange(range,0);
	std::cout << "twr, lyr, col = " << twr << " " << lyr << " " << col <<
	  " range " << range << " ph0 " << ph0 << " E " << xtalEnergy << std::endl;

	continue;
      }
      totXE += xtalEnergy;
    }
    ((TH1F*)GetObjectPtr("CALXTALTOTE"))->Fill(totXE);