ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtCore2.h
Go to the documentation of this file.
1 // =================================================
2 // AtCore Class
3 // Original author : Genie Jhang ( geniejhang@majimak.com )
4 // Adapted for AtTPCROOT by Y. Ayyad (ayyadlim@nscl.msu.edu)
5 // =================================================
6 
7 #ifndef _ATCORE2_H_
8 #define _ATCORE2_H_
9 
10 #include "AtGadgetIIMap.h"
11 #include "AtMap.h"
12 #include "AtPedestal.h"
13 #include "AtRawEvent.h"
14 #include "AtTpcMap.h"
15 #include "AtTpcProtoMap.h"
16 
17 #include <TClonesArray.h>
18 #include <TObject.h>
19 #include <TString.h>
20 
21 #include "GETDecoder2.h"
22 
23 #include <mutex>
24 #include <tuple>
25 
26 class AtCore2 : public TObject {
27 private:
28  // Bool_t GetIsAuxChannel(Int_t val);
29 
30  Int_t fNumTbs;
31  Int_t fNumCobo;
32 
33  GETDecoder2 *fDecoderPtr[4];
34  Bool_t fIsData;
35 
36  AtPedestal *fPedestalPtr[4];
37  Bool_t fIsNegativePolarity;
38  Double_t fFPNSigmaThreshold;
39 
40  AtRawEvent *fRawEventPtr;
41  // TClonesArray *fPadArray;
42 
43  Int_t fCurrentEventID[4];
44  Int_t fTargetFrameID;
45 
46  Bool_t fIsSeparatedData;
47 
48  std::shared_ptr<AtMap> fMap;
49  // Bool_t kEnableAuxChannel;
50 
51  Bool_t kDebug;
52  std::mutex fRawEventMutex;
53 
54 public:
55  AtCore2();
56  AtCore2(std::shared_ptr<AtMap> map);
57  AtCore2(std::shared_ptr<AtMap> map, Int_t numCobos = 4);
58  AtCore2(TString filename, std::shared_ptr<AtMap> map);
59  AtCore2(TString filename, Int_t numTbs, Int_t windowNumTbs = 512, Int_t windowStartTb = 0);
60  ~AtCore2();
61 
62  void Initialize();
63 
64  // setters
65  Bool_t AddData(TString filename, Int_t coboIdx = 0);
66  void SetPositivePolarity(Bool_t value = kTRUE);
67  Bool_t SetData(Int_t value);
68  void SetDiscontinuousData(Bool_t value = kTRUE);
69  Int_t GetNumData(Int_t coboIdx = 0);
70  TString GetDataName(Int_t index, Int_t coboIdx = 0);
71  void SetNumTbs(Int_t value);
72  void SetFPNPedestal(Double_t sigmaThreshold = 5);
73  void SetMap(std::shared_ptr<AtMap> map) { fMap = map; }
74 
75  void SetUseSeparatedData(Bool_t value = kTRUE);
76 
77  void ProcessCobo(Int_t coboIdx);
78  void ProcessBasicCobo(Int_t coboIdx);
79  void ProcessLayeredFrame(GETLayeredFrame *layeredFrame);
80  void ProcessBasicFrame(GETBasicFrame *basicFrame);
81 
82  Bool_t SetWriteFile(TString filename, Int_t coboIdx = 0, Bool_t overwrite = kFALSE);
83  void WriteData();
84 
85  // getters
86  AtRawEvent *GetRawEvent(Long64_t eventID = -1);
87  Int_t GetEventID();
88  Int_t GetNumTbs(Int_t coboIdx = 0);
89 
90  Int_t GetFPNChannel(Int_t chIdx);
91  void SetPseudoTopologyFrame(Int_t asadMask, Bool_t check = kFALSE);
92  void SetNumCobo(Int_t numCobo);
93 
95 };
96 
97 #endif
AtCore2::ProcessBasicFrame
void ProcessBasicFrame(GETBasicFrame *basicFrame)
Definition: AtCore2.cxx:479
AtGadgetIIMap.h
AtRawEvent.h
AtCore2::WriteData
void WriteData()
Definition: AtCore2.cxx:285
AtPedestal.h
AtCore2::ProcessBasicCobo
void ProcessBasicCobo(Int_t coboIdx)
Definition: AtCore2.cxx:226
AtCore2::GetEventID
Int_t GetEventID()
Returns the current event ID.
Definition: AtCore2.cxx:378
AtCore2
Definition: AtCore2.h:26
AtCore2::SetNumCobo
void SetNumCobo(Int_t numCobo)
Definition: AtCore2.cxx:531
AtCore2::SetData
Bool_t SetData(Int_t value)
Definition: AtCore2.cxx:99
GETBasicFrame
Definition: GETBasicFrame.h:14
AtRawEvent
Definition: AtRawEvent.h:34
GETDecoder2
Definition: GETDecoder2.h:38
AtCore2::GetNumData
Int_t GetNumData(Int_t coboIdx=0)
Definition: AtCore2.cxx:138
AtCore2::GetFPNChannel
Int_t GetFPNChannel(Int_t chIdx)
Definition: AtCore2.cxx:403
AtCore2::ProcessLayeredFrame
void ProcessLayeredFrame(GETLayeredFrame *layeredFrame)
Definition: AtCore2.cxx:425
AtCore2::SetWriteFile
Bool_t SetWriteFile(TString filename, Int_t coboIdx=0, Bool_t overwrite=kFALSE)
Definition: AtCore2.cxx:280
AtCore2::SetFPNPedestal
void SetFPNPedestal(Double_t sigmaThreshold=5)
Definition: AtCore2.cxx:158
AtCore2::AddData
Bool_t AddData(TString filename, Int_t coboIdx=0)
Definition: AtCore2.cxx:89
AtCore2::AtCore2
AtCore2()
Definition: AtCore2.cxx:26
AtCore2::SetPseudoTopologyFrame
void SetPseudoTopologyFrame(Int_t asadMask, Bool_t check=kFALSE)
Definition: AtCore2.cxx:419
AtCore2::SetNumTbs
void SetNumTbs(Int_t value)
Definition: AtCore2.cxx:148
AtCore2::GetNumTbs
Int_t GetNumTbs(Int_t coboIdx=0)
Returns the number of time buckets of the data.
Definition: AtCore2.cxx:383
AtPedestal
Definition: AtPedestal.h:27
AtCore2::SetDiscontinuousData
void SetDiscontinuousData(Bool_t value=kTRUE)
Definition: AtCore2.cxx:130
AtCore2::ProcessCobo
void ProcessCobo(Int_t coboIdx)
Definition: AtCore2.cxx:165
GETDecoder2.h
AtCore2::~AtCore2
~AtCore2()
Definition: AtCore2.cxx:57
AtCore2::GetDataName
TString GetDataName(Int_t index, Int_t coboIdx=0)
Definition: AtCore2.cxx:143
AtCore2::Initialize
void Initialize()
Definition: AtCore2.cxx:59
AtCore2::GetRawEvent
AtRawEvent * GetRawEvent(Long64_t eventID=-1)
Returns STRawEvent object filled with the data.
Definition: AtCore2.cxx:302
AtCore2::SetUseSeparatedData
void SetUseSeparatedData(Bool_t value=kTRUE)
Definition: AtCore2.cxx:388
AtMap.h
AtCore2::SetMap
void SetMap(std::shared_ptr< AtMap > map)
Definition: AtCore2.h:73
AtCore2::SetPositivePolarity
void SetPositivePolarity(Bool_t value=kTRUE)
Definition: AtCore2.cxx:94
GETLayeredFrame
Definition: GETLayeredFrame.h:16
AtTpcProtoMap.h
AtCore2::ClassDef
ClassDef(AtCore2, 3)
AtTpcMap.h