AEvent.h 1.75 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
/*
 * AEvent.h
 *
 *  Created on: Dec 28, 2016
 *      Author: daria
 */

#ifndef DATACLASSES_AEVENT_H_
#define DATACLASSES_AEVENT_H_

#include <iostream>
#include <fstream>
#include <iomanip>
#include <sstream>

#include "TError.h"
#include "TString.h"
#include "TTree.h"
#include "TFile.h"
20
#include "TF1.h"
21 22 23 24 25
//#include "TMath.h"


#include "RawEvent.h"

26
//#define NCELLS 1024
27 28 29 30 31 32 33 34 35

using std::cout;
using std::endl;

class AEvent {

private:

	const Int_t fNPoints;	//!
36 37 38
	TArrayD fAmpPos;	//array for raw amplitudes
	TArrayD fTime;		//array for raw times

39 40
	Double_t fAmpMax;
	Double_t fTimeAmpMax;
41 42

	TArrayD fAmpCFD;	//array for CFD amplitudes (attenuated, inversed and delayed)
43
	Double_t fCFD;			//zero-crossing time
44

45 46
	TGraph *fGraphSignal;
	TGraph *fGraphCFD;
47
	TGraph *fGraphZero;
48 49 50

	RawEvent *fInputEvent;		//!

51
	Double_t fCFratio;		//!
52 53
	Double_t fCFtimeDelay;		//!

54 55
public:
	AEvent();
56
	AEvent(const Int_t npoints);
57 58
	virtual ~AEvent();
	ClassDef(AEvent,1);
59 60 61 62

	void SetRawDataFile(const char* inprawfile, const char* treename);
	void ProcessEvent();
	void SetInputEvent(RawEvent** event);
63

64 65 66 67 68
	void SetCFratio(Double_t ratio) { fCFratio = ratio; };	
	//CFD set attenuation coefficient

	void SetCFtimeDelay(Double_t timeDelay) { fCFtimeDelay = timeDelay; };	
	//CFD set time delay (in points)
69

70 71 72
	void Reset();
	 //Resets arrays to zeros

73 74
	TGraph* GetGraphCFD() {

75
		return fGraphCFD;
76
	}
77 78 79 80 81 82 83 84 85 86 87 88
	//draws CFD graphs

	TGraph* GetGraphSignal() {

		return fGraphSignal;
	}
	//draws signal shape graphs

	Double_t FindZeroLevel(Int_t pmin = 10, Int_t pmax = 100);
	//for zero level correction
	//one parameter fit between pmin and pmax
	//returns fit parameter i.e. number on which amplitude should be corrected
89 90 91

private:
	void Init();
92
	void SetGraphs();
93
	void SetCFD();
94 95 96
};

#endif /* DATACLASSES_AEVENT_H_ */