BeAnalysis.h 4.2 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 45 46 47
	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);

	void SetCuts();

	void SetCMAngularRange(Int_t minAngle, Int_t maxAngle);
48
private:
49
	void SetCMAngularCuts();
50
public:
51 52
	void SetRangeProportion(Float_t rangeProportion = 1.1, Bool_t autoRange = 1);

53 54
	void SetNoExpEvents(Long64_t *noExpEvents = 0);
	void SetNoSimEvents(Long64_t *noSimEvents = 0);
55 56 57 58 59 60 61 62
	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);
63
	void EpsilonTRange();
64

65
	void SetSpectra(Bool_t kSpectra = 1) {spectra = kSpectra;};
66 67 68 69 70 71
	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);

72
	void Spectra();
73
	void EpsilonT();
74 75 76 77 78
	void CosThetaTk();
	void EpsilonY();
	void CosThetaYk();
	void ThetaAT();

79 80 81
	void SetFigures(TString figPath = "figures/", TString figFormat = ".eps", Bool_t kSave = 1);


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

89 90 91 92 93 94 95 96
	Int_t lowExpFile;
	Int_t upExpFile;
	TString expFiles;
	TString simFiles[6];
	TString inputFiles[6];
	Int_t lowSimFile[6];
	Int_t upSimFile[6];

97 98
	Int_t noBinsSpectra;

99 100 101 102 103 104 105
	Int_t kMinAngle;
	Int_t kMaxAngle;

	TCut cAngles;
	TCut crAngles;

	Bool_t kChains[6];
106 107
	Int_t noIntervals;
	Bool_t *epsilonT;	//!
108 109
	Bool_t *cosThetaT;	//!
	Bool_t *epsilonY;	//!
110
	Bool_t *cosThetaY;	//!
111

112 113
	Bool_t *thetaAT;	//!

114 115
	Bool_t kAutoRange;
	Float_t kRangeProportion;
116 117
	Bool_t kVerbose;
	Float_t kRangeProportionIn;
118 119 120 121 122 123 124 125 126

	Long64_t eMaxEvents;
	Long64_t eEvents[6];

	Long64_t sMaxEvents;
	Long64_t sEvents[6];

	TCut sRatio[6];

127 128 129
	Long64_t eEventsECuts[5][6];		//!
	Long64_t sEventsECuts[5][6];		//!
	Double_t eTRange[5][6];				//!
130

131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161
	//cuts
	TCut cBe20;
	TCut cBe3;
	TCut cBeWork;
	TCut cBe0_14;
	TCut cBe14_19;
	TCut cBe19_25;
	TCut cBe25_31;
	TCut cBe31_37;
	TCut cBeE[5];

	TCut cEpsilonT;
	TCut cEpsilonY;

	//raw files
	//energy cuts
	TCut crBe20;
	TCut crBe3;
	TCut crBeWork;
	TCut crBe0_14;
	TCut crBe14_19;
	TCut crBe19_25;
	TCut crBe25_31;
	TCut crBe31_37;
	TCut crBeE[5];
	//angular cuts

	TCut crEpsilonT;
	TCut crEpsilonY;

	//simulation input
162 163 164 165 166
//	TCut ciBe0_14;
//	TCut ciBe14_19;
//	TCut ciBe19_25;
//	TCut ciBe25_31;
//	TCut ciBe31_37;
167 168 169 170 171 172 173 174 175 176 177 178 179 180
	TCut ciBeE[5];

	TCut ciEpsilon;
	TCut ciEpsilonY;

	TCut cQ;
	TCut cProtons;

	Bool_t spectra;

	//auxiliary strings
	TString drawCommand;
	TString hsName;
	TString heName;
181
	TString hiName;
182 183

	TString canvasName;
184
	TString canvasTitle;
185

186 187 188 189 190 191
	Bool_t kSaveFigures;
	TString figurePath;
	TString figureFormat;

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

194 195 196
};

#endif /* BE_BEANALYSIS_H_ */