 |
Belle II Software
release-05-01-25
|
11 #include "reconstruction/modules/CDCDedxSkim/CDCDedxSkimModule.h"
13 #include "framework/datastore/StoreArray.h"
15 #include <mdst/dataobjects/TrackFitResult.h>
17 #include <tracking/dataobjects/RecoTrack.h>
21 #define mass_e 0.511e-3
22 #define mass_mu 105.658e-3
23 #define mass_pi 139.570e-3
24 #define mass_k 493.677e-3
25 #define mass_p 938.272e-3
34 setDescription(
"Apply clean up cuts for dE/dx purposes.");
38 m_EoverP = {0.85, 1.15};
39 m_EccOverEcm = {0.75, 1.15};
41 addParam(
"eventType", m_eventType,
42 "Event type: (-1) clean up tracks, (0) bhabha, (1) radiative bhabha, (2) two photon (e+e-), (3) di-muon, (4) radiative di-muon (5) D-decays (D*->D0 pi; D0 -> K pi)",
45 addParam(
"unmatchedCluster", m_unmatchedCluster,
"number of unmatched clusters per event",
int(0));
46 addParam(
"EoverP", m_EoverP,
"range for E/p per track", m_EoverP);
47 addParam(
"EccOverEcm", m_EccOverEcm,
"ranger for total energy depostied in the calorimeter divided by the cm energy per event",
72 bool m_Bhabha(
false), m_RadBhabha(
false), m_TwoPhoton(
false);
73 bool m_DiMuon(
false), m_RadDiMuon(
false);
76 for (
unsigned int i = 0; i <
m_eventType.size(); i++) {
101 int nGoodElectrons = 0;
106 for (
int iTrack = 0; iTrack <
m_tracks.getEntries(); iTrack++) {
118 if (m_Bhabha ==
true || m_RadBhabha ==
true || m_TwoPhoton ==
true) {
124 double trackEnergy = sqrt(trackMom.Mag2() + mass_e * mass_e);
125 double EoverP = trackEnergy / trackMom.Mag();
134 if (m_DiMuon ==
true || m_RadDiMuon ==
true) {
140 double trackEnergy = sqrt(trackMom.Mag2() + mass_mu * mass_mu);
141 double EoverP = trackEnergy / trackMom.Mag();
149 if ((m_Bhabha ==
true || m_RadBhabha ==
true || m_TwoPhoton ==
true) && nGoodElectrons != 2)
151 if ((m_DiMuon ==
true || m_RadDiMuon ==
true) && nGoodMuons != 2)
161 const TrackFitResult* fitResult = track->getTrackFitResultWithClosestMass(chargedStable);
163 B2WARNING(
"No related fit for this track, skipping");
170 B2WARNING(
"Track has no associated hits, skipping");
175 double trackPVal = fitResult->
getPValue();
176 double d0 = fitResult->
getD0();
177 double z0 = fitResult->
getZ0();
181 if (trackPVal < 0.00001 || nCDCHits < 1 || std::abs(d0) <= 0.1 || std::abs(z0) <= 10) {
191 B2INFO(
"CDCDedxSkimModule exiting after processing " <<
m_trackID <<
192 " tracks in " <<
m_eventID + 1 <<
" events.");
std::vector< double > m_EoverP
range for E/p per track
int m_trackID
the track number (for one event)
TVector3 getMomentum() const
Getter for vector of momentum at closest approach of track in r/phi projection.
static const ChargedStable electron
electron particle
#define REG_MODULE(moduleName)
Register the given module (without 'Module' suffix) with the framework.
int m_eventID
the event number
double getPValue() const
Getter for Chi2 Probability of the track fit.
bool isGoodTrack(const Track *track, const Const::ChargedStable &chargedStable)
A method to check whether a track passes some nominal cuts.
Values of the result of a track fit with a given particle hypothesis.
virtual void terminate() override
End of the event processing.
double getZ0() const
Getter for z0.
This is the Reconstruction Event-Data Model Track.
static const ChargedStable pion
charged pion particle
virtual void initialize() override
Initialize routine.
Abstract base class for different kinds of events.
virtual void event() override
Check the event and track quality and apply clean up cuts.
This module may be used to skim a data sample according to a specific set of cuts.
virtual ~CDCDedxSkimModule()
Destructor.
void setReturnValue(int value)
Sets the return value for this module as integer.
unsigned int getNumberOfTotalHits() const
Return the number of cdc + svd + pxd + bklm + eklm hits.
Provides a type-safe way to pass members of the chargedStableSet set.
std::vector< int > m_eventType
Event type: (0) bhabha, (1) radiative bhabha, (2) two photon (e+e-), (3) di-muon, (4) radiative di-mu...
static const ChargedStable muon
muon particle
Class that bundles various TrackFitResults.
StoreArray< Track > m_tracks
Required array of input tracks.
double getD0() const
Getter for d0.