StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Classes | Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
StMyPointMaker Class Reference
Inheritance diagram for StMyPointMaker:
StEEmcGenericPointMaker StMaker TDataSet


class  h

Public Member Functions

 StMyPointMaker (const Char_t *name="EEmcPointMaker", const StEEmcA2EMaker *a2e=NULL, const StEEmcGenericClusterMaker *cl=NULL)
virtual Int_t Init ()
virtual Int_t Make ()
virtual void Clear (Option_t *opts="")
 User defined functions.
void setSplit (Bool_t s=true)
void setSplitMinimumET (Float_t et)
void setSmdMinFraction (Float_t f)
- Public Member Functions inherited from StEEmcGenericPointMaker
 StEEmcGenericPointMaker (const Char_t *name="EEmcPointMaker", const StEEmcA2EMaker *a2e=NULL, const StEEmcGenericClusterMaker *cl=NULL)
StEEmcPointVec_t & points ()
 Return vector of EEmc points.
const StEEmcPointVec_t & points () const
StEEmcPointVec_t & smdPoints ()
 Return vector of smd-only points.
const StEEmcPointVec_t & smdPoints () const
StEEmcPointVec_t & towerPoints ()
 Return vector of tower-only points.
const StEEmcPointVec_t & towerPoints () const
Int_t numberOfPoints () const
 Number of points.
Int_t numberOfSmdPoints () const
 Number of smd-only points.
Int_t numberOfTowerPoints () const
 Number of tower-only points.
