CMS 3D CMS Logo

EcalSelectiveReadout Class Reference

This class is used to run the selective readout processing on the electromagnetic calorimeter. More...

#include <SimCalorimetry/EcalSelectiveReadoutAlgos/src/EcalSelectiveReadout.h>

List of all members.

Public Types

enum  towerInterest_t {
  UNKNOWN = -1, LOWINTEREST, SINGLE, NEIGHBOUR,
  CENTER, FORCED_RO
}
 trigger tower classification ("SRP flags") More...
enum  ttFlag_t {
  TTF_UNKNOWN = -1, TTF_LOW_INTEREST = 0x0, TTF_MID_INTEREST = 0x1, TTF_HIGH_INTEREST = 0X3,
  TTF_FORCED_RO_LINK_SYNC_ERR = 0x4, TTF_FORCED_RO_HAMMING_ERR = 0X5, TTF_FORCED_RO_OTHER1 = 0X6, TTF_FORCED_RO_OTHER2 = 0X7
}

Public Member Functions

 EcalSelectiveReadout (int dEta=1, int dPhi=1)
 Constructs a ecalselectivereadout.
towerInterest_t getCrystalInterest (const EEDetId &eeDetId) const
 Gets the SR interest classification of an EE channel.
towerInterest_t getCrystalInterest (const EBDetId &ebDetId) const
 Gets the SR interest classification of an EB channel.
towerInterest_t getSuperCrystalInterest (const EcalScDetId &scDetId) const
 Gets the SR interest classification of an EE supercrystal.
towerInterest_t getTowerInterest (const EcalTrigTowerDetId &towerId) const
 Gets the SR interest classification of a trigger tower (TT).
void print (std::ostream &os) const
 print out the map
void printBarrel (std::ostream &os) const
void printEndcap (int endcap, std::ostream &s) const
void printHeader (std::ostream &os) const
 print out header for the map: see print(std::ostream&)
void runSelectiveReadout0 (const ttFlag_t towerFlags[nTriggerTowersInEta][nTriggerTowersInPhi])
 Selective readout algorithm type 0.
void setTriggerMap (const EcalTrigTowerConstituentsMap *map)
 the mapping of which cell goes with which trigger tower

Static Public Attributes

static const size_t nBarrelEtaBins = 170
 Number of crystals along eta in barrel.
static const size_t nBarrelPhiBins = 360
 Number of crystals in a eta ring of the barrel.
static const size_t nBarrelTowerEtaBins = nBarrelEtaBins/5
 Number of trigger tower along eta in the barrel.
static const size_t nBarrelTowerPhiBins = nBarrelPhiBins/5
 Number of trigger tower in a eta ring of the barrel.
static const size_t nBarrelTriggerTowersInEta = 34
 Number of barrel trigger towers along eta.
static const size_t nEndcaps = 2
 Number of endcap, obviously tow.
static const size_t nEndcapTriggerTowersInEta = 11
 Number of trigger towers along eta in one endcap.
static const size_t nEndcapXBins = 100
 Range of the x-index of endcap crystals (xman-xmin+1).
static const size_t nEndcapYBins = 100
 Range of the y-index of endcap crystals (yman-ymin+1).
static const size_t nSupercrystalXBins = nEndcapXBins/supercrystalEdge
 Range of endcap supercrystal x-index (xmax-xmin+1).
static const size_t nSupercrystalYBins = nEndcapYBins/supercrystalEdge
 Range of endcap supercrystal y-index (ymay-ymin+1).
static const size_t nTriggerTowersInEta
 Number of trigger towers along eta for the whole ECAL.
static const size_t nTriggerTowersInPhi = 72
 Number of trigger towers in an eta ring.
static const size_t supercrystalEdge = 5
 Edge size of a supercrystal.
static const int TTF_FORCED_RO_MASK = 0x4

Private Member Functions

