Hall C ROOT/C++ Analyzer (hcana)
THcCherenkov.h
Go to the documentation of this file.
1 #ifndef ROOT_THcCherenkov
2 #define ROOT_THcCherenkov
3 
5 // //
6 // Cherenkov //
7 // //
9 
10 #include "TClonesArray.h"
11 #include "THaNonTrackingDetector.h"
12 #include "THcHitList.h"
13 #include "THcCherenkovHit.h"
14 class THcHodoscope;
15 
16 class THcCherenkov : public THaNonTrackingDetector, public THcHitList {
17 
18  public:
19  THcCherenkov(const char* name, const char* description = "", THaApparatus* a = NULL);
20  virtual ~THcCherenkov();
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);
34 
35 
36  void InitArrays();
37  void DeleteArrays();
38  Int_t GetIndex(Int_t nRegion, Int_t nValue);
39 
40  // Double_t GetCerNPE() { return fNPEsum;}
42 
43  // Vector/TClonesArray length parameters
44  static const Int_t MaxNumCerPmt = 4;
45  static const Int_t MaxNumAdcPulse = 4;
46 
47  THcCherenkov(); // for ROOT I/O
48  protected:
53 
55 
64 
65  vector<Int_t> fNumAdcHits;
66  vector<Int_t> fNumGoodAdcHits;
67  vector<Int_t> fNumTracksMatched;
68  vector<Int_t> fNumTracksFired;
69  vector<Double_t> fGoodAdcPed;
70  vector<Double_t> fGoodAdcMult;
71  vector<Double_t> fGoodAdcHitUsed;
72  vector<Double_t> fGoodAdcPulseInt;
73  vector<Double_t> fGoodAdcPulseIntRaw;
74  vector<Double_t> fGoodAdcPulseAmp;
75  vector<Double_t> fGoodAdcPulseTime;
76  vector<Double_t> fGoodAdcTdcDiffTime;
77  vector<Double_t> fNpe;
78 
98 
99  // 6 Gev pedestal variables
102  Int_t* fPedSum; /* Accumulators for pedestals */
106  Double_t* fPedMean; /* Can be supplied in parameters and then */
111 
112  // 12 Gev FADC variables
122 
123  void Setup(const char* name, const char* description);
124  virtual void InitializePedestals( );
125  THcHodoscope* fglHod; // Hodoscope to get start time
126 
127  ClassDef(THcCherenkov,0) // Generic cherenkov class
128 };
129 
130 #endif
virtual void Clear(Option_t *opt="")
vector< Int_t > fNumTracksMatched
Definition: THcCherenkov.h:67
Double_t * fPed
Definition: THcCherenkov.h:107
Double_t fRedChi2Max
Definition: THcCherenkov.h:82
Double_t fENormMin
Definition: THcCherenkov.h:85
vector< Int_t > fNumAdcHits
Definition: THcCherenkov.h:65
const char Option_t
Class for gas Cherenkov detectors.
Definition: THcCherenkov.h:16
Double_t fDpMin
Definition: THcCherenkov.h:87
Double_t fNpeSum
Definition: THcCherenkov.h:62
Int_t fRegionsValueMax
Definition: THcCherenkov.h:80
static const Int_t MaxNumAdcPulse
Definition: THcCherenkov.h:45
Builds a Hall C ENGINE style list of raw hits from raw data.
Definition: THcHitList.h:27
Int_t fAnalyzePedestals
Definition: THcCherenkov.h:50
int Int_t
void DeleteArrays()
Int_t fDebugAdc
Definition: THcCherenkov.h:51
bool Bool_t
vector< Int_t > fNumTracksFired
Definition: THcCherenkov.h:68
Double_t * fAdcPulseAmpTest
Definition: THcCherenkov.h:109
Int_t fTotNumAdcHits
Definition: THcCherenkov.h:57
TClonesArray * frAdcPulseInt
Definition: THcCherenkov.h:118
Double_t * fAdcTimeWindowMin
Definition: THcCherenkov.h:93
virtual Int_t ApplyCorrections(void)
Double_t * fAdcTimeWindowMax
Definition: THcCherenkov.h:94
Double_t fAdcTdcOffset
Definition: THcCherenkov.h:96
virtual Int_t ReadDatabase(const TDatime &date)
Bool_t * fPresentP
Definition: THcCherenkov.h:49
Double_t fNpeThresh
Definition: THcCherenkov.h:92
Double_t fRedChi2Min
Definition: THcCherenkov.h:81
TClonesArray * frAdcPulseTimeRaw
Definition: THcCherenkov.h:116
virtual Int_t Decode(const THaEvData &)
Int_t * fPedSum2
Definition: THcCherenkov.h:103
Double_t fBetaMax
Definition: THcCherenkov.h:84
vector< Double_t > fGoodAdcPed
Definition: THcCherenkov.h:69
Double_t fRefTime
Definition: THcCherenkov.h:61
TClonesArray * frAdcPedRaw
Definition: THcCherenkov.h:113
virtual Int_t FineProcess(TClonesArray &tracks)
TClonesArray * frAdcPulseAmpRaw
Definition: THcCherenkov.h:115
static const Int_t MaxNumCerPmt
Definition: THcCherenkov.h:44
vector< Double_t > fGoodAdcMult
Definition: THcCherenkov.h:70
Double_t GetCerNPE()
TClonesArray * frAdcPulseTime
Definition: THcCherenkov.h:120
vector< Double_t > fGoodAdcPulseIntRaw
Definition: THcCherenkov.h:73
Double_t * fGain
Definition: THcCherenkov.h:63
Int_t fADC_RefTimeCut
Definition: THcCherenkov.h:54
vector< Double_t > fGoodAdcTdcDiffTime
Definition: THcCherenkov.h:76
auto * a
Int_t fTotNumTracksFired
Definition: THcCherenkov.h:60
virtual EStatus Init(const TDatime &run_time)
TClonesArray * fAdcErrorFlag
Definition: THcCherenkov.h:121
Int_t fNRegions
Definition: THcCherenkov.h:79
Int_t * fPedDefault
Definition: THcCherenkov.h:95
void run(bool only_compile=false)
TClonesArray * frAdcPed
Definition: THcCherenkov.h:117
Double_t fBetaMin
Definition: THcCherenkov.h:83
vector< Double_t > fGoodAdcHitUsed
Definition: THcCherenkov.h:71
Int_t * fPedLimit
Definition: THcCherenkov.h:104
Int_t * fPedSum
Definition: THcCherenkov.h:102
Double_t fYAtCer
Definition: THcCherenkov.h:91
double Double_t
Int_t fNPedestalEvents
Definition: THcCherenkov.h:100
void Setup(const char *name, const char *description)
THcHodoscope * fglHod
Definition: THcCherenkov.h:125
Double_t fDpMax
Definition: THcCherenkov.h:88
TClonesArray * frAdcPulseAmp
Definition: THcCherenkov.h:119
Int_t fTotNumTracksMatched
Definition: THcCherenkov.h:59
Double_t * fThresh
Definition: THcCherenkov.h:108
Int_t fTotNumGoodAdcHits
Definition: THcCherenkov.h:58
virtual void InitializePedestals()
virtual ~THcCherenkov()
Int_t End(THaRunBase *run)
Double_t fENormMax
Definition: THcCherenkov.h:86
virtual void AccumulatePedestals(TClonesArray *rawhits)
virtual void Print(const Option_t *opt) const
TClonesArray * frAdcPulseIntRaw
Definition: THcCherenkov.h:114
virtual Int_t CoarseProcess(TClonesArray &tracks)
virtual void CalculatePedestals()
vector< Double_t > fGoodAdcPulseInt
Definition: THcCherenkov.h:72
Double_t fXAtCer
Definition: THcCherenkov.h:90
Double_t * fPedMean
Definition: THcCherenkov.h:106
vector< Double_t > fGoodAdcPulseAmp
Definition: THcCherenkov.h:74
Double_t * fRegionValue
Definition: THcCherenkov.h:97
Double_t fMirrorZPos
Definition: THcCherenkov.h:89
Int_t * fAdcGoodElem
Definition: THcCherenkov.h:110
vector< Double_t > fGoodAdcPulseTime
Definition: THcCherenkov.h:75
Double_t * fWidth
Definition: THcCherenkov.h:52
virtual Int_t DefineVariables(EMode mode=kDefine)
Generic hodoscope consisting of multiple planes with multiple paddles with phototubes on both ends...
Definition: THcHodoscope.h:37
Int_t * fPedCount
Definition: THcCherenkov.h:105
char name[80]
vector< Double_t > fNpe
Definition: THcCherenkov.h:77
ClassDef(THcHitList, 0)
Int_t GetIndex(Int_t nRegion, Int_t nValue)
vector< Int_t > fNumGoodAdcHits
Definition: THcCherenkov.h:66