# This tcl file should be used with an exe like: # % bin/Linux2-KCC_4_0/Sin2BetaModuleTest # where is something like UFindCaf.tcl # #Put this in the UFind_SVTsel.tcl instead #module clone TrackSelectorModule SVT #For the kaons talk TrackSelectorModule verbose set true #debugFlag set true trackCutManager cut ptCutL = Pt > 1.3 cut etaCut = AbsEta < 1.4 #cut cotCut = HasCOTHits 20 20 0 0 0 0 cut svxCut = HasSVXIIHitLayers 3 0 0 0 cut errCut = HasHelixFit && PhysicalError cut K_std = etaCut && svxCut && ptCutL && errCut exit inputTracks set defTracks trackRefit refitTracks set true dropL00 set true dropISL set false # refit method refitMethod set KAL # rescale COT covariance matrix rescaleCOTCov set true curvCOTFactor set 21.72 d0COTFactor set 11.57 phi0COTFactor set 14.64 lambdaCOTFactor set 1.544 z0COTFactor set 1.71 show exit exit #For the muons talk TrackSelectorModule-SVT verbose set true #debugFlag set true trackCutManager cut ptCutL = Pt > 0.4 cut etaCut = AbsEta < 1.4 cut cotCut = HasCOTHits 10 10 0 0 0 0 cut svxCut = HasSIHits 3 0 0 0 cut errCut = HasHelixFit && PhysicalError cut mu_std = etaCut && cotCut && svxCut && ptCutL && errCut exit inputTracks set LeptonSvtSel_muons trackRefit refitTracks set true dropL00 set true dropISL set false # refit method refitMethod set KAL # rescale COT covariance matrix rescaleCOTCov set true curvCOTFactor set 21.72 d0COTFactor set 11.57 phi0COTFactor set 14.64 lambdaCOTFactor set 1.544 z0COTFactor set 1.71 show exit #debugFlag set t exit talk TrackAssocModule # inputTrackView set UFinderTracks #refit set f K_Std_Assoc doSvt set t doDedx set t doTof set t exit mu_Std_Assoc doMuons set true doSvt set true doDedx set false doTof set false exit #verbose set t exit mod enable UFindModule mod talk UFindModule verbose set true FinderManager new UnstableCandFinder PV 533 new TrackAssocCandFinder Mu2 13 new TrackAssocCandFinder Ka1 321 new TrackAssocCandFinder Ka2 321 # new UnstableCandFinder Phi 333 new TrackAssocCandFinder Mu1 13 # new UnstableCandFinder Bs 531 new SimpleVertexGuru SM 0 # Let first loop run over Mu2,so that we don't bother with the phi's # if the two muons are not on the opposite sides: decay Phi to Ka1 Ka2 decay Bs to Mu1 Phi decay PV to Mu2 Bs # which would result it the following loop order: # Mu2 -> Mu1 -> K1 -> K2 #--- Now set cuts for each particle SM verboseLevel set 2 exit Mu2 #verboseLevel set 5 track_view mu_Std_Assoc selection_actions new HasMuonCut hasMu new UpdateKinematics uk #new DeltaPhiCut dphi > 1.5 -relative_to Ka1 #new DeltaPhiCut dphi calculate_only -ntuplable -relative_to Pi1 #new D0Cut cD0 calculate_only -signed -ntuplable exit Mu2 add CandKinemNt kinRAW -version RAW add CandKinemNt kinFIT -version 2 -prefix F add TrackNt trkNt trkNt add TrackAssocMuonMatchNt mdat ##add TrackAssocMuonTrigMatchNt mtrig add TrackAssocSvtMatchNt svt exit exit exit Mu1 #verboseLevel set 5 track_view mu_Std_Assoc selection_actions new HasMuonCut hasMu new UpdateKinematics uk new PtCut pt > 0.5 new DeltaPhiCut dphi > 1.5 -relative_to Mu2 #new D0Cut cD0 calculate_only -signed -ntuplable # new OpenAngCut ang < 1.0 -axis Phi exit Mu1 add CandKinemNt kinRAW -version RAW add CandKinemNt kinFIT -version 2 -prefix F add TrackNt trkNt trkNt add TrackAssocMuonMatchNt mdat #add TrackAssocDedxNt dedxNt #add TrackAssocTofNt tofNt add TrackAssocSvtMatchNt svt exit exit exit Ka1 track_view K_Std_Assoc #verboseLevel set 0 selection_actions new UpdateKinematics uk new PtCut pt > 0.8 new D0Cut cD0 calculate_only -signed -ntuplable exit Ka1 add CandKinemNt kinRAW -version RAW add CandKinemNt kinFIT -version 2 -prefix F add TrackNt trkNt trkNt add TrackAssocDedxNt dedxNt add TrackAssocTofNt tofNt add TrackAssocSvtMatchNt svt exit exit exit Ka2 #verboseLevel set 0 track_view K_Std_Assoc #--- Continue loop is necessary since Ka1 and Ka2 are #--- indistinguishable particles and only one combination is allowed. continue_loop Ka1 selection_actions new UpdateKinematics uk new PtCut pt > 0.8 new ChargeProdCut rQ = -1 -relative_to Ka1 new D0Cut cD0 calculate_only -signed -ntuplable exit Ka2 add CandKinemNt kinRAW -version RAW add CandKinemNt kinFIT -version 2 -prefix F add TrackNt trkNt trkNt add TrackAssocDedxNt dedxNt add TrackAssocTofNt tofNt add TrackAssocSvtMatchNt svt exit exit exit Phi #--- Phi decays strongly, and thus will decay at Bs's vertex. #--- The following command tells Phi to use Bs's vertex in VertexFit. #verboseLevel set 0 use_parents_vtx true selection_actions new UpdateKinematics uk #--- Thre is no need for ChargeCut, since Q(K1)*Q(K2) = -1 #new MassCut mass window 1.009 1.029 new MassCut mass window 0.969 1.0794 new VertexFit vf new FitProbCut prob > 0.0001 #new MassCut massF window 0.979 1.0784 #new MassCut massF window 1.00 1.02 #new FitD0Cut cD0 calculate_only -ntuplable exit Phi add CandKinemNt kinRAW -version RAW add CandKinemNt kinFT2 -version 2 -prefix F2 add DecayVertexFitNt dec exit exit Bs #verboseLevel set 5 selection_actions new UpdateKinematics uk new MassCut mass window 1.5 6 #new MassCut mass window 1.9185 2.0185 new VertexFit vf new FitProbCut prob > 0.0001 # new FitLxyCut lxys > 0 #new MassCut massF window 1.9 2.1 #new FitD0Cut cD0 calculate_only -signed -ntuplable #new HelicityCut hel > 0.4 -in_cm Phi -relative_to Ka1 calculate_only -ntuplable #new HelicityCut hel calculate_only -in_cm Phi -relative_to Ka1 -ntuplable exit Bs add CandKinemNt kinRAW -version RAW add CandKinemNt kinFT2 -version 2 -prefix F2 add DecayVertexFitNt dec exit exit PV #verboseLevel set 5 top_level true ntupleTitle set ufnt selection_actions new UpdateKinematics uk new MassCut mass > 5.5 exit #--- Actions to handle a good candidate handling_actions #--- In large-scale job, use the quiet version that just counts new FoundGoodCand fgcQ # new FoundGoodCand fgc -verbose 1 exit oldNtupling set f PV add CandKinemNt kinRAW -version RAW #add L3TrigMatchNt trig exit #--- Now tell the Universal Finder to figure everything else out! prepare_search exit exit exit