CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EvtPlaneProducer.cc
Go to the documentation of this file.
1 // -*- C++ -*-
2 //
3 // Package: EvtPlaneProducer
4 // Class: EvtPlaneProducer
5 //
13 //
14 // Original Author: Sergey Petrushanko
15 // Created: Fri Jul 11 10:05:00 2008
16 // $Id: EvtPlaneProducer.cc,v 1.8 2010/05/17 11:05:24 yilmaz Exp $
17 //
18 //
19 
20 
21 // system include files
22 #include <memory>
23 #include <iostream>
24 #include <time.h>
25 #include "TMath.h"
26 
27 // user include files
32 
37 
40 
44 
46 #include "HepMC/GenEvent.h"
47 #include "HepMC/GenParticle.h"
48 
51 
54 
55 #include <cstdlib>
56 using std::rand;
57 
58 using namespace std;
59 
60 //
61 // class decleration
62 //
63 
65  public:
66  explicit EvtPlaneProducer(const edm::ParameterSet&);
68 
69  private:
70  virtual void beginJob() ;
71  virtual void produce(edm::Event&, const edm::EventSetup&);
72  virtual void endJob() ;
73 
74  // ----------member data ---------------------------
75 
76  bool useECAL_;
77  bool useHCAL_;
88 
89 
93 
94 
95 };
96 
97 //
98 // constants, enums and typedefs
99 //
100 
101 
102 //
103 // static data member definitions
104 //
105 
106 //
107 // constructors and destructor
108 //
110 {
111 
112 int k=100;
113 int iseed=k;
114 
115  srand(iseed);
116 
117  //register your products
118 
119  useECAL_ = iConfig.getUntrackedParameter<bool>("useECAL",true);
120  useHCAL_ = iConfig.getUntrackedParameter<bool>("useHCAL",true);
121  useTrackMidEta_ = iConfig.getUntrackedParameter<bool>("useTrackMidEta",true);
122  useTrackPosEta_ = iConfig.getUntrackedParameter<bool>("useTrackPosEta",true);
123  useTrackNegEta_ = iConfig.getUntrackedParameter<bool>("useTrackNegEta",true);
124  useTrackEta_ = iConfig.getUntrackedParameter<bool>("useTrackEta",true);
125  useTrackOdd_ = iConfig.getUntrackedParameter<bool>("useTrackOdd",true);
126  useTrackEven_ = iConfig.getUntrackedParameter<bool>("useTrackEven",true);
127  useTrackPosCh_ = iConfig.getUntrackedParameter<bool>("useTrackPosCh",true);
128  useTrackNegCh_ = iConfig.getUntrackedParameter<bool>("useTrackNegCh",true);
129  useTrackPosEtaGap_ = iConfig.getUntrackedParameter<bool>("useTrackPosEtaGap",true);
130  useTrackNegEtaGap_ = iConfig.getUntrackedParameter<bool>("useTrackNegEtaGap",true);
131 
132 
133  mcSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("mc",edm::InputTag("generator"));
134  trackSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("tracks",edm::InputTag("hiSelectedTracks"));
135  towerSrc_ = iConfig.getUntrackedParameter<edm::InputTag>("towers",edm::InputTag("towerMaker"));
136 
137  produces<reco::EvtPlaneCollection>("recoLevel");
138 
139 }
140 
141 
143 {
144 
145  // do anything here that needs to be done at desctruction time
146  // (e.g. close files, deallocate resources etc.)
147 
148 }
149 
150 
151 //
152 // member functions
153 //
154 
155 // ------------ method called to produce the data ------------
156 void
158 {
159  using namespace edm;
160  using namespace reco;
161  using namespace HepMC;
162 
163  //calorimetry part
164 
165  double ugol[24], ugol2[24];
166  double etugol[24], etugol2[24];
167  double tower_eta, tower_phi;
168  double tower_energy, tower_energy_e, tower_energy_h;
169  double tower_energyet, tower_energyet_e, tower_energyet_h;
170  double s1t, s2t, s1e, s2e, s1h, s2h, s1t1, s2t1;
171  double ets1t, ets2t, ets1e, ets2e, ets1h, ets2h, ets1t1, ets2t1;
172 // double pi = 3.14159;
173  double s1[24], s2[24];
174  double ets1[24], ets2[24];
175 
176 // double TEnergy[144], TPhi[144];
177 // int numb;
178 
179 // double planeA = 0.;
180 
181 // cout << endl << " Start of the event plane determination." << endl;
182 
183  for(int j=0;j<24;j++) {
184  s1[j] = 0.;
185  s2[j] = 0.;
186  ets1[j] = 0.;
187  ets2[j] = 0.;
188  }
189 
190 // for(int l=0;l<144;l++) {
191 // TEnergy[l] = 0.;
192 // TPhi[l] = 0.;
193 // }
194 
195  Handle<CaloTowerCollection> calotower;
196  iEvent.getByLabel(towerSrc_,calotower);
197 
198  if(!calotower.isValid()){
199  cout << "Error! Can't get calotower product!" << endl;
200  return ;
201  }
202 
203  for (CaloTowerCollection::const_iterator j = calotower->begin();j !=calotower->end(); j++) {
204 
205 // cout << *j << std::endl;
206 // cout << "ENERGY HAD " << j->hadEnergy()<< " ENERGY EM " <<j->emEnergy()
207 // << " ETA " <<j->eta() << " PHI " <<j->phi() << std::endl;
208 
209  tower_eta = j->eta();
210  tower_phi = j->phi();
211  tower_energy_e = j->emEnergy();
212  tower_energy_h = j->hadEnergy();
213  tower_energy = tower_energy_e + tower_energy_h;
214  tower_energyet_e = j->emEt();
215  tower_energyet_h = j->hadEt();
216  tower_energyet = tower_energyet_e + tower_energyet_h;
217 
218  s1t = tower_energy*sin(2.*tower_phi);
219  s2t = tower_energy*cos(2.*tower_phi);
220  s1e = tower_energy_e*sin(2.*tower_phi);
221  s2e = tower_energy_e*cos(2.*tower_phi);
222  s1h = tower_energy_h*sin(2.*tower_phi);
223  s2h = tower_energy_h*cos(2.*tower_phi);
224 
225  s1t1 = tower_energy*sin(tower_phi);
226  s2t1 = tower_energy*cos(tower_phi);
227 
228  ets1t = tower_energyet*sin(2.*tower_phi);
229  ets2t = tower_energyet*cos(2.*tower_phi);
230  ets1e = tower_energyet_e*sin(2.*tower_phi);
231  ets2e = tower_energyet_e*cos(2.*tower_phi);
232  ets1h = tower_energyet_h*sin(2.*tower_phi);
233  ets2h = tower_energyet_h*cos(2.*tower_phi);
234 
235  ets1t1 = tower_energyet*sin(tower_phi);
236  ets2t1 = tower_energyet*cos(tower_phi);
237 
238 // ENERGY
239 
240  s1[12] += s1t;
241  s2[12] += s2t;
242 
243  ets1[12] += ets1t;
244  ets2[12] += ets2t;
245 
246  if (tower_eta>0.25)
247  {
248  s1[19] += s1t;
249  s2[19] += s2t;
250  }
251 
252  if (tower_eta<-0.25)
253  {
254  s1[20] += s1t;
255  s2[20] += s2t;
256  }
257 
258  if (fabs(tower_eta)>3.){
259  if (tower_eta>3.) {
260  s1[9] += s1t;
261  s2[9] += s2t;
262  s1[21] += s1t1;
263  s2[21] += s2t1;
264 
265  }
266  if (tower_eta<-3.) {
267  s1[10] += s1t;
268  s2[10] += s2t;
269  s1[22] += s1t1;
270  s2[22] += s2t1;
271  }
272  s1[11] += s1t;
273  s2[11] += s2t;
274  s1[23] += s1t1;
275  s2[23] += s2t1;
276  }
277 
278  if (fabs(tower_eta)<3.){
279 
280  s1[0] += s1t;
281  s2[0] += s2t;
282  s1[3] += s1h;
283  s2[3] += s2h;
284  s1[6] += s1e;
285  s2[6] += s2e;
286 
287  if (tower_eta>0.25)
288  {
289  s1[13] += s1e;
290  s2[13] += s2e;
291  s1[15] += s1h;
292  s2[15] += s2h;
293  s1[17] += s1t;
294  s2[17] += s2t;
295  }
296 
297  if (tower_eta<-0.25)
298  {
299  s1[14] += s1e;
300  s2[14] += s2e;
301  s1[16] += s1h;
302  s2[16] += s2h;
303  s1[18] += s1t;
304  s2[18] += s2t;
305  }
306 
307  if (fabs(tower_eta)>1.5) {
308  s1[2] += s1t;
309  s2[2] += s2t;
310  s1[5] += s1h;
311  s2[5] += s2h;
312  s1[8] += s1e;
313  s2[8] += s2e;
314  }
315  }
316 
317  if (fabs(tower_eta)<1.5){
318  s1[1] += s1t;
319  s2[1] += s2t;
320  s1[4] += s1h;
321  s2[4] += s2h;
322  s1[7] += s1e;
323  s2[7] += s2e;
324  }
325 
326  if (tower_eta>0.25)
327  {
328  ets1[19] += ets1t;
329  ets2[19] += ets2t;
330  }
331 
332  if (tower_eta<-0.25)
333  {
334  ets1[20] += ets1t;
335  ets2[20] += ets2t;
336  }
337 
338  if (fabs(tower_eta)>3.){
339  if (tower_eta>3.) {
340  ets1[9] += ets1t;
341  ets2[9] += ets2t;
342  ets1[21] += ets1t1;
343  ets2[21] += ets2t1;
344  }
345  if (tower_eta<-3.) {
346  ets1[10] += ets1t;
347  ets2[10] += ets2t;
348  ets1[22] += ets1t1;
349  ets2[22] += ets2t1;
350  }
351  ets1[11] += ets1t;
352  ets2[11] += ets2t;
353  ets1[23] += ets1t1;
354  ets2[23] += ets2t1;
355  }
356 
357  if (fabs(tower_eta)<3.){
358 
359  ets1[0] += ets1t;
360  ets2[0] += ets2t;
361  ets1[3] += ets1h;
362  ets2[3] += ets2h;
363  ets1[6] += ets1e;
364  ets2[6] += ets2e;
365 
366  if (tower_eta>0.25)
367  {
368  ets1[13] += ets1e;
369  ets2[13] += ets2e;
370  ets1[15] += ets1h;
371  ets2[15] += ets2h;
372  ets1[17] += ets1t;
373  ets2[17] += ets2t;
374  }
375 
376  if (tower_eta<-0.25)
377  {
378  ets1[14] += ets1e;
379  ets2[14] += ets2e;
380  ets1[16] += ets1h;
381  ets2[16] += ets2h;
382  ets1[18] += ets1t;
383  ets2[18] += ets2t;
384  }
385 
386  if (fabs(tower_eta)>1.5) {
387  ets1[2] += ets1t;
388  ets2[2] += ets2t;
389  ets1[5] += ets1h;
390  ets2[5] += ets2h;
391  ets1[8] += ets1e;
392  ets2[8] += ets2e;
393  }
394  }
395 
396  if (fabs(tower_eta)<1.5){
397  ets1[1] += ets1t;
398  ets2[1] += ets2t;
399  ets1[4] += ets1h;
400  ets2[4] += ets2h;
401  ets1[7] += ets1e;
402  ets2[7] += ets2e;
403  }
404 
405  }
406 
407  for(int j1=0;j1<24;j1++) {
408 
409  if (s2[j1]==0.) {ugol[j1]=0.;}
410  else {ugol[j1] = 0.5*atan2(s1[j1],s2[j1]);}
411 
412  if ((j1==21) || (j1==22) || (j1==23))
413  {
414  if (s2[j1]==0.) {ugol[j1]=0.;}
415  else {ugol[j1] = atan2(s1[j1],s2[j1]);}
416  }
417 
418  ugol2[j1] = ugol[j1];
419 
420  }
421 
422 /*
423  cout << endl << " Azimuthal angle of reaction plane (with maximum), energy" << endl
424  << "HCAL+ECAL (b+e) " << ugol2[0] << endl
425  << "HCAL+ECAL (b) " << ugol2[1] << endl
426  << "HCAL+ECAL (e) " << ugol2[2] << endl
427  << "HCAL (b+e) " << ugol2[3] << endl
428  << "HCAL (b) " << ugol2[4] << endl
429  << "HCAL (e) " << ugol2[5] << endl
430  << "ECAL (b+e) " << ugol2[6] << endl
431  << "ECAL (b) " << ugol2[7] << endl
432  << "ECAL (e) " << ugol2[8] << endl
433  << "HF (plus) " << ugol2[9] << endl
434  << "HF (minus) " << ugol2[10] << endl
435  << "HF (p+m) " << ugol2[11] << endl
436  << "HCAL+ECAL+HF " << ugol2[12] << endl
437  << "ECAL (plus) " << ugol2[13] << endl
438  << "ECAL (minus) " << ugol2[14] << endl
439  << "HCAL (plus) " << ugol2[15] << endl
440  << "HCAL (minus) " << ugol2[16] << endl
441  << "HCAL+ECAL (plus) " << ugol2[17] << endl
442  << "HCAL+ECAL (minus) " << ugol2[18] << endl
443  << "HCAL+ECAL+HF (p) " << ugol2[19] << endl
444  << "HCAL+ECAL+HF (m) " << ugol2[20] << endl
445  << endl;
446 */
447 
448 
449 // ET ENERGY
450 
451 
452  for(int j1=0;j1<24;j1++) {
453 
454  if (ets2[j1]==0.) {etugol[j1]=0.;}
455  else {etugol[j1] = 0.5*atan2(ets1[j1],ets2[j1]);}
456 
457  if ((j1==21) || (j1==22) || (j1==23))
458  {
459  if (ets2[j1]==0.) {etugol[j1]=0.;}
460  else {etugol[j1] = atan2(ets1[j1],ets2[j1]);}
461  }
462 
463  etugol2[j1] = etugol[j1];
464 
465  }
466 
467 /*
468  cout << endl << " Azimuthal angle of reaction plane (with maximum), t energy" << endl
469  << "HCAL+ECAL (b+e) " << etugol2[0] << endl
470  << "HCAL+ECAL (b) " << etugol2[1] << endl
471  << "HCAL+ECAL (e) " << etugol2[2] << endl
472  << "HCAL (b+e) " << etugol2[3] << endl
473  << "HCAL (b) " << etugol2[4] << endl
474  << "HCAL (e) " << etugol2[5] << endl
475  << "ECAL (b+e) " << etugol2[6] << endl
476  << "ECAL (b) " << etugol2[7] << endl
477  << "ECAL (e) " << etugol2[8] << endl
478  << "HF (plus) " << etugol2[9] << endl
479  << "HF (minus) " << etugol2[10] << endl
480  << "HF (p+m) " << etugol2[11] << endl
481  << "HCAL+ECAL+HF " << etugol2[12] << endl
482  << "ECAL (plus) " << etugol2[13] << endl
483  << "ECAL (minus) " << etugol2[14] << endl
484  << "HCAL (plus) " << etugol2[15] << endl
485  << "HCAL (minus) " << etugol2[16] << endl
486  << "HCAL+ECAL (plus) " << etugol2[17] << endl
487  << "HCAL+ECAL (minus) " << etugol2[18] << endl
488  << "HCAL+ECAL+HF (p) " << etugol2[19] << endl
489  << "HCAL+ECAL+HF (m) " << etugol2[20] << endl
490  << endl;
491 
492 
493  const GenEvent *evt;
494 
495  Handle<HepMCProduct> mc;
496  iEvent.getByLabel(mcSrc_,mc);
497  evt = mc->GetEvent();
498 
499  const HeavyIon* hi = evt->heavy_ion();
500  double impactP = hi->impact_parameter();
501  double phi0 = hi->event_plane_angle();
502 
503  cout<<" Generator Ugol " << phi0 << " Impact parameter " << impactP << endl;
504 
505 */
506 
507 
508 //Tracking part
509 
510  double track_eta;
511  double track_phi;
512  double track_pt;
513  double track_charge;
514 
515  double trackPsi_eta_mid;
516  double trackPsi_eta_pos;
517  double trackPsi_eta_neg;
518  double trackPsi_eta_posgap;
519  double trackPsi_eta_neggap;
520  double trackPsi_odd;
521  double trackPsi_even;
522  double trackPsi_eta;
523  double trackPsi_PosCh;
524  double trackPsi_NegCh;
525 
526 
528  iEvent.getByLabel(trackSrc_, tracks);
529 
530  // cout << " TRACKS Size " << tracks->size() << endl;
531 
532  if(!tracks.isValid()){
533  cout << "Error! Can't get selectTracks!" << endl;
534  return ;
535  }
536  double trackSin_eta_mid = 0;
537  double trackCos_eta_mid = 0;
538  double trackSin_eta_pos = 0;
539  double trackCos_eta_pos = 0;
540  double trackSin_eta_neg = 0;
541  double trackCos_eta_neg = 0;
542  double trackSin_eta_posgap = 0;
543  double trackCos_eta_posgap = 0;
544  double trackSin_eta_neggap = 0;
545  double trackCos_eta_neggap = 0;
546  double trackSin_eta = 0;
547  double trackCos_eta = 0;
548  double trackSin_even = 0;
549  double trackCos_even = 0;
550  double trackSin_odd = 0;
551  double trackCos_odd = 0;
552  double trackSin_PosCh = 0;
553  double trackCos_PosCh = 0;
554  double trackSin_NegCh = 0;
555  double trackCos_NegCh = 0;
556  double face=0;
557  double s=0;
558 
559  for(reco::TrackCollection::const_iterator j = tracks->begin(); j != tracks->end(); j++){
560 
561  track_eta = j->eta();
562  track_phi = j->phi();
563  track_pt = j->pt();
564  track_charge = j->charge();
565  if ((track_phi<1.0) || (track_phi>1.16)){
566 
567  if (fabs(track_eta) < 2.0){
568  trackSin_eta+=sin(2*track_phi);
569  trackCos_eta+=cos(2*track_phi);
570  }
571  s = tracks->size();
572 
573  if((track_charge > 0) && (fabs(track_eta) < 0.75) ){
574  trackSin_PosCh+=sin(2*track_phi);
575  trackCos_PosCh+=cos(2*track_phi);
576  }
577  if((track_charge < 0) && (fabs(track_eta) < 0.75)){
578  trackSin_NegCh+=sin(2*track_phi);
579  trackCos_NegCh+=cos(2*track_phi);
580  }
581  int rnd = rand();
582  face = (double)rnd/(double)RAND_MAX;
583 
584  if (fabs(track_eta) < 0.75){
585  if (face < 0.5){
586  trackSin_even+=sin(2*track_phi);
587  trackCos_even+=cos(2*track_phi);
588  }
589 
590  else {
591  trackSin_odd+=sin(2*track_phi);
592  trackCos_odd+=cos(2*track_phi);
593  }
594  }
595  if(fabs(track_eta)<0.75){
596  trackSin_eta_mid+=sin(2*track_phi);
597  trackCos_eta_mid+=cos(2*track_phi);
598  }
599 
600  if((track_eta >= 0.75) && (track_eta < 2.0)){
601  trackSin_eta_pos+=sin(2*track_phi);
602  trackCos_eta_pos+=cos(2*track_phi);
603  }
604  if((track_eta <= -0.75) && (track_eta > -2.0)){
605  trackSin_eta_neg+=sin(2*track_phi);
606  trackCos_eta_neg+=cos(2*track_phi);
607  }
608 
609  if((track_eta >= 1) && (track_eta < 2.0)){
610  trackSin_eta_posgap+=sin(2*track_phi);
611  trackCos_eta_posgap+=cos(2*track_phi);
612  }
613  if((track_eta <= -1) && (track_eta > -2.0)){
614  trackSin_eta_neggap+=sin(2*track_phi);
615  trackCos_eta_neggap+=cos(2*track_phi);
616  }
617 
618  }
619  }
620  trackPsi_eta_mid = 0.5*atan2(trackSin_eta_mid,trackCos_eta_mid);
621  trackPsi_eta_pos = 0.5*atan2(trackSin_eta_pos,trackCos_eta_pos);
622  trackPsi_eta_neg = 0.5*atan2(trackSin_eta_neg,trackCos_eta_neg);
623  trackPsi_eta = 0.5*atan2(trackSin_eta,trackCos_eta);
624  trackPsi_odd = 0.5*atan2(trackSin_odd,trackCos_odd);
625  trackPsi_even = 0.5*atan2(trackSin_even,trackCos_even);
626  trackPsi_PosCh = 0.5*atan2(trackSin_PosCh,trackCos_PosCh);
627  trackPsi_NegCh = 0.5*atan2(trackSin_NegCh,trackCos_NegCh);
628  trackPsi_eta_posgap = 0.5*atan2(trackSin_eta_posgap,trackCos_eta_posgap);
629  trackPsi_eta_neggap = 0.5*atan2(trackSin_eta_neggap,trackCos_eta_neggap);
630 
631 // cout << " "<< trackPsi_eta_mid << " "<< trackPsi_odd << endl;
632 
633  std::auto_ptr<EvtPlaneCollection> evtplaneOutput(new EvtPlaneCollection);
634 
635  EvtPlane ecalPlane(ugol2[6],s1[6],s2[6],"Ecal");
636  EvtPlane hcalPlane(ugol2[3],s1[3],s2[3],"Hcal");
637  EvtPlane hfPlane(ugol2[11],s1[11],s2[11],"HF");
638  EvtPlane caloPlane(ugol2[0],s1[0],s2[0],"Calo");
639  EvtPlane calohfPlane(ugol2[12],s1[12],s2[12],"CaloHF");
640 
641  EvtPlane ecalpPlane(ugol2[13],s1[13],s2[13],"EcalP");
642  EvtPlane ecalmPlane(ugol2[14],s1[14],s2[14],"EcalM");
643  EvtPlane hcalpPlane(ugol2[15],s1[15],s2[15],"HcalP");
644  EvtPlane hcalmPlane(ugol2[16],s1[16],s2[16],"HcalM");
645  EvtPlane hfpPlane(ugol2[9],s1[9],s2[9],"HFp");
646  EvtPlane hfmPlane(ugol2[10],s1[10],s2[10],"HFm");
647  EvtPlane calopPlane(ugol2[17],s1[17],s2[17],"CaloP");
648  EvtPlane calomPlane(ugol2[18],s1[18],s2[18],"CaloM");
649  EvtPlane calohfpPlane(ugol2[19],s1[19],s2[19],"CaloHFP");
650  EvtPlane calohfmPlane(ugol2[20],s1[20],s2[20],"CaloHFM");
651 
652  EvtPlane hf1Plane(ugol2[23],s1[23],s2[23],"HF1");
653  EvtPlane hfp1Plane(ugol2[21],s1[21],s2[21],"HFp1");
654  EvtPlane hfm1Plane(ugol2[22],s1[22],s2[22],"HFm1");
655 
656  EvtPlane etecalPlane(etugol2[6],ets1[6],ets2[6],"etEcal");
657  EvtPlane ethcalPlane(etugol2[3],ets1[3],ets2[3],"etHcal");
658  EvtPlane ethfPlane(etugol2[11],ets1[11],ets2[11],"etHF");
659  EvtPlane etcaloPlane(etugol2[0],ets1[0],ets2[0],"etCalo");
660  EvtPlane etcalohfPlane(etugol2[12],ets1[12],ets2[12],"etCaloHF");
661 
662  EvtPlane etecalpPlane(etugol2[13],ets1[13],ets2[13],"etEcalP");
663  EvtPlane etecalmPlane(etugol2[14],ets1[14],ets2[14],"etEcalM");
664  EvtPlane ethcalpPlane(etugol2[15],ets1[15],ets2[15],"etHcalP");
665  EvtPlane ethcalmPlane(etugol2[16],ets1[16],ets2[16],"etHcalM");
666  EvtPlane ethfpPlane(etugol2[9],ets1[9],ets2[9],"etHFp");
667  EvtPlane ethfmPlane(etugol2[10],ets1[10],ets2[10],"etHFm");
668  EvtPlane etcalopPlane(etugol2[17],ets1[17],ets2[17],"etCaloP");
669  EvtPlane etcalomPlane(etugol2[18],ets1[18],ets2[18],"etCaloM");
670  EvtPlane etcalohfpPlane(etugol2[19],ets1[19],ets2[19],"etCaloHFP");
671  EvtPlane etcalohfmPlane(etugol2[20],ets1[20],ets2[20],"etCaloHFM");
672 
673  EvtPlane ethf1Plane(etugol2[23],ets1[23],ets2[23],"etHF1");
674  EvtPlane ethfp1Plane(etugol2[21],ets1[21],ets2[21],"etHFp1");
675  EvtPlane ethfm1Plane(etugol2[22],ets1[22],ets2[22],"etHFm1");
676 
677 
678  EvtPlane EvtPlaneFromTracksMidEta(trackPsi_eta_mid,trackSin_eta_mid,trackCos_eta_mid,"EvtPlaneFromTracksMidEta");
679  EvtPlane EvtPlaneFromTracksPosEta(trackPsi_eta_pos,trackSin_eta_pos,trackCos_eta_pos,"EvtPlaneFromTracksPosEta");
680  EvtPlane EvtPlaneFromTracksNegEta(trackPsi_eta_neg,trackSin_eta_neg,trackCos_eta_neg,"EvtPlaneFromTracksNegEta");
681  EvtPlane EvtPlaneFromTracksEta(trackPsi_eta,trackSin_eta,trackCos_eta,"EvtPlaneFromTracksEta");
682  EvtPlane EvtPlaneFromTracksOdd(trackPsi_odd,trackSin_odd,trackCos_odd,"EvtPlaneFromTracksOdd");
683  EvtPlane EvtPlaneFromTracksEven(trackPsi_even,trackSin_even,trackCos_even,"EvtPlaneFromTracksEven");
684  EvtPlane EvtPlaneFromTracksPosCh(trackPsi_PosCh,trackSin_PosCh,trackCos_PosCh,"EvtPlaneFromTracksPosCh");
685  EvtPlane EvtPlaneFromTracksNegCh(trackPsi_NegCh,trackSin_NegCh,trackCos_NegCh,"EvtPlaneFromTracksNegCh");
686  EvtPlane EvtPTracksPosEtaGap(trackPsi_eta_posgap,trackSin_eta_posgap,trackCos_eta_posgap,"EvtPTracksPosEtaGap");
687  EvtPlane EvtPTracksNegEtaGap(trackPsi_eta_neggap,trackSin_eta_neggap,trackCos_eta_neggap,"EvtPTracksNegEtaGap");
688 
689  if(useTrackMidEta_) evtplaneOutput->push_back(EvtPlaneFromTracksMidEta);
690  if(useTrackPosEta_) evtplaneOutput->push_back(EvtPlaneFromTracksPosEta);
691  if(useTrackNegEta_) evtplaneOutput->push_back(EvtPlaneFromTracksNegEta);
692  if(useTrackEta_) evtplaneOutput->push_back(EvtPlaneFromTracksEta);
693  if(useTrackOdd_) evtplaneOutput->push_back(EvtPlaneFromTracksOdd);
694  if(useTrackEven_) evtplaneOutput->push_back(EvtPlaneFromTracksEven);
695  if(useTrackPosCh_) evtplaneOutput->push_back(EvtPlaneFromTracksPosCh);
696  if(useTrackNegCh_) evtplaneOutput->push_back(EvtPlaneFromTracksNegCh);
697  if(useTrackPosEtaGap_) evtplaneOutput->push_back(EvtPTracksPosEtaGap);
698  if(useTrackNegEtaGap_) evtplaneOutput->push_back(EvtPTracksNegEtaGap);
699 
700 
701  if(useECAL_)
702  {
703  evtplaneOutput->push_back(ecalPlane);
704  evtplaneOutput->push_back(ecalpPlane);
705  evtplaneOutput->push_back(ecalmPlane);
706  evtplaneOutput->push_back(etecalPlane);
707  evtplaneOutput->push_back(etecalpPlane);
708  evtplaneOutput->push_back(etecalmPlane);
709  }
710 
711  if(useHCAL_)
712  {
713  evtplaneOutput->push_back(hcalPlane);
714  evtplaneOutput->push_back(hcalpPlane);
715  evtplaneOutput->push_back(hcalmPlane);
716  evtplaneOutput->push_back(ethcalPlane);
717  evtplaneOutput->push_back(ethcalpPlane);
718  evtplaneOutput->push_back(ethcalmPlane);
719  }
720 
721  if(useECAL_ && useHCAL_)
722  {
723  evtplaneOutput->push_back(caloPlane);
724  evtplaneOutput->push_back(hfPlane);
725  evtplaneOutput->push_back(hfpPlane);
726  evtplaneOutput->push_back(hfmPlane);
727  evtplaneOutput->push_back(calohfPlane);
728  evtplaneOutput->push_back(calopPlane);
729  evtplaneOutput->push_back(calomPlane);
730  evtplaneOutput->push_back(calohfpPlane);
731  evtplaneOutput->push_back(calohfmPlane);
732  evtplaneOutput->push_back(etcaloPlane);
733  evtplaneOutput->push_back(ethfPlane);
734  evtplaneOutput->push_back(ethfpPlane);
735  evtplaneOutput->push_back(ethfmPlane);
736  evtplaneOutput->push_back(etcalohfPlane);
737  evtplaneOutput->push_back(etcalopPlane);
738  evtplaneOutput->push_back(etcalomPlane);
739  evtplaneOutput->push_back(etcalohfpPlane);
740  evtplaneOutput->push_back(etcalohfmPlane);
741  evtplaneOutput->push_back(hf1Plane);
742  evtplaneOutput->push_back(hfp1Plane);
743  evtplaneOutput->push_back(hfm1Plane);
744  evtplaneOutput->push_back(ethf1Plane);
745  evtplaneOutput->push_back(ethfp1Plane);
746  evtplaneOutput->push_back(ethfm1Plane);
747 
748  }
749 
750  iEvent.put(evtplaneOutput, "recoLevel");
751 
752 
753 // cout << " "<< planeA << endl;
754 
755 }
756 
757 // ------------ method called once each job just before starting event loop ------------
758 void
760 {
761 }
762 
763 // ------------ method called once each job just after ending the event loop ------------
764 void
766 }
767 
768 //define this as a plug-in
T getUntrackedParameter(std::string const &, T const &) const
#define DEFINE_FWK_MODULE(type)
Definition: MakerMacros.h:17
Sin< T >::type sin(const T &t)
Definition: Sin.h:22
std::vector< CaloTower >::const_iterator const_iterator
edm::InputTag trackSrc_
void beginJob()
Definition: Breakpoints.cc:15
tuple s2
Definition: indexGen.py:106
return((rh^lh)&mask)
virtual void endJob()
int iEvent
Definition: GenABIO.cc:243
virtual void beginJob()
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
Cos< T >::type cos(const T &t)
Definition: Cos.h:22
std::vector< EvtPlane > EvtPlaneCollection
Definition: EvtPlane.h:34
virtual void produce(edm::Event &, const edm::EventSetup &)
int j
Definition: DBlmapReader.cc:9
EvtPlaneProducer(const edm::ParameterSet &)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
Definition: Event.h:359
int k[5][pyjets_maxn]
int iseed
Definition: AMPTWrapper.h:124
edm::InputTag towerSrc_
tuple tracks
Definition: testEve_cfg.py:39
edm::InputTag mcSrc_
Signal rand(Signal arg)
Definition: vlib.cc:442
tuple cout
Definition: gather_cfg.py:41
string s
Definition: asciidump.py:422