29 #include "FairRootManager.h"
30 #include "FairRunAna.h"
31 #include "FairRuntimeDb.h"
33 #include "TClonesArray.h"
34 #include "TStopwatch.h"
66 FairRootManager* ioman = FairRootManager::Instance();
69 cout <<
"-E- PndEmcWaveformToCalibratedDigi::Init: "
70 <<
"RootManager not instantiated!" << endl;
77 cout <<
"-W- PndEmcWaveformToCalibratedDigi::Init: "
78 <<
"No PndEmcWaveform array!" << endl;
113 cout <<
"-W- PndEmcWaveformToCalibratedDigi::Init: "
114 <<
"Unknown digi position method!" << endl;
129 std::vector<Double_t> params;
130 params.push_back(30);
159 cout <<
"-I- PndEmcWaveformToCalibratedDigi: Read "<<
fCalibrationMap.size() <<
" Calibration Entries" << endl;
161 cout <<
"-I- PndEmcWaveformToCalibratedDigi: Intialization successfull" << endl;
173 if ( !
fDigiArray ) Fatal(
"Exec",
"No Digi Array");
186 for (Int_t iWaveform=0; iWaveform<nWaveforms; iWaveform++) {
210 std::map<Int_t,Double_t>::iterator it;
221 PndEmcDigi* myDigi =
new((*fDigiArray)[i_digi])
PndEmcDigi(trackId,detId, energy, digi_time, hitIndex);
222 myDigi->AddLink(FairLink(
"EmcWaveform", iWaveform));
232 cout <<
"PndEmcWaveformToCalibratedDigi, Real time " << rtime <<
" s, CPU time " << ctime <<
" s" << endl;
240 FairRun*
run = FairRun::Instance();
241 if ( ! run ) Fatal(
"SetParContainers",
"No analysis run");
243 FairRuntimeDb* db = run->GetRuntimeDb();
244 if ( ! db ) Fatal(
"SetParContainers",
"No runtime database");
264 std::cerr <<
"Cannot open calibration file!" << endl;
269 while (in.getline(buf, 255)) {
271 TObjArray *tokens = tmp.Tokenize(
" \t;");
272 if(tokens->GetEntries()<2){
275 tmp=tokens->UncheckedAt(0)->GetName();
276 TString tmp2 = tokens->UncheckedAt(1)->GetName();
277 if(tmp.IsDigit() && tmp2.IsFloat()){
278 fCalibrationMap.insert(std::pair<Int_t,Double_t>(tmp.Atoi(),tmp2.Atof()));
Double_t GetEmcDigiPositionDepthShashlyk()
Double_t GetPMT_Shaping_diff_time()
static void selectDigiPositionMethod(PositionMethod, double positionDepthPWO=0., double positionDepthShahslyk=0., double rescaleFactor=1.)
Int_t GetNumber_of_samples_in_waveform()
Pulseshape analysis for ADC waveforms.
represents the reconstructed hit of one emc crystal
Double_t val[nBoxes][nFEBox]
virtual Int_t Process(const PndEmcWaveform *waveform)=0
Find Hits in Waveform.
Double_t GetCrystal_time_constant()
void SetPersistency(Bool_t val=kTRUE)
Pulseshape analysis for ADC waveforms.
virtual void GetHit(Int_t i, Double_t &energy, Double_t &time)=0
Get energy and time of hit.
Double_t GetASIC_Shaping_int_time()
Pulseshape from an CRRC-Shaper.
Double_t GetEnergyDigiThreshold()
Pulseshape from an APFEL ASIC preamplifier shaper.
parameter set of Emc digitisation
virtual void SetEnergy(Double32_t energy)
represents the deposited energy of one emc crystal from simulation
Pulseshape analysis for ADC waveforms.
Double_t GetSampleRate_PMT()
virtual void SetTime(Double32_t time)
Double_t GetShashlyk_time_constant()
Int_t GetNumber_of_samples_in_waveform_pmt()
Double_t GetPMT_Shaping_int_time()
Parameter set for Emc Reco.
Double_t GetEmcDigiPositionDepthPWO()