CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
DTMuonSLToSL Class Reference

#include <DTMuonSLToSL.h>

Inheritance diagram for DTMuonSLToSL:
DTMuonLocalAlignment

Public Member Functions

void calculationSLToSL ()
 
 DTMuonSLToSL (std::string, int, float, float, TFile *)
 
TMatrixD returnbSLMatrix (float, float, float)
 
TMatrixD returnCSLMatrix (float, float, float)
 
void setBranchTree ()
 
 ~DTMuonSLToSL ()
 
- Public Member Functions inherited from DTMuonLocalAlignment
 DTMuonLocalAlignment ()
 
void initNTuples (int)
 
void setBranchAddressTree ()
 
 ~DTMuonLocalAlignment ()
 

Private Attributes

float cov [3][3]
 
float dx
 
float dz
 
float phiy
 
float ptMax
 
float ptMin
 
int srC
 
int stC
 
TTree * ttreeOutput
 
int whC
 

Additional Inherited Members

- Public Attributes inherited from DTMuonLocalAlignment
float charge
 
float dxdzSl [5]
 
float dxdzSlSL1 [5]
 
float dxdzSlSL3 [5]
 
float dydzSl [5]
 
float edxdzSl [5]
 
float edxdzSlSL1 [5]
 
float edxdzSlSL3 [5]
 
float edydzSl [5]
 
float eta
 
float ex [5][14]
 
float excp [5][14]
 
float exdxdzSl [5]
 
float exdxdzSlSL1 [5]
 
float exdxdzSlSL3 [5]
 
float exSl [5]
 
float exSlSL1 [5]
 
float exSlSL3 [5]
 
float eycp [5][14]
 
float eydydzSl [5]
 
float eySl [5]
 
TFile * f
 
int la [5][14]
 
int nhits [5]
 
int nphihits [5]
 
int nseg
 
int nthetahits [5]
 
std::string ntuplePath
 
int numberOfRootFiles
 
float p
 
float phi
 
float pt
 
int sl [5][14]
 
int sr [5]
 
int st [5]
 
TChain * tali
 
int wh [5]
 
float xc [5][14]
 
float xcp [5][14]
 
float xSl [5]
 
float xSL1SL3 [5]
 
float xSL3SL1 [5]
 
float xSlSL1 [5]
 
float xSlSL3 [5]
 
float yc [5][14]
 
float ycp [5][14]
 
float ySl [5]
 
float zc [5][14]
 

Detailed Description

$Date$

Revision
1.3
Author
Luca Scodellaro Luca..nosp@m.Scod.nosp@m.ellar.nosp@m.o@ce.nosp@m.rn.ch

Definition at line 18 of file DTMuonSLToSL.h.

Constructor & Destructor Documentation

◆ DTMuonSLToSL()

DTMuonSLToSL::DTMuonSLToSL ( std::string  path,
int  n_files,
float  MaxPt,
float  MinPt,
TFile *  f_ 
)

◆ ~DTMuonSLToSL()

DTMuonSLToSL::~DTMuonSLToSL ( )

Definition at line 19 of file DTMuonSLToSL.cc.

19 {}

Member Function Documentation

◆ calculationSLToSL()

void DTMuonSLToSL::calculationSLToSL ( )

Definition at line 21 of file DTMuonSLToSL.cc.