void classifyTriggerTowers (const ttFlag_t ttFlags[nTriggerTowersInEta][nTriggerTowersInPhi])
 Classifies trigger tower in three classes:.
void resetSupercrystalInterest ()
 Sets all supercrystal interest flags to 'unknown'.
template<class T>
void setHigher (T &var, T val) const
 Changes the value of a variable iff that has the effect to increase the variable value var = max(var,val).
void setLower (int &var, int val) const
 Changes the value of a variable iff that has the effect to decrease the variable value var = min(var,val).

Private Attributes

int dEta
int dPhi
towerInterest_t supercrystalInterest [nEndcaps][nSupercrystalXBins][nSupercrystalYBins]
const
EcalTrigTowerConstituentsMap
theTriggerMap
towerInterest_t towerInterest [nTriggerTowersInEta][nTriggerTowersInPhi]

Static Private Attributes

static const char srpFlagMarker [] = {'.', 'S', 'N', 'C', 'F'}


Detailed Description

This class is used to run the selective readout processing on the electromagnetic calorimeter.

Normal user do not need to access directly this class: the selective readout is made at digitization by the CaloDataFrameFormatter class which uses the EcalSelectiveReadout class for this purpose: see CaloDataFrameFormatter class documentation. The ECAL event size must be reduced by a factor ~1/20th online at the LV1 rate. This reduction is achieved by suppressing channels whose energy, evaluated on line by a FIR, is below a threshold ("zero suppression"). This threshold is dynamic and determined for the channel of each readout unit. A readout unit is a group of 5x5 crystals: a trigger tower for the barrel and a supercrystal for the endcap) basis. The selective readout classifies the readout units in three classes:

. Single, neighbour and center classes consitute the "high interest" readout units and their channels the "high interest" channels. Two zero suppresion thresholds, eventually -/+ infinity, are defined: one for the "Low interest" channels and one for the "high interest" channels. The low interest threshold must be higher than the high interest one.

Definition at line 47 of file EcalSelectiveReadout.h.


Member Enumeration Documentation

enum EcalSelectiveReadout::towerInterest_t

trigger tower classification ("SRP flags")

Enumerator:
UNKNOWN 
LOWINTEREST 
SINGLE 
NEIGHBOUR 
CENTER 
FORCED_RO 

Definition at line 52 of file EcalSelectiveReadout.h.

00052                {UNKNOWN=-1,
00053                 LOWINTEREST,
00054                 SINGLE,
00055                 NEIGHBOUR,
00056                 CENTER,
00057                 FORCED_RO} towerInterest_t;

enum EcalSelectiveReadout::ttFlag_t

Enumerator:
TTF_UNKNOWN 
TTF_LOW_INTEREST 
TTF_MID_INTEREST 
TTF_HIGH_INTEREST 
TTF_FORCED_RO_LINK_SYNC_ERR 
TTF_FORCED_RO_HAMMING_ERR 
TTF_FORCED_RO_OTHER1 
TTF_FORCED_RO_OTHER2 

Definition at line 59 of file EcalSelectiveReadout.h.

00059                {
00060     TTF_UNKNOWN=-1,
00061     TTF_LOW_INTEREST = 0x0,
00062     TTF_MID_INTEREST = 0x1,
00063     /* 0x2 not used */
00064     TTF_HIGH_INTEREST = 0X3,
00065     TTF_FORCED_RO_LINK_SYNC_ERR = 0x4,
00066     TTF_FORCED_RO_HAMMING_ERR = 0X5,
00067     TTF_FORCED_RO_OTHER1 = 0X6,
00068     TTF_FORCED_RO_OTHER2 = 0X7
00069   } ttFlag_t;


Constructor & Destructor Documentation

EcalSelectiveReadout::EcalSelectiveReadout ( int  dEta = 1,
int  dPhi = 1 
)

Constructs a ecalselectivereadout.

Neighbours are taken in a trigger tower matrix of size 2(dEta+1))x2(dPhi+1) around a 'center' tower.

