EEezAnalysis


class description - source file - inheritance tree

class EEezAnalysis : public TObject

    private:
void InitStrips() void InitTowers() void InitTowerStrips() public:
EEezAnalysis() EEezAnalysis(const EEezAnalysis&) virtual ~EEezAnalysis() void addMask(unsigned int) void addSmdHit(Int_t sec, Int_t plane, Int_t strip, Float_t adc) void addTowerHit(Int_t sec, Int_t sub, Int_t eta, Float_t adc, Int_t idet = 0) static TClass* Class() virtual void Clear(Option_t* opts) void Fill(EEfeeRawEvent* eevent) void Fill(EEeventDst* dst) void forceTower(const Char_t* tow, Float_t etow = 0., Float_t epre1 = 0., Float_t epre2 = 0., Float_t epost = 0.) TH2F getHistogram() EEezTower* getHitTower(Int_t ihit) EEezTowerPtrVec_t* getHitTowers() Int_t getNHitTowers() Int_t getNSeedTowers() EEezSectorStats* getSectorStats(Int_t sec) Float_t getSeedEnergy() EEezTower* getSeedTower(Int_t iseed) EEezTowerPtrVec_t* getSeedTowers() EEezStrip* getStrip(Int_t sector, Int_t plane, Int_t strip) EEezTower* getTower(Int_t index) EEezTower* getTower(Int_t sec, Int_t sub, Int_t eta) void Init() void InitGeometry() virtual TClass* IsA() const void Make(EEfeeRawEvent* eevent) void Make(EEeventDst* dst) Int_t Make(StMuEmcCollection* emc) void print() void RestoreIndices() void Save(EEezAnalysis* analysis) void setDb(EEmcDb* db) void setHotTower(const Char_t* tow = "05TA01") void setSeedEnergy(Float_t e = 0.7) virtual void ShowMembers(TMemberInspector& insp, char* parent) virtual void Streamer(TBuffer& b) void StreamerNVirtual(TBuffer& b)

Data Members

    private:
TRandom* m_Random EEmcDb* m_EEmcDb ! EEmcSmdMap* m_EEmcSmdMap EEezTower m_Towers[720] EEezStrip m_Strips[12][2][288] EEezTowerPtrVec_t m_HitTowers Float_t m_SeedEnergy EEezTowerPtrVec_t m_SeedTowers map<string,int,less<string>,allocator<pair<const string,int> > > m_HotTowers EEezStripPtrVec_t m_HitUStrips EEezStripPtrVec_t m_HitVStrips EEezTower* m_HighTower Tower w/ highest ADC response EEezStrip* m_HighUStrip U Strip w/ highest ADC response EEezStrip* m_HighVStrip V Strip w/ highest ADC response EEezSectorStats* m_SectorStats[12] Tracks sector-based statistics map<string,int,less<string>,allocator<pair<const string,int> > > m_IndexFromName unsigned int m_StatMask

Class Description

 EEezAnalysis

 Author: Jason C. Webb <jwebb@iucf.indiana.edu>

 The EEezAnalysis class is the main workhorse of the analysis code.
 It is responsible for taking the raw data from the ezTree, making
 the connection  to the database to obtain and correct for pedestals
 and gains, and packing the data into the EEezTower objects. To keep
 the EEezTower class as simple  as possible, all of the geometry
 information carried by the towers is initialized from the EEezAnalysis
 class. This has the side effect of making the cluster finder fairly
 independent of the EEMC geometry.

 The EEezAnalysis class has privately-held arrays to hold all detector
 elements: <br>
  EEezTower m_Towers[720];
  EEezStrip m_Strips[12][2][288];

 Several inline member functions are available which provide direct
 access to the m_Towers array through pointers. Each element in
 m_Towers contains pointers to neighboring towers, and to the
 appropriate strips in the m_Strips array.

 One accesses the data stored in the m_Towers array by calling member
 functions of EEezAnalysis. These member functions return pointers into
 the m_Towers array. One should tread lightly, as any changes you make
 to a tower will be made for all running code which uses this instance
 of EEezAnalysis. (This is why I have not told you about all of the
 "set" methods on towers and strips!)

 NOTE: One may place this class into an StMaker and use it to analyse
 muDst's.  An example of this may be found in

 StRoot/StEEmcPool/StMuEEmcClusterMaker



EEezAnalysis()
 Constructor

void addMask ( unsigned bit )
 Eliminates tower/strip/pre/postshower detectors which have
 the specified bit set in the database.  The following bits
 have been defined in StEEmcDbMaker/cstructs/eemcConstDB.hh

 #define EEMCSTAT_ONLPED   0x0001 // only pedestal
 #define EEMCSTAT_STKBT    0x0002 // sticky lower bits
 #define EEMCSTAT_HOTHT    0x0004 // hot for HT trigger
 #define EEMCSTAT_HOTJP    0x0008 // hot for JP trigger
 #define EEMCSTAT_OUTPI0   0x0010 // hot in pi0 analysis
 #define EEMCSTAT_HOTSTR   0x0020 // hot esmd strip

 Once a mask has been set, it cannot be unset in the same analysis.

 Note that any detector with a nonzero "fail" bit will
 always be eliminated.

