Presentation is loading. Please wait.

Presentation is loading. Please wait.

Paolo Meridiani – INFN Roma 1 1 Ecal Trigger Software in CMSSW P. Meridiani Ecal Trigger Workshop 28/04/2006.

Similar presentations


Presentation on theme: "Paolo Meridiani – INFN Roma 1 1 Ecal Trigger Software in CMSSW P. Meridiani Ecal Trigger Workshop 28/04/2006."— Presentation transcript:

1 Paolo Meridiani – INFN Roma 1 1 Ecal Trigger Software in CMSSW P. Meridiani Ecal Trigger Workshop 28/04/2006

2 Paolo Meridiani – INFN Roma 1 2 Introduction EcalTriggerPrimitives output is one word of 12 bits, for each tower, at each bunch crossing containing: TRANSVERSE ENERGY value reconstructed for that tower on-line (8 bits) FINE GRAIN VETO BIT indicating the compactness of the shower (1 bit) ( i.e. if it is an electromagnetic shower or not) TRIGGER TOWER flag indication used as input for the Selective Readout Processor (3 bits) EcalSelectiveReadout instead computes for each tower at the LV1A rate a 3 bit flag identifying the readout state of the TT Software for EcalTriggerPrimitives, EcalSelectiveReadout and L1 Regional and Global CaloTrigger is not a simulation in the sense of MonteCarlo, but it is an emulation (results should be bitwise equal)

3 Paolo Meridiani – INFN Roma 1 3 What we have in the ORCA world In former ORCA, there were two packages EcalTriggerPrimitives emulation Calorimetry/EcalTrigPrimSimple Used for all the Physics TDR studies. Not really a full emulation the various trigger primitives component (FENIX-STRIP & FENIX-TCP). Calorimetry/EcalTrigPrimFunctional All the various components of the Trigger primitives generation are emulated. This should become the standard emulation code in CMSW Instead for EcalSelectiveReadout one single package Calorimetry/EcalSelectiveReadoutTower

4 Paolo Meridiani – INFN Roma 1 4 Results on former ORCA code Results obtained from EcalTrigPrimFunctional code presented by S. Bimbot 20/09/2005 using 2004 TB data Xtal 148, 120 GeV Bit to bit comparison: NO DIFFERENCE Between data & electronics simulation  Electronics simulation of the TPG OK ADC TPG

5 Paolo Meridiani – INFN Roma 1 5 Design schema/repository in CMSSW EcalTriggerPrimitives & EcalSelectiveReadout emulation are fundamental pieces of the Ecal Digitization code and of the L1 RCT emulation code in CMSSW What we have now in CMSW concerning EcalTrigger Under DataFormats/EcalDetId a specific DetId to identify TriggerTower EcalTriggerPrimitives digis under DataFormats/EcalDigis