Parameters:
dEta neighborhood extend in number of trigger towers along eta
dPhi neighborgooh extend in number if trigger towers along phi in 'low interest', 'single' or 'center. First element is the lower threshold, second element is the higher one.

Definition at line 18 of file EcalSelectiveReadout.cc.

00018                                                               :
00019   dEta(dEta_), dPhi(dPhi_){
00020 }


Member Function Documentation

void EcalSelectiveReadout::classifyTriggerTowers ( const ttFlag_t  ttFlags[nTriggerTowersInEta][nTriggerTowersInPhi]  )  [private]

Classifies trigger tower in three classes:.

Definition at line 153 of file EcalSelectiveReadout.cc.

References CENTER, dEta, dPhi, FORCED_RO, i, int, LOWINTEREST, max, NEIGHBOUR, nTriggerTowersInEta, setHigher(), SINGLE, towerInterest, TTF_FORCED_RO_MASK, TTF_HIGH_INTEREST, and TTF_MID_INTEREST.

Referenced by runSelectiveReadout0().

00154 {
00155   //starts with a all low interest map:
00156   for(int iEta=0; iEta < (int)nTriggerTowersInEta; ++iEta){
00157     for(int iPhi=0; iPhi < (int)nTriggerTowersInPhi; ++iPhi){
00158       towerInterest[iEta][iPhi] = LOWINTEREST;
00159     }
00160   }
00161 
00162   for(int iEta=0; iEta < (int)nTriggerTowersInEta; ++iEta){
00163     for(int iPhi=0; iPhi < (int)nTriggerTowersInPhi; ++iPhi){
00164       if(ttFlags[iEta][iPhi] == TTF_HIGH_INTEREST){
00165         //flags this tower as a center tower
00166         towerInterest[iEta][iPhi] = CENTER;
00167         //flags the neighbours of this tower
00168         for(int iEtaNeigh = std::max<int>(0,iEta-dEta);
00169             iEtaNeigh <= std::min<int>(nTriggerTowersInEta-1, iEta+dEta);
00170             ++iEtaNeigh){
00171           for(int iPhiNeigh = iPhi-dPhi;
00172               iPhiNeigh <= iPhi+dPhi;
00173               ++iPhiNeigh){
00174             //beware, iPhiNeigh must be moved to [0,72] interval
00175             //=> %nTriggerTowersInPhi required
00176             int iPhiNeigh_ = iPhiNeigh%(int)nTriggerTowersInPhi;
00177             if(iPhiNeigh_<0) {
00178               iPhiNeigh_ += nTriggerTowersInPhi;
00179             }
00180             setHigher(towerInterest[iEtaNeigh][iPhiNeigh_],
00181                       NEIGHBOUR);
00182           }
00183         }
00184       } else if(ttFlags[iEta][iPhi] == TTF_MID_INTEREST){
00185         setHigher(towerInterest[iEta][iPhi], SINGLE);
00186       } else if(ttFlags[iEta][iPhi] & TTF_FORCED_RO_MASK){
00187         setHigher(towerInterest[iEta][iPhi], FORCED_RO);
00188       }
00189     }
00190   }
00191 
00192   //dealing with pseudo-TT in the two innest eta-ring of the endcaps
00193   //=>choose the highest priority  SRF of the 2 pseudo-TT constituting
00194   //a TT. Note that for S and C, the 2 pseudo-TT must already have the
00195   //same mask.
00196   const size_t innerEtas[] = {0, 1,
00197                               nTriggerTowersInEta-2, nTriggerTowersInEta-1};
00198   for(size_t i=0; i < 4; ++i){
00199     size_t iEta = innerEtas[i];
00200     for(size_t iPhi = 0 ; iPhi < nTriggerTowersInPhi; iPhi+=2){
00201       const towerInterest_t srf = std::max(towerInterest[iEta][iPhi],
00202                                            towerInterest[iEta][iPhi+1]);
00203       towerInterest[iEta][iPhi] = srf;
00204       towerInterest[iEta][iPhi+1] = srf;
00205     }
00206   }
00207 }

