Back to home page

EIC code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:28:19

0001 #include "HGCROC.h"
0002 #include <cassert>
0003 #include <iostream>
0004 
0005 ClassImp(Hgcroc)
0006 std::vector<int> Hgcroc::GetADCWaveform(void) const{
0007   return adc_waveform;
0008 }
0009 
0010 int Hgcroc::GetMaxSampleADC (void){
0011   Double_t maxADC = -1000;
0012   int nMaxADC   = 0;
0013   for (int k = 0; k < (int)adc_waveform.size(); k++ ){
0014     if (maxADC < adc_waveform.at(k)){
0015       maxADC  = adc_waveform.at(k);
0016       nMaxADC = k;
0017     }
0018   }
0019   return nMaxADC;
0020 }
0021 
0022 
0023 int Hgcroc::GetFirstSampleAboveTh (void){
0024   int nFirst   = 0;
0025   for (int k = 0; k < (int)adc_waveform.size(); k++ ){
0026     if (adc_waveform.at(k) > GetPedestal() +10){
0027       nFirst = k;
0028       break;
0029     }
0030   }
0031   return nFirst;
0032 }
0033 
0034 std::vector<int> Hgcroc::GetTOAWaveform(void) const{
0035   return toa_waveform;
0036 }
0037 
0038 int Hgcroc::GetFirstTOASample (void){
0039   int nSampTOA  = 0;
0040   for (int k = 0; k < (int)toa_waveform.size(); k++ ){
0041     if (toa_waveform.at(k) > 0){
0042       nSampTOA = k;
0043       break;
0044     }
0045   }
0046   return nSampTOA;
0047 }
0048 
0049 
0050 std::vector<int> Hgcroc::GetTOTWaveform(void) const{
0051   return tot_waveform;
0052 }
0053 
0054 int Hgcroc::GetNsample(void) const{
0055   return Nsample;
0056 }
0057 
0058 double Hgcroc::GetTOT(void) const{
0059   return TOT;
0060 }
0061 
0062 double Hgcroc::GetTOA(void) const{
0063   return TOA;
0064 }
0065 
0066 int Hgcroc::GetPedestal(void) const{
0067   return pedestal;
0068 }
0069 
0070 void Hgcroc::SetADCWaveform(std::vector<int> v){
0071   adc_waveform=v;
0072 }
0073 
0074 void Hgcroc::AppendWaveformADC(int a){
0075   adc_waveform.push_back(a);
0076 }
0077 
0078 void Hgcroc::ResetADCWaveformPoint(int s, int a){
0079   assert(0<=s && s<(int)adc_waveform.size());
0080   adc_waveform.at(s)=a;
0081 }
0082 
0083 void Hgcroc::SetTOAWaveform(std::vector<int> v){
0084   toa_waveform=v;
0085 }
0086 
0087 void Hgcroc::AppendWaveformTOA(int a){
0088   toa_waveform.push_back(a);
0089 }
0090 
0091 void Hgcroc::ResetTOAWaveformPoint(int s, int a){
0092   assert(0<=s && s<(int)toa_waveform.size());
0093   toa_waveform.at(s)=a;
0094 }
0095 
0096 void Hgcroc::SetTOTWaveform(std::vector<int> v){
0097   tot_waveform=v;
0098 }
0099 
0100 void Hgcroc::AppendWaveformTOT(int a){
0101   tot_waveform.push_back(a);
0102 }
0103 
0104 void Hgcroc::ResetTOTWaveformPoint(int s, int a){
0105   assert(0<=s && s<(int)tot_waveform.size());
0106   tot_waveform.at(s)=a;
0107 }
0108 
0109 void Hgcroc::SetNsample(int n){
0110   Nsample=n;
0111 }
0112 
0113 void Hgcroc::SetTOT(double tot){
0114   TOT=tot;
0115 }
0116 
0117 void Hgcroc::SetTOA(double toa){
0118   TOA=toa;
0119 }
0120 
0121 void Hgcroc::SetPedestal(int ped){
0122   pedestal=ped;
0123 }
0124 
0125 void Hgcroc::PrintWaveFormDebugInfo( double pedMeanH, double pedMeanL, double pedSig){
0126     Setup* setupT = Setup::GetInstance();
0127     int layer     = setupT->GetLayer(CellID);
0128     int chInLayer = setupT->GetChannelInLayer(CellID);          
0129     int roCh      = setupT->GetROchannel(CellID);
0130     std::cout << "Cell ID:" << CellID<< "\t" << layer <<"\t" << chInLayer << "\t RO channel:\t" << roCh << "\t" << pedMeanH << "\t" << pedMeanL << "\t" << pedSig;
0131     std::cout << "\n \tADC-wave " ;
0132     for (int k = 0; k < (int)adc_waveform.size(); k++ ){
0133       std::cout << adc_waveform.at(k) << "\t" ;
0134     }
0135     std::cout << "\n \tTOT-Wave ";
0136     for (int k = 0; k < (int)tot_waveform.size(); k++ ){
0137       std::cout << tot_waveform.at(k) << "\t" ;
0138     }
0139     std::cout << "\n \tTOA-Wave ";
0140     for (int k = 0; k < (int)toa_waveform.size(); k++ ){
0141       std::cout << toa_waveform.at(k) << "\t" ;
0142     }
0143   std::cout <<"\n\t\t\t";
0144   for (int k = 0; k < (int)toa_waveform.size(); k++ )
0145     std::cout <<"\t";  
0146   std::cout << " integ: "<<GetIntegratedADC() <<"\t"<< GetTOT() << "\t" << GetTOA() << "\t nTOA = " << GetFirstTOASample() << "\t nTh = " << GetFirstSampleAboveTh() << "\t nMax = " << GetMaxSampleADC()  << std::endl;
0147 
0148 }