StEEmcPointpoint (Int_t ipoint)
const StEEmcPointpoint (Int_t ipoint) const
StEEmcPointsmdPoint (Int_t ipoint)
const StEEmcPointsmdPoint (Int_t ipoint) const
StEEmcPointtowerPoint (Int_t ipoint)
const StEEmcPointtowerPoint (Int_t ipoint) const
void addPoint (const StEEmcPoint &point)
void addSmdPoint (const StEEmcPoint &point)
void addTowerPoint (const StEEmcPoint &point)
StEEmcPointVec_t & points (const StEEmcCluster &cluster)
const StEEmcPointVec_t & points (const StEEmcCluster &cluster) const
Int_t numberOfPoints (const StEEmcCluster &c) const
StEEmcClustercluster (const StEEmcPoint &point)
- 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 TDataSetAddObj (TObject *obj, const char *dir, int owner=1)
virtual TDataSetToWhiteBoard (const char *name, void *dat)
virtual TDataSetToWhiteBoard (const char *name, void *dat, void *del)
virtual TDataSetToWhiteBoard (const char *name, TObject *dat, Int_t owner)
virtual TDataSetToWhiteConst (const char *name, TObject *dat)
virtual TDataSetToWhiteConst (const char *name, void *dat)
virtual TDataSetWhiteBoard (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 StMakercd ()
virtual StMakerCd ()
virtual Int_t GetNumber () const
 STAR methods.
virtual void SetNumber (Int_t number)
virtual StMakerGetParentChain () 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 StEvtHddrGetEvtHddr () const
virtual Int_t GetDate () const
virtual Int_t GetTime () const
virtual const char * GetEventType () const
virtual TDataSetGetData (const char *name, const char *dir=".data") const
virtual TDataSetGetData () const
virtual TDataSetGetConst () const
virtual TDataSetGetDataSet (const char *logInput) const
virtual TDataSetDataSet (const char *logInput) const
virtual TDataSetGetInputDS (const char *logInput) const
virtual TDataSetGetDataBase (const char *logInput, const TDatime *td=0)
virtual TDataSetGetInputDB (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 StMakerGetParentMaker () const
virtual StMakerGetMaker (const char *mkname)
virtual StMakerGetMakerInheritsFrom (const char *mktype) const
virtual Bool_t IsActive ()
virtual StMakerMaker (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 StChainOptGetChainOpt () 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 TAttrGetAttr () 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.
TDataSetAt (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 TDataSetFind (const char *path) const
virtual TDataSetFindByName (const char *name, const char *path="", Option_t *opt="") const
virtual TDataSetFindByPath (const char *path) const
 Aliase for TDataSet::Find(const Char_t *path) method.
virtual TDataSetFindByTitle (const char *title, const char *path="", Option_t *opt="") const
TObject * FindObject (const char *name) const
TObject * FindObject (const TObject *o) const
virtual TDataSetFirst () 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 TDataSetGetParent () const
virtual Long_t HasData () const
virtual TDataSetInstance () 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 TDataSetRemoveAt (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 TDataSetLast () 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 TDataSetNext () const
virtual TDataSetPrev () 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

Bool_t split (const StEEmcSmdCluster &in1, const StEEmcSmdCluster &in2, StEEmcSmdCluster &out1, StEEmcSmdCluster &out2, Float_t &chi2)
Bool_t AssociateClusters (const StEEmcSmdClusterVec_t &c1, StEEmcSmdClusterVec_t &c2)
Bool_t SplitClusters (StEEmcSmdClusterVec_t &c1, const StEEmcSmdClusterVec_t &c2)
Float_t energyChi2 (const StEEmcSmdCluster &c1, const StEEmcSmdCluster &c2) const
 Given two clusters, return (e1-e2)^2/nmips.
Float_t energyChi2 (const StEEmcSmdCluster &c1, const StEEmcSmdCluster &c2, const StEEmcSmdCluster &c3) const
 Given three clusters, return (e1-e2-e3)^2/nmips.
 ClassDef (StMyPointMaker, 1)
- Protected Member Functions inherited from StEEmcGenericPointMaker
Int_t nextPointId ()
StEEmcPointVec_t buildSmdPoints (Int_t sector, const StEEmcSmdClusterVec_t &u, const StEEmcSmdClusterVec_t &v)
StEEmcPointVec_t buildTowerPoints (Int_t sector, const StEEmcClusterVec_t &c)
StEEmcPointVec_t buildPoints (const StEEmcClusterVec_t &towerClusters, const StEEmcSmdClusterVec_t &u, const StEEmcSmdClusterVec_t &v)
void fillStEvent ()
 ClassDef (StEEmcGenericPointMaker, 1)
- Protected Member Functions inherited from StMaker
StMessMgrGetLogger () const
virtual TDataSetFindDataSet (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
TDataSetGetRealParent ()
 return real parent
void MakeCollection ()
 Create the internal container at once if any.

Protected Attributes

Bool_t mAllowSplitting
Float_t mSplitMinimumET
Float_t mSmdMinFrac
Int_t mMaxClusterId
- Protected Attributes inherited from StEEmcGenericPointMaker
Int_t mKey
const StEEmcA2EMakermEEanalysis
const StEEmcGenericClusterMakermEEclusters
StEEmcPointVec_t mPoints
StEEmcPointVec_t mSmdPoints
StEEmcPointVec_t mTowerPoints
const EEmcGeomSimplemEEtow
const EEmcSmdGeommEEsmd
const EEmcSmdMapmEEmap
TH1F * hNumberOfPoints
TH1F * hEnergyOfPoints
TH2F * hDistributionOfPoints
TH1F * hTotalEnergy [6]
TH1F * hTotalPointEnergy [6]
std::map< Int_t, StEEmcPointVec_t > mCluster2points
std::map< Int_t, StEEmcClustermPoint2cluster
- Protected Attributes inherited from StMaker
 list of logInput:ActualInput
 list of logOuput:ActualOuput
TList * m_Histograms
 Run Control parameters.
Int_t fTallyMaker [kStFatal+1]
Int_t m_Mode
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.
 Timer object.
 StMemStat for Make.
Int_t fStatus
 StMemStat for Clear.
 Maker status.
- Protected Attributes inherited from TDataSet
TSeqCollection * fList

Additional Inherited Members

- Public Types inherited from StMaker
enum  EDebugLevel { kNormal, kDebug }
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 StMakerNew (const char *classname, const char *name="", void *title=0)
static StMakerGetTopChain ()
static StMakerGetChain ()
static StMakerGetFailedMaker ()
static StMakerGetMaker (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_tGetDbAliases ()
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 TDataSetGetMainSet ()
 return pointer to the main dataset
static TDataSetinstance ()
- 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 StMakerfgTopChain = 0
 list of Histograms
static StMakerfgStChain = 0
 pointer to top StChain
static StMakerfgFailedMaker = 0
 current pointer to StChain
static StTestMakerfgTestMaker = 0
 current pointer to failed maker
static Int_t fgTallyMaker [kStFatal+1] = {0,0,0,0,0}
- Static Protected Attributes inherited from TDataSet
static TDataSetfgMainSet = &mainSet

Detailed Description

Definition at line 46 of file StMyPointMaker.h.

Member Function Documentation

Bool_t StMyPointMaker::AssociateClusters ( const StEEmcSmdClusterVec_t &  c1,
StEEmcSmdClusterVec_t &  c2 

Given a vector of clusters in each SMD plane, find the permutation of c2 such that c1[i], c2[i] forms the best set of candidate points.

c1a list of clusters in the u or v plane, whichever is smaller
c2a list of clusters in the u or v plane, whichever is larger

Definition at line 238 of file StMyPointMaker.cxx.

References energyChi2(), EEmcSmdGeom::getIntersection(), StMaker::GetName(), and StEEmcGenericPointMaker::mEEsmd.

Referenced by Make().

Int_t StMyPointMaker::Make ( )
Bool_t StMyPointMaker::split ( const StEEmcSmdCluster in1,
const StEEmcSmdCluster in2,
StEEmcSmdCluster out1,
StEEmcSmdCluster out2,
Float_t &  chi2 

Given three clusters in1, in2 and out1, the code will determine the best possible division for out1 and return the split in out1 + out2.

first some sanity checks.

get a pointer to the smd geometry class

determine size of the cluster we will attempt to split

we will loop over strips +/- size/2 around the seed strip

We will be doing a chi^2 minimization using the two clusters in the resolved plane as the fitting function. We line up the seed strip of the more energetic cluster with the cluster we are trying to split. Then we scan the lower-energy cluster across to find the id where we minimize

sum_i (Eu_i - Eu_i)^2/Nmip where Eu_i and Eu_i are the measured and projected energies for each strip in the u plane assuming the v plane is resolved...

E`u_i = Ev_j + Ev_k where j and k ...

This is the index in the merged plane where we place the more energetic cluster

We will search for the index where the second cluster goes

Scan location of second cluster

Map energy of both clusters in the opposing view into view of the merged cluster

Map first cluster

Map second cluster

Now compute chi^2

We will be returning these clusters as output

Set keys equal to parent key so that we can tell that they have been split from a cluster later in the chain

To keep with convention, we need to add the seed strip first

Determine weights with which we add the strips to each cluster. Weights will be E1(2)/E1+E2 for the cluster in the opposing smd plane

add the seed strips first

Definition at line 474 of file StMyPointMaker.cxx.

References StEEmcElement::energy(), StEEmcElement::fail(), StEEmcStrip::index(), StEEmcSmdCluster::key(), StEEmcGenericPointMaker::mEEanalysis, StEEmcSmdCluster::seed(), StEEmcSmdCluster::strip(), and StEEmcA2EMaker::strip().

Member Data Documentation

Float_t StMyPointMaker::mSmdMinFrac

minumum fractional energy for SMD clusters to form points w/in tower clusters (e.g. cut points if (E_u+E_v)/E_towers ) < mSmdMinFrac

Definition at line 67 of file StMyPointMaker.h.

The documentation for this class was generated from the following files: