Hall C ROOT/C++ Analyzer (hcana)
THcAerogel.h
Go to the documentation of this file.
1 #ifndef ROOT_THcAerogel
2 #define ROOT_THcAerogel
3 
5 // //
6 // THcAerogel //
7 // //
9 
10 #include "TClonesArray.h"
11 #include "THaNonTrackingDetector.h"
12 #include "THcHitList.h"
13 #include "THcAerogelHit.h"
14 class THcHodoscope;
15 
16 class THcAerogel : public THaNonTrackingDetector, public THcHitList {
17 
18  public:
19  THcAerogel(const char* name, const char* description = "", THaApparatus* a = NULL);
20  virtual ~THcAerogel();
21 
22  virtual void Clear(Option_t* opt="");
23  virtual void Print(const Option_t* opt) const;
24  virtual void AccumulatePedestals(TClonesArray* rawhits);
25  virtual void CalculatePedestals();
26  virtual Int_t Decode(const THaEvData&);
27  virtual Int_t ReadDatabase(const TDatime& date);
28  virtual Int_t DefineVariables(EMode mode = kDefine);
29  virtual Int_t CoarseProcess(TClonesArray& tracks);
30  virtual Int_t FineProcess(TClonesArray& tracks);
31  virtual Int_t ApplyCorrections(void);
32  virtual EStatus Init(const TDatime& run_time);
33  Int_t End(THaRunBase* run=0);
34 
35  Int_t GetIndex(Int_t nRegion, Int_t nValue);
36 
37  THcAerogel(); // for ROOT I/O
38 
39  protected:
40 
41  // Event information
44 
46 
47  // 12 GeV variables
48  // Vector/TClonesArray length parameters
49  static const Int_t MaxNumAdcPulse = 4;
50  // Tracking variables
66 
75 
78  // Counting variables
87  // NPE variables
93  // FADC data objects
112  // Individual PMT data objects
113  vector<Int_t> fNumPosAdcHits;
114  vector<Int_t> fNumNegAdcHits;
115  vector<Int_t> fNumGoodPosAdcHits;
116  vector<Int_t> fNumGoodNegAdcHits;
117  vector<Int_t> fNumTracksMatched;
118  vector<Int_t> fNumTracksFired;
119  vector<Double_t> fPosNpe;
120  vector<Double_t> fNegNpe;
121  vector<Double_t> fGoodPosAdcPed;
122  vector<Double_t> fGoodPosAdcMult;
123  vector<Double_t> fGoodPosAdcPulseInt;
124  vector<Double_t> fGoodPosAdcPulseIntRaw;
125  vector<Double_t> fGoodPosAdcPulseAmp;
126  vector<Double_t> fGoodPosAdcPulseTime;
127  vector<Double_t> fGoodPosAdcTdcDiffTime;
128  vector<Double_t> fGoodNegAdcPed;
129  vector<Double_t> fGoodNegAdcMult;
130  vector<Double_t> fGoodNegAdcPulseInt;
131  vector<Double_t> fGoodNegAdcPulseIntRaw;
132  vector<Double_t> fGoodNegAdcPulseAmp;
133  vector<Double_t> fGoodNegAdcPulseTime;
134  vector<Double_t> fGoodNegAdcTdcDiffTime;
135 
136  // 6 GeV era variables
144  Int_t fTdcOffset; /* Global TDC offset */
150  Int_t *fPosPedSum; /* Accumulators for pedestals */
158  Float_t *fA_Pos; // [fNelem] Array of ADC amplitudes
159  Float_t *fA_Neg; // [fNelem] Array of ADC amplitudes
160  Float_t *fA_Pos_p; // [fNelem] Array of ped-subtracted ADC amplitudes
161  Float_t *fA_Neg_p; // [fNelem] Array of ped-subtracted ADC amplitudes
162  Float_t *fT_Pos; // [fNelem] Array of TDCs
163  Float_t *fT_Neg; // [fNelem] Array of TDCs
170  Double_t *fPosPedMean; /* Can be supplied in parameters and then */
171  Double_t *fNegPedMean; /* be overwritten from ped analysis */
172 
177 
178  vector<Double_t> fPosNpeSixGev;
179  vector<Double_t> fNegNpeSixGev;
180 
181  void Setup(const char* name, const char* description);
182  void DeleteArrays();
183  void DeletePedestalArrays();
184  virtual void InitializePedestals( );
185  THcHodoscope* fglHod; // Hodoscope to get start time
186 
187  ClassDef(THcAerogel,0) // Generic aerogel class
188 }
189 ;
190 
191 #endif
Float_t * fT_Neg
Definition: THcAerogel.h:163
Double_t fDpMin
Definition: THcAerogel.h:60
virtual Int_t ApplyCorrections(void)
Definition: THcAerogel.cxx:721
Int_t End(THaRunBase *run=0)
TClonesArray * frNegAdcPulseAmpRaw
Definition: THcAerogel.h:104
virtual Int_t Decode(const THaEvData &)
Definition: THcAerogel.cxx:609
Double_t fNpeSum
Definition: THcAerogel.h:90
TClonesArray * frNegAdcPulseAmp
Definition: THcAerogel.h:108
Float_t * fA_Neg_p
Definition: THcAerogel.h:161
Int_t fNTDCNegHits
Definition: THcAerogel.h:143
Int_t * fNegPedCount
Definition: THcAerogel.h:157
Double_t fENormMin
Definition: THcAerogel.h:58
Int_t fMinPeds
Definition: THcAerogel.h:146
virtual EStatus Init(const TDatime &run_time)
Definition: THcAerogel.cxx:162
Double_t fDpMax
Definition: THcAerogel.h:61
Double_t * fPosSig
Definition: THcAerogel.h:165
Int_t fRegionsValueMax
Definition: THcAerogel.h:52
float Float_t
virtual void CalculatePedestals()
vector< Int_t > fNumNegAdcHits
Definition: THcAerogel.h:114
const char Option_t
TClonesArray * frPosAdcPulseAmpRaw
Definition: THcAerogel.h:96
TClonesArray * frNegAdcPedRaw
Definition: THcAerogel.h:102
vector< Int_t > fNumPosAdcHits
Definition: THcAerogel.h:113
Bool_t * fPresentP
Definition: THcAerogel.h:43
THcHodoscope * fglHod
Definition: THcAerogel.h:185
Builds a Hall C ENGINE style list of raw hits from raw data.
Definition: THcHitList.h:27
vector< Double_t > fPosNpe
Definition: THcAerogel.h:119
virtual Int_t CoarseProcess(TClonesArray &tracks)
Definition: THcAerogel.cxx:727
Int_t fTotNumTracksMatched
Definition: THcAerogel.h:85
vector< Double_t > fGoodNegAdcPulseIntRaw
Definition: THcAerogel.h:131
vector< Int_t > fNumTracksMatched
Definition: THcAerogel.h:117
TClonesArray * frPosAdcPulseTime
Definition: THcAerogel.h:101
virtual Int_t FineProcess(TClonesArray &tracks)
Definition: THcAerogel.cxx:896
int Int_t
bool Bool_t
TClonesArray * frPosAdcPulseTimeRaw
Definition: THcAerogel.h:97
Double_t fPosNpeSum
Definition: THcAerogel.h:88
Double_t fNegNpeSum
Definition: THcAerogel.h:89
Int_t fTotNumAdcHits
Definition: THcAerogel.h:79
Int_t fTotNumPosAdcHits
Definition: THcAerogel.h:81
virtual void InitializePedestals()
Definition: THcAerogel.cxx:965
Int_t fDebugAdc
Definition: THcAerogel.h:53
TClonesArray * frPosAdcPed
Definition: THcAerogel.h:98
Int_t fTotNumGoodNegAdcHits
Definition: THcAerogel.h:84
Double_t fXAtAero
Definition: THcAerogel.h:63
vector< Double_t > fGoodNegAdcMult
Definition: THcAerogel.h:129
Int_t fAnalyzePedestals
Definition: THcAerogel.h:137
TClonesArray * fPosTDCHits
Definition: THcAerogel.h:173
Double_t fNpeSumSixGev
Definition: THcAerogel.h:149
Float_t * fA_Pos
Definition: THcAerogel.h:158
Double_t fYAtAero
Definition: THcAerogel.h:64
Double_t fBetaMin
Definition: THcAerogel.h:56
Int_t fNGoodHits
Definition: THcAerogel.h:139
Int_t * fPedNegDefault
Definition: THcAerogel.h:73
Double_t * fPosPed
Definition: THcAerogel.h:164
Double_t fBetaMax
Definition: THcAerogel.h:57
vector< Double_t > fGoodNegAdcPulseInt
Definition: THcAerogel.h:130
TClonesArray * frPosAdcPulseInt
Definition: THcAerogel.h:99
Double_t fENormMax
Definition: THcAerogel.h:59
Float_t * fA_Pos_p
Definition: THcAerogel.h:160
Double_t * fNegPedMean
Definition: THcAerogel.h:171
Double_t fDiffBoxZPos
Definition: THcAerogel.h:62
vector< Double_t > fGoodPosAdcPulseInt
Definition: THcAerogel.h:123
Int_t fSixGevData
Definition: THcAerogel.h:138
Int_t * fPosPedLimit
Definition: THcAerogel.h:152
TClonesArray * frNegAdcPulseInt
Definition: THcAerogel.h:107
Class for an Aerogel detector consisting of pairs of PMT's attached to a diffuser box...
Definition: THcAerogel.h:16
vector< Double_t > fGoodPosAdcPulseTime
Definition: THcAerogel.h:126
Double_t * fRegionValue
Definition: THcAerogel.h:77
Int_t * fPosPedSum
Definition: THcAerogel.h:150
Int_t * fNegPedLimit
Definition: THcAerogel.h:156
Double_t * fAdcNegTimeWindowMin
Definition: THcAerogel.h:71
void DeletePedestalArrays()
Definition: THcAerogel.cxx:139
Double_t fNegNpeSumSixGev
Definition: THcAerogel.h:148
Int_t fTdcOffset
Definition: THcAerogel.h:144
TClonesArray * fNegTDCHits
Definition: THcAerogel.h:174
Int_t fTotNumGoodAdcHits
Definition: THcAerogel.h:80
TClonesArray * frNegAdcPulseIntRaw
Definition: THcAerogel.h:103
Double_t * fPosGain
Definition: THcAerogel.h:91
Int_t GetIndex(Int_t nRegion, Int_t nValue)
void Setup(const char *name, const char *description)
vector< Double_t > fGoodNegAdcTdcDiffTime
Definition: THcAerogel.h:134
vector< Int_t > fNumTracksFired
Definition: THcAerogel.h:118
TClonesArray * frNegAdcPulseTime
Definition: THcAerogel.h:109
auto * a
virtual Int_t ReadDatabase(const TDatime &date)
Definition: THcAerogel.cxx:200
Int_t fNTDCPosHits
Definition: THcAerogel.h:142
Double_t * fPosThresh
Definition: THcAerogel.h:166
TClonesArray * frPosAdcPedRaw
Definition: THcAerogel.h:94
virtual void AccumulatePedestals(TClonesArray *rawhits)
Double_t * fAdcPosTimeWindowMax
Definition: THcAerogel.h:70
TClonesArray * frPosAdcPulseAmp
Definition: THcAerogel.h:100
TClonesArray * fNegAdcErrorFlag
Definition: THcAerogel.h:111
void run(bool only_compile=false)
Int_t fNhits
Definition: THcAerogel.h:42
Double_t * fNegSig
Definition: THcAerogel.h:168
TClonesArray * frNegAdcPed
Definition: THcAerogel.h:106
TClonesArray * fNegADCHits
Definition: THcAerogel.h:176
Double_t fRedChi2Min
Definition: THcAerogel.h:54
Int_t fNADCNegHits
Definition: THcAerogel.h:141
vector< Double_t > fNegNpeSixGev
Definition: THcAerogel.h:179
vector< Double_t > fPosNpeSixGev
Definition: THcAerogel.h:178
vector< Int_t > fNumGoodPosAdcHits
Definition: THcAerogel.h:115
vector< Int_t > fNumGoodNegAdcHits
Definition: THcAerogel.h:116
double Double_t
Double_t fPosNpeSumSixGev
Definition: THcAerogel.h:147
vector< Double_t > fGoodNegAdcPed
Definition: THcAerogel.h:128
void DeleteArrays()
Definition: THcAerogel.cxx:87
TClonesArray * frNegAdcPulseTimeRaw
Definition: THcAerogel.h:105
Double_t fAdcTdcOffset
Definition: THcAerogel.h:76
virtual ~THcAerogel()
Definition: THcAerogel.cxx:80
Int_t fNPedestalEvents
Definition: THcAerogel.h:145
Double_t * fPosPedMean
Definition: THcAerogel.h:170
vector< Double_t > fGoodPosAdcPulseIntRaw
Definition: THcAerogel.h:124
TClonesArray * fPosADCHits
Definition: THcAerogel.h:175
Double_t * fAdcNegTimeWindowMax
Definition: THcAerogel.h:72
Int_t fNADCPosHits
Definition: THcAerogel.h:140
Int_t * fPosPedSum2
Definition: THcAerogel.h:151
TClonesArray * fPosAdcErrorFlag
Definition: THcAerogel.h:110
Double_t * fNegThresh
Definition: THcAerogel.h:169
vector< Double_t > fGoodPosAdcMult
Definition: THcAerogel.h:122
Int_t fADC_RefTimeCut
Definition: THcAerogel.h:45
Int_t * fNegPedSum
Definition: THcAerogel.h:154
Double_t fRedChi2Max
Definition: THcAerogel.h:55
vector< Double_t > fGoodNegAdcPulseTime
Definition: THcAerogel.h:133
Double_t * fNegPed
Definition: THcAerogel.h:167
Double_t * fAdcPosTimeWindowMin
Definition: THcAerogel.h:69
virtual void Print(const Option_t *opt) const
vector< Double_t > fNegNpe
Definition: THcAerogel.h:120
Double_t fNpeThresh
Definition: THcAerogel.h:65
virtual Int_t DefineVariables(EMode mode=kDefine)
Definition: THcAerogel.cxx:383
Double_t * fNegGain
Definition: THcAerogel.h:92
TClonesArray * frPosAdcPulseIntRaw
Definition: THcAerogel.h:95
vector< Double_t > fGoodPosAdcTdcDiffTime
Definition: THcAerogel.h:127
Int_t fTotNumNegAdcHits
Definition: THcAerogel.h:83
Int_t fNRegions
Definition: THcAerogel.h:51
Generic hodoscope consisting of multiple planes with multiple paddles with phototubes on both ends...
Definition: THcHodoscope.h:37
vector< Double_t > fGoodPosAdcPed
Definition: THcAerogel.h:121
static const Int_t MaxNumAdcPulse
Definition: THcAerogel.h:49
Float_t * fA_Neg
Definition: THcAerogel.h:159
vector< Double_t > fGoodNegAdcPulseAmp
Definition: THcAerogel.h:132
Int_t * fPedPosDefault
Definition: THcAerogel.h:74
char name[80]
virtual void Clear(Option_t *opt="")
Definition: THcAerogel.cxx:503
Int_t fTotNumTracksFired
Definition: THcAerogel.h:86
Int_t fTotNumGoodPosAdcHits
Definition: THcAerogel.h:82
Float_t * fT_Pos
Definition: THcAerogel.h:162
Int_t * fPosPedCount
Definition: THcAerogel.h:153
Int_t * fNegPedSum2
Definition: THcAerogel.h:155
ClassDef(THcHitList, 0)
vector< Double_t > fGoodPosAdcPulseAmp
Definition: THcAerogel.h:125