EcalSelectiveReadout::towerInterest_t EcalSelectiveReadout::getCrystalInterest ( const EEDetId eeDetId  )  const

Gets the SR interest classification of an EE channel.

Parameters:
eeDetId id of the crystal
Returns:
interest

Definition at line 123 of file EcalSelectiveReadout.cc.

References EEDetId::ix(), EEDetId::iy(), supercrystalInterest, and EEDetId::zside().

00124 {
00125   int iz = (eeDetId.zside() == 1) ? 1 : 0;
00126   int superCrystalX = (eeDetId.ix()-1) / 5;
00127   int superCrystalY = (eeDetId.iy()-1) / 5;
00128   return supercrystalInterest[iz][superCrystalX][superCrystalY];
00129 }

EcalSelectiveReadout::towerInterest_t EcalSelectiveReadout::getCrystalInterest ( const EBDetId ebDetId  )  const

Gets the SR interest classification of an EB channel.

Parameters:
ebDetId id of the crystal
interest 

Definition at line 115 of file EcalSelectiveReadout.cc.

References getTowerInterest(), theTriggerMap, and EcalTrigTowerConstituentsMap::towerOf().

00116 {
00117   EcalTrigTowerDetId thisTower = theTriggerMap->towerOf(ebDetId);
00118   return getTowerInterest(thisTower);
00119 }

EcalSelectiveReadout::towerInterest_t EcalSelectiveReadout::getSuperCrystalInterest ( const EcalScDetId scDetId  )  const

Gets the SR interest classification of an EE supercrystal.

Parameters:
scDetId id of the crystal
Returns:
interest

Definition at line 132 of file EcalSelectiveReadout.cc.

References EcalScDetId::ix(), EcalScDetId::iy(), supercrystalInterest, and EcalScDetId::zside().

00133 {
00134   int iz = (scDetId.zside() == 1) ? 1 : 0;
00135   int superCrystalX = scDetId.ix()-1;
00136   int superCrystalY = scDetId.iy()-1;
00137   return supercrystalInterest[iz][superCrystalX][superCrystalY];
00138 }

EcalSelectiveReadout::towerInterest_t EcalSelectiveReadout::getTowerInterest ( const EcalTrigTowerDetId towerId  )  const

Gets the SR interest classification of a trigger tower (TT).

Parameters:
iEta index of the TT along eta
iPhi index of the TT along phi
Returns:
interest

Definition at line 143 of file EcalSelectiveReadout.cc.

References EcalTrigTowerDetId::ieta(), EcalTrigTowerDetId::iphi(), nTriggerTowersInEta, and towerInterest.

Referenced by getCrystalInterest(), and runSelectiveReadout0().

00144 {
00145   // remember, array indices start at zero
00146   int iEta = tower.ieta()<0? tower.ieta() + nTriggerTowersInEta/2
00147     : tower.ieta() + nTriggerTowersInEta/2 -1;
00148   int iPhi = tower.iphi() - 1;
00149   return towerInterest[iEta][iPhi];
00150 }

void EcalSelectiveReadout::print ( std::ostream &  os  )  const

print out the map

Definition at line 219 of file EcalSelectiveReadout.cc.

References printBarrel(), and printEndcap().

Referenced by operator<<().

00220 {
00221   //EE-
00222   printEndcap(0, os);
00223 
00224   //EB
00225   printBarrel(os);
00226 
00227   //EE+
00228   printEndcap(1, os);
00229 }

void EcalSelectiveReadout::printBarrel ( std::ostream &  os  )  const

Definition at line 232 of file EcalSelectiveReadout.cc.

References nBarrelTriggerTowersInEta, nEndcapTriggerTowersInEta, nTriggerTowersInPhi, srpFlagMarker, and towerInterest.

