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