******************************************************************************* Nov 24 2004 Linked the loose muon strip. ******************************************************************************* Every Event has at least 1 loose muon Loose muon cuts: 1. Cosmic Cut ( Ashutosh Cosmic ray filter's variables are not filled in the UC Ntuple) cut &= ((uber.muon.cray[j] == 0) || (uber.muon.cray[j] == 1)) ; cout << "cray = " << uber.muon.cray[j] << endl; // cut &= ((uber.muon.cosmic & 0x4000) != 0x4000); // cut &= ((uber.muon.cosmic & 1) == 0); 2 . Track Pt > 18 GeV // From Objects.C float pt = 1/fabs(correctedCurv(data, uber, j)); cut &= pt > 18; 3. Calorimetry cuts (Em, Had) Em < 2 + max(0, (p-100)*.0115) Had < 2 + max(0, (p-100)*.028) float p = uber.track.p[uber.muon.trind[j]]; cut &= uber.muon.em[j] < ( 2+ 0.5*fabs((p-100)*0.0115) +0.5*((p-100)*0.0115) ); cut &= uber.muon.had[j] < ( 6+ 0.5*fabs((p-100)*0.028) +0.5*((p-100)*0.028) ); 3. Track Cuts (#Stereo layers >=3 and #Axial layer >=2) // Track cuts cut &= 3<= uber.track.naxialsl[uber.muon.trind[j]]; cut &= 2<= uber.track.nstereosl[uber.muon.trind[j]]; 4. Chi2 cut (chi2/DOF < 4 ) float chi2 = uber.track.chi2CT[uber.muon.trind[j]]/ "DOF"; cut &= (4 > chi2); 5. Vertex cut cut &= fabs(uber.muon.ztrack[j]) < 60; 6. Isolation cut cut &= (uber.muon.EtCone4[j]/pt) < 0.1;