Referenced by print().

00233 {
00234   for(size_t iEta = nEndcapTriggerTowersInEta;
00235       iEta < nEndcapTriggerTowersInEta
00236         + nBarrelTriggerTowersInEta;
00237       ++iEta){
00238     for(size_t iPhi = 0; iPhi < nTriggerTowersInPhi; ++iPhi){
00239       towerInterest_t srFlag
00240         = towerInterest[iEta][iPhi];
00241       os << srpFlagMarker[srFlag];
00242     }
00243     os << "\n"; //one phi per line
00244   }
00245 }

void EcalSelectiveReadout::printEndcap ( int  endcap,
std::ostream &  s 
) const

Definition at line 248 of file EcalSelectiveReadout.cc.

References nSupercrystalXBins, nSupercrystalYBins, srpFlagMarker, supercrystalInterest, and UNKNOWN.

Referenced by print().

00249 {
00250     for(size_t iX=0; iX<nSupercrystalXBins; ++iX){
00251     for(size_t iY=0; iY<nSupercrystalYBins; ++iY){
00252       towerInterest_t srFlag
00253         = supercrystalInterest[endcap][iX][iY];
00254         os << (srFlag==UNKNOWN?
00255                     ' ':srpFlagMarker[srFlag]);
00256     }
00257     os << "\n"; //one Y supercystal column per line
00258   } //next supercrystal X-index
00259 }

void EcalSelectiveReadout::printHeader ( std::ostream &  os  )  const

print out header for the map: see print(std::ostream&)

Definition at line 209 of file EcalSelectiveReadout.cc.

References srpFlagMarker.

00209                                                            {
00210   os << "#SRP flag map\n#\n"
00211     "# +-->Phi/Y " << srpFlagMarker[0] << ": low interest\n"
00212     "# |         " << srpFlagMarker[1] << ": single\n"
00213     "# |         " << srpFlagMarker[2] << ": neighbour\n"
00214     "# V Eta/X   " << srpFlagMarker[3] << ": center\n"
00215     "#           " << srpFlagMarker[4] << ": forced readout\n"
00216     "#\n";
00217 }

void EcalSelectiveReadout::resetSupercrystalInterest (  )  [private]

Sets all supercrystal interest flags to 'unknown'.

Definition at line 22 of file EcalSelectiveReadout.cc.

References nEndcaps, nSupercrystalXBins, nSupercrystalYBins, supercrystalInterest, and UNKNOWN.

Referenced by runSelectiveReadout0().

00022                                                     {
00023   //init superCrystalInterest (sets all elts to 'UNKNOWN'):
00024   for(size_t iCap=0; iCap < nEndcaps; ++iCap){
00025     for(size_t iSCX = 0; iSCX < nSupercrystalXBins; ++iSCX){
00026       for(size_t iSCY = 0; iSCY < nSupercrystalYBins; ++iSCY){
00027         supercrystalInterest[iCap][iSCX][iSCY] = UNKNOWN;
00028       }
00029     }
00030   }
00031 }

void EcalSelectiveReadout::runSelectiveReadout0 ( const ttFlag_t  towerFlags[nTriggerTowersInEta][nTriggerTowersInPhi]  ) 

Selective readout algorithm type 0.

The algorithm is the following:

  1. A trigger tower (TT) with Et higher than the high threshold is classified as 'center'
  2. A trigger tower which is a neighbour of a 'center' TT and which is not itself a 'center' is classified as 'neighbour'
  3. A TT with Et between the two threshold and which is not a 'center' or a 'neighbour' is classified as 'single'
  4. Any other TT are classified as 'low interest'
For the barrel a crystal inherit the single/center/neighbour/low_interst classification of its TT. For the endcap, An endcap crystal inherits the SRP flag of its SC.
Parameters:
triggerTowerEt array of the transverse enrgy deposited in the trigger tower. First index is for eta,2nd index for phi.

