Central Pre-Radiator Clustering



Table of Contents

1 - Introduction

2 - CPR Clustering

3 - CPR Objects

4 - Examples

5 - Validation

1 - Introduction
The Central Pre Radiator was proposed to improve prompt gamma measurement in the high ET region. (Ref. CDF note 760). In addition, it also improved electron-pion separation at low ET. The CPR consists of a single MWPC plane situated in the gap between the solenoid and the ElectroMagnetic calorimeter and measures the energy of charged particles exiting the coil. The cryostat and coil alone provide a radiation length of about 1.1 X0 before the particles reach the CPR plane. The following table gives some of the detector geometry parameters (Ref. CDFNote 1248)
Total width (X) 37.306 cm
Total depth (Y) 2.857 cm
Total length (Z) 116.205 cm
Sense wires 32
Wire Spacing 0.5556 cm
Cell size (with ganging) 2.2225 cm (2 wires are ganged together)
Readout channels per wedge 32
Z(Lower chamber) 7.94 - 119.7 cm
Z (higher chamber) 123.5 - 235.26 cm
Middle of CPR Radius 168.29 cm



2 - CPR Clustering
CPR clustering takes input in the form of Raw CPR hits in ADC counts, stored in the CPRD bank. The raw CPR hits are pedestal subtracted and converted to charge (in fC). There are two types of clustering options available. One is track-based, and the other is unbiased or energy based (usual Seed based clustering). CPR clustering for RunII and its validation is documented in CDF note 6192 .

2.1 - Track based Clustering
In the case of track based clustering each track is extrapolated to the CPR and the surrounding wires upto NMAX which can be specified are included around this track. The cluster charge is defined as the sum of Qi for i=1,NMAX wires included in the cluster, and the position is the energy weighted sum of the individual wire positions. (What we call wire actually means a cell. So we have 16 cells in each chamber)

2.1 - Seed based Clustering
In the case of Unbiased or Energy Based , all wires above a seed threshold (changeable in the talk-to) in decreasing order of energy, form the seed for the wire collection and i=1,NMAX wires (above a certain wire threshold ) are included around each seed and the seed wire together with its surrounding wires are marked used, to be excluded from the list of wires to be used in the next cluster. In this way the clustering continues until there are no wires left above the specified thresholds.

Default parameters used in the clustering (CprDefs.hh)
Charge/ADC (fC/count) 1.67
CPR pedestal 50 ADC counts
Seed Threshold 50 fC
Wire Threshold 30 fC
No. wires included around seed 3
Min. wires in cluster 1
Max wires in cluster 3




3 - CPR Objects
CprCluster is a Streamable Object deriving from ShowerMaxCluster.
The usable base class accessor functions are :
int module Wedge no. of the cluster
int side Side (0=west, 1=east)

The other usable accessor functions are :
double x_wire Local X position of the cluster
double energy_wire Energy of the cluster
int trackId Track # matched to cluster (0 for unbiased)
CdfTrack_clnk Track Link to Track matched to cluster (NULL for unbiased)
const vector < CprWire> wires vector of wires which make this cluster

The accessors for CprWire are :
double getPulseHeight CPR wire charge (in fC)
int getWireNo Wire No. (0-31)
int getModuleNo Wedge No.
double getSide Side (E/W)

CprClusterColl is a storable object and is accessible from the event. The 2 kinds of collection are:
"TrackBased_CprClusterCollection"
"SeedBased_CprClusterCollection"

See examples to access CPR Clusters.


4 - Examples
Parameters changeable in the tcl :
Name Description Default
CprPtmin Min PT of tracks considered 0.5
CprEtamin Min Eta of Tracks -1.2
CprEtamax Max Eta of Tracks 1.2
CprNumberWires Number of wires including seed wire in the collection 3
maxwiresclus Max. number of wires in cluster 3
minwiresclus Min. number of wires for cluster 1
wirecollstrat SeedBased(1) or TrackBased(0) or both(3) 3
CprSeedThrs Threshold cut for Seed Wire 50.0
CprWireThrs Threshold cut for Wires included 30.0
CprClusSeedThrs Threshold cut for Seed wire in cluster 50.0
CprClusWireThrs Threshold cut for wires in cluster 30.0
CprClusEnergyThrs Cut for total Cluster Energy 50.0


4.2 - To extrapolate a track to the CPR
The CprWireCollectionMaker implements functions to extrapolate the track and to find the wire hit from the extrapolated information. The examples below are extracted from CprClusterModule (CPR Clustering Module).
// extrapolate a track :
CprWireCollectionMaker wireCol;
// Loop over tracks
for (CdfTrackView::const_iterator i = theTracks->contents().begin(); i != theTracks->contents().end(); ++i) {
const CdfTrack_lnk & theTrack = *i;
wireCol.extrapolate_track(theTrack);

// Access extrapolated information :
float Xloc = wireCol.get_Xlocal(); // Local x and z position
float Zloc = wireCol.get_Zlocal();
float phi_glob = wireCol.Phi_global(); // Global phi and eta
float eta_glob = wireCol.Eta_global();
float side = wireCol.Side(); // Side (W/E)
float wedge = wireCol.Wedge(); // Wedge No.
}

4.3 - Accessing CPR Clusters
Say, you want to look at all track-based CPR clusters in an event:

std::string description = "TrackBased_CprClusterCollection"; // Track Based
//std::string description = "SeedBased_CprClusterCollection"; // Seed Based (Unbiased)
CprClusterColl_ch cprClusterColl;
StorableObject::SelectByDescription selector( description );
EventRecord::ConstIterator iter( anEvent, selector );
cprClusterColl = CprClusterColl_ch(iter);

// loop over the clusters
for (CprClusterColl::const_iterator cprIter = cprClusterColl->contents().begin();
cprIter != cprClusterColl->contents().end(); ++cprIter) {
CprCluster cprclus = *cprIter;
// Get the position
double x_clus = cprclus.x_wire();
}

5 - Validation
Validation for the CPR and CES is performed by CprCesValidationModule. It is run in Production.
The output production root files can be found on fcdflnx3.fnal.gov in /cdf/opr/cdfprod0 for different versions
. For some more useful validation results see Rob Snihur's page

Single electron simulated events :
Cluster charge distribution for Fake electrons
DX (cm) between Extrapolated track position and cluster position.
CPR Mip Response

Data commissioning Run 2000:
CPR Pedestal distribution
Track-cluster match

Data commissioning Run 1X8 Collisions:
Run on a muon enriched sample
Track Based CPR charge distribution
Track-cluster match
All Energy(Seed) Based charge distribution


Tania Moulik
Last modified: Wed Feb 26 11:46:28 CST 2003