CMS 3D CMS Logo

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
DTTrigProd Class Reference

#include <DTTrigProd.h>

Inheritance diagram for DTTrigProd:
edm::EDProducer edm::ProducerBase edm::ProductRegistryHelper

Public Member Functions

void beginRun (edm::Run &iRun, const edm::EventSetup &iEventSetup)
 Create Trigger Units before starting event processing. More...
 
 DTTrigProd (const edm::ParameterSet &pset)
 Constructor. More...
 
void produce (edm::Event &iEvent, const edm::EventSetup &iEventSetup)
 Producer: process every event and generates trigger data. More...
 
 ~DTTrigProd ()
 Destructor. More...
 
- Public Member Functions inherited from edm::EDProducer
 EDProducer ()
 
virtual ~EDProducer ()
 
- Public Member Functions inherited from edm::ProducerBase
 ProducerBase ()
 
void registerProducts (ProducerBase *, ProductRegistry *, ModuleDescription const &)
 
boost::function< void(const
BranchDescription &)> 
registrationCallback () const
 used by the fwk to register list of products More...
 
virtual ~ProducerBase ()
 

Private Attributes

int my_BXoffset
 
bool my_debug
 
bool my_DTTFnum
 
short int my_lut_btic
 
bool my_lut_dump_flag
 
edm::ParameterSet my_params
 
DTTrigmy_trig
 

Additional Inherited Members

- Public Types inherited from edm::EDProducer
typedef EDProducer ModuleType
 
typedef WorkerT< EDProducerWorkerType
 
- Public Types inherited from edm::ProducerBase
typedef
ProductRegistryHelper::TypeLabelList 
TypeLabelList
 
- Static Public Member Functions inherited from edm::EDProducer
static const std::string & baseType ()
 
static void fillDescriptions (ConfigurationDescriptions &descriptions)
 
- Protected Member Functions inherited from edm::EDProducer
CurrentProcessingContext const * currentContext () const
 
- Protected Member Functions inherited from edm::ProducerBase
template<class TProducer , class TMethod >
void callWhenNewProductsRegistered (TProducer *iProd, TMethod iMethod)
 

Detailed Description

Main EDProducer for the DTTPG

Date:
2008/09/05 16:06:35
Revision:
1.6
Author
C. Battilana

Main EDProducer for the DTTPG

Date:
2009/11/12 14:33:27
Revision:
1.15
Author
C. Battilana

Definition at line 29 of file DTTrigProd.h.

Constructor & Destructor Documentation

DTTrigProd::DTTrigProd ( const edm::ParameterSet pset)

Constructor.

Definition at line 47 of file DTTrigProd.cc.

References edm::ParameterSet::getParameter(), edm::ParameterSet::getUntrackedParameter(), my_debug, my_DTTFnum, my_lut_btic, my_lut_dump_flag, my_params, and CrabTask::pset.

47  : my_trig(0) {
48 
49  produces<L1MuDTChambPhContainer>();
50  produces<L1MuDTChambThContainer>();
51 
52  my_debug = pset.getUntrackedParameter<bool>("debug");
53  my_DTTFnum = pset.getParameter<bool>("DTTFSectorNumbering");
54  my_params = pset;
55 
56  my_lut_dump_flag = pset.getUntrackedParameter<bool>("lut_dump_flag");
57  my_lut_btic = pset.getUntrackedParameter<int>("lut_btic");
58 }
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
bool my_lut_dump_flag
Definition: DTTrigProd.h:60
short int my_lut_btic
Definition: DTTrigProd.h:61
tuple pset
Definition: CrabTask.py:85
bool my_debug
Definition: DTTrigProd.h:57
edm::ParameterSet my_params
Definition: DTTrigProd.h:64
DTTrig * my_trig
Definition: DTTrigProd.h:48
bool my_DTTFnum
Definition: DTTrigProd.h:51
DTTrigProd::~DTTrigProd ( )

Destructor.

Definition at line 60 of file DTTrigProd.cc.

References my_trig.

60  {
61 
62  if (my_trig) delete my_trig;
63 
64 }
DTTrig * my_trig
Definition: DTTrigProd.h:48

Member Function Documentation

void DTTrigProd::beginRun ( edm::Run iRun,
const edm::EventSetup iEventSetup 
)
virtual

Create Trigger Units before starting event processing.

Reimplemented from edm::EDProducer.

Definition at line 79 of file DTTrigProd.cc.