Definition at line 34 of file EcalSelectiveReadout.cc.

References CENTER, classifyTriggerTowers(), DetId::Ecal, EcalEndcap, getTowerInterest(), LOWINTEREST, nBarrelTriggerTowersInEta, NEIGHBOUR, nEndcapTriggerTowersInEta, nEndcapXBins, nEndcapYBins, nTriggerTowersInEta, DetId::rawId(), resetSupercrystalInterest(), setHigher(), SINGLE, supercrystalInterest, theTriggerMap, towerInterest, EcalTrigTowerConstituentsMap::towerOf(), and EEDetId::validDetId().

00034                                                                                                            {
00035   //classifies the trigger towers (single,center,neighbor,low interest)
00036   classifyTriggerTowers(ttFlags);
00037 
00038   //count number of TT in each interest class for debugging display
00039   int nTriggerTowerE[] = {0, 0, 0, 0};
00040   int nTriggerTowerB[] = {0, 0, 0, 0};
00041 
00042    static int ncall = 0;
00043    if(ncall < 10){
00044      ++ncall;
00045      for(size_t iPhi = 0; iPhi < nTriggerTowersInPhi; ++iPhi){
00046        for(size_t iEta = 0; iEta < nTriggerTowersInEta; ++iEta){
00047          if(iEta < nEndcapTriggerTowersInEta
00048           || iEta >= nBarrelTriggerTowersInEta + nEndcapTriggerTowersInEta){
00049            //in endcaps
00050            ++nTriggerTowerE[towerInterest[iEta][iPhi]];
00051          } else{//in barrel
00052            ++nTriggerTowerB[towerInterest[iEta][iPhi]];
00053          }
00054        }
00055      }
00056      edm::LogInfo("EcalSelectiveReadout")
00057        << nTriggerTowerB[LOWINTEREST] << " low interest TT in barrel\n"
00058        << nTriggerTowerB[SINGLE]      << " single TT in barrel\n"
00059        << nTriggerTowerB[NEIGHBOUR]   << " neighbor interest TT in barrel\n"
00060        << nTriggerTowerB[CENTER]      << " centre interest TT in barrel\n"
00061        << nTriggerTowerE[LOWINTEREST] << " low interest TT in endcap\n"
00062        << nTriggerTowerE[SINGLE]      << " single TT in endcap\n"
00063        << nTriggerTowerE[NEIGHBOUR]   << " neighbor TT in endcap\n"
00064        << nTriggerTowerE[CENTER]      << " center TT in endcap\n";
00065    }
00066   //end TT interest class composition debugging display
00067   
00068   //For the endcap the TT classification must be mapped to the SC:
00069   resetSupercrystalInterest();
00070   
00071 #ifndef ECALSELECTIVEREADOUT_NOGEOM
00072   const std::vector<DetId>& endcapDetIds = theGeometry->getValidDetIds(DetId::Ecal, EcalEndcap);
00073   for(std::vector<DetId>::const_iterator eeDetIdItr = endcapDetIds.begin();
00074       eeDetIdItr != endcapDetIds.end(); ++eeDetIdItr){
00075     // for each superCrystal, the interest is the highest interest
00076     // of any trigger tower associated with any crystal in this SC
00077     EcalTrigTowerDetId trigTower = theTriggerMap->towerOf(*eeDetIdItr);
00078     assert(trigTower.rawId() != 0); 
00079     EEDetId eeDetId(*eeDetIdItr);
00080     int iz = (eeDetId.zside() > 0) ? 1 : 0;
00081     int superCrystalX = (eeDetId.ix()-1) / 5;
00082     int superCrystalY = (eeDetId.iy()-1) / 5;
00083     setHigher(supercrystalInterest[iz][superCrystalX][superCrystalY], 
00084               getTowerInterest(trigTower));
00085   }
00086 #else //ECALSELECTIVEREADOUT_NOGEOM not defined
00087   EEDetId xtal;
00088   for(int iZ0=0; iZ0<2; ++iZ0){//0->EE-, 1->EE+
00089     for(unsigned iX0=0; iX0<nEndcapXBins; ++iX0){
00090       for(unsigned iY0=0; iY0<nEndcapYBins; ++iY0){
00091 
00092         if (!(xtal.validDetId(iX0+1, iY0+1, (iZ0>0?1:-1)))){ 
00093           continue; 
00094         }
00095         xtal = EEDetId(iX0+1, iY0+1, (iZ0>0?1:-1));
00096         //works around a EEDetId bug. To remove once the bug fixed.
00097         if(39 <= iX0 && iX0 <= 60 && 45 <= iY0 && iY0 <= 54){
00098           continue;
00099         }
00100         // for each superCrystal, the interest is the highest interest
00101         // of any trigger tower associated with any crystal in this SC
00102         EcalTrigTowerDetId trigTower = theTriggerMap->towerOf(xtal);
00103         assert(trigTower.rawId() != 0); 
00104         int superCrystalX = iX0 / 5;
00105         int superCrystalY = iY0 / 5;
00106         setHigher(supercrystalInterest[iZ0][superCrystalX][superCrystalY], 
00107                   getTowerInterest(trigTower));
00108       }
00109     }
00110   }
00111 #endif
00112 }

