FEDRA emulsion software from the OPERA Collaboration
EdbSegCorr.h
Go to the documentation of this file.
1#ifndef ROOT_EdbSegCorr
2#define ROOT_EdbSegCorr
3
4#include "TArrayF.h"
5#include "EdbSegP.h"
6
7class EdbSegCorr : public TObject
8{
9 private:
10 TArrayF eV;
12 public:
13 Bool_t eApplyCorr;
14
15 public:
17 virtual ~EdbSegCorr(){}
18
19 void ResetCorr() { eV.Set(10); eV[5]=1.; }
20
21 void SetV(int i, float x) {eV[i]=x;}
22 void AddV(int i, float x) {eV[i]+=x;}
23 float V(int i) { return eV[i]; }
24
25 float X(EdbSegP &s) { if(!eApplyCorr) return s.eX; if(TMath::Abs(eV[6])<0.00001) return Xpos(s); else return Xrot(s); }
26 float Y(EdbSegP &s) { if(!eApplyCorr) return s.eY; if(TMath::Abs(eV[6])<0.00001) return Ypos(s); else return Yrot(s); }
27
28 float Xpos(EdbSegP &s) { return eApplyCorr? eV[0] + s.eX + TX(s)*eV[2] : s.eX; }
29 float Ypos(EdbSegP &s) { return eApplyCorr? eV[1] + s.eY + TY(s)*eV[2] : s.eY; }
30
31 float Xrot(EdbSegP &s) { return Xpos(s)*TMath::Cos(eV[6])-Ypos(s)*TMath::Sin(eV[6]); }
32 float Yrot(EdbSegP &s) { return Xpos(s)*TMath::Sin(eV[6])+Ypos(s)*TMath::Cos(eV[6]); }
33
34 float TX(EdbSegP &s) { return eApplyCorr? s.eTX/eV[5]+eV[3] : s.eTX; }
35 float TY(EdbSegP &s) { return eApplyCorr? s.eTY/eV[5]+eV[4] : s.eTY; }
36 float T(EdbSegP &s) { return TMath::Sqrt( TX(s)*TX(s) + TY(s)*TY(s) ); }
37
38 void ApplyCorrections( EdbSegP &s );
39
40 void Print();
41
42 ClassDef(EdbSegCorr,1) // segment corrections as separated variables
43};
44
45#endif /* EdbSegCorr */
Definition: EdbSegCorr.h:8
EdbSegCorr()
Definition: EdbSegCorr.h:16
float T(EdbSegP &s)
Definition: EdbSegCorr.h:36
virtual ~EdbSegCorr()
Definition: EdbSegCorr.h:17
float TX(EdbSegP &s)
Definition: EdbSegCorr.h:34
float X(EdbSegP &s)
Definition: EdbSegCorr.h:25
float Xpos(EdbSegP &s)
Definition: EdbSegCorr.h:28
Bool_t eApplyCorr
do correction
Definition: EdbSegCorr.h:13
void Print()
float V(int i)
Definition: EdbSegCorr.h:23
float Y(EdbSegP &s)
Definition: EdbSegCorr.h:26
float Ypos(EdbSegP &s)
Definition: EdbSegCorr.h:29
void SetV(int i, float x)
Definition: EdbSegCorr.h:21
TArrayF eV
Definition: EdbSegCorr.h:10
float TY(EdbSegP &s)
Definition: EdbSegCorr.h:35
float Xrot(EdbSegP &s)
Definition: EdbSegCorr.h:31
void AddV(int i, float x)
Definition: EdbSegCorr.h:22
float Yrot(EdbSegP &s)
Definition: EdbSegCorr.h:32
void ApplyCorrections(EdbSegP &s)
Definition: EdbSegCorr.cxx:13
void ResetCorr()
Definition: EdbSegCorr.h:19
Definition: EdbSegP.h:21
s
Definition: check_shower.C:55