6 Paolo Meridiani – INFN Roma 1 6 EcalTrigTowerDetId class EcalTrigTowerDetId : public DetId { public: /** Constructor of a null id */ EcalTrigTowerDetId(); /** Constructor from a raw value */ EcalTrigTowerDetId(uint32_t rawid); /** \brief Constructor from signed ieta, iphi*/ EcalTrigTowerDetId(int zside, EcalSubdetector subdet, int i, int j, int mode=SUBDETIJMODE) throw(std::runtime_error); /// get the z-side of the tower (1/-1) int zside() const { return (id_&0x8000)?(1):(-1); } /// get the subDetector associated to the Trigger Tower EcalSubdetector subDet() const { return (id_&0x4000) ? EcalBarrel:EcalEndcap; } /// get the absolute value of the tower ieta (Barrel case) int ietaAbs() const throw(std::runtime_error) /// get the tower ieta (Barrel case) int ieta() const throw(std::runtime_error) /// get the tower iphi (Barrel case) int iphi() const throw(std::runtime_error) /// get the tower ix (Endcap case) int ix() const /// get the tower iy (Endcap case) int iy() const throw(std::runtime_error) /// get a compact index for arrays [TODO: NEEDS WORK] int hashedIndex() const; /// get the ECAL DCC id - in the barrrel ism == iDCC int iDCC() const throw(std::runtime_error); /// sequential index within one DCC int iTT() const throw(std::runtime_error); Two modes can be specified in the constructor SUBDETIJMODE (where i,j means eta,phi for EB and x,y for EE) SUBDETDCCTTMODE (to identify trigger tower DCC & TT index)

7 Paolo Meridiani – INFN Roma 1 7 EcalTrigPrimSample in CMSSW (DataFormats/EcalDigi) class EcalTriggerPrimitiveSample { public: EcalTriggerPrimitiveSample(); EcalTriggerPrimitiveSample(uint16_t data); EcalTriggerPrimitiveSample(int encodedEt, bool finegrain, int triggerFlag); /// get the raw word uint16_t raw() const { return theSample; } /// get the encoded/compressed Et (8 bits) int compressedEt() const { return theSample&0xFF; } /// get the fine-grain bit (1 bit) bool fineGrain() const { return (theSample&0x100)!=0; } /// get the Trigger tower Flag (3 bits) int ttFlag() const { return (theSample>>9)&0x7; } /// for streaming uint16_t operator()() { return theSample; } private: uint16_t theSample; };

8 Paolo Meridiani – INFN Roma 1 8 How digitization will work in CMSSW For the moment in CMSSW digitization code released under SimCalorimetry/EcalSimProducers and EcalSimAlgos Those modules are producing Digis for all the DetIds defined in the geometry. No zero suppression applied. EcalTriggerPrimitives and EcalSelectiveReadout will be two separate modules producing From non zero suppressed Digis EcalTriggerPrimitives From EcalTriggerPrimitives EcalSelectiveReadout mapping Another separate module reads the whole collection of Digis and the SelectiveReadout mapping and will do the reduction of the Digis collections For the production phase transient full digi collection will be dropped. Can be mantained for debugging/developing reasons. Together with this we plan also to develop a simple EcalZeroSuppressor with configurable thresholds.

9 Paolo Meridiani – INFN Roma 1 9 EcalTriggerPrimitives implementation plan U. Berthon is now working on porting the code for EcalTriggerPrimitives. Packages to be implemented are SimCalorimetry/EcalTrigPrimAlgos & SimCalorimetry/EcalTrigPrimProducers Plan is to first port the simple TriggerPrimitives emulation for the barrel, then move also to the endcap and afterwards port the functional trigger primitives emulation Ursula hopes to have a first release for the end of the next week The guidelines followed for other modules (decoupling of algorithms from the framework) will be followed We start from the Barrel since for the moment EcalTriggerTowerMapping is not done for the Endcap Basic design schema for the Ecal TriggerTower mapping has been agreed privately between me and J. Mans (HCAL software coordinator) I will contact an expert from the Endcap group (H. Heath?) to develop this part.

10 Paolo Meridiani – INFN Roma 1 10 EcalSelectiveReadout Rick Wilkinson started the porting of the SelectiveReadout code Code will be developed under SimCalorimetry/EcalSelectiveReadout(Algos,Producers) First commit of the code under EcalSelectiveReadoutAlgos has been made Basically a standalone version of the code, which is waiting both for the trigger primitives code and the EcalTriggerTowerMapping

11 Paolo Meridiani – INFN Roma 1 11 L1 trigger software emulation status S. Dasu and C. Hogg working on the L1 RCT First port into CMSSW as RegionalCaloTrigger done. This is a standalone code tested using ASCII files made from ORCA ● Now working on defining proper data types for input and output and later on integration with Ecal & Hcal Trigger Primitives not yet done J. Brooke is working on L1 GCT. Status is - bit level simulation of jet finding and electron sort are written and have been tested with ASCII file I/O - writing global energy algorithms and modifications to reflect new GCT hardware are both well advanced - integration with CMSSW has just started, definition of I/O DataFormats yet to be done

12 Paolo Meridiani – INFN Roma 1 12 Conclusions Basic DataFormats and DetIds for EcalTriggerPrimitives defined into CMSW U. Berthon working on the simple version of the EcalTriggerPrimitives. A first version expected for the end of the next week R. Wilkinson started the porting effort for the EcalSelectiveReadout. EcalTrigTowerMapping is an important piece still missing. A developer here is needed. Porting of the L1 trigger emulation code has just started. Coordination with L1 trigger developers will be later necessary.


Download ppt "Paolo Meridiani – INFN Roma 1 1 Ecal Trigger Software in CMSSW P. Meridiani Ecal Trigger Workshop 28/04/2006."

Similar presentations


Ads by Google