template<class T>
void EcalSelectiveReadout::setHigher ( T &  var,
val 
) const [inline, private]

Changes the value of a variable iff that has the effect to increase the variable value var = max(var,val).

Parameters:
var the variable
val the new candidate value

Definition at line 241 of file EcalSelectiveReadout.h.

Referenced by classifyTriggerTowers(), and runSelectiveReadout0().

00241                                      {
00242     if(val>var) var = val;
00243   }

void EcalSelectiveReadout::setLower ( int var,
int  val 
) const [inline, private]

Changes the value of a variable iff that has the effect to decrease the variable value var = min(var,val).

Parameters:
var the variable
val the new candidate value

Definition at line 230 of file EcalSelectiveReadout.h.

00230                                         {
00231     if(val<var) var = val;
00232   }

void EcalSelectiveReadout::setTriggerMap ( const EcalTrigTowerConstituentsMap map  )  [inline]

the mapping of which cell goes with which trigger tower

Definition at line 134 of file EcalSelectiveReadout.h.

References theTriggerMap.

00134                                                                {
00135     theTriggerMap = map;
00136   }


Member Data Documentation

int EcalSelectiveReadout::dEta [private]

Definition at line 254 of file EcalSelectiveReadout.h.

Referenced by classifyTriggerTowers().

int EcalSelectiveReadout::dPhi [private]

Definition at line 255 of file EcalSelectiveReadout.h.

Referenced by classifyTriggerTowers().

const size_t EcalSelectiveReadout::nBarrelEtaBins = 170 [static]

Number of crystals along eta in barrel.

Definition at line 77 of file EcalSelectiveReadout.h.

const size_t EcalSelectiveReadout::nBarrelPhiBins = 360 [static]

Number of crystals in a eta ring of the barrel.

Definition at line 80 of file EcalSelectiveReadout.h.

const size_t EcalSelectiveReadout::nBarrelTowerEtaBins = nBarrelEtaBins/5 [static]

Number of trigger tower along eta in the barrel.

Definition at line 98 of file EcalSelectiveReadout.h.

const size_t EcalSelectiveReadout::nBarrelTowerPhiBins = nBarrelPhiBins/5 [static]

Number of trigger tower in a eta ring of the barrel.

Definition at line 101 of file EcalSelectiveReadout.h.

const size_t EcalSelectiveReadout::nBarrelTriggerTowersInEta = 34 [static]

Number of barrel trigger towers along eta.

Definition at line 110 of file EcalSelectiveReadout.h.

Referenced by printBarrel(), and runSelectiveReadout0().

