BeAnalysis.h 4.28 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14
/*
 * BeAnalysis.h
 *
 *  Created on: Jul 19, 2017
 *      Author: vratik
 */

#ifndef BE_BEANALYSIS_H_
#define BE_BEANALYSIS_H_

#include <iostream>

//#include <TObject.h>
#include "TChain.h"
15
#include "TCut.h"
16
#include "TCanvas.h"
17 18 19 20 21 22 23 24 25 26

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

class BeAnalysis {
public:
	BeAnalysis();
	virtual ~BeAnalysis();
	ClassDef(BeAnalysis, 1);

27 28 29 30 31 32 33 34
	void SetExpChain(TString files, Int_t minFnumber, Int_t maxFnumber);
	void SetSimChains(TString chainAl0name, TString chainNoAl0name,
			TString chainAl180name, TString chainNoAl180name,
			TString chainAl90name, TString chainNoAl90name);
	void SetInputChains(TString inputAl0name, TString inputNoAl0name,
			TString inputAl180name, TString inputNoAl180name,
			TString inputAl90name, TString inputNoAl90name);
	void SetNoSimFiles(Int_t *minFnumber = 0, Int_t *maxFnumber = 0);
35 36 37 38

	void OpenSimChains();
	void OpenExpChain();

39 40
	void SetNoBinsSpectra(Int_t noBins = 100) {noBinsSpectra = noBins;};

41 42
	TChain* GetExpChain() {return che;};
	TChain* GetSimChain(Int_t i) {return chs[i];};
43 44
	void SetChainsToDraw(Bool_t ch0 = 1, Bool_t ch1 = 1, Bool_t ch2 = 1, Bool_t ch3 = 1, Bool_t ch4 = 1, Bool_t ch5 = 1);

45
private:
46
	void SetCuts();
47 48
public:
	void SetSimCuts(TString sEt[5]/*, TString sET0 = "", TString sET1 = "", TString sET2 = "", TString sET3 = "", TString sET4 = ""*/);
49 50

	void SetCMAngularRange(Int_t minAngle, Int_t maxAngle);
51
private:
52
	void SetCMAngularCuts();
53
public:
54 55
	void SetRangeProportion(Float_t rangeProportion = 1.1, Bool_t autoRange = 1);

56 57
	void SetNoExpEvents(Long64_t *noExpEvents = 0);
	void SetNoSimEvents(Long64_t *noSimEvents = 0);
58 59 60 61 62 63 64 65
	void SetRatiosGStoEX(TString sRatioAl0, TString sRatioNoAl0,
			TString sRatioAl180, TString sRatioNoAl180,
			TString sRatioAl90, TString sRatioNoAl90);
//	void ExpEventsECuts(Long64_t **noExpEvents = 0);
//	void ExpEventsECuts(Int_t (&noExpEvents)[5][6]);
//	void ExpEventsECuts(Int_t (*noExpEvents)[5][6]);
	void ExpEventsECuts(Long64_t noExpEvents[5][6] = 0);
	void SimEventsECuts(Long64_t noSimEvents[5][6] = 0);
66
	void EpsilonTRange();
67

68
	void SetSpectra(Bool_t kSpectra = 1) {spectra = kSpectra;};
69 70 71 72 73 74
	void SetEpsilonTintervals(Bool_t intervals[6] = 0);
	void SetCosThetaTkIntervals(Bool_t intervals[6] = 0);
	void SetEpsilonYintervals(Bool_t intervals[6] = 0);
	void SetCosThetaYkIntervals(Bool_t intervals[6] = 0);
	void SetThetaATintervals(Bool_t intervals[6] = 0);

75
	void Spectra();
76
	void EpsilonT();
77 78 79 80 81
	void CosThetaTk();
	void EpsilonY();
	void CosThetaYk();
	void ThetaAT();

82 83 84
	void SetFigures(TString figPath = "figures/", TString figFormat = ".eps", Bool_t kSave = 1);


85
//
86
//private:
87 88 89
	TChain *che;		//chain with experimental trees
	TChain *chs[6];		//array of chains with simulation trees
	TTree *ti[6];		//array of chains with simulation input
90
private:
91

92 93 94 95 96 97 98 99
	Int_t lowExpFile;
	Int_t upExpFile;
	TString expFiles;
	TString simFiles[6];
	TString inputFiles[6];
	Int_t lowSimFile[6];
	Int_t upSimFile[6];

100 101
	Int_t noBinsSpectra;

102 103 104 105 106 107 108
	Int_t kMinAngle;
	Int_t kMaxAngle;

	TCut cAngles;
	TCut crAngles;

	Bool_t kChains[6];
109 110
	Int_t noIntervals;
	Bool_t *epsilonT;	//!
111 112
	Bool_t *cosThetaT;	//!
	Bool_t *epsilonY;	//!
113
	Bool_t *cosThetaY;	//!
114

115 116
	Bool_t *thetaAT;	//!

117 118
	Bool_t kAutoRange;
	Float_t kRangeProportion;
119 120
	Bool_t kVerbose;
	Float_t kRangeProportionIn;
121 122 123 124 125 126 127 128 129

	Long64_t eMaxEvents;
	Long64_t eEvents[6];

	Long64_t sMaxEvents;
	Long64_t sEvents[6];

	TCut sRatio[6];

130 131 132
	Long64_t eEventsECuts[5][6];		//!
	Long64_t sEventsECuts[5][6];		//!
	Double_t eTRange[5][6];				//!
133

134
	//cuts
135 136
//	TCut cBe20;
//	TCut cBe3;
137
	TCut cBeWork;
138 139 140 141 142
//	TCut cBe0_14;
//	TCut cBe14_19;
//	TCut cBe19_25;
//	TCut cBe25_31;
//	TCut cBe31_37;
143 144 145 146 147 148 149
	TCut cBeE[5];

	TCut cEpsilonT;
	TCut cEpsilonY;

	//raw files
	//energy cuts
150 151
//	TCut crBe20;
//	TCut crBe3;
152
	TCut crBeWork;
153 154 155 156 157
//	TCut crBe0_14;
//	TCut crBe14_19;
//	TCut crBe19_25;
//	TCut crBe25_31;
//	TCut crBe31_37;
158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178
	TCut crBeE[5];
	//angular cuts

	TCut crEpsilonT;
	TCut crEpsilonY;

	//simulation input
	TCut ciBeE[5];

	TCut ciEpsilon;
	TCut ciEpsilonY;

	TCut cQ;
	TCut cProtons;

	Bool_t spectra;

	//auxiliary strings
	TString drawCommand;
	TString hsName;
	TString heName;
179
	TString hiName;
180 181

	TString canvasName;
182
	TString canvasTitle;
183

184 185 186 187 188 189
	Bool_t kSaveFigures;
	TString figurePath;
	TString figureFormat;

private:
	void SaveFigures(TCanvas *canvas, TString variable, Int_t interval);
190
	void CanvasDivision(TCanvas *c);
191

192 193 194
};

#endif /* BE_BEANALYSIS_H_ */