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

Add variables for Aerogel raw and ped subracted ADCs and raw TDCs.

parent 6e963188
No related branches found
No related tags found
No related merge requests found
......@@ -55,6 +55,24 @@ THcAerogel::THcAerogel( ) :
// Constructor
}
//_____________________________________________________________________________
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;
}
//_____________________________________________________________________________
THaAnalysisObject::EStatus THcAerogel::Init( const TDatime& date )
{
......@@ -101,6 +119,13 @@ Int_t THcAerogel::ReadDatabase( const TDatime& date )
fNelem = 8; // Default if not defined
gHcParms->LoadParmValues((DBRequest*)&listextra,prefix);
fA_Pos = new Float_t[fNelem];
fA_Neg = new Float_t[fNelem];
fA_Pos_p = new Float_t[fNelem];
fA_Neg_p = new Float_t[fNelem];
fT_Pos = new Float_t[fNelem];
fT_Neg = new Float_t[fNelem];
fPosGain = new Double_t[fNelem];
fNegGain = new Double_t[fNelem];
fPosPedLimit = new Int_t[fNelem];
......@@ -151,8 +176,14 @@ Int_t THcAerogel::DefineVariables( EMode mode )
"fPosADCHits.THcSignalHit.GetPaddleNumber()"},
{"negadchits", "List of Negative ADC hits",
"fNegADCHits.THcSignalHit.GetPaddleNumber()"},
{"apos", "Raw Positive ADC Amplitudes", "fA_Pos"},
{"aneg", "Raw Negative ADC Amplitudes", "fA_Neg"},
{"apos_p", "Ped-subtracted Positive ADC Amplitudes", "fA_Pos_p"},
{"aneg_p", "Ped-subtracted Negative ADC Amplitudes", "fA_Neg_p"},
{"tpos", "Raw Positive TDC", "fT_Pos"},
{"tneg", "Raw Negative TDC", "fT_Neg"},
{"pos_npe","PEs Positive Tube","fPosNpe"},
{"neg_npe","PEs PE Negative Tube","fNegNpe"},
{"neg_npe","PEs Negative Tube","fNegNpe"},
{"pos_npe_sum", "Total Positive Tube PEs", "fPosNpeSum"},
{"neg_npe_sum", "Total Negative Tube PEs", "fNegNpeSum"},
{"npe_sum", "Total PEs", "fNpeSum"},
......@@ -190,6 +221,12 @@ void THcAerogel::Clear(Option_t* opt)
fNTDCNegHits = 0;
for(Int_t itube = 0;itube < fNelem;itube++) {
fA_Pos[itube] = 0;
fA_Neg[itube] = 0;
fA_Pos_p[itube] = 0;
fA_Neg_p[itube] = 0;
fT_Pos[itube] = 0;
fT_Neg[itube] = 0;
fPosNpe[itube] = 0.0;
fNegNpe[itube] = 0.0;
}
......@@ -278,15 +315,22 @@ Int_t THcAerogel::CoarseProcess( TClonesArray& ) //tracks
// be assigned NPE = 100.0.
Int_t npmt = hit->fCounter - 1;
// Should probably check that npmt is in range
fA_Pos[npmt] = hit->fADC_pos;
fA_Neg[npmt] = hit->fADC_neg;
fA_Pos_p[npmt] = hit->fADC_pos - fPosPedMean[npmt];
fA_Neg_p[npmt] = hit->fADC_neg - fNegPedMean[npmt];
fT_Pos[npmt] = hit->fTDC_pos;
fT_Neg[npmt] = hit->fTDC_neg;
if(hit->fADC_pos < 8000) {
fPosNpe[npmt] = fPosGain[npmt]*(hit->fADC_pos - fPosPedMean[npmt]);
fPosNpe[npmt] = fPosGain[npmt]*fA_Pos_p[npmt];
} else {
fPosNpe[npmt] = 100.0;
}
if(hit->fADC_neg < 8000) {
fNegNpe[npmt] = fNegGain[npmt]*(hit->fADC_neg - fNegPedMean[npmt]);
fNegNpe[npmt] = fNegGain[npmt]*fA_Neg_p[npmt];
} else {
fNegNpe[npmt] = 100.0;
}
......
......@@ -17,7 +17,7 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList {
public:
THcAerogel( const char* name, const char* description = "",
THaApparatus* a = NULL );
virtual ~THcAerogel() {};
virtual ~THcAerogel();
virtual void Clear( Option_t* opt="" );
virtual Int_t Decode( const THaEvData& );
......@@ -44,6 +44,14 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList {
// Event information
Int_t fNhits;
Float_t* fA_Pos; // [fNelem] Array of ADC amplitudes
Float_t* fA_Neg; // [fNelem] Array of ADC amplitudes
Float_t* fA_Pos_p; // [fNelem] Array of ped-subtracted ADC amplitudes
Float_t* fA_Neg_p; // [fNelem] Array of ped-subtracted ADC amplitudes
Float_t* fT_Pos; // [fNelem] Array of TDCs
Float_t* fT_Neg; // [fNelem] Array of TDCs
Double_t fPosNpeSum;
Double_t fNegNpeSum;
Double_t fNpeSum;
......@@ -53,8 +61,8 @@ class THcAerogel : public THaNonTrackingDetector, public THcHitList {
Int_t fNTDCPosHits;
Int_t fNTDCNegHits;
Double_t* fPosNpe;
Double_t* fNegNpe;
Double_t* fPosNpe; // [fNelem] # Photoelectrons per positive tube
Double_t* fNegNpe; // [fNelem] # Photoelectrons per negative tube
// Hits
TClonesArray* fPosTDCHits;
......
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