References gather_cfg::cout, DTTrig::createTUs(), DTTrig::dumpLuts(), edm::EventSetup::get(), edm::RunBase::id(), my_debug, my_lut_btic, my_lut_dump_flag, my_params, my_trig, and edm::RunID::run().

79  {
80 
81  if(my_debug)
82  cout << "DTTrigProd::beginRun " << iRun.id().run() << endl;
83 
84  using namespace edm;
85 
87  iEventSetup.get< DTConfigManagerRcd >().get( dtConfig ) ;
88 
89  if(my_debug)
90  {
91  cout << "DTConfigManagerRcd : Print some Config stuff" << endl;
92  DTBtiId btiid(1,1,1,1,1);
93  DTTracoId tracoid(1,1,1,1);
94  DTChamberId chid(1,1,1);
95  DTSectCollId scid(1,1);
96  cout << "BtiMap & TracoMap Size for chamber (1,1,1):" << dtConfig->getDTConfigBtiMap(chid).size()
97  << " " << dtConfig->getDTConfigTracoMap(chid).size() << endl;
98 
99  dtConfig->getDTConfigBti(btiid)->print();
100  dtConfig->getDTConfigTraco(tracoid)->print();
101  dtConfig->getDTConfigTSTheta(chid)->print();
102  dtConfig->getDTConfigTSPhi(chid)->print();
103  // 100511 SV LUTs will NOT be configurated from cfg if not found in DB
104  //dtConfig->getDTConfigLUTs(chid)->print();
105  }
106 
107 
108  if (!my_trig) {
109  my_trig = new DTTrig(my_params);
110  my_trig->createTUs(iEventSetup);
111  if (my_debug)
112  cout << "[DTTrigProd] TU's Created" << endl;
113 
114  //SV 090903 check luts
115  if(my_lut_dump_flag) {
116  cout << "Dumping luts...." << endl;
117  my_trig->dumpLuts(my_lut_btic, dtConfig.product());
118  }
119  }
120 
121 }
RunID const & id() const
Definition: RunBase.h:43
bool my_lut_dump_flag
Definition: DTTrigProd.h:60
RunNumber_t run() const
Definition: RunID.h:44
short int my_lut_btic
Definition: DTTrigProd.h:61
bool my_debug
Definition: DTTrigProd.h:57
edm::ParameterSet my_params
Definition: DTTrigProd.h:64
Definition: DTTrig.h:54
void dumpLuts(short int lut_btic, const DTConfigManager *conf)
Dump the LUT files.
Definition: DTTrig.cc:551
const T & get() const
Definition: EventSetup.h:55
DTTrig * my_trig
Definition: DTTrigProd.h:48
tuple cout
Definition: gather_cfg.py:41
void createTUs(const edm::EventSetup &iSetup)
Create the trigger units and store them in the cache.
Definition: DTTrig.cc:88
void DTTrigProd::produce ( edm::Event iEvent,
const edm::EventSetup iEventSetup 
)
virtual

Producer: process every event and generates trigger data.

Implements edm::EDProducer.

Definition at line 124 of file DTTrigProd.cc.

References gather_cfg::cout, DTTrig::getBXOffset(), i, edm::EventBase::id(), my_BXoffset, my_debug, my_DTTFnum, my_trig, pos, edm::Event::put(), DTTrig::SCPhTrigs(), DTTrig::SCThTrigs(), ExpressReco_HICollisions_FallBack::step, and DTTrig::triggerReco().

