00001 #include <math.h>
00002 #include "StDstPointChair.h"
00003
00004 ClassImp(StDstPointChair)
00005
00006
00007 Int_t StDstPointChair::DetectId(const Char_t *name)
00008 {
00009
00010
00011
00012
00013 const Char_t *detectors[] = {"tpc", "svt", "ftpc", "ssd" };
00014 #if 0
00015 "rich", "ftpcWest", "ftpcEast","tof",
00016 "ctb", "ssd"};
00017 "ftpcWest","ftpcEast","tof",
00018 "ctb", "ssd"};
00019 const Int_t index[] = { kUnknownIdentifier
00020 ,kTpcIdentifier
00021 ,kSvtIdentifier
00022 ,kRichIdentifier
00023 ,kFtpcWestIdentifier
00024 ,kFtpcEastIdentifier
00025 ,kTofPatchIdentifier
00026 ,kCtbIdentifier
00027 ,kSsdIdentifier
00028 }
00029 #endif
00030
00031 Int_t l = sizeof(detectors)/sizeof(Char_t *);
00032 for (Int_t i=0; i < l ; i++)
00033 if ( strcmp(name,detectors[i]) ) return i+1;
00034 return 0;
00035 }
00036
00037 Float_t StDstPointChair::Factor(Float_t &range,Float_t &errF, Int_t detId)
00038 {
00039
00040
00041
00042
00043
00044
00045
00046 const Float_t factors[] = {2380 , 23800 , 2380, 0, 0, 0, 0, 16000 };
00047 const Float_t ranges[] = { 220 , 22 , 270, 0, 0, 0, 0, 40 };
00048 const Int_t errFactor[] = { -17 , -26 , 0, 0, 0, 0, 0, -26 };
00049 assert(detId <= Int_t(sizeof(factors)/sizeof(Float_t)));
00050 Float_t ret = 0;
00051 if (detId) {
00052 range = ranges[detId-1];
00053 ret = factors[detId-1];
00054 errF = ldexp(1.0,errFactor[detId-1]);
00055 } else {
00056 ret = factors[1];
00057 range = ranges[1];
00058 errF = ldexp(1.0,errFactor[1]);
00059 }
00060 return ret;
00061 }
00062