diff --git a/src/THcAerogel.cxx b/src/THcAerogel.cxx index 8d5e47b6672a4693fe11cfb07256e0d4ae7fe2ca..6eb2e67e7941fe5b6504e80aac1087b196368b8a 100644 --- a/src/THcAerogel.cxx +++ b/src/THcAerogel.cxx @@ -45,6 +45,8 @@ THcAerogel::THcAerogel( const char* name, const char* description, fPosADCHits = new TClonesArray("THcSignalHit",16); fNegADCHits = new TClonesArray("THcSignalHit",16); + InitArrays(); + // fTrackProj = new TClonesArray( "THaTrackProj", 5 ); } @@ -53,25 +55,87 @@ THcAerogel::THcAerogel( ) : THaNonTrackingDetector() { // Constructor + fPosTDCHits = NULL; + fNegTDCHits = NULL; + fPosADCHits = NULL; + fNegADCHits = NULL; + + InitArrays(); + } //_____________________________________________________________________________ THcAerogel::~THcAerogel() { // Destructor - delete [] fA_Pos; - delete [] fA_Neg; - delete [] fA_Pos_p; - delete [] fA_Neg_p; - delete [] fT_Pos; - delete [] fT_Neg; - delete [] fPosGain; - delete [] fNegGain; - delete [] fPosPedLimit; - delete [] fNegPedLimit; - delete [] fPosPedMean; - delete [] fNegPedMean; + DeleteArrays(); + + delete fPosTDCHits; fPosTDCHits = NULL; + delete fNegTDCHits; fNegTDCHits = NULL; + delete fPosADCHits; fPosADCHits = NULL; + delete fNegADCHits; fNegADCHits = NULL; +} + +//_____________________________________________________________________________ +void THcAerogel::InitArrays() +{ + fA_Pos = NULL; + fA_Neg = NULL; + fA_Pos_p = NULL; + fA_Neg_p = NULL; + fT_Pos = NULL; + fT_Neg = NULL; + fPosGain = NULL; + fNegGain = NULL; + fPosPedLimit = NULL; + fNegPedLimit = NULL; + fPosPedMean = NULL; + fNegPedMean = NULL; + fPosNpe = NULL; + fNegNpe = NULL; + fPosPedSum = NULL; + fPosPedSum2 = NULL; + fPosPedCount = NULL; + fNegPedSum = NULL; + fNegPedSum2 = NULL; + fNegPedCount = NULL; + fPosPed = NULL; + fPosSig = NULL; + fPosThresh = NULL; + fNegPed = NULL; + fNegSig = NULL; + fNegThresh = NULL; } +//_____________________________________________________________________________ +void THcAerogel::DeleteArrays() +{ + delete [] fA_Pos; fA_Pos = NULL; + delete [] fA_Neg; fA_Neg = NULL; + delete [] fA_Pos_p; fA_Pos_p = NULL; + delete [] fA_Neg_p; fA_Neg_p = NULL; + delete [] fT_Pos; fT_Pos = NULL; + delete [] fT_Neg; fT_Neg = NULL; + delete [] fPosGain; fPosGain = NULL; + delete [] fNegGain; fNegGain = NULL; + delete [] fPosPedLimit; fPosPedLimit = NULL; + delete [] fNegPedLimit; fNegPedLimit = NULL; + delete [] fPosPedMean; fPosPedMean = NULL; + delete [] fNegPedMean; fNegPedMean = NULL; + delete [] fPosNpe; fPosNpe = NULL; + delete [] fNegNpe; fNegNpe = NULL; + delete [] fPosPedSum; fPosPedSum = NULL; + delete [] fPosPedSum2; fPosPedSum2 = NULL; + delete [] fPosPedCount; fPosPedCount = NULL; + delete [] fNegPedSum; fNegPedSum = NULL; + delete [] fNegPedSum2; fNegPedSum2 = NULL; + delete [] fNegPedCount; fNegPedCount = NULL; + delete [] fPosPed; fPosPed = NULL; + delete [] fPosSig; fPosSig = NULL; + delete [] fPosThresh; fPosThresh = NULL; + delete [] fNegPed; fNegPed = NULL; + delete [] fNegSig; fNegSig = NULL; + delete [] fNegThresh; fNegThresh = NULL; +} //_____________________________________________________________________________ THaAnalysisObject::EStatus THcAerogel::Init( const TDatime& date ) diff --git a/src/THcAerogel.h b/src/THcAerogel.h index abb7e4a8a0c2a17e6bf08321bb4241f097e67aae..56896d4bfa49350134c3c47dbdf39d1807311930 100644 --- a/src/THcAerogel.h +++ b/src/THcAerogel.h @@ -21,6 +21,8 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList { virtual void Clear( Option_t* opt="" ); virtual Int_t Decode( const THaEvData& ); + void InitArrays(); + void DeleteArrays(); virtual EStatus Init( const TDatime& run_time ); virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t DefineVariables( EMode mode = kDefine ); diff --git a/src/THcCherenkov.cxx b/src/THcCherenkov.cxx index b12bfe1d418e6b744edfddd4953efe95e24bf7d2..c712e83b1f8921490c397c16fc5d7e2bed72dcd9 100644 --- a/src/THcCherenkov.cxx +++ b/src/THcCherenkov.cxx @@ -62,6 +62,7 @@ THcCherenkov::THcCherenkov( const char* name, const char* description, { // Normal constructor with name and description fADCHits = new TClonesArray("THcSignalHit",16); + InitArrays(); } @@ -70,21 +71,55 @@ THcCherenkov::THcCherenkov( ) : THaNonTrackingDetector() { // Constructor + fADCHits = NULL; + + InitArrays(); } +//_____________________________________________________________________________ +void THcCherenkov::InitArrays() +{ + fGain = NULL; + fCerWidth = NULL; + fNPMT = NULL; + fADC = NULL; + fADC_P = NULL; + fNPE = NULL; + fADCHits = NULL; + fPedSum = NULL; + fPedSum2 = NULL; + fPedLimit = NULL; + fPedMean = NULL; + fPedCount = NULL; + fPed = NULL; + fThresh = NULL; +} +//_____________________________________________________________________________ +void THcCherenkov::DeleteArrays() +{ + delete [] fGain; fGain = NULL; + delete [] fCerWidth; fCerWidth = NULL; + delete [] fNPMT; fNPMT = NULL; + delete [] fADC; fADC = NULL; + delete [] fADC; fADC_P = NULL; + delete [] fNPE; fNPE = NULL; + delete [] fADCHits; fADCHits = NULL; + delete [] fPedSum; fPedSum = NULL; + delete [] fPedSum2; fPedSum2 = NULL; + delete [] fPedLimit; fPedLimit = NULL; + delete [] fPedMean; fPedMean = NULL; + delete [] fPedCount; fPedCount = NULL; + delete [] fPed; fPed = NULL; + delete [] fThresh; fThresh = NULL; +} //_____________________________________________________________________________ THcCherenkov::~THcCherenkov() { // Destructor - delete [] fNPMT; - delete [] fADC; - delete [] fADC_P; - delete [] fNPE; - - delete [] fCerWidth; - delete [] fGain; - delete [] fPedLimit; - delete [] fPedMean; + delete fADCHits; fADCHits = NULL; + + DeleteArrays(); + } //_____________________________________________________________________________ diff --git a/src/THcCherenkov.h b/src/THcCherenkov.h index 3196321072bab83b612f6ba02603384c6935b5dc..3926bd3d0a49c2129ca1d84b7d581265aeca660d 100644 --- a/src/THcCherenkov.h +++ b/src/THcCherenkov.h @@ -22,6 +22,8 @@ class THcCherenkov : public THaNonTrackingDetector, public THcHitList { virtual void Clear( Option_t* opt="" ); virtual Int_t Decode( const THaEvData& ); virtual EStatus Init( const TDatime& run_time ); + void InitArrays(); + void DeleteArrays(); virtual Int_t ReadDatabase( const TDatime& date ); virtual Int_t DefineVariables( EMode mode = kDefine ); virtual Int_t CoarseProcess( TClonesArray& tracks );