EEezTower* getTower ( Int_t index )
 Given the index (0-719) of an EEmc Tower, return a pointer to
 the EEezTower within the internal array.

EEezTower* getTower ( Int_t sector, Int_t subsector, Int_t etabin )
 Given the sector (0-11), subsector (0-4) and etabin (0-11), return
 a pointer to the appropriate EEezTower within the internal array.

void forceTower( const Char_t *tow, Float_t etow, Float_t epre1, Float_t epre2, Float_t epost )
 A bad idea, will probably delete in near future.

void Clear( Option_t *opts )
 Clear out towers and strips... as an optimization, we
 only clear out those towers and strips which have been
 hit.

void Fill( EEfeeRawEvent *eevent )
 Takes as input a EEfeeRawEvent (most likely a branch from
 an ezTree), and fills the m_Towers and m_Strips arrays
 with ADC and reconstructed energy response.

void Fill(EEeventDst *event)
 As with the Fill(EEfeeRawEvent *event) method, except that it
 takes as input an EEeventDst, useful for direct processing
 of fzd files.  Currently this method populates the tower
 channels only.

TH2F getHistogram()
 Creates a 2D eta vs phi plot from the tower readouts.

void Init()
 Main initialization routine.

void InitGeometry()
 Initialize the geometrical relations between towers and strips


void InitTowerStrips()
 For each tower, access the EEmcSmdMap to determine the range
 of U and V strips which are nominally associated with each
 tower.  It then calls addUStrip() and addVStrip() on the tower
 to add pointers to these strips.

 Additionally, access the EEmcSmdMap to determine the list of
 towers which share the U and V strips.  These towers are
 added to the SMD-shared-tower lists kept by each tower.


void InitStrips()
 Initializes the m_Strips array

void RestoreIndices()
 Reinitializes the tower indices if they get lost.  Shouldn't be needed.

void InitTowers()
 Initializes the geometric description of the towers in the m_Towers
 array.  Loops over all towers, and sets their index, and sets pointers
 to all neighboring towers.

void Save ( EEezAnalysis *analysis )
 Save() provides a method for copying the current state of the
 EEezAnalysis object.  It may or may not be useful at some point,
 and is kept for now.

void print()
 Will do something eventually.

void addTowerHit ( Int_t sec, Int_t sub, Int_t eta, Float_t adc, Int_t idet )
 Public method used to add a tower hit.  Handles ADC --> energy
 conversion, storing seed towers, etc...  It's a public method so
 that external wrapper functions may be used to fill the m_Towers
 array for each event.

 Will eventually be moved into the loop in "Fill".

void addSmdHit ( Int_t sec, Int_t plane, Int_t strip, Float_t adc )
 Adds a hit to the specified SMD strip.  Handles ADC --> energy
 conversion, storing seed towers, etc...  It's a public method so
 that external wrapper functions may be used to fill the m_Towers
 array for each event.

 Will eventually be moved into the loop in "Fill".

void setDb( EEmcDb *db )
 Initialize the pointer to the eemc database maker

Int_t Make( StMuEmcCollection *emc )
 Loop over all hits in the EMC collection and add them to our
 internal array of EEezTowers.



Inline Functions


                      void Make(EEeventDst* dst)
                     Int_t Make(StMuEmcCollection* emc)
                      void setHotTower(const Char_t* tow = "05TA01")
                      void setSeedEnergy(Float_t e = 0.7)
                   Float_t getSeedEnergy()
        EEezTowerPtrVec_t* getHitTowers()
                     Int_t getNHitTowers()
                EEezTower* getHitTower(Int_t ihit)
        EEezTowerPtrVec_t* getSeedTowers()
                     Int_t getNSeedTowers()
                EEezTower* getSeedTower(Int_t iseed)
                EEezStrip* getStrip(Int_t sector, Int_t plane, Int_t strip)
          EEezSectorStats* getSectorStats(Int_t sec)
                   TClass* Class()
                   TClass* IsA() const
                      void ShowMembers(TMemberInspector& insp, char* parent)
                      void Streamer(TBuffer& b)
                      void StreamerNVirtual(TBuffer& b)
              EEezAnalysis EEezAnalysis(const EEezAnalysis&)
                      void ~EEezAnalysis()


Author: Jason C. Webb
Last update: Tue Jun 1 11:25:06 2004


ROOT page - Class index - Top of the page

This page has been automatically generated. If you have any comments or suggestions about the page layout send a mail to ROOT support, or contact the developers with any questions or problems regarding ROOT.