CbmRoot
Loading...
Searching...
No Matches
CbmLitFieldQa.h
Go to the documentation of this file.
1/* Copyright (C) 2009-2018 GSI/JINR-LIT, Darmstadt/Dubna
2 SPDX-License-Identifier: GPL-3.0-only
3 Authors: Andrey Lebedev [committer] */
4
12#ifndef CBMLITFIELDQA_H_
13#define CBMLITFIELDQA_H_
14
15#include "FairTask.h"
16
17#include <string>
18#include <utility>
19#include <vector>
20
21class FairField;
22class TList;
23class CbmHistManager;
24
25using std::string;
26using std::vector;
27
34class CbmLitFieldQa : public FairTask {
35 public:
40
44 virtual ~CbmLitFieldQa();
45
49 virtual InitStatus Init();
50
54 virtual void Exec(Option_t* opt);
55
59 virtual void Finish();
60
61 /* Setters */
62 void SetSliceZPosition(const vector<Double_t>& zPos) { fZSlicePosition = zPos; }
63 // void SetAcceptanceAngleX(Double_t xangle) { fAcceptanceAngleX = xangle; }
64 // void SetAcceptanceAngleY(Double_t yangle) { fAcceptanceAngleY = yangle; }
65 void SetNofBinsX(Int_t nofBinsX) { fNofBinsX = nofBinsX; }
66 void SetNofBinsY(Int_t nofBinsY) { fNofBinsY = nofBinsY; }
67 void SetZMin(Double_t zMin) { fZMin = zMin; }
68 void SetZMax(Double_t zMax) { fZMax = zMax; }
69 void SetZStep(Double_t zStep) { fZStep = zStep; }
70 void SetMinZFieldIntegral(Double_t minZ) { fMinZFieldIntegral = minZ; }
71 void SetMaxZFieldIntegral(Double_t maxZ) { fMaxZFieldIntegral = maxZ; }
72 void SetOutputDir(const string& dir) { fOutputDir = dir; }
73
74 private:
78 void CreateHistos();
79
83 void FillBHistos();
84
89
90 // Pointer to the magnetic field map
91 FairField* fField;
92
93 // Slice is defined as rectangle at a certain Z position
94 // with upper left corner coordinate equals to [-X, -Y]
95 // and lower right corner coordinate equals to [X, Y].
96 // Z, X, Y coordinates for each slice.
97 // [slice number]
98 vector<Double_t> fZSlicePosition; // Z position of the slice
99 vector<Double_t> fXSlicePosition; // X coordinate of slice
100 vector<Double_t> fYSlicePosition; // Y coordinate of slice
101
102 Int_t fNofSlices; // Number of slices along Z for field approximation
103 // Double_t fAcceptanceAngleX; // Acceptance angle for X
104 // Double_t fAcceptanceAngleY; // Acceptance angle for Y
105 Int_t fNofBinsX; // Number of bins for X
106 Int_t fNofBinsY; // Number of bins for Y
107 Double_t fMinZFieldIntegral; // start Z position for field integral
108 Double_t fMaxZFieldIntegral; // end Z position for field integral
109
110 vector<Double_t> fAlongZAngles; // Polar angles [grad]
111 vector<std::pair<Double_t, Double_t>> fAlongZXY; // XY position for plotting field along Z
112 Double_t fZMin; // Minimum Z position [cm]
113 Double_t fZMax; // Maximum Z position [cm]
114 Double_t fZStep; // Step size [cm]
115
116 CbmHistManager* fHM; // Histogram manager
117
118 // Output directory for images
120
123
125};
126
127#endif /* CBMLITFIELDQA_H_ */
Histogram manager.
Field map QA.
CbmLitFieldQa & operator=(const CbmLitFieldQa &)
vector< Double_t > fZSlicePosition
virtual void Finish()
Inherited from FairTask.
CbmLitFieldQa(const CbmLitFieldQa &)
void SetZMax(Double_t zMax)
vector< Double_t > fAlongZAngles
void SetNofBinsX(Int_t nofBinsX)
vector< Double_t > fXSlicePosition
void SetZMin(Double_t zMin)
void SetSliceZPosition(const vector< Double_t > &zPos)
vector< std::pair< Double_t, Double_t > > fAlongZXY
vector< Double_t > fYSlicePosition
void CreateHistos()
Create histograms.
void SetMaxZFieldIntegral(Double_t maxZ)
ClassDef(CbmLitFieldQa, 1)
Double_t fMinZFieldIntegral
virtual void Exec(Option_t *opt)
Inherited from FairTask.
void FillBHistos()
Fill graphs and histos for field map for each field component (Bx, By, Bz, |B|).
Double_t fMaxZFieldIntegral
virtual InitStatus Init()
Inherited from FairTask.
void FillRichPmtPlaneBHistos()
Fill B-field histograms for RICH PMT plane.
void SetNofBinsY(Int_t nofBinsY)
void SetOutputDir(const string &dir)
CbmHistManager * fHM
virtual ~CbmLitFieldQa()
Destructor.
FairField * fField
CbmLitFieldQa()
Constructor.
void SetMinZFieldIntegral(Double_t minZ)
void SetZStep(Double_t zStep)