21  {
22  TMatrixD ****C13 = new TMatrixD ***[5];
23  TMatrixD ****b13 = new TMatrixD ***[5];
24  TMatrixD ****C31 = new TMatrixD ***[5];
25  TMatrixD ****b31 = new TMatrixD ***[5];
26 
27  for (int whI = -2; whI < 3; ++whI) {
28  C13[whI + 2] = new TMatrixD **[4];
29  b13[whI + 2] = new TMatrixD **[4];
30  C31[whI + 2] = new TMatrixD **[4];
31  b31[whI + 2] = new TMatrixD **[4];
32  for (int stI = 1; stI < 5; ++stI) {
33  C13[whI + 2][stI - 1] = new TMatrixD *[14];
34  b13[whI + 2][stI - 1] = new TMatrixD *[14];
35  C31[whI + 2][stI - 1] = new TMatrixD *[14];
36  b31[whI + 2][stI - 1] = new TMatrixD *[14];
37  for (int seI = 1; seI < 15; ++seI) {
38  if (seI > 12 && stI != 4)
39  continue;
40  C13[whI + 2][stI - 1][seI - 1] = new TMatrixD(3, 3);
41  b13[whI + 2][stI - 1][seI - 1] = new TMatrixD(3, 1);
42  C31[whI + 2][stI - 1][seI - 1] = new TMatrixD(3, 3);
43  b31[whI + 2][stI - 1][seI - 1] = new TMatrixD(3, 1);
44  }
45  }
46  }
47 
48  //Run over the TTree
49  Int_t nentries = (Int_t)tali->GetEntries();
50  for (Int_t i = 0; i < nentries; i++) {
51  tali->GetEntry(i);
52  //Basic cuts
53  if (pt > ptMax || pt < ptMin)
54  continue;
55 
56  bool repeatedHits = false;
57  for (int counter = 0; counter < nseg; ++counter) {
58  //Make sure there are no repeated hits
59  for (int counterHi = 0; counterHi < nhits[counter]; counterHi++) {
60  for (int counterHj = 0; counterHj < nhits[counter]; counterHj++) {
61  if (counterHi == counterHj)
62  continue;
63  if (zc[counter][counterHi] == zc[counter][counterHj]) {
64  repeatedHits = true;
65  }
66  }
67  }
68  if (repeatedHits == true)
69  continue;
70 
71  float x_13 = xSlSL3[counter];
72  float xp_13 = xSL1SL3[counter];
73  float x_31 = xSlSL1[counter];
74  float xp_31 = xSL3SL1[counter];
75  //float tanphi = dxdzSl[counter];
76  float tanphi_13 = dxdzSlSL1[counter];
77  float tanphi_31 = dxdzSlSL3[counter];
78  int wheel = wh[counter];
79  int station = st[counter];
80  int sector = sr[counter];
81 
82  if (fabs(x_13 - xp_13) < 3 && fabs(x_31 - xp_31) && fabs(tanphi_13 - tanphi_31) < 0.06) {
83  *(C13[wheel + 2][station - 1][sector - 1]) += returnCSLMatrix(x_13, xp_13, tanphi_13);
84  *(b13[wheel + 2][station - 1][sector - 1]) += returnbSLMatrix(x_13, xp_13, tanphi_13);
85 
86  *(C31[wheel + 2][station - 1][sector - 1]) += returnCSLMatrix(x_31, xp_31, tanphi_31);
87  *(b31[wheel + 2][station - 1][sector - 1]) += returnbSLMatrix(x_31, xp_31, tanphi_31);
88  }
89  }
90  }
91 
92  for (int wheel = -2; wheel < 3; ++wheel) {
93  for (int station = 1; station < 5; ++station) {
94  for (int sector = 1; sector < 15; ++sector) {
95  if (sector > 12 && station != 4)
96  continue;
97  TMatrixD solution13(3, 1);
98  TMatrixD solution31(3, 1);
99  TMatrixD C31_copy = *(C31[wheel + 2][station - 1][sector - 1]);
100  TMatrixD C13_copy = *(C13[wheel + 2][station - 1][sector - 1]);
101  TMatrixD b31_copy = *(b31[wheel + 2][station - 1][sector - 1]);
102  TMatrixD b13_copy = *(b13[wheel + 2][station - 1][sector - 1]);
103 
104  C31_copy.Invert();
105  C13_copy.Invert();
106  solution13 = C13_copy * b13_copy;
107  solution31 = C31_copy * b31_copy;
108  whC = wheel;
109  stC = station;
110  srC = sector;
111  dx = solution13(0, 0);
112  dz = solution13(1, 0);
113  phiy = solution13(2, 0);
114  for (int c = 0; c < 3; ++c) {
115  for (int s = 0; s < 3; ++s) {
116  cov[c][s] = C13_copy(c, s);
117  }
118  }
119  ttreeOutput->Fill();
120  }
121  }
122  }
123  f->Write();
124 }

References c, counter, cov, dx, DTMuonLocalAlignment::dxdzSlSL1, DTMuonLocalAlignment::dxdzSlSL3, dz, DTMuonLocalAlignment::f, mps_fire::i, DTMuonLocalAlignment::nhits, DTMuonLocalAlignment::nseg, phiy, DTMuonLocalAlignment::pt, ptMax, ptMin, returnbSLMatrix(), returnCSLMatrix(), alignCSCRings::s, DTMuonLocalAlignment::sr, srC, DTMuonLocalAlignment::st, relativeConstraints::station, stC, DTMuonLocalAlignment::tali, ttreeOutput, DTMuonLocalAlignment::wh, whC, makeMuonMisalignmentScenario::wheel, DTMuonLocalAlignment::xSL1SL3, DTMuonLocalAlignment::xSL3SL1, DTMuonLocalAlignment::xSlSL1, DTMuonLocalAlignment::xSlSL3, and DTMuonLocalAlignment::zc.

