CMS 3D CMS Logo

DTTrigTest.cc
Go to the documentation of this file.
1 //-------------------------------------------------
2 //
13 //
14 //--------------------------------------------------
15 
16 // This class's header
18 
19 // Framework related classes
22 
25 
26 // Trigger and DataFormats headers
31 
32 // ROOT headers
33 #include "TROOT.h"
34 #include "TTree.h"
35 #include "TFile.h"
36 
37 // Collaborating classes
39 #include <CLHEP/Vector/LorentzVector.h>
40 
41 // C++ headers
42 #include <iostream>
43 #include <cmath>
44 #include <ctime>
45 
46 using namespace std;
47 using namespace edm;
48 
49 const double DTTrigTest::my_TtoTDC = 32. / 25.;
50 
51 DTTrigTest::DTTrigTest(const ParameterSet& pset) : my_trig(nullptr) {
52  my_debug = pset.getUntrackedParameter<bool>("debug");
53  string outputfile = pset.getUntrackedParameter<string>("outputFileName");
54  if (my_debug)
55  cout << "[DTTrigTest] Creating rootfile " << outputfile << endl;
56  my_rootfile = new TFile(outputfile.c_str(), "RECREATE");
57  my_tree = new TTree("h1", "GMT", 0);
58  my_params = pset;
59  if (my_debug)
60  cout << "[DTTrigTest] Constructor executed!!!" << endl;
62 }
63 
65  if (my_trig != nullptr)
66  delete my_trig;
67  delete my_rootfile;
68  if (my_debug)
69  cout << "[DTTrigTest] Destructor executed!!!" << endl;
70 }
71 
73  if (my_debug)
74  cout << "[DTTrigTest] Writing Tree and Closing File" << endl;
75  my_tree->Write();
76  delete my_tree;
77  my_rootfile->Close();
78 }
79 
80 //void DTTrigTest::beginJob(const EventSetup & iEventSetup){
82  // get DTConfigManager
83  // ESHandle< DTConfigManager > confManager ;
84  // iEventSetup.get< DTConfigManagerRcd >().get( confManager ) ;
85 
86  //for testing purpose....
87  //DTBtiId btiid(1,1,1,1,1);
88  //confManager->getDTConfigBti(btiid)->print();
89 
90  // my_trig = new DTTrig(my_params);
91 
92  // my_trig->createTUs(iEventSetup);
93  // if (my_debug)
94  // cout << "[DTTrigTest] TU's Created" << endl;
95 
96  // BOOKING of the tree's varables
97  // GENERAL block branches
98  my_tree->Branch("Run", &runn, "Run/I");
99  my_tree->Branch("Event", &eventn, "Event/I");
100  my_tree->Branch("Weight", &weight, "Weight/F");
101  // GEANT block branches
102  my_tree->Branch("Ngen", &ngen, "Ngen/I");
103  my_tree->Branch("Pxgen", pxgen, "Pxgen[Ngen]/F");
104  my_tree->Branch("Pygen", pygen, "Pygen[Ngen]/F");
105  my_tree->Branch("Pzgen", pzgen, "Pzgen[Ngen]/F");
106  my_tree->Branch("Ptgen", ptgen, "Ptgen[Ngen]/F");
107  my_tree->Branch("Etagen", etagen, "Etagen[Ngen]/F");
108  my_tree->Branch("Phigen", phigen, "Phigen[Ngen]/F");
109  my_tree->Branch("Chagen", chagen, "Chagen[Ngen]/I");
110  my_tree->Branch("Vxgen", vxgen, "Vxgen[Ngen]/F");
111  my_tree->Branch("Vygen", vygen, "Vygen[Ngen]/F");
112  my_tree->Branch("Vzgen", vzgen, "Vzgen[Ngen]/F");
113  // L1MuDTBtiChipS block
114  my_tree->Branch("Nbti", &nbti, "Nbti/I");
115  my_tree->Branch("bwh", bwh, "bwh[Nbti]/I");
116  my_tree->Branch("bstat", bstat, "bstat[Nbti]/I");
117  my_tree->Branch("bsect", bsect, "bsect[Nbti]/I");
118  my_tree->Branch("bsl", bsl, "bsl[Nbti]/I");
119  my_tree->Branch("bnum", bnum, "bnum[Nbti]/I");
120  my_tree->Branch("bbx", bbx, "bbx[Nbti]/I");
121  my_tree->Branch("bcod", bcod, "bcod[Nbti]/I");
122  my_tree->Branch("bk", bk, "bk[Nbti]/I");
123  my_tree->Branch("bx", bx, "bx[Nbti]/I");
124  my_tree->Branch("bposx", bposx, "bposx[Nbti]/F");
125  my_tree->Branch("bposy", bposy, "bposy[Nbti]/F");
126  my_tree->Branch("bposz", bposz, "bposz[Nbti]/F");
127  my_tree->Branch("bdirx", bdirx, "bdirx[Nbti]/F");
128  my_tree->Branch("bdiry", bdiry, "bdiry[Nbti]/F");
129  my_tree->Branch("bdirz", bdirz, "bdirz[Nbti]/F");
130  // L1MuDTTracoChipS block
131  my_tree->Branch("Ntraco", &ntraco, "Ntraco/I");
132  my_tree->Branch("twh", twh, "twh[Ntraco]/I");
133  my_tree->Branch("tstat", tstat, "tstat[Ntraco]/I");
134  my_tree->Branch("tsect", tsect, "tsect[Ntraco]/I");
135  my_tree->Branch("tnum", tnum, "tnum[Ntraco]/I");
136  my_tree->Branch("tbx", tbx, "tbx[Ntraco]/I");
137  my_tree->Branch("tcod", tcod, "tcod[Ntraco]/I");
138  my_tree->Branch("tk", tk, "tk[Ntraco]/I");
139  my_tree->Branch("tx", tx, "tx[Ntraco]/I");
140  my_tree->Branch("tposx", tposx, "tposx[Ntraco]/F");
141  my_tree->Branch("tposy", tposy, "tposy[Ntraco]/F");
142  my_tree->Branch("tposz", tposz, "tposz[Ntraco]/F");
143  my_tree->Branch("tdirx", tdirx, "tdirx[Ntraco]/F");
144  my_tree->Branch("tdiry", tdiry, "tdiry[Ntraco]/F");
145  my_tree->Branch("tdirz", tdirz, "tdirz[Ntraco]/F");
146  // TSPHI block
147  my_tree->Branch("Ntsphi", &ntsphi, "Ntsphi/I");
148  my_tree->Branch("swh", swh, "swh[Ntsphi]/I");
149  my_tree->Branch("sstat", sstat, "sstat[Ntsphi]/I");
150  my_tree->Branch("ssect", ssect, "ssect[Ntsphi]/I");
151  my_tree->Branch("sbx", sbx, "sbx[Ntsphi]/I");
152  my_tree->Branch("scod", scod, "scod[Ntsphi]/I");
153  my_tree->Branch("sphi", sphi, "sphi[Ntsphi]/I");
154  my_tree->Branch("sphib", sphib, "sphib[Ntsphi]/I");
155  my_tree->Branch("sposx", sposx, "sposx[Ntsphi]/F");
156  my_tree->Branch("sposy", sposy, "sposy[Ntsphi]/F");
157  my_tree->Branch("sposz", sposz, "sposz[Ntsphi]/F");
158  my_tree->Branch("sdirx", sdirx, "sdirx[Ntsphi]/F");
159  my_tree->Branch("sdiry", sdiry, "sdiry[Ntsphi]/F");
160  my_tree->Branch("sdirz", sdirz, "sdirz[Ntsphi]/F");
161  // TSTHETA block
162  my_tree->Branch("Ntstheta", &ntstheta, "Ntstheta/I");
163  my_tree->Branch("thwh", thwh, "thwh[Ntstheta]/I");
164  my_tree->Branch("thstat", thstat, "thstat[Ntstheta]/I");
165  my_tree->Branch("thsect", thsect, "thsect[Ntstheta]/I");
166  my_tree->Branch("thbx", thbx, "thbx[Ntstheta]/I");
167  my_tree->Branch("thcode", thcode, "thcode[Ntstheta][7]/I");
168  my_tree->Branch("thpos", thpos, "thpos[Ntstheta][7]/I");
169  my_tree->Branch("thqual", thqual, "thqual[Ntstheta][7]/I");
170  // SC PHI block
171  my_tree->Branch("Nscphi", &nscphi, "Nscphi/I");
172  my_tree->Branch("scphwh", scphwh, "scphwh[Nscphi]/I");
173  my_tree->Branch("scphstat", scphstat, "scphstat[Nscphi]/I");
174  my_tree->Branch("scphsect", scphsect, "scphsect[Nscphi]/I");
175  my_tree->Branch("scphbx", scphbx, "scphbx[Nscphi]/I");
176  my_tree->Branch("scphcod", scphcod, "scphcod[Nscphi]/I");
177  my_tree->Branch("scphphi", scphphi, "scphphi[Nscphi]/I");
178  my_tree->Branch("scphphib", scphphib, "scphphib[Nscphi]/I");
179  my_tree->Branch("scphposx", scphposx, "scphposx[Nscphi]/F");
180  my_tree->Branch("scphposy", scphposy, "scphposy[Nscphi]/F");
181  my_tree->Branch("scphposz", scphposz, "scphposz[Nscphi]/F");
182  my_tree->Branch("scphdirx", scphdirx, "scphdirx[Nscphi]/F");
183  my_tree->Branch("scphdiry", scphdiry, "scphdiry[Nscphi]/F");
184  my_tree->Branch("scphdirz", scphdirz, "scphdirz[Nscphi]/F");
185  // SC THETA block
186  my_tree->Branch("Nsctheta", &nsctheta, "Nsctheta/I");
187  my_tree->Branch("scthwh", scthwh, "scthwh[Nsctheta]/I");
188  my_tree->Branch("scthstat", scthstat, "scthstat[Nsctheta]/I");
189  my_tree->Branch("scthsect", scthsect, "scthsect[Nsctheta]/I");
190  my_tree->Branch("scthbx", scthbx, "scthbx[Nsctheta]/I");
191  my_tree->Branch("scthcode", scthcode, "scthcode[Nsctheta][7]/I");
192  my_tree->Branch("scthpos", scthpos, "scthpos[Nsctheta][7]/I");
193  my_tree->Branch("scthqual", scthqual, "scthqual[Nsctheta][7]/I");
194 }
195 
196 void DTTrigTest::beginRun(const edm::Run& iRun, const edm::EventSetup& iEventSetup) {
197  my_trig->createTUs(iEventSetup);
198  if (my_debug)
199  cout << "[DTTrigTest] TU's Created" << endl;
200 }
201 
202 void DTTrigTest::analyze(const Event& iEvent, const EventSetup& iEventSetup) {
203  const int MAXGEN = 10;
204  const float ptcut = 1.0;
205  const float etacut = 2.4;
206  my_trig->triggerReco(iEvent, iEventSetup);
207  if (my_debug)
208  cout << "[DTTrigTest] Trigger algorithm executed for run " << iEvent.id().run() << " event " << iEvent.id().event()
209  << endl;
210 
211  // GENERAL Block
212  runn = iEvent.id().run();
213  eventn = iEvent.id().event();
214  weight = 1; // FIXME what to do with this varable?
215 
216  // GEANT Block
217  Handle<vector<SimTrack> > MyTracks;
218  Handle<vector<SimVertex> > MyVertexes;
219  iEvent.getByLabel("g4SimHits", MyTracks);
220  iEvent.getByLabel("g4SimHits", MyVertexes);
221  vector<SimTrack>::const_iterator itrack;
222  ngen = 0;
223  if (my_debug)
224  cout << "[DTTrigTest] Tracks found in the detector (not only muons) " << MyTracks->size() << endl;
225 
226  for (itrack = MyTracks->begin(); itrack != MyTracks->end(); itrack++) {
227  if (abs(itrack->type()) == 13) {
228  math::XYZTLorentzVectorD momentum = itrack->momentum();
229  float pt = momentum.Pt();
230  float eta = momentum.eta();
231  if (pt > ptcut && fabs(eta) < etacut) {
232  float phi = momentum.phi();
233  int charge = static_cast<int>(-itrack->type() / 13); //static_cast<int> (itrack->charge());
234  if (phi < 0)
235  phi = 2 * M_PI + phi;
236  int vtxindex = itrack->vertIndex();
237  float gvx = 0, gvy = 0, gvz = 0;
238  if (vtxindex > -1) {
239  gvx = MyVertexes->at(vtxindex).position().x();
240  gvy = MyVertexes->at(vtxindex).position().y();
241  gvz = MyVertexes->at(vtxindex).position().z();
242  }
243  if (ngen < MAXGEN) {
244  pxgen[ngen] = momentum.x();
245  pygen[ngen] = momentum.y();
246  pzgen[ngen] = momentum.z();
247  ptgen[ngen] = pt;
248  etagen[ngen] = eta;
249  phigen[ngen] = phi;
250  chagen[ngen] = charge;
251  vxgen[ngen] = gvx;
252  vygen[ngen] = gvy;
253  vzgen[ngen] = gvz;
254  ngen++;
255  }
256  }
257  }
258  }
259 
260  // L1 Local Trigger Block
261  // BTI
262  vector<DTBtiTrigData> btitrigs = my_trig->BtiTrigs();
263  vector<DTBtiTrigData>::const_iterator pbti;
264  int ibti = 0;
265  if (my_debug)
266  cout << "[DTTrigTest] " << btitrigs.size() << " BTI triggers found" << endl;
267 
268  for (pbti = btitrigs.begin(); pbti != btitrigs.end(); pbti++) {
269  if (ibti < 100) {
270  bwh[ibti] = pbti->wheel();
271  bstat[ibti] = pbti->station();
272  bsect[ibti] = pbti->sector();
273  bsl[ibti] = pbti->btiSL();
274  bnum[ibti] = pbti->btiNumber();
275  bbx[ibti] = pbti->step();
276  bcod[ibti] = pbti->code();
277  bk[ibti] = pbti->K();
278  bx[ibti] = pbti->X();
279  GlobalPoint pos = my_trig->CMSPosition(&(*pbti));
280  GlobalVector dir = my_trig->CMSDirection(&(*pbti));
281  bposx[ibti] = pos.x();
282  bposy[ibti] = pos.y();
283  bposz[ibti] = pos.z();
284  bdirx[ibti] = dir.x();
285  bdiry[ibti] = dir.y();
286  bdirz[ibti] = dir.z();
287  ibti++;
288  }
289  }
290  nbti = ibti;
291 
292  //TRACO
293  vector<DTTracoTrigData> tracotrigs = my_trig->TracoTrigs();
294  vector<DTTracoTrigData>::const_iterator ptc;
295  int itraco = 0;
296  if (my_debug)
297  cout << "[DTTrigTest] " << tracotrigs.size() << " TRACO triggers found" << endl;
298 
299  for (ptc = tracotrigs.begin(); ptc != tracotrigs.end(); ptc++) {
300  if (itraco < 80) {
301  twh[itraco] = ptc->wheel();
302  tstat[itraco] = ptc->station();
303  tsect[itraco] = ptc->sector();
304  tnum[itraco] = ptc->tracoNumber();
305  tbx[itraco] = ptc->step();
306  tcod[itraco] = ptc->code();
307  tk[itraco] = ptc->K();
308  tx[itraco] = ptc->X();
309  GlobalPoint pos = my_trig->CMSPosition(&(*ptc));
310  GlobalVector dir = my_trig->CMSDirection(&(*ptc));
311  tposx[itraco] = pos.x();
312  tposy[itraco] = pos.y();
313  tposz[itraco] = pos.z();
314  tdirx[itraco] = dir.x();
315  tdiry[itraco] = dir.y();
316  tdirz[itraco] = dir.z();
317  itraco++;
318  }
319  }
320  ntraco = itraco;
321 
322  //TSPHI
323  vector<DTChambPhSegm> tsphtrigs = my_trig->TSPhTrigs();
324  vector<DTChambPhSegm>::const_iterator ptsph;
325  int itsphi = 0;
326  if (my_debug)
327  cout << "[DTTrigTest] " << tsphtrigs.size() << " TSPhi triggers found" << endl;
328 
329  for (ptsph = tsphtrigs.begin(); ptsph != tsphtrigs.end(); ptsph++) {
330  if (itsphi < 40) {
331  swh[itsphi] = ptsph->wheel();
332  sstat[itsphi] = ptsph->station();
333  ssect[itsphi] = ptsph->sector();
334  sbx[itsphi] = ptsph->step();
335  scod[itsphi] = ptsph->oldCode();
336  sphi[itsphi] = ptsph->phi();
337  sphib[itsphi] = ptsph->phiB();
338  GlobalPoint pos = my_trig->CMSPosition(&(*ptsph));
339  GlobalVector dir = my_trig->CMSDirection(&(*ptsph));
340  sposx[itsphi] = pos.x();
341  sposy[itsphi] = pos.y();
342  sposz[itsphi] = pos.z();
343  sdirx[itsphi] = dir.x();
344  sdiry[itsphi] = dir.y();
345  sdirz[itsphi] = dir.z();
346  itsphi++;
347  }
348  }
349  ntsphi = itsphi;
350 
351  //TSTHETA
352  vector<DTChambThSegm> tsthtrigs = my_trig->TSThTrigs();
353  vector<DTChambThSegm>::const_iterator ptsth;
354  int itstheta = 0;
355  if (my_debug)
356  cout << "[DTTrigTest] " << tsthtrigs.size() << " TSTheta triggers found" << endl;
357 
358  for (ptsth = tsthtrigs.begin(); ptsth != tsthtrigs.end(); ptsth++) {
359  if (itstheta < 40) {
360  thwh[itstheta] = ptsth->ChamberId().wheel();
361  thstat[itstheta] = ptsth->ChamberId().station();
362  thsect[itstheta] = ptsth->ChamberId().sector();
363  thbx[itstheta] = ptsth->step();
364  for (int i = 0; i < 7; i++) {
365  thcode[itstheta][i] = ptsth->code(i);
366  thpos[itstheta][i] = ptsth->position(i);
367  thqual[itstheta][i] = ptsth->quality(i);
368  }
369  itstheta++;
370  }
371  }
372  ntstheta = itstheta;
373 
374  //SCPHI
375  vector<DTSectCollPhSegm> scphtrigs = my_trig->SCPhTrigs();
376  vector<DTSectCollPhSegm>::const_iterator pscph;
377  int iscphi = 0;
378  if (my_debug)
379  cout << "[DTTrigTest] " << scphtrigs.size() << " SectCollPhi triggers found" << endl;
380 
381  for (pscph = scphtrigs.begin(); pscph != scphtrigs.end(); pscph++) {
382  if (iscphi < 40) {
383  const DTChambPhSegm* seg = (*pscph).tsPhiTrig();
384  scphwh[iscphi] = pscph->wheel();
385  scphstat[iscphi] = pscph->station();
386  scphsect[iscphi] = pscph->sector();
387  scphbx[iscphi] = pscph->step();
388  scphcod[iscphi] = pscph->oldCode();
389  scphphi[iscphi] = pscph->phi();
390  scphphib[iscphi] = pscph->phiB();
393  scphposx[iscphi] = pos.x();
394  scphposy[iscphi] = pos.y();
395  scphposz[iscphi] = pos.z();
396  scphdirx[iscphi] = dir.x();
397  scphdiry[iscphi] = dir.y();
398  scphdirz[iscphi] = dir.z();
399  iscphi++;
400  }
401  }
402  nscphi = iscphi;
403 
404  //SCTHETA
405  vector<DTSectCollThSegm> scthtrigs = my_trig->SCThTrigs();
406  vector<DTSectCollThSegm>::const_iterator pscth;
407  int isctheta = 0;
408  if (my_debug)
409  cout << "[DTTrigTest] " << scthtrigs.size() << " SectCollTheta triggers found" << endl;
410 
411  for (pscth = scthtrigs.begin(); pscth != scthtrigs.end(); pscth++) {
412  if (isctheta < 40) {
413  scthwh[isctheta] = pscth->ChamberId().wheel();
414  scthstat[isctheta] = pscth->ChamberId().station();
415  scthsect[isctheta] = pscth->ChamberId().sector();
416  scthbx[isctheta] = pscth->step();
417  for (int i = 0; i < 7; i++) {
418  scthcode[isctheta][i] = pscth->code(i);
419  scthpos[isctheta][i] = pscth->position(i);
420  scthqual[isctheta][i] = pscth->quality(i);
421  }
422  isctheta++;
423  }
424  }
425  nsctheta = isctheta;
426 
427  //Fill the tree
428  my_tree->Fill();
429 }
std::vector< DTBtiTrigData > BtiTrigs() const
Return a copy of all the BTI triggers.
Definition: DTTrig.cc:414
float scphdirx[100]
Definition: DTTrigTest.h:162
int thpos[40][7]
Definition: DTTrigTest.h:147
int tstat[80]
Definition: DTTrigTest.h:110
int sbx[40]
Definition: DTTrigTest.h:129
int scphbx[40]
Definition: DTTrigTest.h:155
int scthsect[40]
Definition: DTTrigTest.h:170
edm::ParameterSet my_params
Definition: DTTrigTest.h:64
float scphposz[100]
Definition: DTTrigTest.h:161
float etagen[10]
Definition: DTTrigTest.h:82
float tdirz[100]
Definition: DTTrigTest.h:122
ROOT::Math::LorentzVector< ROOT::Math::PxPyPzE4D< double > > XYZTLorentzVectorD
Lorentz vector with cylindrical internal representation using pseudorapidity.
Definition: LorentzVector.h:14
int bstat[100]
Definition: DTTrigTest.h:92
int bsl[100]
Definition: DTTrigTest.h:94
int bnum[100]
Definition: DTTrigTest.h:95
int thstat[40]
Definition: DTTrigTest.h:143
int twh[80]
Definition: DTTrigTest.h:109
float vygen[10]
Definition: DTTrigTest.h:86
int scod[40]
Definition: DTTrigTest.h:130
float tdiry[100]
Definition: DTTrigTest.h:121
int scthbx[40]
Definition: DTTrigTest.h:171
int ssect[40]
Definition: DTTrigTest.h:128
int sphib[40]
Definition: DTTrigTest.h:132
float bdirz[100]
Definition: DTTrigTest.h:105
int tcod[80]
Definition: DTTrigTest.h:114
float vxgen[10]
Definition: DTTrigTest.h:85
int scthpos[40][7]
Definition: DTTrigTest.h:173
int scphphib[40]
Definition: DTTrigTest.h:158
float pxgen[10]
Definition: DTTrigTest.h:78
float scphdirz[100]
Definition: DTTrigTest.h:164
int scphcod[40]
Definition: DTTrigTest.h:156
void beginRun(const edm::Run &iRun, const edm::EventSetup &iEventSetup) override
Create DTTrig instance and TUs.
Definition: DTTrigTest.cc:196
float scphposx[100]
Definition: DTTrigTest.h:159
int bx[100]
Definition: DTTrigTest.h:99
float scphposy[100]
Definition: DTTrigTest.h:160
Definition: weight.py:1
std::vector< DTChambThSegm > TSThTrigs() const
Return a copy of all the Trigger Server (Theta) triggers.
Definition: DTTrig.cc:453
int scphwh[40]
Definition: DTTrigTest.h:152
GlobalPoint CMSPosition(const DTTrigData *trig) const
Coordinate of a trigger-data object in CMS frame.
Definition: DTTrig.h:229
int bwh[100]
Definition: DTTrigTest.h:91
float sposx[100]
Definition: DTTrigTest.h:133
int sstat[40]
Definition: DTTrigTest.h:127
float ptgen[10]
Definition: DTTrigTest.h:81
void endJob() override
Close Tree and write File.
Definition: DTTrigTest.cc:72
int bcod[100]
Definition: DTTrigTest.h:97
int bsect[100]
Definition: DTTrigTest.h:93
float sposy[100]
Definition: DTTrigTest.h:134
int tnum[80]
Definition: DTTrigTest.h:112
int thbx[40]
Definition: DTTrigTest.h:145
int iEvent
Definition: GenABIO.cc:224
std::vector< DTSectCollPhSegm > SCPhTrigs() const
Return a copy of all the Sector Collector (Phi) triggers.
Definition: DTTrig.cc:466
float sposz[100]
Definition: DTTrigTest.h:135
std::vector< DTTracoTrigData > TracoTrigs() const
Return a copy of all the TRACO triggers.
Definition: DTTrig.cc:427
float tposz[100]
Definition: DTTrigTest.h:119
void beginJob() override
Create tree and Branches.
Definition: DTTrigTest.cc:81
std::vector< DTSectCollThSegm > SCThTrigs() const
Return a copy of all the Sector Collector (Theta) triggers.
Definition: DTTrig.cc:489
int thwh[40]
Definition: DTTrigTest.h:142
ConsumesCollector consumesCollector()
Use a ConsumesCollector to gather consumes information from helper functions.
int scphphi[40]
Definition: DTTrigTest.h:157
float scphdiry[100]
Definition: DTTrigTest.h:163
int scthwh[40]
Definition: DTTrigTest.h:168
int scthqual[40][7]
Definition: DTTrigTest.h:174
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static const double my_TtoTDC
Definition: DTTrigTest.h:55
int tk[80]
Definition: DTTrigTest.h:115
int scphsect[40]
Definition: DTTrigTest.h:154
int swh[40]
Definition: DTTrigTest.h:126
TTree * my_tree
Definition: DTTrigTest.h:67
int tx[80]
Definition: DTTrigTest.h:116
int bbx[100]
Definition: DTTrigTest.h:96
float sdirz[100]
Definition: DTTrigTest.h:138
void triggerReco(const edm::Event &iEvent, const edm::EventSetup &iSetup)
Run the whole trigger reconstruction chain.
Definition: DTTrig.cc:132
int nsctheta
Definition: DTTrigTest.h:167
std::vector< DTChambPhSegm > TSPhTrigs() const
Return a copy of all the Trigger Server (Phi) triggers.
Definition: DTTrig.cc:440
int thcode[40][7]
Definition: DTTrigTest.h:146
int ntstheta
Definition: DTTrigTest.h:141
#define M_PI
float bdirx[100]
Definition: DTTrigTest.h:103
float tdirx[100]
Definition: DTTrigTest.h:120
int scphstat[40]
Definition: DTTrigTest.h:153
float tposx[100]
Definition: DTTrigTest.h:117
Definition: DTTrig.h:59
float sdiry[100]
Definition: DTTrigTest.h:137
float pygen[10]
Definition: DTTrigTest.h:79
float bposx[100]
Definition: DTTrigTest.h:100
~DTTrigTest() override
Destructor.
Definition: DTTrigTest.cc:64
TFile * my_rootfile
Definition: DTTrigTest.h:69
GlobalVector CMSDirection(const DTTrigData *trig) const
Direction of a trigger-data object in CMS frame.
Definition: DTTrig.h:237
int tsect[80]
Definition: DTTrigTest.h:111
float phigen[10]
Definition: DTTrigTest.h:83
void analyze(const edm::Event &iEvent, const edm::EventSetup &iEventSetup) override
Analyze function executed on all the events.
Definition: DTTrigTest.cc:202
int scthstat[40]
Definition: DTTrigTest.h:169
DTTrigTest(const edm::ParameterSet &pset)
Constructor.
Definition: DTTrigTest.cc:51
int sphi[40]
Definition: DTTrigTest.h:131
float bdiry[100]
Definition: DTTrigTest.h:104
HLT enums.
int thsect[40]
Definition: DTTrigTest.h:144
float sdirx[100]
Definition: DTTrigTest.h:136
int scthcode[40][7]
Definition: DTTrigTest.h:172
float pzgen[10]
Definition: DTTrigTest.h:80
int eventn
Definition: DTTrigTest.h:73
float bposz[100]
Definition: DTTrigTest.h:102
float tposy[100]
Definition: DTTrigTest.h:118
int chagen[10]
Definition: DTTrigTest.h:84
float bposy[100]
Definition: DTTrigTest.h:101
void createTUs(const edm::EventSetup &iSetup)
Create the trigger units and store them in the cache.
Definition: DTTrig.cc:63
float vzgen[10]
Definition: DTTrigTest.h:87
bool my_debug
Definition: DTTrigTest.h:61
Definition: Run.h:45
DTTrig * my_trig
Definition: DTTrigTest.h:58
int thqual[40][7]
Definition: DTTrigTest.h:148
int tbx[80]
Definition: DTTrigTest.h:113