124  {
125 
126  my_trig->triggerReco(iEvent,iEventSetup);
128 
129  if (my_debug)
130  cout << "[DTTrigProd] Trigger algorithm run for " <<iEvent.id() << endl;
131 
132  // Convert Phi Segments
133  SectCollPhiColl myPhiSegments;
134  myPhiSegments = my_trig->SCPhTrigs();
135  vector<L1MuDTChambPhDigi> outPhi;
136 
137  SectCollPhiColl_iterator SCPCend = myPhiSegments.end();
138  for (SectCollPhiColl_iterator it=myPhiSegments.begin();it!=SCPCend;++it){
139  int step = (*it).step() - my_BXoffset; // Shift correct BX to 0 (needed for DTTF data processing)
140  int sc_sector = (*it).SCId().sector();
141  if (my_DTTFnum == true) sc_sector--; // Modified for DTTF numbering [0-11]
142  outPhi.push_back(L1MuDTChambPhDigi(step,
143  (*it).ChamberId().wheel(),
144  sc_sector,
145  (*it).ChamberId().station(),
146  (*it).phi(),
147  (*it).phiB(),
148  (*it).code(),
149  !(*it).isFirst(),
150  0
151  ));
152  }
153 
154  // Convert Theta Segments
155  SectCollThetaColl myThetaSegments;
156  myThetaSegments = my_trig->SCThTrigs();
157  vector<L1MuDTChambThDigi> outTheta;
158 
159  SectCollThetaColl_iterator SCTCend = myThetaSegments.end();
160  for (SectCollThetaColl_iterator it=myThetaSegments.begin();it!=SCTCend;++it){
161  int pos[7], qual[7];
162  for (int i=0; i<7; i++){
163  pos[i] =(*it).position(i);
164  qual[i]=(*it).quality(i);
165  }
166  int step =(*it).step() - my_BXoffset; // Shift correct BX to 0 (needed for DTTF data processing)
167  int sc_sector = (*it).SCId().sector();
168  if (my_DTTFnum == true) sc_sector--; // Modified for DTTF numbering [0-11]
169  outTheta.push_back(L1MuDTChambThDigi( step,
170  (*it).ChamberId().wheel(),
171  sc_sector,
172  (*it).ChamberId().station(),
173  pos,
174  qual
175  ));
176  }
177 
178  // Write everything into the event
179  std::auto_ptr<L1MuDTChambPhContainer> resultPhi (new L1MuDTChambPhContainer);
180  resultPhi->setContainer(outPhi);
181  iEvent.put(resultPhi);
182  std::auto_ptr<L1MuDTChambThContainer> resultTheta (new L1MuDTChambThContainer);
183  resultTheta->setContainer(outTheta);
184  iEvent.put(resultTheta);
185 
186 }
int i
Definition: DBlmapReader.cc:9
int getBXOffset()
Get BX Offset.
Definition: DTTrig.h:184
vector< DTSectCollThSegm > SectCollThetaColl
Definition: DTTrigProd.cc:44
std::vector< DTSectCollPhSegm > SCPhTrigs()
Return a copy of all the Sector Collector (Phi) triggers.
Definition: DTTrig.cc:634
SectCollThetaColl::const_iterator SectCollThetaColl_iterator
Definition: DTTrigProd.cc:45
int my_BXoffset
Definition: DTTrigProd.h:54
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
Definition: Event.h:84
void triggerReco(const edm::Event &iEvent, const edm::EventSetup &iSetup)
Run the whole trigger reconstruction chain.
Definition: DTTrig.cc:183
bool my_debug
Definition: DTTrigProd.h:57
DTTrig * my_trig
Definition: DTTrigProd.h:48
SectCollPhiColl::const_iterator SectCollPhiColl_iterator
Definition: DTTrigProd.cc:43
edm::EventID id() const
Definition: EventBase.h:56
bool my_DTTFnum
Definition: DTTrigProd.h:51
tuple cout
Definition: gather_cfg.py:41
vector< DTSectCollPhSegm > SectCollPhiColl
Definition: DTTrigProd.cc:42
std::vector< DTSectCollThSegm > SCThTrigs()
Return a copy of all the Sector Collector (Theta) triggers.
Definition: DTTrig.cc:663

Member Data Documentation

int DTTrigProd::my_BXoffset
private

Definition at line 54 of file DTTrigProd.h.

Referenced by produce().

bool DTTrigProd::my_debug
private

Definition at line 57 of file DTTrigProd.h.

Referenced by beginRun(), DTTrigProd(), and produce().

bool DTTrigProd::my_DTTFnum
private

Definition at line 51 of file DTTrigProd.h.

Referenced by DTTrigProd(), and produce().

short int DTTrigProd::my_lut_btic
private

Definition at line 61 of file DTTrigProd.h.

Referenced by beginRun(), and DTTrigProd().

bool DTTrigProd::my_lut_dump_flag
private

Definition at line 60 of file DTTrigProd.h.

Referenced by beginRun(), and DTTrigProd().

edm::ParameterSet DTTrigProd::my_params
private

Definition at line 64 of file DTTrigProd.h.

Referenced by beginRun(), and DTTrigProd().

DTTrig* DTTrigProd::my_trig
private

Definition at line 48 of file DTTrigProd.h.

Referenced by beginRun(), produce(), and ~DTTrigProd().