Referenced by DTMuonSLToSL().

◆ returnbSLMatrix()

TMatrixD DTMuonSLToSL::returnbSLMatrix ( float  x,
float  xp,
float  tanphi 
)

Definition at line 142 of file DTMuonSLToSL.cc.

142  {
143  TMatrixD matrix(3, 1);
144 
145  matrix(0, 0) = -(x - xp);
146  matrix(1, 0) = -(x - xp) * tanphi;
147  matrix(2, 0) = -(x - xp) * tanphi * xp;
148 
149  return matrix;
150 }

References makeMuonMisalignmentScenario::matrix, and x.

Referenced by calculationSLToSL().

◆ returnCSLMatrix()

TMatrixD DTMuonSLToSL::returnCSLMatrix ( float  x,
float  xp,
float  tanphi 
)

Definition at line 126 of file DTMuonSLToSL.cc.

126  {
127  TMatrixD matrix(3, 3);
128 
129  matrix(0, 0) = 1.0;
130  matrix(1, 0) = tanphi;
131  matrix(0, 1) = tanphi;
132  matrix(1, 1) = tanphi * tanphi;
133  matrix(0, 2) = tanphi * xp;
134  matrix(2, 0) = tanphi * xp;
135  matrix(2, 2) = tanphi * tanphi * xp * xp;
136  matrix(2, 1) = tanphi * tanphi * xp;
137  matrix(1, 2) = tanphi * tanphi * xp;
138 
139  return matrix;
140 }

References makeMuonMisalignmentScenario::matrix.

Referenced by calculationSLToSL().

◆ setBranchTree()

void DTMuonSLToSL::setBranchTree ( )

Definition at line 152 of file DTMuonSLToSL.cc.

152  {
153  ttreeOutput = new TTree("DTSLToSLResult", "DTSLToSLResult");
154 
155  ttreeOutput->Branch("wh", &whC, "wh/F");
156  ttreeOutput->Branch("st", &stC, "st/F");
157  ttreeOutput->Branch("sr", &srC, "sr/F");
158  ttreeOutput->Branch("dx", &dx, "dx/F");
159  ttreeOutput->Branch("dz", &dz, "dz/F");
160  ttreeOutput->Branch("phiy", &phiy, "phiy/F");
161  ttreeOutput->Branch("cov", cov, "cov[3][3]/F");
162 }

References cov, dx, dz, phiy, srC, stC, ttreeOutput, and whC.

Referenced by DTMuonSLToSL().

Member Data Documentation

◆ cov

float DTMuonSLToSL::cov[3][3]
private

Definition at line 37 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

◆ dx

float DTMuonSLToSL::dx
private

Definition at line 36 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

◆ dz

float DTMuonSLToSL::dz
private

◆ phiy

float DTMuonSLToSL::phiy
private

Definition at line 36 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

◆ ptMax

float DTMuonSLToSL::ptMax
private

Definition at line 40 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and DTMuonSLToSL().

◆ ptMin

float DTMuonSLToSL::ptMin
private

Definition at line 40 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and DTMuonSLToSL().

◆ srC

int DTMuonSLToSL::srC
private

Definition at line 35 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

◆ stC

int DTMuonSLToSL::stC
private

Definition at line 35 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

◆ ttreeOutput

TTree* DTMuonSLToSL::ttreeOutput
private

Definition at line 42 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

◆ whC

int DTMuonSLToSL::whC
private

Definition at line 35 of file DTMuonSLToSL.h.

Referenced by calculationSLToSL(), and setBranchTree().

