00001 #include "gl3Cylinder.h"
00002
00003 #include "Stl3Util/base/FtfLog.h"
00004
00005 gl3Cylinder::gl3Cylinder() : minNoOfHitsOnTrack(10)
00006 {
00007 }
00008
00009
00010
00011
00012
00013 int gl3Cylinder::setParameters(int GI1_in, int GI2_in,
00014 int GI3_in, int GI4_in,
00015 int GI5_in,
00016 float GF1_in, float GF2_in,
00017 float GF3_in, float GF4_in,
00018 float GF5_in)
00019 {
00020 bool errorFlag = false;
00021
00022 gl3Algorithm::setParameters(GI1_in, GI2_in, GI3_in, GI4_in, GI5_in,
00023 GF1_in, GF2_in, GF3_in, GF4_in, GF5_in);
00024
00025 float & minZ = GF1;
00026 float & maxZ = GF2;
00027 float & radius = GF3;
00028
00029 int & minTracksInCylinder = GI1;
00030
00031
00032 if (minZ >= maxZ) {
00033 ftfLog("%s: invalid parameters: minZ >= maxZ (%f >= %f)\n",
00034 getAlgorithmName(), minZ, maxZ);
00035 errorFlag = true;
00036 }
00037
00038 if (radius < 0) {
00039 ftfLog("%s: invalid parameters: negative radius (%f)\n",
00040 getAlgorithmName(), radius);
00041 errorFlag = true;
00042 }
00043
00044 if (minTracksInCylinder < 1) {
00045 ftfLog("%s: invalid parameters: invalid min no. of tracks in cylinder (%f)\n",
00046 getAlgorithmName(), minTracksInCylinder);
00047 errorFlag = true;
00048 }
00049
00050 return errorFlag;
00051 }
00052
00053
00054
00055
00056 int gl3Cylinder::decide ( )
00057 {
00058 int nTracksInCyl = 0;
00059
00060 float & minZ = GF1;
00061 float & maxZ = GF2;
00062 float & radius = GF3;
00063
00064 int & minTracksInCylinder = GI1;
00065
00066
00067
00068 for (int trkcnt = 0 ; trkcnt<event->getNTracks(); trkcnt++ ) {
00069 gl3Track *gTrack = event->getTrack(trkcnt);
00070
00071
00072 if(gTrack->nHits > minNoOfHitsOnTrack) {
00073 Ftf3DHit hit = gTrack->extraRadius(radius);
00074
00075
00076 if ( hit.x != 0. || hit.y != 0. || hit.z != 0. ) {
00077
00078
00079
00080 if ( hit.z >= minZ && hit.z <= maxZ) {
00081
00082
00083
00084 nTracksInCyl++;
00085 }
00086 }
00087 }
00088 }
00089
00090
00091 if( nTracksInCyl >= minTracksInCylinder )
00092 return 1;
00093 else
00094 return 0;
00095 }
00096