StRoot
1
|
Class for building points from smd clusters. More...
Public Member Functions | |
StEEmcPointMaker (const Char_t *name) | |
Int_t | Init () |
Initialize. | |
Int_t | Make () |
Build points for this event. More... | |
void | Clear (Option_t *opts="") |
Clear old points. | |
void | analysis (const Char_t *name) |
Set adc to energy maker. | |
void | clusters (const Char_t *name) |
Set cluster maker. | |
void | towerThreshold (Float_t t) |
void | smdMatch (Float_t s) |
Sets an smd matching requirement, Eu>s*Ev&&Ev>2*Eu. | |
StEEmcPointVec_t | points () |
Return vector of all points found in endcap. | |
Int_t | numberOfPoints () |
Return number of points. | |
StEEmcPoint | point (Int_t ipoint) |
Return a specified point. | |
StEEmcPointVec_t | smdPoints () |
Int_t | numberOfSmdPoints () |
Return the total number of smd points. | |
StEEmcPoint | smdPoint (Int_t ip) |
Return a specified smd point. | |
Float_t | energySeen () |
Total energy seen by the algorithm. | |
void | setFillStEvent () |
void | setEnergyMode (Int_t mode) |
void | setLimit (Int_t l) |
Number of iterations for tower-shape mode. | |
StEEmcPoint | point (StEmcPoint *p) |
StEEmcPointMaker (const Char_t *name) | |
Int_t | Init () |
Int_t | Make () |
void | Clear (Option_t *opts="") |
User defined functions. | |
void | analysis (const Char_t *name) |
void | clusters (const Char_t *name) |
void | towerThreshold (Float_t t) |
StEEmcPointVec_t | points () |
Return vector of all points found in endcap. | |
Int_t | numberOfPoints () |
Return number of points. | |
StEEmcPoint | point (Int_t ipoint) |
Return a specified point. | |
Float_t | energySeen () |
void | setFillStEvent () |
void | setEnergyMode (Int_t mode) |
void | setLimit (Int_t l) |
StEEmcPoint | point (StEmcPoint *p) |
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 |
Public Member Functions inherited from StEEmcPointUtils | |
Bool_t | opening_angle_cut (StEEmcPoint &p1, StEEmcPoint &p2, Float_t energy, Float_t mass=0.135, Float_t frac=0.3) |
StEEmcPointVec_t | find_best_points (StEEmcPointVec_t points, Float_t em_energy, Bool_t &stat, Float_t &chi2, Int_t npoint=1) |
Bool_t | no_parallel_smd_clusters (StEEmcPointVec_t points, Int_t npoint) |
Protected Member Functions | |
void | fillStEvent () |
Fills the StEmcPoint collection. More... | |
void | verifyStEvent () |
Checks that StEvent is properly saved. | |
StEEmcPointVec_t | buildSmdPoints (Int_t sector, StEEmcSmdClusterVec_t &u, StEEmcSmdClusterVec_t &v) |
build smd points and associations between smd points and clusters More... | |
Bool_t | findPoints (Int_t sector, StEEmcSmdClusterVec_t u, StEEmcSmdClusterVec_t v, StEEmcPointVec_t &p) |
find points in the endcap More... | |
void | shareEnergy () |
Divide energy of eemc towers between identified smd points using fit (doesn't work) More... | |
void | shareEnergySimple () |
Divide energy of eemc towers between identified smd points (doesn't work as well as smd algo) More... | |
void | shareEnergySmd () |
Divide energy of eemc towers between identified smd points in proportion to the smd energy. More... | |
void | countRelatives () |
Determine the number of points which share tower energy with another point. More... | |
void | removeCluster (StEEmcSmdClusterVec_t &clusters, Int_t key) |
Remove a cluster from the list of clusters. | |
Float_t | fracp2t (StEEmcPoint &p, StEEmcTower &t) |
ClassDef (StEEmcPointMaker, 1) | |
Makes class available to root. | |
void | fillStEvent () |
Fills the StEmcPoint collection. | |
void | verifyStEvent () |
StEEmcPointVec_t | buildSmdPoints (Int_t sector, StEEmcSmdClusterVec_t &u, StEEmcSmdClusterVec_t &v) |
build smd points and associations between smd points and clusters | |
Bool_t | findPoints (Int_t sector, StEEmcSmdClusterVec_t u, StEEmcSmdClusterVec_t v, StEEmcPointVec_t &p) |
find points in the endcap | |
void | shareEnergy () |
Divide energy of eemc towers between identified smd points. | |
void | shareEnergySimple () |
void | shareEnergySmd () |
void | countRelatives () |
void | removeCluster (StEEmcSmdClusterVec_t &clusters, Int_t key) |
Float_t | fracp2t (StEEmcPoint &p, StEEmcTower &t) |
ClassDef (StEEmcPointMaker, 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 | |
TString | mNameAnalysis |
TString | mNameClusters |
StEEmcA2EMaker * | mEEanalysis |
ADC2E. | |
StEEmcClusterMaker * | mEEclusters |
Clusters. | |
EEmcGeomSimple * | mEEtow |
Tower geometry. | |
EEmcSmdGeom * | mEEsmd |
Smd geometry. | |
EEmcSmdMap * | mEEmap |
Tower to smd map. | |
StEEmcPointVec_t | mPoints |
All fully reconstructed points. | |
StEEmcPointVec_t | mSmdPoints |
SMD only points. | |
std::map< StEEmcSmdCluster, StEEmcPointVec_t > | mUclusters2points |
maps smd clusters to points | |
std::map< StEEmcSmdCluster, StEEmcPointVec_t > | mVclusters2points |
maps smd clusters to points | |
Float_t | mTowerThreshold |
Float_t | mSmdMatch |
Float_t | mEseen |
Energy seen by the algorithm. | |
Bool_t | mFillStEvent |
Option to fill StEvent. | |
Int_t | mEnergyMode |
Option for dividing energy. | |
Int_t | mLimit |
How many iterations for the tower energy sharing mode. | |
std::map< StEmcPoint *, StEEmcPoint > | mEtoEE |
Map connecting StEEmcPoint to StEmcPoint. | |
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 |
Class for building points from smd clusters.
This class produces points using smd clusters found from an instance of StEEmcClusterMaker.
A point is defined as the coincidence of a cluster in each smd plane with an active tower.
Points are found in the following order:
Definition at line 20 of file StEEmcPointMaker.h.
StEEmcPointMaker::StEEmcPointMaker | ( | const Char_t * | name | ) |
Initialize the geometry packages
Definition at line 53 of file StEEmcPointMaker.cxx.
References mEEmap, mEEsmd, mEEtow, mEnergyMode, mFillStEvent, mLimit, mSmdMatch, and mTowerThreshold.
|
protected |
build smd points and associations between smd points and clusters
determine which tower this smd point is under
invalid intersection
happy intersection
well, maybe and maybe not. make sure that the candidate point lies in the same sector
to form a valid smd point, we require a struck tower, or a "fail" bit to be set and one of the other tower detectors to fire (pre/postshower).
furthermore, we may require a degree of energy matching between the smd points
Add to list of smd only points
Definition at line 158 of file StEEmcPointMaker.cxx.
References StEEmcPoint::cluster(), StEEmcElement::energy(), StEEmcPoint::energy(), StEEmcElement::fail(), EEmcSmdGeom::getIntersection(), EEmcGeomSimple::getTower(), mEEanalysis, mEEsmd, mEEtow, mSmdMatch, mSmdPoints, mTowerThreshold, points(), StEEmcPoint::position(), StEEmcPoint::tower(), and StEEmcA2EMaker::tower().
Referenced by findPoints().
|
protected |
Determine the number of points which share tower energy with another point.
Loop over all points and count how many are beneath each tower
Loop over all points and set the number of "relatives"
Definition at line 835 of file StEEmcPointMaker.cxx.
References StEEmcTower::index(), mPoints, StEEmcTower::neighbor(), and StEEmcTower::numberOfNeighbors().
Referenced by Make().
|
protected |
Fills the StEmcPoint collection.
loop over all eemc points
Definition at line 763 of file StEEmcPointMaker.cxx.
References mEtoEE, mPoints, and point().
Referenced by Make().
|
protected |
find points in the endcap
Temp vector to store candidate points
Sort from closest to the beam to furthest
build smd points
nothing left to do here
presort smd points by chi^2.
create associative arrays matching smd clusters to points, or in this case index into the smdpoints array. NOTE– from here on, it is important that smdpoints do not get sorted.
look for smd clusters which match a single smd point. where we find such unique matches, we add the point to the list of found points, and remove the matching pair of smd clusters from the list of clusters. Bool_t go = false;
Get clusters and determine which plane we're working with
Get a reference to the cluster we're working with
Deterimine how many points are matched to this cluster
cluster is orphaned, no matching V cluster, or cluster matches multiple points, then we go to the next cluster
When set, it means we have found an SMD cluster which uniquely matches an smd point. Thus, we will not proceed to the second-stage logic which determines ambiguous matches using energies of clusters go=true;
push the point into the list of points and remove the associated pair of clusters
add to list of candidate points
Loop over candidate points and find best "chi^2" from the potential 1:1 matches
If we found a candidate match, add to the list of points and call the algorithm recursively. Then we return. This is a "cute" algorithm (i.e. hard to debug). The idea is that each call to findPoints is responsible for finding 1 and only 1 point, then passing the remaining smd clusters to the next iteration of the algorithm.
———<<<<<<<<< stage 2 >>>>>>>>>————
second stage of point finding. we loop over all remaining clusters. when we have a cluster which matches 2 or more points, we will select the point with the better chi^2 (best energy match between the two smd planes).
Get clusters and determine which plane we're working with
Get a reference to the cluster we're working with
Deterimine how many points are matched to this cluster
cluster is orphaned or has a unique match, we'll catch it on the next pass
push the point with lowest chi2 into the list of candidate points
add to list of candidate points
Loop over candidate points and find best "chi^2" from the potential 1:1 matches
If we found a candidate match, add to the list of points and call the algorithm recursively. Then we return. This is a "cute" algorithm (i.e. hard to debug). The idea is that each call to findPoints is responsible for finding 1 and only 1 point, then passing the remaining smd clusters to the next iteration of the algorithm.
Definition at line 265 of file StEEmcPointMaker.cxx.
References buildSmdPoints(), StEEmcPoint::cluster(), StEEmcSmdCluster::key(), and removeCluster().
Referenced by Make().
|
protected |
return the fraction of energy expected in tower due to the presence of a point, based on tower energy response function
|
protected |
return the fraction of energy expected in tower due to the presence of a point, based on tower energy response function
Returns the fraction of the point's energy expected in tower
if the tower is not a neighbor of the tower beneath the point, return nothing
Get eta and phibin for this tower
Get the eta/phi bin for the tower beneath the point
Get the position of the point on the endcap. If the point is off the endcap, we're hosed. but just return 0.
Position of the point in fractional eta,phi space
Definition at line 622 of file StEEmcPointMaker.cxx.
References StEEmcTower::etabin(), EEmcGeomSimple::getTower(), StEEmcTower::isNeighbor(), mEEtow, StEEmcTower::phibin(), StEEmcPoint::position(), and StEEmcPoint::tower().
Referenced by shareEnergy(), and shareEnergySimple().
|
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.
Reimplemented in StEEmcPointTreeMaker.
|
virtual |
Build points for this event.
First phase of the game – build smd points. All pairs of U & V clusters which cross beneath a struck (or dead) tower are added to the list of smd points. We also keep tracks of the associations between the
Get smd clusters
Sort from closest to the beam to furthest
Point energies were initially set to be the energy deposited in the SMD. We will now overwrite these energies, calculating the equivalent EM energy using a sampling fraction of 0.7% per smd plane
do energy sharing
count the number of "related" points
Reimplemented from StMaker.
Reimplemented in StEEmcPointTreeMaker.
Definition at line 83 of file StEEmcPointMaker.cxx.
References countRelatives(), fillStEvent(), findPoints(), kStOK, mEEclusters, mEnergyMode, mFillStEvent, mPoints, shareEnergySimple(), shareEnergySmd(), StEEmcClusterMaker::smdclusters(), and verifyStEvent().
Referenced by StEEmcPointTreeMaker::Make().
|
inline |
Given an StEmcPoint, return the StEEmcPoint from whence it came
Definition at line 64 of file StEEmcPointMaker.h.
References mEtoEE.
|
inline |
Given an StEmcPoint, return the StEEmcPoint from whence it came
Definition at line 79 of file StEEmcPointMaker.h.
References mEtoEE.
|
inline |
Energy sharing mode.
mode,: | 0=smd, 1=tower-shape (iterated). |
Definition at line 58 of file StEEmcPointMaker.h.
References mEnergyMode.
|
inline |
Energy sharing mode.
mode,: | 0=smd, 1=tower-shape (iterated). |
Definition at line 72 of file StEEmcPointMaker.h.
References mEnergyMode.
|
inline |
If called, will look for the presence of StEvent and fill the StEmcCollection.
Definition at line 54 of file StEEmcPointMaker.h.
References mFillStEvent.
|
inline |
If called, will look for the presence of StEvent and fill the StEmcCollection.
Definition at line 68 of file StEEmcPointMaker.h.
References mFillStEvent.
|
protected |
Divide energy of eemc towers between identified smd points using fit (doesn't work)
Perform energy sharing between points. We fit the tower response (analytically minimize chi^2) for the identified smd points.
nothing to do here
Loop over all hit towers
Get hit tower
Loop over all hit points
Fraction of point's energy expected within the tower
Running sum of energy fraction times tower energy
Fraction of point's energy expected within the tower
Invert the matrix
Now solve for the energies of the points
Definition at line 531 of file StEEmcPointMaker.cxx.
References StEEmcElement::energy(), fracp2t(), StEEmcA2EMaker::hittower(), mEEanalysis, mPoints, and StEEmcA2EMaker::numberOfHitTowers().
|
protected |
Divide energy of eemc towers between identified smd points (doesn't work as well as smd algo)
Sum of energy from each point predicted to be within each tower
Loop over all points and increment the predicted energy in each tower from each point
loop over neighboring towers
Loop over all points and divide energy of each tower between the points according to the ratio of the energy of the point in the tower to the total predicted
loop over neighboring towers and repeat loop over neighboring towers
Set the energy of this point
Definition at line 662 of file StEEmcPointMaker.cxx.
References StEEmcElement::energy(), StEEmcPoint::energy(), StEEmcElement::fail(), fracp2t(), StEEmcTower::index(), mEseen, mLimit, mPoints, StEEmcTower::neighbor(), StEEmcTower::numberOfNeighbors(), point(), StEEmcElement::stat(), and StEEmcPoint::tower().
Referenced by StEEmcPointFitMaker::Make(), and Make().
|
protected |
Divide energy of eemc towers between identified smd points in proportion to the smd energy.
Sum of the smd-energy of all points which are in or adjacent to tower with a given index.
Now loop over all points and divide energy of each tower in proportion to the smd response
Definition at line 872 of file StEEmcPointMaker.cxx.
References StEEmcElement::energy(), StEEmcPoint::energy(), StEEmcTower::index(), mEEanalysis, mPoints, StEEmcTower::neighbor(), StEEmcTower::numberOfNeighbors(), point(), StEEmcPoint::tower(), and StEEmcA2EMaker::tower().
Referenced by StEEmcPointFitMaker::Make(), and Make().
|
inline |
Return vector of smd only points found in endcap (all u,v crossings beneath an active tower or a "failed" tower with signal in one other layer.)
Definition at line 172 of file StEEmcPointMaker.h.
References mSmdPoints.
|
inline |
Sets the miminimum energy for matching a pair of smd clusters to a tower. SMD pairs which cross beneath a tower which falls below the threshold will not form a point. Default is zero.
Definition at line 40 of file StEEmcPointMaker.h.
References mTowerThreshold.
|
inline |
Sets the miminimum energy for matching a pair of smd clusters to a tower. SMD pairs which cross beneath a tower which falls below the threshold will not form a point. Default is zero.
Definition at line 42 of file StEEmcPointMaker.h.
References mTowerThreshold.
|
protected |
Definition at line 85 of file StEEmcPointMaker.h.
Referenced by analysis(), and Init().
|
protected |
Definition at line 86 of file StEEmcPointMaker.h.
Referenced by clusters(), and Init().
|
protected |
Maximum allowed value for |Eu-Ev|/2(Eu+Ev) to form a candidate smd point in buildSmdPoints(). Cut is applied before U,V clusters are matched in findPoints().
Definition at line 147 of file StEEmcPointMaker.h.
Referenced by buildSmdPoints(), smdMatch(), and StEEmcPointMaker().
|
protected |
Minimum tower threshold to consider a U,V pair of clusters a valid smd point. Cut removes U,V pairs from being considered for association in findPoints().
Definition at line 143 of file StEEmcPointMaker.h.
Referenced by buildSmdPoints(), StEEmcPointMaker(), and towerThreshold().