DTMuonLocalAlignment::xSlSL3
float xSlSL3[5]
Definition: DTMuonLocalAlignment.h:59
counter
Definition: counter.py:1
DTMuonLocalAlignment::sr
int sr[5]
Definition: DTMuonLocalAlignment.h:75
DTMuonLocalAlignment::dxdzSlSL3
float dxdzSlSL3[5]
Definition: DTMuonLocalAlignment.h:60
mps_fire.i
i
Definition: mps_fire.py:428
makeMuonMisalignmentScenario.matrix
list matrix
Definition: makeMuonMisalignmentScenario.py:141
DTMuonSLToSL::returnCSLMatrix
TMatrixD returnCSLMatrix(float, float, float)
Definition: DTMuonSLToSL.cc:126
DTMuonSLToSL::cov
float cov[3][3]
Definition: DTMuonSLToSL.h:37
relativeConstraints.station
station
Definition: relativeConstraints.py:67
electronAnalyzer_cfi.MinPt
MinPt
Definition: electronAnalyzer_cfi.py:36
DTMuonLocalAlignment::dxdzSlSL1
float dxdzSlSL1[5]
Definition: DTMuonLocalAlignment.h:54
DTMuonLocalAlignment::xSL3SL1
float xSL3SL1[5]
Definition: DTMuonLocalAlignment.h:64
DTMuonLocalAlignment::xSL1SL3
float xSL1SL3[5]
Definition: DTMuonLocalAlignment.h:58
genfragment_ptgun_cfg.MaxPt
MaxPt
Definition: genfragment_ptgun_cfg.py:12
DDAxes::x
DTMuonSLToSL::ptMin
float ptMin
Definition: DTMuonSLToSL.h:40
DTMuonLocalAlignment::wh
int wh[5]
Definition: DTMuonLocalAlignment.h:73
DTMuonSLToSL::ttreeOutput
TTree * ttreeOutput
Definition: DTMuonSLToSL.h:42
DTMuonLocalAlignment::zc
float zc[5][14]
Definition: DTMuonLocalAlignment.h:67
DTMuonLocalAlignment::st
int st[5]
Definition: DTMuonLocalAlignment.h:74
DTMuonLocalAlignment::ntuplePath
std::string ntuplePath
Definition: DTMuonLocalAlignment.h:28
alignCSCRings.s
s
Definition: alignCSCRings.py:92
DTMuonSLToSL::calculationSLToSL
void calculationSLToSL()
Definition: DTMuonSLToSL.cc:21
DTMuonSLToSL::srC
int srC
Definition: DTMuonSLToSL.h:35
DTMuonSLToSL::phiy
float phiy
Definition: DTMuonSLToSL.h:36
DTMuonLocalAlignment::xSlSL1
float xSlSL1[5]
Definition: DTMuonLocalAlignment.h:53
DTMuonLocalAlignment::nseg
int nseg
Definition: DTMuonLocalAlignment.h:39
makeMuonMisalignmentScenario.wheel
wheel
Definition: makeMuonMisalignmentScenario.py:319
counter
static std::atomic< unsigned int > counter
Definition: SharedResourceNames.cc:18
DTMuonLocalAlignment::tali
TChain * tali
Definition: DTMuonLocalAlignment.h:32
DTMuonLocalAlignment::f
TFile * f
Definition: DTMuonLocalAlignment.h:34
DTMuonLocalAlignment::numberOfRootFiles
int numberOfRootFiles
Definition: DTMuonLocalAlignment.h:30
DTMuonSLToSL::setBranchTree
void setBranchTree()
Definition: DTMuonSLToSL.cc:152
DTMuonSLToSL::dx
float dx
Definition: DTMuonSLToSL.h:36
DTMuonSLToSL::returnbSLMatrix
TMatrixD returnbSLMatrix(float, float, float)
Definition: DTMuonSLToSL.cc:142
DTMuonSLToSL::whC
int whC
Definition: DTMuonSLToSL.h:35
DTMuonLocalAlignment::pt
float pt
Definition: DTMuonLocalAlignment.h:38
DTMuonSLToSL::stC
int stC
Definition: DTMuonSLToSL.h:35
castor_dqm_sourceclient_file_cfg.path
path
Definition: castor_dqm_sourceclient_file_cfg.py:37
DTMuonLocalAlignment::initNTuples
void initNTuples(int)
Definition: DTMuonLocalAlignment.cc:6
c
auto & c
Definition: CAHitNtupletGeneratorKernelsImpl.h:56
DTMuonLocalAlignment::nhits
int nhits[5]
Definition: DTMuonLocalAlignment.h:42
DTMuonSLToSL::dz
float dz
Definition: DTMuonSLToSL.h:36
DTMuonSLToSL::ptMax
float ptMax
Definition: DTMuonSLToSL.h:40