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 }