ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtApolloDigitizer.h
Go to the documentation of this file.
1 /********************************************************************************
2  * Copyright (C) 2014 GSI Helmholtzzentrum fuer Schwerionenforschung GmbH *
3  * *
4  * This software is distributed under the terms of the *
5  * GNU Lesser General Public Licence version 3 (LGPL) version 3, *
6  * copied verbatim in the file "LICENSE" *
7  ********************************************************************************/
8 
9 #ifndef ATAPOLLODIGITIZER_H
10 #define ATAPOLLODIGITIZER_H
11 
12 #include <Rtypes.h>
13 // Needed for streamer generation
14 #include <FairTask.h>
15 
16 #include <TClonesArray.h> // IWYU pragma: keep
17 
19 class TBuffer;
20 class TClass;
21 class TMemberInspector;
22 
23 class AtApolloDigitizer : public FairTask {
24 
25 public:
28 
31 
33  virtual InitStatus Init();
34 
36  virtual void Exec(Option_t *opt);
37 
39  virtual void EndOfEvent();
40 
42  virtual void Register();
43 
45  virtual void Reset();
46 
48  virtual void FinishEvent();
49 
50  virtual void SetParContainers();
51 
59  void SetRealConfig(Bool_t isRealSet);
60 
65  void SetExpEnergyRes(Double_t crystalResCsI, Double_t crystalResLaBr);
66 
73  void SetDetectionThreshold(Double_t thresholdEne);
74 
80  void SetNonUniformity(Double_t nonU);
81 
82  inline void ResetParameters(){};
83 
88  AtApolloCrystalCalData *AddCrystalCal(Int_t ident, Double_t energy, ULong64_t time);
89 
90 private:
91  void SetParameter();
92 
93  TClonesArray *fApolloPointDataCA;
94  TClonesArray fApolloCryCalDataCA;
96  Double_t fNonUniformity{0.}; // Experimental non-uniformity parameter
97  Double_t fResolutionCsI{0.}; // Experimental resolution @ 1 MeV for CsI
98  Double_t fResolutionLaBr{0.}; // Experimental resolution @ 1 MeV for LaBr
99  Double_t fThreshold{0.}; // Minimum energy requested to create a Cal
100 
107  Double_t NUSmearing(Double_t inputEnergy);
108 
116  Double_t ExpResSmearingCsI(Double_t inputEnergy);
117 
120  Double_t ExpResSmearingLaBr(Double_t inputEnergy);
121 
122  Bool_t isCsI(Int_t id);
123  Bool_t isLaBr(Int_t id);
124 
125  ClassDef(AtApolloDigitizer, 1);
126 };
127 
128 #endif
AtApolloDigitizer::SetNonUniformity
void SetNonUniformity(Double_t nonU)
Definition: AtApolloDigitizer.cxx:216
AtApolloDigitizer::ResetParameters
void ResetParameters()
Definition: AtApolloDigitizer.h:82
AtApolloDigitizer::SetParContainers
virtual void SetParContainers()
Definition: AtApolloDigitizer.cxx:48
AtApolloDigitizer::SetDetectionThreshold
void SetDetectionThreshold(Double_t thresholdEne)
Definition: AtApolloDigitizer.cxx:181
AtApolloDigitizer::~AtApolloDigitizer
~AtApolloDigitizer()
Definition: AtApolloDigitizer.cxx:37
AtApolloDigitizer::EndOfEvent
virtual void EndOfEvent()
Definition: AtApolloDigitizer.cxx:158
AtApolloDigitizer::Reset
virtual void Reset()
Definition: AtApolloDigitizer.cxx:170
AtApolloDigitizer::SetExpEnergyRes
void SetExpEnergyRes(Double_t crystalResCsI, Double_t crystalResLaBr)
Definition: AtApolloDigitizer.cxx:199
AtApolloDigitizer
Definition: AtApolloDigitizer.h:23
AtApolloDigitizer::AddCrystalCal
AtApolloCrystalCalData * AddCrystalCal(Int_t ident, Double_t energy, ULong64_t time)
Definition: AtApolloDigitizer.cxx:187
AtApolloDigitizer::Exec
virtual void Exec(Option_t *opt)
Definition: AtApolloDigitizer.cxx:81
AtApolloCrystalCalData
Definition: AtApolloCrystalCalData.h:20
AtApolloDigitizer::Init
virtual InitStatus Init()
Definition: AtApolloDigitizer.cxx:59
AtApolloDigitizer::SetRealConfig
void SetRealConfig(Bool_t isRealSet)
AtApolloDigitizer::Register
virtual void Register()
Definition: AtApolloDigitizer.cxx:165
AtApolloDigitizer::FinishEvent
virtual void FinishEvent()
Definition: AtApolloDigitizer.cxx:179
AtApolloDigitizer::AtApolloDigitizer
AtApolloDigitizer()
Definition: AtApolloDigitizer.cxx:32