const size_t EcalSelectiveReadout::nEndcaps = 2 [static]

Number of endcap, obviously tow.

Definition at line 104 of file EcalSelectiveReadout.h.

Referenced by resetSupercrystalInterest().

const size_t EcalSelectiveReadout::nEndcapTriggerTowersInEta = 11 [static]

Number of trigger towers along eta in one endcap.

Definition at line 107 of file EcalSelectiveReadout.h.

Referenced by printBarrel(), and runSelectiveReadout0().

const size_t EcalSelectiveReadout::nEndcapXBins = 100 [static]

Range of the x-index of endcap crystals (xman-xmin+1).

Definition at line 83 of file EcalSelectiveReadout.h.

Referenced by runSelectiveReadout0().

const size_t EcalSelectiveReadout::nEndcapYBins = 100 [static]

Range of the y-index of endcap crystals (yman-ymin+1).

Definition at line 86 of file EcalSelectiveReadout.h.

Referenced by runSelectiveReadout0().

const size_t EcalSelectiveReadout::nSupercrystalXBins = nEndcapXBins/supercrystalEdge [static]

Range of endcap supercrystal x-index (xmax-xmin+1).

Definition at line 92 of file EcalSelectiveReadout.h.

Referenced by printEndcap(), and resetSupercrystalInterest().

const size_t EcalSelectiveReadout::nSupercrystalYBins = nEndcapYBins/supercrystalEdge [static]

Range of endcap supercrystal y-index (ymay-ymin+1).

Definition at line 95 of file EcalSelectiveReadout.h.

Referenced by printEndcap(), and resetSupercrystalInterest().

const size_t EcalSelectiveReadout::nTriggerTowersInEta [static]

Initial value:

Number of trigger towers along eta for the whole ECAL.

Definition at line 113 of file EcalSelectiveReadout.h.

Referenced by classifyTriggerTowers(), getTowerInterest(), and runSelectiveReadout0().

const size_t EcalSelectiveReadout::nTriggerTowersInPhi = 72 [static]

Number of trigger towers in an eta ring.

Definition at line 117 of file EcalSelectiveReadout.h.

Referenced by printBarrel().

const char EcalSelectiveReadout::srpFlagMarker = {'.', 'S', 'N', 'C', 'F'} [static, private]

Definition at line 258 of file EcalSelectiveReadout.h.

Referenced by printBarrel(), printEndcap(), and printHeader().

const size_t EcalSelectiveReadout::supercrystalEdge = 5 [static]

Edge size of a supercrystal.

A supercrystal is a tower of 5x5 crystals.

Definition at line 89 of file EcalSelectiveReadout.h.

towerInterest_t EcalSelectiveReadout::supercrystalInterest[nEndcaps][nSupercrystalXBins][nSupercrystalYBins] [private]

Definition at line 253 of file EcalSelectiveReadout.h.

Referenced by getCrystalInterest(), getSuperCrystalInterest(), printEndcap(), resetSupercrystalInterest(), and runSelectiveReadout0().

const EcalTrigTowerConstituentsMap* EcalSelectiveReadout::theTriggerMap [private]

Definition at line 248 of file EcalSelectiveReadout.h.

Referenced by getCrystalInterest(), runSelectiveReadout0(), and setTriggerMap().

towerInterest_t EcalSelectiveReadout::towerInterest[nTriggerTowersInEta][nTriggerTowersInPhi] [private]

Definition at line 252 of file EcalSelectiveReadout.h.

Referenced by classifyTriggerTowers(), getTowerInterest(), printBarrel(), and runSelectiveReadout0().

const int EcalSelectiveReadout::TTF_FORCED_RO_MASK = 0x4 [static]

Definition at line 71 of file EcalSelectiveReadout.h.

Referenced by classifyTriggerTowers().


The documentation for this class was generated from the following files:
Generated on Tue Jun 9 18:19:52 2009 for CMSSW by  doxygen 1.5.4