Skip to content
Snippets Groups Projects
Commit 2ed677be authored by Stephen A. Wood's avatar Stephen A. Wood
Browse files

Initialize arrays in constructors. Delete them in destructor.

  Use InitArrays method in THcCherenkov and THcAerogel
  Null out all array pointers in the InitArrays method and
  call that method from all constructors so that it is always
  safe to delete these arrays.
parent 085928d1
No related branches found
No related tags found
No related merge requests found
......@@ -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 )
......
......@@ -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 );
......
......@@ -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();
}
//_____________________________________________________________________________
......
......@@ -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 );
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment