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

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

  • View
    222

  • Download
    5

Embed Size (px)

Citation preview

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

Paolo Meridiani – INFN Roma 1 1

Ecal Trigger Software in CMSSW

P. Meridiani

Ecal Trigger Workshop 28/04/2006

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

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)

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

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

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

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 GeVXtal 148, 120 GeVBit to bit comparison:Bit to bit comparison:

NO DIFFERENCE NO DIFFERENCE Between data &Between data &

electronics simulationelectronics simulation

Electronics simulationElectronics simulationof the TPG OKof the TPG OK

ADCTPG

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

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

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

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)

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

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; };

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

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.

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

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.

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

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

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

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

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

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.