00001 00002 #include "FarDetSlice.h" 00003 #include "FarDetSliceHandle.h" 00004 00005 #include "Algorithm/AlgHandle.h" 00006 00007 ClassImp(FarDetSlice) 00008 00009 FarDetSliceHandle FarDetSlice::MakeCandidate(AlgHandle &ah,CandContext &cx) 00010 { 00011 FarDetSliceHandle cth; 00012 new FarDetSlice(ah, cth, cx); 00013 return cth; 00014 } 00015 00016 FarDetSlice::FarDetSlice() : 00017 fMaxPlaneCharge(0.0), 00018 fEventId(-1), 00019 fEventIdSM1(-1), fEventIdSM2(-1), fEventIdX(-1), 00020 fEdgesSM1(-1), fEdgesSM2(-1), fEdges(-1), 00021 fGoodUPlanes(0), fGoodVPlanes(0), 00022 fGoodPlanes(0), fGoodStrips(0) 00023 { 00024 for(Int_t i=0;i<11;i++){ 00025 fFidChargeSM1[i]=0.0; 00026 fFidChargeSM2[i]=0.0; 00027 fMeanXPosSM1[i]=-999.9; 00028 fMeanXPosSM2[i]=-999.9; 00029 fMeanYPosSM1[i]=-999.9; 00030 fMeanYPosSM2[i]=-999.9; 00031 fMeanZPosSM1[i]=-999.9; 00032 fMeanZPosSM2[i]=-999.9; 00033 } 00034 } 00035 00036 FarDetSlice::FarDetSlice(AlgHandle &ah) : 00037 CandSlice(ah), 00038 fMaxPlaneCharge(0.0), 00039 fEventId(-1), 00040 fEventIdSM1(-1), fEventIdSM2(-1), fEventIdX(-1), 00041 fEdgesSM1(-1), fEdgesSM2(-1), fEdges(-1), 00042 fGoodUPlanes(0), fGoodVPlanes(0), 00043 fGoodPlanes(0), fGoodStrips(0) 00044 { 00045 for(Int_t i=0;i<11;i++){ 00046 fFidChargeSM1[i]=0.0; 00047 fFidChargeSM2[i]=0.0; 00048 fMeanXPosSM1[i]=-999.9; 00049 fMeanXPosSM2[i]=-999.9; 00050 fMeanYPosSM1[i]=-999.9; 00051 fMeanYPosSM2[i]=-999.9; 00052 fMeanZPosSM1[i]=-999.9; 00053 fMeanZPosSM2[i]=-999.9; 00054 } 00055 } 00056 00057 FarDetSlice::FarDetSlice(AlgHandle &ah, CandHandle &ch, CandContext &cx) : 00058 CandSlice(ah), 00059 fMaxPlaneCharge(0.0), 00060 fEventId(-1), 00061 fEventIdSM1(-1), fEventIdSM2(-1), fEventIdX(-1), 00062 fEdgesSM1(-1), fEdgesSM2(-1), fEdges(-1), 00063 fGoodUPlanes(0), fGoodVPlanes(0), 00064 fGoodPlanes(0), fGoodStrips(0) 00065 { 00066 for(Int_t i=0;i<11;i++){ 00067 fFidChargeSM1[i]=0.0; 00068 fFidChargeSM2[i]=0.0; 00069 fMeanXPosSM1[i]=-999.9; 00070 fMeanXPosSM2[i]=-999.9; 00071 fMeanYPosSM1[i]=-999.9; 00072 fMeanYPosSM2[i]=-999.9; 00073 fMeanZPosSM1[i]=-999.9; 00074 fMeanZPosSM2[i]=-999.9; 00075 } 00076 00077 SetLocalHandle(new FarDetSliceHandle(this)); 00078 { FarDetSliceHandle cth(this); ch = cth; } 00079 ah.RunAlg(ch, cx); 00080 } 00081 00082 FarDetSlice::FarDetSlice(const FarDetSlice &rhs) : 00083 CandSlice(rhs), 00084 fMaxPlaneCharge(rhs.fMaxPlaneCharge), 00085 fEventId(rhs.fEventId), 00086 fEventIdSM1(rhs.fEventIdSM1), fEventIdSM2(rhs.fEventIdSM2), fEventIdX(rhs.fEventIdX), 00087 fEdgesSM1(rhs.fEdgesSM1), fEdgesSM2(rhs.fEdgesSM2), fEdges(rhs.fEdges), 00088 fGoodUPlanes(rhs.fGoodUPlanes), fGoodVPlanes(rhs.fGoodVPlanes), 00089 fGoodPlanes(rhs.fGoodPlanes), fGoodStrips(rhs.fGoodStrips) 00090 { 00091 for(Int_t i=0;i<11;i++){ 00092 fFidChargeSM1[i]=rhs.fFidChargeSM1[i]; 00093 fFidChargeSM2[i]=rhs.fFidChargeSM2[i]; 00094 fMeanXPosSM1[i]=rhs.fMeanXPosSM1[i]; 00095 fMeanXPosSM2[i]=rhs.fMeanXPosSM2[i]; 00096 fMeanYPosSM1[i]=rhs.fMeanYPosSM1[i]; 00097 fMeanYPosSM2[i]=rhs.fMeanYPosSM2[i]; 00098 fMeanZPosSM1[i]=rhs.fMeanZPosSM1[i]; 00099 fMeanZPosSM2[i]=rhs.fMeanZPosSM2[i]; 00100 } 00101 } 00102 00103 FarDetSlice::~FarDetSlice() 00104 { 00105 00106 } 00107 00108 FarDetSlice* FarDetSlice::Dup() const 00109 { 00110 FarDetSlice *cb = new FarDetSlice(*this); 00111 cb->CreateLocalHandle(); 00112 TIter iterdau = GetDaughterIterator(); 00113 CandHandle *dau; 00114 while ((dau=(CandHandle *) iterdau())) cb->AddDaughterLink(*dau); 00115 return cb; 00116 } 00117 00118 void FarDetSlice::CreateLocalHandle() 00119 { 00120 this->SetLocalHandle(new FarDetSliceHandle(this)); 00121 }