StRoot
1
|
A cluster maker for the EEMC. More...
Public Member Functions | |
StEEmcClusterMaker (const Char_t *name="mEEclusters") | |
virtual Int_t | Init () |
Initialize. | |
virtual Int_t | Make () |
Make clusters for this event. More... | |
virtual void | Clear (Option_t *opts="") |
Clear clusters for next event. More... | |
void | analysis (const Char_t *name) |
Set the name of the ADC–>E maker. | |
void | seedEnergy (Float_t energy, Int_t layer=0) |
void | setMaxExtent (Int_t m) |
Maximum distance around seed strip to cluster smd strips. | |
void | setMinStrips (Int_t m) |
Minimum number of strips to form a cluster. | |
void | setSeedFloor (Float_t f=2.0) |
Int_t | numberOfClusters (Int_t sec, Int_t layer) const |
Return number of clusters for a given sector, layer. | |
Int_t | numberOfSmdClusters (Int_t sec, Int_t plane) const |
Return number of smd clusters for a given sector, plane. | |
StEEmcCluster & | cluster (Int_t sec, Int_t layer, Int_t index) |
Return a specific cluster from a given sector, layer. | |
const StEEmcCluster & | cluster (Int_t sec, Int_t layer, Int_t index) const |
StEEmcSmdCluster & | smdcluster (Int_t sec, Int_t plane, Int_t index) |
return a specific cluster from a given sector, plane | |
const StEEmcSmdCluster & | smdcluster (Int_t sec, Int_t plane, Int_t index) const |
StEEmcCluster & | cluster (const StEmcCluster *cl) |
Given a StEmcCluster, return the StEEmcCluster where it came from. | |
const StEEmcCluster & | cluster (const StEmcCluster *cl) const |
StEEmcSmdCluster & | smdcluster (const StEmcCluster *cl) |
Given a StEmcCluster, return the StEEmcSmdCluster where it came from. | |
const StEEmcSmdCluster & | smdcluster (const StEmcCluster *cl) const |
StEEmcClusterVec_t & | clusters (Int_t sec, Int_t layer) |
Return a vector of tower clusters. | |
const StEEmcClusterVec_t & | clusters (Int_t sec, Int_t layer) const |
StEEmcSmdClusterVec_t & | smdclusters (Int_t sec, Int_t plane) |
Return a vector of smd clusters. | |
const StEEmcSmdClusterVec_t & | smdclusters (Int_t sec, Int_t plane) const |
void | setFillStEvent () |
void | suppress (Int_t n=2) |
void | skip (Bool_t s=true) |
Skips over strips with "fail" bits set, if true. | |
void | loose (Bool_t l=true) |
Loose cuts (see code) | |
void | print () const |
Event summary. | |
StEEmcClusterMaker (const Char_t *name="mEEclusters") | |
Int_t | Init () |
Int_t | Make () |
void | Clear (Option_t *opts="") |
User defined functions. | |
void | analysis (const Char_t *name) |
Set the name of the ADC–>E maker. | |
void | seedEnergy (Float_t energy, Int_t layer=0) |
void | setMaxExtent (Int_t m) |
Maximum distance around seed strip to cluster smd strips. | |
void | setSeedFloor (Float_t f=2.0) |
Int_t | numberOfClusters (Int_t sec, Int_t layer) |
Return number of clusters for a given sector, layer. | |
Int_t | numberOfSmdClusters (Int_t sec, Int_t plane) |
Return number of smd clusters for a given sector, plane. | |
StEEmcCluster | cluster (Int_t sec, Int_t layer, Int_t index) |
Return a specific cluster from a given sector, layer. | |
StEEmcSmdCluster | smdcluster (Int_t sec, Int_t plane, Int_t index) |
return a specific cluster from a given sector, plane | |
StEEmcCluster | cluster (StEmcCluster *cl) |
StEEmcSmdCluster | smdcluster (StEmcCluster *cl) |
StEEmcClusterVec_t | clusters (Int_t sec, Int_t layer) |
Return a vector of tower clusters. | |
StEEmcSmdClusterVec_t | smdclusters (Int_t sec, Int_t plane) |
Return a vector of smd clusters. | |
void | setFillStEvent () |
void | suppress () |
Suppress cluster splitting. | |
void | print () |
Public Member Functions inherited from StMaker | |
StMaker (const char *name="", const char *dummy=0) | |
Constructor & Destructor. | |
virtual Int_t | IsChain () const |
virtual Int_t | InitRun (Int_t runumber) |
virtual void | StartMaker () |
virtual Int_t | IMake (Int_t number) |
virtual void | EndMaker (Int_t ierr) |
virtual Int_t | Finish () |
virtual Int_t | FinishRun (Int_t oldrunumber) |
virtual void | FatalErr (Int_t Ierr, const char *Com) |
virtual void | PrintInfo () |
virtual void | NotifyMe (const char *, const void *) |
virtual void | AddMaker (StMaker *mk) |
virtual void | MakeDoc (const TString &, const TString &, Bool_t) |
virtual void | AddData (TDataSet *data, const char *dir=".data") |
User methods. | |
virtual TDataSet * | AddObj (TObject *obj, const char *dir, int owner=1) |
virtual TDataSet * | ToWhiteBoard (const char *name, void *dat) |
virtual TDataSet * | ToWhiteBoard (const char *name, void *dat, void *del) |
virtual TDataSet * | ToWhiteBoard (const char *name, TObject *dat, Int_t owner) |
virtual TDataSet * | ToWhiteConst (const char *name, TObject *dat) |
virtual TDataSet * | ToWhiteConst (const char *name, void *dat) |
virtual TDataSet * | WhiteBoard (const char *name, void *v=0) const |
virtual Int_t | Skip (Int_t nskip) |
virtual void | AddConst (TDataSet *data=0) |
virtual void | AddHist (TH1 *h, const char *dir=0) |
virtual void | AddGarb (TDataSet *data=0) |
virtual void | AddRunco (TDataSet *data=0) |
virtual void | AddRunco (Double_t par, const char *name, const char *comment) |
void | AddRunCont (TDataSet *data=0) |
virtual TList * | GetHistList () const |
virtual TH1 * | GetHist (const char *histName) const |
virtual StMaker * | cd () |
virtual StMaker * | Cd () |
virtual Int_t | GetNumber () const |
STAR methods. | |
virtual void | SetNumber (Int_t number) |
virtual StMaker * | GetParentChain () const |
virtual Int_t | GetIventNumber () const |
Returns the current event number. | |
virtual void | SetIventNumber (Int_t iv) |
virtual Int_t | GetEventNumber () const |
virtual Int_t | GetRunNumber () const |
Returns the current RunNumber. | |
virtual const TDatime & | GetDateTime () const |
virtual const TDatime & | GetDBTime () const |
virtual void | SetDateTime (Int_t idat, Int_t itim) |
virtual StEvtHddr * | GetEvtHddr () const |
virtual Int_t | GetDate () const |
virtual Int_t | GetTime () const |
virtual const char * | GetEventType () const |
virtual TDataSet * | GetData (const char *name, const char *dir=".data") const |
virtual TDataSet * | GetData () const |
virtual TDataSet * | GetConst () const |
virtual TDataSet * | GetDataSet (const char *logInput) const |
virtual TDataSet * | DataSet (const char *logInput) const |
virtual TDataSet * | GetInputDS (const char *logInput) const |
virtual TDataSet * | GetDataBase (const char *logInput, const TDatime *td=0) |
virtual TDataSet * | GetInputDB (const char *logInput) |
virtual Int_t | GetDebug () const |
virtual Int_t | Debug () const |
virtual Int_t | GetMakeReturn () const |
virtual TList * | Histograms () const |
virtual TString | GetAlias (const char *log, const char *dir=".aliases") const |
virtual TString | GetInput (const char *log) const |
virtual TString | GetOutput (const char *log) const |
virtual TList * | GetMakeList () const |
virtual StMaker * | GetParentMaker () const |
virtual StMaker * | GetMaker (const char *mkname) |
virtual StMaker * | GetMakerInheritsFrom (const char *mktype) const |
virtual Bool_t | IsActive () |
virtual StMaker * | Maker (const char *mkname) |
virtual void | SetBIT (EMakerStatus k) |
Maker Status Bits. | |
virtual void | ResetBIT (EMakerStatus k) |
virtual Bool_t | TestBIT (EMakerStatus k) |
virtual void | SetActive (Bool_t k=kTRUE) |
Setters for flags and switches. | |
virtual void | SetDebug (Int_t l=1) |
virtual void | SetDEBUG (Int_t l=1) |
virtual void | SetFlavor (const char *flav, const char *tabname) |
virtual void | SetMakeReturn (Int_t ret) |
virtual void | SetAlias (const char *log, const char *act, const char *dir=".aliases") |
virtual void | AddAlias (const char *log, const char *act, const char *dir=".aliases") |
virtual void | SetInput (const char *log, const char *act) |
virtual void | SetOutput (const char *log, const char *act) |
virtual void | SetOutput (const char *log, TDataSet *ds) |
virtual void | SetOutput (TDataSet *ds) |
virtual void | SetOutputAll (TDataSet *ds, Int_t level=1) |
virtual void | SetMode (Int_t mode=0) |
virtual void | SetNotify (const char *about, StMaker *mk) |
virtual Int_t | GetMode () |
virtual Int_t | GetDebug () |
virtual const StChainOpt * | GetChainOpt () const |
virtual TFile * | GetTFile () const |
virtual void | NotifyEm (const char *about, const void *ptr) |
virtual Double_t | RealTime () |
virtual Double_t | CpuTime () |
virtual void | StartTimer (Bool_t reset=kFALSE) |
virtual void | StopTimer () |
virtual void | PrintTimer (Option_t *option="") |
virtual void | PrintTotalTime () |
virtual const char * | GetName () const |
special overload | |
TObject * | GetDirObj (const char *dir) const |
void | SetDirObj (TObject *obj, const char *dir) |
virtual const char * | GetCVS () const |
Int_t | SetAttr (const char *key, const char *val, const char *to=".") |
Int_t | SetAttr (const char *key, Int_t val, const char *to=".") |
Int_t | SetAttr (const char *key, UInt_t val, const char *to=".") |
Int_t | SetAttr (const char *key, Double_t val, const char *to=".") |
Int_t | SetAttr (const StMaker *mk) |
Int_t | RemAttr (const char *key, const char *to=".") |
const TAttr * | GetAttr () const |
Int_t | IAttr (const char *key) const |
UInt_t | UAttr (const char *key) const |
Double_t | DAttr (const char *key) const |
const char * | SAttr (const char *key) const |
void | PrintAttr () const |
Public Member Functions inherited from TDataSet | |
TDataSet (const char *name="", TDataSet *parent=0, Bool_t arrayFlag=kFALSE) | |
TDataSet (const TDataSet &src, EDataSetPass iopt=kAll) | |
TDataSet (TNode &src) | |
This copy ctor has been depricated (left for thwe sake of the backweard compatibility) | |
virtual | ~TDataSet () |
std::cout << "Default destructor for " << GetName() << " - " << GetTitle() << std::endl; | |
virtual void | Add (TDataSet *dataset) |
virtual void | AddAt (TDataSet *dataset, Int_t idx=0) |
virtual void | AddAtAndExpand (TDataSet *dataset, Int_t idx=0) |
virtual void | AddFirst (TDataSet *dataset) |
Add TDataSet object at the beginning of the dataset list of this dataset. | |
virtual void | AddLast (TDataSet *dataset) |
Add TDataSet object at the end of the dataset list of this dataset. | |
TDataSet * | At (Int_t idx) const |
virtual void | Browse (TBrowser *b) |
Browse this dataset (called by TBrowser). | |
virtual TObject * | Clone (const char *newname="") const |
the custom implementation fo the TObject::Clone | |
virtual void | Delete (Option_t *opt="") |
virtual TDataSet * | Find (const char *path) const |
virtual TDataSet * | FindByName (const char *name, const char *path="", Option_t *opt="") const |
virtual TDataSet * | FindByPath (const char *path) const |
Aliase for TDataSet::Find(const Char_t *path) method. | |
virtual TDataSet * | FindByTitle (const char *title, const char *path="", Option_t *opt="") const |
TObject * | FindObject (const char *name) const |
TObject * | FindObject (const TObject *o) const |
virtual TDataSet * | First () const |
Return the first object in the list. Returns 0 when list is empty. | |
TObjArray * | GetObjArray () const |
virtual TSeqCollection * | GetCollection () const |
TList * | GetList () const |
virtual Int_t | GetListSize () const |
TObject * | GetMother () const |
virtual TObject * | GetObject () const |
The depricated method (left here for the sake of the backward compatibility) | |
virtual TDataSet * | GetParent () const |
virtual Long_t | HasData () const |
virtual TDataSet * | Instance () const |
virtual TString | Path () const |
return the full path of this data set | |
virtual EDataSetPass | Pass (EDataSetPass(*callback)(TDataSet *), Int_t depth=0) |
virtual EDataSetPass | Pass (EDataSetPass(*callback)(TDataSet *, void *), void *user, Int_t depth=0) |
virtual void | PrintContents (Option_t *opt="") const |
virtual Int_t | Purge (Option_t *opt="") |
virtual void | Remove (TDataSet *set) |
Remiove the "set" from this TDataSet. | |
virtual TDataSet * | RemoveAt (Int_t idx) |
virtual void | SetMother (TDataSet *parent=0) |
virtual void | SetObject (TObject *obj) |
The depricated method (left here for the sake of the backward compatibility) | |
virtual void | SetParent (TDataSet *parent=0) |
virtual void | SetWrite () |
virtual void | Shunt (TDataSet *newParent=0) |
virtual void | Sort () |
Sort recursively all members of the TDataSet with TList::Sort method. | |
virtual Bool_t | IsEmpty () const |
return kTRUE if the "internal" collection has no member | |
virtual Bool_t | IsFolder () const |
virtual Bool_t | IsMarked () const |
virtual Bool_t | IsThisDir (const char *dirname, int len=-1, int ignorecase=0) const |
virtual TDataSet * | Last () const |
Return the last object in the list. Returns 0 when list is empty. | |
virtual void | ls (Option_t *option="") const |
virtual void | ls (Int_t depth) const |
void | Mark () |
void | UnMark () |
void | MarkAll () |
Mark all members of this dataset. | |
void | UnMarkAll () |
UnMark all members of this dataset. | |
void | InvertAllMarks () |
Invert mark bit for all members of this dataset. | |
void | Mark (UInt_t flag, EBitOpt reset=kSet) |
virtual TDataSet * | Next () const |
virtual TDataSet * | Prev () const |
virtual void | Update () |
virtual void | Update (TDataSet *set, UInt_t opt=0) |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) |
virtual Int_t | Write (const char *name=0, Int_t option=0, Int_t bufsize=0) const |
Protected Member Functions | |
virtual Bool_t | buildTowerClusters () |
Constructs tower clusters. More... | |
virtual Bool_t | buildSmdClusters () |
Constructs smd clusters. More... | |
void | fillStEvent () |
Fills StEvent cluster collections if the option is selected. More... | |
Bool_t | verifyStEvent () const |
ClassDef (StEEmcClusterMaker, 1) | |
Bool_t | buildTowerClusters () |
Constructs tower clusters. | |
Bool_t | buildSmdClusters () |
Constructs smd clusters. | |
void | fillStEvent () |
Fills StEvent cluster collections if the option is selected. | |
Bool_t | verifyStEvent () |
ClassDef (StEEmcClusterMaker, 1) | |
Protected Member Functions inherited from StMaker | |
StMessMgr * | GetLogger () const |
virtual TDataSet * | FindDataSet (const char *logInput, const StMaker *uppMk=0, const StMaker *dowMk=0) const |
Protected Member Functions inherited from TDataSet | |
virtual void | SetMother (TObject *mother) |
TDataSet (const char *name, const char *title) | |
void | AddMain (TDataSet *set) |
add data set to main data set | |
TDataSet * | GetRealParent () |
return real parent | |
void | MakeCollection () |
Create the internal container at once if any. | |
Protected Attributes | |
Int_t | mClusterId |
Keep track of clusters. | |
Int_t | mSuppress |
Supress seeds adjacent to clusters. | |
Bool_t | mSkip |
Skip strips if failbit set. | |
Bool_t | mLoose |
Loose cuts option. | |
std::vector< std::vector < StEEmcTowerVec_t > > | mSeedTowers |
std::vector< std::vector < StEEmcClusterVec_t > > | mTowerClusters |
std::vector< std::vector < StEEmcSmdClusterVec_t > > | mSmdClusters |
Int_t | mNumberOfClusters [6] |
Counts clusters for full eemc, 0=T, 1=P, 2=Q, 3=R, 4=U, 5=V. | |
Float_t | mSeedEnergy [6] |
Seed energy for 0=T, 1=P, 2=Q, 3=R, 4=U, 5=V. | |
Int_t | mMaxExtent |
Maximum distance from SMD seed strips. | |
Int_t | mMinStrips |
Minimum number of smd strips to form seed. | |
Float_t | mSeedFloor |
blah... | |
const EEmcGeomSimple * | mEEtow |
const EEmcSmdGeom * | mEEsmd |
const EEmcSmdMap * | mEEmap |
TString | mAnalysisName |
ADC–>E maker name. | |
const StEEmcA2EMaker * | mEEanalysis |
ADC–>E maker. | |
Bool_t | mFillStEvent |
Option to fill StEvent. | |
std::map< const StEmcCluster *, StEEmcCluster > | mEtoEE |
Map StEEmcClusters to StEmcClusters. | |
std::map< const StEmcCluster *, StEEmcSmdCluster > | mEtoEEsmd |
... and for smd clusters | |
Bool_t | mSuppress |
EEmcGeomSimple * | mEEtow |
Geometry classes. | |
EEmcSmdGeom * | mEEsmd |
EEmcSmdMap * | mEEmap |
StEEmcA2EMaker * | mEEanalysis |
ADC–>E maker. | |
std::map< StEmcCluster *, StEEmcCluster > | mEtoEE |
Map StEEmcClusters to StEmcClusters. | |
std::map< StEmcCluster *, StEEmcSmdCluster > | mEtoEEsmd |
Protected Attributes inherited from StMaker | |
TDataSet * | m_DataSet |
TDataSet * | m_ConstSet |
TDataSet * | m_GarbSet |
TDataSet * | m_Inputs |
TDataSet * | m_Ouputs |
list of logInput:ActualInput | |
TDataSet * | m_Runco |
list of logOuput:ActualOuput | |
TList * | m_Histograms |
Run Control parameters. | |
Int_t | fTallyMaker [kStFatal+1] |
counters | |
Int_t | m_Mode |
counters | |
Int_t | m_Number |
Integer mode of maker. | |
Int_t | m_LastRun |
Serial event number. | |
Int_t | m_DebugLevel |
Last Run number. | |
Int_t | m_MakeReturn |
Debug level. | |
TStopwatch | m_Timer |
Make() return flag. | |
StMemStat * | fMemStatMake |
Timer object. | |
StMemStat * | fMemStatClear |
StMemStat for Make. | |
Int_t | fStatus |
StMemStat for Clear. | |
StMessMgr * | fLogger |
Maker status. | |
StTurnLogger * | fLoggerHold |
Protected Attributes inherited from TDataSet | |
TDataSet * | fParent |
TSeqCollection * | fList |
Additional Inherited Members | |
Public Types inherited from StMaker | |
enum | EDebugLevel { kNormal, kDebug } |
enum | { kSTAFCV_BAD, kSTAFCV_OK, kSTAFCV_ERR =2, kSTAFCV_FATAL =3 } |
enum | EMakerStatus { kInitBeg = 1, kInitEnd = 2, kMakeBeg = 3, kCleaBeg = 4, kFiniBeg = 5, kFiniEnd = 6, kActive = 7 } |
Public Types inherited from TDataSet | |
enum | EDataSetPass { kContinue, kPrune, kStop, kUp, kStruct, kAll, kRefs, kMarked } |
enum | ESetBits { kMark = BIT(22), kArray = BIT(20) } |
enum | EBitOpt { kSet = kTRUE, kReset = kFALSE } |
Static Public Member Functions inherited from StMaker | |
static StMaker * | New (const char *classname, const char *name="", void *title=0) |
static StMaker * | GetTopChain () |
static StMaker * | GetChain () |
static StMaker * | GetFailedMaker () |
static StMaker * | GetMaker (const TDataSet *ds) |
Static functions. | |
static EDataSetPass | ClearDS (TDataSet *ds, void *user) |
static const char * | RetCodeAsString (Int_t kode) |
static Int_t | AliasDate (const char *alias) |
static Int_t | AliasTime (const char *alias) |
static const char * | AliasGeometry (const char *alias) |
static const DbAlias_t * | GetDbAliases () |
static void | SetTestMaker (StTestMaker *mk) |
static Int_t | Cleanup (TDataSet *&ds) |
static void | lsMakers (const StMaker *top) |
Static Public Member Functions inherited from TDataSet | |
static TDataSet * | GetMainSet () |
return pointer to the main dataset | |
static TDataSet * | instance () |
Public Attributes inherited from StMaker | |
enum StMaker:: { ... } | EModule_return_Status |
Static Protected Member Functions inherited from TDataSet | |
static EDataSetPass | SortIt (TDataSet *ds) |
static EDataSetPass | SortIt (TDataSet *ds, void *user) |
Static Protected Attributes inherited from StMaker | |
static StMaker * | fgTopChain = 0 |
list of Histograms | |
static StMaker * | fgStChain = 0 |
pointer to top StChain | |
static StMaker * | fgFailedMaker = 0 |
current pointer to StChain | |
static StTestMaker * | fgTestMaker = 0 |
current pointer to failed maker | |
static Int_t | fgTallyMaker [kStFatal+1] = {0,0,0,0,0} |
Static Protected Attributes inherited from TDataSet | |
static TDataSet * | fgMainSet = &mainSet |
A cluster maker for the EEMC.
This class produces clusters of EEMC towers, pre- and postshower elements and smd strips.
The clustering-algorithm used for tower clusters (as well as preshower and postshower clusters) is the Minesweeper algorithm originally developed by Jan Balewski.
The SMD clustering algorithm starts by finding all strips which exceed a user-specified seed threshold. These strips are sorted by energy, and we work from the most energetic seed to the least energetic seed.
Strips adjacent to the smd seed are added to the cluster and removed from the pool of seed strips. The number of adjacent strips added is specified by the user in the setMaxExtent(max) method.
Once a cluster is identified, the seed threshold is raised in the vicinity of that cluster. For details, see buildSmdClusters().
In order to form a cluster, we require a minimum of three smd strips. Fewer strips suggests a MIP, although low-energy EM showers (<~ 1 GeV) can deposit energy in only two consecutive smd strips.
The user may also specify the suppress() option for the cluster maker. When this option is used, the two smd strips adjacent to the cluster are removed from the pool of smd seed strips. This reduces the effects of false cluster splitting, i.e. where a fluctuation in the size of the EM shower combined with the fixed size of the cluster leads to the formation of a false smd cluster.
Definition at line 17 of file StEEmcClusterMaker.h.
StEEmcClusterMaker::StEEmcClusterMaker | ( | const Char_t * | name = "mEEclusters" | ) |
by default, do not populate the StEmcClusterCollection
default, do not supress seeds adjacent to clusters
each cluster (tower, pre/post, smd) are assigned a unique id in the order in which they are collected
Set default seed energies
Initialize storage banks for tower and SMD clusters. Both will be stored sector-wise and layer-wise.
Tower clusters are stored according to the sector in which we find their seed tower.
Layers: T=0, P=1, Q=2, R=3 / Planes: U=0, V=1
mTowerClusters[sector][layer] returns vector of tower clusters mSmdClusters[sector][plane] returns vector of SMD clusters
Definition at line 68 of file StEEmcClusterMaker.cxx.
References mClusterId, mEEmap, mEEsmd, mEEtow, mFillStEvent, mLoose, mMaxExtent, mMinStrips, mSeedFloor, mSeedTowers, mSkip, mSmdClusters, mSuppress, mTowerClusters, and seedEnergy().
|
protectedvirtual |
Constructs smd clusters.
Loop over all sectors
Loop over all planes
Try to cut down on noice around identified gammas
Get list of strips
Sort by energy
Order in descending energy
We'll flag each seed strip
Iterate over strips and find seeds
We always ignore the corners of the planes
Verify that this is a good strip
Verify that this strip exceeds the floor by the specified seed threshold. If not, punt
Flag this as a seed strip
LOOSE_CUTS is an adhoc shower shape, where we try to suppress clusters if they are likely a fluctuation in the shower profile of an EM shower
Set a "floor" around this strip
Within +/- 2 strips, find no other seeds
Within +/- 4 strips, Floor is 20% of seed
Within +/- 10 strips, Floor i 10% of seed
Within +/- 20 strips, floor is 5% of seed
Now for each seed strip, add all contiguous, adjacent SMD strips out to +/- 3 strips on either side. Continuity is broken if strip falls below Nsigma threshold and is not marked as dead.
Verify that this seed is not owned by another cluster
This seed is now the property of a cluster
Create our cluster
And give it the strip
Now go +/- 3 strips on either side and add them to the cluster, respecting continuity etc...
Get the strip
Break if not continuous (and not dead)
Mark this strip as owned
Add to cluster
Get the strip
Break if not continuous (and not dead)
Mark this strip as owned
Add to cluster
Push the cluster into our storage vector
Definition at line 326 of file StEEmcClusterMaker.cxx.
References cluster(), StEEmcElement::energy(), StEEmcElement::fail(), StEEmcStrip::index(), StEEmcSmdCluster::key(), mClusterId, mEEanalysis, mMaxExtent, mMinStrips, mNumberOfClusters, mSeedEnergy, mSeedFloor, mSkip, mSmdClusters, mSuppress, StEEmcSmdCluster::strip(), StEEmcA2EMaker::strip(), and StEEmcA2EMaker::strips().
Referenced by Make().
|
protectedvirtual |
Constructs tower clusters.
Current algo only populates tower clusters, using Jan's "minesweeper" algorithm (apologies to Bill Gates).
Loop over layers to go here... maybe above init of weights
Weights for dividing energy of towers among the tower-only clusters, like Jan's algorithm.
Temp storage for clusters
Get list of towers
Order according to energy (STL sort is fast, N log(N))
Order descending in energy
Find the last tower which exceeds see threshold (actually, "last" will be the first tower below the seed threshold).
store seed towers by layer, sector <<< this breaks, gives an "abort", which I assume means that we're trying to push a tower into a nonexistant vector... did I maybe get the order wrong???
We have run out of seeds here
This seed tower is adjacent to another seed tower and will be clustered with that one. No incrementation for now. (Future, we may allow this to be a seed if there's an SMD response beneath it, then use tower-sharing shape to divide...)
loop over neighboring towers and increment weight for this tower with the energy of the seed tower
Loop over towers again
We've run out of seeds
If the weight for this tower has been incremented, then it's adjacent to a more energetic tower and already is clustered with it.
set momentum and a unique key
Definition at line 178 of file StEEmcClusterMaker.cxx.
References StEEmcCluster::add(), cluster(), StEEmcElement::energy(), StEEmcTower::etabin(), EEmcGeomSimple::getTowerCenter(), StEEmcTower::index(), mClusterId, mEEanalysis, mEEtow, mNumberOfClusters, StEEmcCluster::momentum(), mSeedEnergy, mTowerClusters, StEEmcElement::name(), StEEmcTower::neighbor(), StEEmcTower::numberOfNeighbors(), StEEmcTower::print(), StEEmcCluster::print(), StEEmcTower::sector(), and StEEmcTower::subsector().
Referenced by Make().
|
virtual |
Clear clusters for next event.
Clear cluster storage
Reimplemented from StMaker.
Definition at line 158 of file StEEmcClusterMaker.cxx.
References StMaker::Clear(), mClusterId, mNumberOfClusters, mSmdClusters, and mTowerClusters.
|
inline |
Given a StEmcCluster, return the StEEmcCluster from whence it came.
Definition at line 53 of file StEEmcClusterMaker.h.
References mEtoEE.
|
protected |
Fills StEvent cluster collections if the option is selected.
First the eemc tower clusters
If we found clusters, create a cluster collection for this detector. Otherwise, nullify the cluster collection, otherwise we run into an assert somewhere out in "STAR" land... or maybe not,... no comments in barrel virtual finder...
Obtain the cluster collection from the detector, and prepare to fill it. If it doesn't exist, create it.
Loop over all EEMC sectors and fill collection
Loop over all clusters in this sector
for some reason, this code doesn't work when I call StEEmcCluster::stemc(), but works just fine here....
association between StEmcCluster and my class
now set the collection in the detector
Next the pre and postshower clusters
Loop over all EEMC sectors and fill collection
Loop over PQR
Loop over all clusters in this sector
for some reason, this code doesn't work when I call StEEmcCluster::stemc(), but works just fine here....
Finally the U&V smd clusters
Definition at line 538 of file StEEmcClusterMaker.cxx.
References cluster(), StEEmcCluster::energy(), StEEmcSmdCluster::key(), mEtoEE, mEtoEEsmd, mNumberOfClusters, StEEmcCluster::momentum(), mSmdClusters, mTowerClusters, StEEmcCluster::numberOfTowers(), StEEmcElement::stemc(), StEEmcCluster::stemc(), StEEmcSmdCluster::stemc(), StEEmcSmdCluster::strip(), and StEEmcCluster::tower().
Referenced by Make().
|
virtual |
The Make() method is the one responsible for calling the maker's InitRun(). Note that that InitRun() is called for real data and if both of the following are true
This is the ONLY place calling the InitRun() routine.
check privilege to skip event
Reimplemented from StMaker.
|
virtual |
Make clusters for this event.
Warn if we couldn't build tower clusters
Warn if we couldn't build SMD clusters
If the option to fill StEvent is selected, do it
Verify that StEvent is a valid copy
Reimplemented from StMaker.
Definition at line 138 of file StEEmcClusterMaker.cxx.
References buildSmdClusters(), buildTowerClusters(), fillStEvent(), kStOK, kStWarn, StMaker::Make(), mFillStEvent, and verifyStEvent().
void StEEmcClusterMaker::seedEnergy | ( | Float_t | energy, |
Int_t | layer = 0 |
||
) |
Set the seed energy for the specified layer where 0=T, 1=P, 2=Q, 3=R, 4=U, 5=V
|
inline |
Set the seed energy for the specified layer where 0=T, 1=P, 2=Q, 3=R, 4=U, 5=V
Definition at line 35 of file StEEmcClusterMaker.h.
References mSeedEnergy.
Referenced by StEEmcClusterMaker().
|
inline |
If called, will look for the presence of StEvent and fill the StEmcCollection.
Definition at line 65 of file StEEmcClusterMaker.h.
References mFillStEvent.
|
inline |
If called, will look for the presence of StEvent and fill the StEmcCollection.
Definition at line 75 of file StEEmcClusterMaker.h.
References mFillStEvent.
void StEEmcClusterMaker::setSeedFloor | ( | Float_t | f = 2.0 | ) |
Factor above which an smd strip must exceed the minimum "floor" energy in order to be considered a seed...
|
inline |
Factor above which an smd strip must exceed the minimum "floor" energy in order to be considered a seed...
Definition at line 45 of file StEEmcClusterMaker.h.
References mSeedFloor.
|
inline |
Given a StEmcCluster, return the StEEmcSmdCluster from whence it came.
Definition at line 56 of file StEEmcClusterMaker.h.
References mEtoEEsmd.
|
inline |
Suppress seeds in the n strips on either side of an already identified smd cluster. Default = 0.
Definition at line 79 of file StEEmcClusterMaker.h.
References mSuppress.
|
protected |
Verify that StEEmcCluster/StEEmcSmdCluster and StEmcCluster are equivalent
verify tower clusters
Tower-cluster checksum
SMD-cluster checksum
Definition at line 878 of file StEEmcClusterMaker.cxx.
References cluster(), StEEmcCluster::energy(), mNumberOfClusters, numberOfClusters(), numberOfSmdClusters(), and smdcluster().
|
protected |
Verify that StEEmcCluster/StEEmcSmdCluster and StEmcCluster are equivalent
verify tower clusters
Tower-cluster checksum
SMD-cluster checksum
Definition at line 796 of file StEEmcClusterMaker.cxx.
References cluster(), StEEmcCluster::energy(), mNumberOfClusters, numberOfClusters(), numberOfSmdClusters(), and smdcluster().
Referenced by Make().
|
protected |
Definition at line 142 of file StEEmcClusterMaker.h.
Referenced by StEEmcClusterMaker().
|
protected |
Definition at line 141 of file StEEmcClusterMaker.h.
Referenced by StEEmcClusterMaker().
|
protected |
Definition at line 140 of file StEEmcClusterMaker.h.
Referenced by buildTowerClusters(), and StEEmcClusterMaker().
|
protected |
mSeedTowers[sec][layer] provides a list of tower elements which exceeded the user-specified seed.
Definition at line 104 of file StEEmcClusterMaker.h.
Referenced by StEEmcClusterMaker().
|
protected |
mSmdClusters[sec][plane] provides a list of SMD clusters in the given sector for the given plane
Definition at line 112 of file StEEmcClusterMaker.h.
Referenced by buildSmdClusters(), Clear(), fillStEvent(), numberOfSmdClusters(), smdcluster(), smdclusters(), and StEEmcClusterMaker().
|
protected |
mTowerClusters[sec][layer] provides list of tower clusters at specified layer in the given sector, where the sector is determined by the seed tower.
Definition at line 109 of file StEEmcClusterMaker.h.
Referenced by buildTowerClusters(), Clear(), cluster(), clusters(), fillStEvent(), numberOfClusters(), and StEEmcClusterMaker().