#include <StopMuFinderFar.h>
Inheritance diagram for StopMuFinderFar:

Public Member Functions | |
| StopMuFinderFar () | |
| ~StopMuFinderFar () | |
| dtor | |
| void | DefaultConfig (void) |
| void | Configure (const Registry ®istry) |
| Bool_t | IsStopping (const MomNavigator *) |
| filter Stoping mu's | |
Private Attributes | |
| std::string | fCandTrackListName |
| Double_t | fMinZDistance |
| Double_t | fMinRadius |
| Double_t | fMaxRadius |
| Int_t | fMinNPlanes |
Definition at line 16 of file StopMuFinderFar.h.
|
|
Definition at line 52 of file StopMuFinderFar.cxx. References DefaultConfig(), and MSG. 00053 {
00054 MSG("StopMuFilter",Msg::kDebug)
00055 << "StopMuFinderFar::StopMuFinderFar()"
00056 << endl;
00057
00058 DefaultConfig();
00059 } // StopMuFinderFar::StopMuFinderFar()
|
|
|
dtor
Definition at line 188 of file StopMuFinderFar.cxx. References MSG. 00189 {
00190 MSG("StopMuFilter",Msg::kDebug)
00191 << "StopMuFinderFar::~StopMuFinderFar()"
00192 << endl;
00193 } // StopMuFinderFar::~StopMuFinderFar()
|
|
|
Implements StopMuFinder. Definition at line 79 of file StopMuFinderFar.cxx. References fCandTrackListName, fMaxRadius, fMinNPlanes, fMinRadius, fMinZDistance, Registry::GetCharString(), Registry::GetDouble(), Registry::GetInt(), Registry::GetType(), Registry::KeyExists(), and MSG. 00080 {
00081 MSG("StopMuFilter",Msg::kDebug)
00082 << "StopMuFinderFar::Configure(const Registry &)"
00083 << endl;
00084
00085 if ( registry.KeyExists("CandTrackList") ) {
00086 fCandTrackListName = std::string(registry.GetCharString("CandTrackList"));
00087 }
00088 if ( registry.KeyExists("MinZDistance") &&
00089 registry.GetType("MinZDistance") == typeid(Double_t) ) {
00090 fMinZDistance = registry.GetDouble("MinZDistance");
00091 }
00092 if ( registry.KeyExists("MinRadius") &&
00093 registry.GetType("MinRadius") == typeid(Double_t) ) {
00094 fMinRadius = registry.GetDouble("MinRadius");
00095 }
00096 if ( registry.KeyExists("MaxRadius") &&
00097 registry.GetType("MaxRadius") == typeid(Double_t) ) {
00098 fMaxRadius = registry.GetDouble("MaxRadius");
00099 }
00100 if ( registry.KeyExists("MinNPlanes") &&
00101 registry.GetType("MinNPlanes") == typeid(Int_t) ) {
00102 fMinNPlanes = registry.GetInt("MinNPlanes");
00103 }
00104 }
|
|
|
Implements StopMuFinder. Definition at line 64 of file StopMuFinderFar.cxx. References fMaxRadius, fMinNPlanes, fMinRadius, fMinZDistance, and MSG. Referenced by StopMuFinderFar(). 00065 {
00066 MSG("StopMuFilter",Msg::kDebug)
00067 << "StopMuFinderFar::DefaultConfig()"
00068 << endl;
00069
00070 fMinZDistance = 0.5;
00071 fMinRadius = 0.5;
00072 fMaxRadius = 3.5;
00073 fMinNPlanes = 10;
00074 }
|
|
|
filter Stoping mu's
Implements StopMuFinder. Definition at line 109 of file StopMuFinderFar.cxx. References fCandTrackListName, DataUtil::GetCandHeader(), CandRecoHandle::GetEndU(), CandRecoHandle::GetEndV(), CandRecoHandle::GetEndZ(), CandRecoHandle::GetNPlane(), RecMinosHdr::GetVldContext(), UgliGeomHandle::GetZExtent(), and MSG. 00110 {
00111 MSG("StopMuFilter",Msg::kDebug)
00112 << "StopMuFinderFar::IsStopping(const MomNavigator*)"
00113 << endl;
00114
00115 // get CandFitTrackList
00116 const CandFitTrackListHandle* candFitTrackList =
00117 GetCandidate<CandFitTrackListHandle> (mom, fCandTrackListName.c_str());
00118
00119 // no candidate list found
00120 if ( !candFitTrackList ) return kFALSE;
00121
00122 // set Z extent
00123 // doing it every event makes filter slow, so
00124 // instead do it once and save in static variables
00125 static Bool_t zExtentSet = kFALSE;
00126 static Double_t zMinSM1 = 0.;
00127 static Double_t zMaxSM1 = 0.;
00128 static Double_t zMinSM2 = 0.;
00129 static Double_t zMaxSM2 = 0.;
00130
00131 static const Int_t Sm1 = 0; // due to some bizarro convention id of SM1 is "0"
00132 static const Int_t Sm2 = 1; // and id of SM2 is "1"
00133
00134 if ( ! zExtentSet ) {
00135 // Get CandRecord from mom
00136 const CandHeader* candHeader = GetCandHeader ( mom );
00137 if ( !candHeader ) {
00138 MSG("StopMuFinderFar",Msg::kDebug)
00139 << "No CandHeader!!" << endl;
00140 return kFALSE;
00141 }
00142
00143 const VldContext vldc = candHeader->GetVldContext();
00144
00145 UgliGeomHandle ugh(vldc);
00146
00147 ugh.GetZExtent(zMinSM1, zMaxSM1, Sm1);
00148 ugh.GetZExtent(zMinSM2, zMaxSM2, Sm2);
00149
00150 zExtentSet = kTRUE;
00151 }
00152
00153 typedef list<const CandFitTrackHandle*> FitTrackList;
00154 typedef list<const CandFitTrackHandle*>::const_iterator FitTrackListItor;
00155
00156 // Convert daughter list to STL
00157 FitTrackList candFitTrackListSTL =
00158 CDL2STLlist<CandFitTrackHandle>(*candFitTrackList);
00159
00160 // for now only look at events with only one track
00161 if ( candFitTrackListSTL.empty() ) return kFALSE;
00162
00163 const CandFitTrackHandle* pcfth = *candFitTrackListSTL.begin();
00164
00165 // check number of planes
00166 if ( pcfth->GetNPlane() < fMinNPlanes ) return kFALSE;
00167
00168 // get track end coord's
00169 Double_t endu = pcfth->GetEndU();
00170 Double_t endv = pcfth->GetEndV();
00171 Double_t endz = pcfth->GetEndZ();
00172
00173 // check endtrack position along Z axis
00174 if ( endz<(zMinSM1+fMinZDistance) ||
00175 ( endz>(zMaxSM1-fMinZDistance) && endz<(zMinSM2+fMinZDistance) ) ||
00176 endz>(zMaxSM2-fMinZDistance) ) return kFALSE;
00177
00178 // check against radius
00179 Double_t radius = sqrt(endu*endu + endv*endv);
00180 if ( radius<fMinRadius || radius>fMaxRadius ) return kFALSE;
00181
00182 return kTRUE;
00183 } // void StopMuFinderFar::IsStopping(const MomNavigator* mom)
|
|
|
name of the candtrack list Definition at line 31 of file StopMuFinderFar.h. Referenced by Configure(), and IsStopping(). |
|
|
Max radius Definition at line 46 of file StopMuFinderFar.h. Referenced by Configure(), and DefaultConfig(). |
|
|
Min #planes Definition at line 51 of file StopMuFinderFar.h. Referenced by Configure(), and DefaultConfig(). |
|
|
Min radius Definition at line 41 of file StopMuFinderFar.h. Referenced by Configure(), and DefaultConfig(). |
|
|
Min distance from front/end face along Z axis Definition at line 36 of file StopMuFinderFar.h. Referenced by Configure(), and DefaultConfig(). |
1.3.9.1