T49Mixer
class description - source file - inheritance tree (.pdf)
protected:
Bool_t CheckBound1(Int_t m)
Bool_t CheckBound2(Int_t m)
Int_t GetUsedUniqueIDXP1(Int_t Idx)
Int_t GetUsedUniqueIDXP1x2(Int_t Idx)
Int_t GetUsedUniqueIDXP2(Int_t Idx)
Int_t GetUsedUniqueIDXP2x1(Int_t Idx)
void Init101()
void InitRnd()
Int_t NofFreeP1x2()
Int_t NofFreeP2x1()
void SetNUsedAfterReplaceP1(Int_t idx)
void SetNUsedAfterReplaceP2(Int_t idx)
void SetNUsedUniqueP1(Int_t idx1)
void SetNUsedUniqueP1x2(Int_t idx1)
void SetNUsedUniqueP2(Int_t idx1)
void SetNUsedUniqueP2x1(Int_t idx2)
void SetUsedUniqueIDXP1(Int_t Idx1, Int_t Idx2)
void SetUsedUniqueIDXP1x2(Int_t Idx1, Int_t Idx2)
void SetUsedUniqueIDXP2(Int_t Idx1, Int_t Idx2)
void SetUsedUniqueIDXP2x1(Int_t Idx1, Int_t Idx2)
void SetUsedUniqueP1(Int_t idx1)
void SetUsedUniqueP1x2(Int_t idx1)
void SetUsedUniqueP2(Int_t idx1)
void SetUsedUniqueP2x1(Int_t idx2)
Bool_t UsedPairP1P1(Int_t idx)
Bool_t UsedPairP1P2(Int_t idx)
Bool_t UsedPairP2P2(Int_t idx)
Bool_t UsedUniqueP1(Int_t idx1)
Bool_t UsedUniqueP1x2(Int_t idx1)
Bool_t UsedUniqueP2(Int_t idx1)
Bool_t UsedUniqueP2x1(Int_t idx2)
public:
T49Mixer(Int_t n = 100)
T49Mixer(Int_t n1, Int_t n2)
T49Mixer(const T49Mixer&)
~T49Mixer()
void AddEvent(TObject* Obj)
void AddEvent(TObject* Obj1, TObject* Obj2)
Int_t AddOne(TObject* Obj)
Int_t AddToP1(TObject* Obj)
Bool_t AddToP1P2(TObject* Obj1, TObject* Obj2)
Int_t AddToP2(TObject* Obj)
void AllUsedReset()
void AllUsedResetP1()
void AllUsedResetP2()
Bool_t CH1(Int_t i, Int_t j)
Bool_t CH2(Int_t i, Int_t j)
Bool_t CH3(Int_t i, Int_t j)
static TClass* Class()
void ClearMixer()
void ClearPool1()
void ClearPool2()
void ClearPools()
void CloseWindows()
void ClrLACode()
void CopyClose()
void Copyright(Int_t opt = 0)
void DumpMixer()
void DumpP1P1()
void DumpP1P1P2P2()
void DumpP1P2()
void DumpP2P2()
void ExitShow()
void GetEvent()
void GetEvent(int i, int j)
void GetEventP1()
void GetEventP1(Int_t i, Int_t j)
void GetEventP12()
void GetEventP12(int i, int j)
void GetEventP12X()
void GetEventP12X(int i, int j)
void GetEventP1X()
void GetEventP1X(Int_t i, Int_t j)
void GetEventP2()
void GetEventP2(int i, int j)
void GetEventP2X()
void GetEventP2X(int i, int j)
void GetEventX()
void GetEventX(int i, int j)
TObject* GetFromP1()
TObject* GetFromP1At(Int_t idx)
TObject* GetFromP2()
TObject* GetFromP2At(Int_t idx)
TObject* GetFromPool1(Int_t& idx)
TObject* GetFromPool2(Int_t& idx)
Char_t* GetLACName(Int_t LA)
Int_t GetLACode()
Int_t GetLACPair()
Int_t GetLACUniPair()
Char_t* GetLAname()
Int_t GetLastP1Call()
Bool_t GetLastP1P1(Int_t& Idx1, Int_t& Idx2)
Bool_t GetLastP1P2(Int_t& Idx1, Int_t& Idx2)
Int_t GetLastP2Call()
Bool_t GetLastP2P2(Int_t& Idx1, Int_t& Idx2)
Bool_t GetLastUniP1P1(Int_t& Idx1, Int_t& Idx2)
Bool_t GetLastUniP1P2(Int_t& Idx1, Int_t& Idx2)
Bool_t GetLastUniP2P2(Int_t& Idx1, Int_t& Idx2)
TObject* GetNuOne()
TObject* GetNuOneP1()
TObject* GetNuOneP2()
Bool_t GetNuPair(TObject** Obj1, TObject** Obj2)
Bool_t GetNuPairP1P1(TObject** Obj1, TObject** Obj2)
Bool_t GetNuPairP1P2(TObject** Obj1, TObject** Obj2)
Bool_t GetNuPairP2P2(TObject** Obj1, TObject** Obj2)
TObject* GetNuROne()
TObject* GetNuROneP1()
TObject* GetNuROneP2()
Bool_t GetNuRPair(TObject** Obj1, TObject** Obj2)
Bool_t GetNuRPairP1P1(TObject** Obj1, TObject** Obj2)
Bool_t GetNuRPairP1P2(TObject** Obj1, TObject** Obj2)
Bool_t GetNuRPairP2P2(TObject** Obj1, TObject** Obj2)
TObject* GetOne()
TObject* GetOneAt(Int_t idx)
Int_t GetP1P2Mode()
Bool_t GetPairAt(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Bool_t GetPairP1P1At(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Bool_t GetPairP1P2At(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Bool_t GetPairP2P2At(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
TObject* GetPart1List()
TObject* GetPart1ListP1()
TObject* GetPart1ListP12()
TObject* GetPart1ListP2()
TObject* GetPart2List()
TObject* GetPart2ListP1()
TObject* GetPart2ListP12()
TObject* GetPart2ListP2()
Bool_t GetRPair(TObject** Obj1, TObject** Obj2)
Bool_t GetRPairP1P1(TObject** Obj1, TObject** Obj2)
Bool_t GetRPairP1P1x(TObject** Obj1, TObject** Obj2)
Bool_t GetRPairP1P2(TObject** Obj1, TObject** Obj2)
Bool_t GetRPairP1P2x(TObject** Obj1, TObject** Obj2)
Bool_t GetRPairP2P2(TObject** Obj1, TObject** Obj2)
Bool_t GetRPairP2P2x(TObject** Obj1, TObject** Obj2)
Bool_t GetRUniquePair(TObject** Obj1, TObject** Obj2)
Bool_t GetRUniquePairP1P1(TObject** Obj1, TObject** Obj2)
Bool_t GetRUniquePairP1P2(TObject** Obj1, TObject** Obj2)
Bool_t GetRUniquePairP2P2(TObject** Obj1, TObject** Obj2)
Bool_t GetUniquePair(TObject** Obj1, TObject** Obj2)
Bool_t GetUniquePairP1P1(TObject** Obj1, TObject** Obj2)
Bool_t GetUniquePairP1P2(TObject** Obj1, TObject** Obj2)
Bool_t GetUniquePairP2P2(TObject** Obj1, TObject** Obj2)
void InitStyle()
virtual TClass* IsA() const
Bool_t IsFull()
Bool_t IsReady()
Int_t NofFree()
Int_t NofFreeP1()
Int_t NofFreeP2()
Int_t NofFreePairs()
Int_t NofFreePairsP1P1()
Int_t NofFreePairsP1P2()
Int_t NofFreePairsP2P2()
Int_t NofFreeUniquePairs()
Int_t NofFreeUniquePairsP1P1()
Int_t NofFreeUniquePairsP1P2()
Int_t NofFreeUniquePairsP2P2()
Int_t NofObjects()
Int_t NofObjectsP1()
Int_t NofObjectsP2()
Int_t NofPairs()
Int_t NofPairsP1P1()
Int_t NofPairsP1P2()
Int_t NofPairsP2P2()
Int_t NofUniquePairs()
Int_t NofUniquePairsP1P1()
Int_t NofUniquePairsP1P2()
Int_t NofUniquePairsP2P2()
Int_t NofUsed()
Int_t NofUsedP1()
Int_t NofUsedP2()
Int_t NofUsedPairs()
Int_t NofUsedPairsP1P1()
Int_t NofUsedPairsP1P2()
Int_t NofUsedPairsP2P2()
Int_t NofUsedUniquePairs()
Int_t NofUsedUniquePairsP1P1()
Int_t NofUsedUniquePairsP1P2()
Int_t NofUsedUniquePairsP2P2()
T49Mixer& operator=(const T49Mixer&)
Bool_t Pool1Full()
Bool_t Pool2Full()
Bool_t PoolsFull()
void PurgeMixer()
void PurgePool1()
void PurgePool2()
void PurgePools()
Int_t PutOne(TObject* Obj)
void PutToMixer(TObject* T1, TObject* T2)
Int_t PutToP1(TObject* Obj)
Bool_t PutToP1P2(TObject* Obj1, TObject* Obj2)
Int_t PutToP2(TObject* Obj)
Int_t ReplaceInP1(TObject* Obj)
Int_t ReplaceInP1At(TObject* Obj, Int_t idx)
Bool_t ReplaceInP1P2(TObject* Obj1, TObject* Obj2)
Bool_t ReplaceInP1P2At(TObject* Obj1, TObject* Obj2, Int_t idx1, Int_t idx2)
Int_t ReplaceInP2(TObject* Obj)
Int_t ReplaceInP2At(TObject* Obj, Int_t idx)
Int_t ReplaceOne(TObject* Obj)
Int_t ReplaceOneAt(TObject* Obj, Int_t idx)
void ResetAllPxPx()
void ResetAllUniPxPx()
void ResetMixer()
void ResetP1P1()
void ResetP1P1_P2P2()
void ResetP1P2()
void ResetP2P2()
void ResetUniP1P1()
void ResetUniP1P2()
void ResetUniP2P2()
void ResetUP1()
void ResetUP2()
void SetMixer(TObjArray* A1, TObjArray* A2)
void SetNUsedOneP1(Int_t idx)
void SetNUsedOneP2(Int_t idx)
void SetNUsedPairP1P1(Int_t idx1, Int_t idx2)
void SetNUsedPairP1P2(Int_t idx1, Int_t idx2)
void SetNUsedPairP2P2(Int_t idx1, Int_t idx2)
void SetP1P2Mode(Int_t m = 0)
Bool_t SetPool1(TObjArray* ObjArray)
Bool_t SetPool2(TObjArray* ObjArray)
Bool_t SetPools(TObjArray* ObjA1, TObjArray* ObjA2)
void SetUsedOneP1(Int_t idx)
void SetUsedOneP2(Int_t idx)
void SetUsedPairP1P1(Int_t idx1, Int_t idx2)
void SetUsedPairP1P2(Int_t idx1, Int_t idx2)
void SetUsedPairP2P2(Int_t idx1, Int_t idx2)
void SetVerbose(Int_t n = 1)
void Show()
virtual void ShowMembers(TMemberInspector& insp, char* parent)
void ShowMixer()
void ShowP1()
void ShowP1P1()
void ShowP1P2()
void ShowP2()
void ShowP2P2()
void ShowUP1P1()
void ShowUP1P2()
void ShowUP2P2()
virtual void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
Bool_t UsedOneP1(Int_t idx)
Bool_t UsedOneP2(Int_t idx)
Bool_t UsedPairP1P1(Int_t idx1, Int_t idx2)
Bool_t UsedPairP1P2(Int_t idx1, Int_t idx2)
Bool_t UsedPairP2P2(Int_t idx1, Int_t idx2)
protected:
Int_t nPools Number of active Pools (1 or 2)
TObjArray* fPool1
TObjArray* fPool2 Pool1 and Pool2
Int_t fN1MAX
Int_t fN2MAX Original n1,n2 called in Constructor
Int_t fIdx1MAX
Int_t fIdx2MAX Global max. value of Idx1,Idx2 = fNxMAX-1
Int_t fMaxIdx1
Int_t fMaxIdx2 Current max. value of Idx1,Idx2 = nObj-1
Int_t nMaxMXX
Int_t nMaxMXY x-size of fMaskXX and fMaskXY
Int_t nObjects1
Int_t nObjects2 Number of objects in Pool1, Pool2
TArrayC* fUsed1
TArrayC* fUsed2 Mask of Used Objects in Pool1 and Pool2
Int_t fP1Full
Int_t fP2Full Flags to indicate nObjects == nMaxObjects
Int_t fP1P2Mode Mode for P1P2 pairs (1 -> excludes (i,i) )
Int_t fP1Rx
Int_t fP2Rx Replacement counters for P1, P2 (PUT)
Int_t fL1
Int_t fL2 Last idx1, idx2 for Not Used P1 and P2 Objects
Int_t fL11x1
Int_t fL11x2 Last idx1 and idx2 for P1P1Nused pairs
Int_t fL22x1
Int_t fL22x2 Last idx1 and idx2 for P2P2Nused pairs
Int_t fL12x1
Int_t fL12x2 Last idx1 and idx2 for P1P2Nused pairs
Int_t fR11x1
Int_t fR11x2 Last idx1 and idx2 for RP1P1Nused pairs
Int_t fR22x1
Int_t fR22x2 Last idx1 and idx2 for RP2P2Nused pairs
Int_t fR12x1
Int_t fR12x2 Last idx1 and idx2 for RP1P2Nused pairs
Int_t fU11x1
Int_t fU11x2 Last idx1 and idx2 for P1P1Unique pairs
Int_t fU22x1
Int_t fU22x2 Last idx1 and idx2 for P2P2Unique pairs
Int_t fU12x1
Int_t fU12x2 Last idx1 and idx2 for P1P2Unique pairs
Int_t fLAC
Int_t fLACp
Int_t fLACu
Int_t fLAC1
Int_t fLAC2 Last Action Codes
Char_t fLACName[100] Last Action Name
Int_t fID ID if this Mixer in GLOBAL gT49Mixer TObjArray
Char_t fIDS[100] Name+ID to identify Hist, Canvas
Int_t fVerbose Flag to print out info for debugging
Int_t fSeeFlag to make Pool1 & Pool2 blind during Get action
Int_t nUsedP1P1
Int_t nUsedP2P2 counter of Used P1P1 and P2P2 Pairs
Int_t nUsedP1P2 counter of Used P1P2 Pairs
Int_t nUsedUniP1P1
Int_t nUsedUniP2P2 counter of Used Unique P1P1 and P2P2 Pairs
Int_t nUsedUniP1P2
Int_t nUsedUniP2P1 counter of Used Unique P1P2-P2P1 Pairs
TArrayI* fMaskXX
TArrayI* fMaskXY Mask of Used PairsP1P1, P2P2 and P1P2;
TArrayI* fUniq11
TArrayI* fUniq22 Mask & Memory of Used Unique P1-P1 and P2-P2 Pairs
TArrayI* fUniq12
TArrayI* fUniq21 Mask & Memory of Used Unique P1-P2 Pairs
UInt_t fx010[32]
UInt_t fx101[32] Bit Masks for OR, AND operations
TObject* O1
TObject* O2 Two TObject pointers used in B.C. module
Int_t I1
Int_t I2 Last indexes used in B.C. module
TH2C* HistXX
TH2C* HistYY
TH2C* HistXY Histo for P1P1, P2P2 and P1P2 pairs
TDialogCanvas* cXX
TDialogCanvas* cYY
TDialogCanvas* cXY
TDialogCanvas* cP1
TDialogCanvas* cP2
TDialogCanvas* cUP1P1 canvas for P1P1, P2P2, P1P2, P1, P2
TDialogCanvas* cUP2P2
TDialogCanvas* cUP1P2 canvas for Unique P1P1, P2P2, P1P2
TDialogCanvas* cGIF
TDialogCanvas* cEx canvas for Graph.Int.Face & for Exit
TStyle TS TStyle for GUI
*************************
* T49MiXeR CLASS V1.0 *
*************************
T49Mixer Class is a software tool designed for the Event mixing technique.
It can generate various types of Object pairs e.g.:
1) Random Pair types
2) Unique Pair types
T49Mixer has two Pools (P1 and P2) where objects can be stored.
Therefore it can generate P1P1, P2P2 and P1P2 pairs.
In the case of Unique pairs each object is used only once for pair generation.
T49Mixer can generate also Random Unique Pairs - see e.g. GetRUniquePairP1P1()
Method PutToP1 (the same for P2) stores your objects into the Mixer's Pool
via Object->Clone() method. This creates a copy of the object in the Pool.
If Pool is full, old objects are replacedi (one after another).
While replacing old object X a simple "delete X" call is used to remove
old object. Make sure X->Clone() and "delete X" works well for your X !
(For TObjArray type "delete X" works well if X->SetOwner(1) is used.)
If your objects are not Clonable you can still mix them in T49Mixer:
Prepare TObjArray* W of pointers to your objects and use SetPool1(W) method.
In this case you take responsibility for the storage of objects being mixed.
Pools of T49Mixer do not have to be full to generate pairs. You can ask for
the pair any time. For number of pairs in T49Mixer call e.g. NofPairsP1P2().
T49Mixer remembers which pairs have been generated.
Therefore you can ask for not used pairs of a given type e.g.:
- GetNuPairP1P2 (first Not used P1P2 pair )
- GetNuRPairP1P2 (random Not used P1P2 pair - requires more CPU time)
T49Mixer has its own Graphical Interface Show() which shows current
status of the Mixer graphically:
- Number of objects in the pool ShowP1()
- Number of generated pairs ShowP1P1()
- Status of Unique pairs ShowUP1P1()
Typical usage of T49Mixer can look as follows:
1) declaration e.g. T49Mixer* MX = new T49Mixer(100,1030);
2) filling of Pool(s) MX->PutToP1(Obj1) or MX->SetPool1(ObjArray)
3) generating pairs MX->GetRPairP1P1(&Obj1,&Obj2);
4) emptying the pools MX->PurgePool1() or MX->ClearPool1()
5) another filling - 2) and generating pairs - 3)
6) deleting mixer if created on Heap (as shown here)
Do not forget: GetRPairP1P1(&Obj1,&Obj2) can repeat same pairs.
Enjoy T49Mixer !
Designed at
MPI
19.11.1999.
Send comments to
PFILIPS
.
T49Mixer(Int_t n)
Constructor to initialize the mixer with 1 Pool.
n - number of objects to be stored (default 100)
Declare as: T49Mixer TX(1700); or T49Mixer TX;
Heap declaration: T49Mixer* TX = new T49Mixer();
T49Mixer(Int_t n1, Int_t n2)
Constructor to initialize the mixer with 2 Pools
n1, n2 - number of objects to be stored in Pools
Declare: T49Mixer DX(100,200); (on Data Segment)
or: T49Mixer* HX = new T49Mixer(500,700); (Heap)
~T49Mixer()
T49Mixer Destructor
Bool_t IsFull()
Return "true" if Pools of mixer are full
Identical to PoolsFull()
void PutToMixer(TObject *Obj1, TObject *Obj2)
Put Obj1 to Pool1 and Obj2 to Pool2
Identical to PutToP1P2(Obj1,Obj2)
Int_t PutOne(TObject *Obj)
Put object Obj into Pool1 of Mixer
Identical to PutToP1(Obj)
Int_t NofObjects()
Get number of objects in Pool1
Identical to NofObjectsP1()
Int_t NofUsed()
Get number of used objects in Pool1
Identical to NofUsedP1()
Int_t NofFree()
Get number of not used objects in Pool1
Identical to NofFreeP1()
TObject* GetOne()
Get pointer to random object in Pool1 of Mixer
Identical to GetFromP1()
TObject* GetOneAt(Int_t idx)
Get pointer to Object in Pool1 of Mixer at position idx
Identical to GetFromP1At(idx)
TObject* GetNuOne()
Get pointer to Not Used object in Pool1 of Mixer
Identical to GetNuOneP1()
TObject* GetNuROne()
Get pointer to Not Used Random object in Pool1 of Mixer
Identical to GetNuROneP1()
Int_t NofPairs()
Get number of P1P1 pairs of objects in Pool1
Identical to NofPairsP1P1()
Int_t NofUsedPairs()
Get number of Used P1P1 pairs of objects in Pool1
Identical to NofUsedPairsP1P1()
Int_t NofFreePairs()
Get number of not used P1P1 pairs of objects in Pool1
Identical to NofFreePairsP1P1()
Bool_t GetPairAt(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Set pointers Obj1, Obj2 to pair of objects in Pool1 at positions idx1, idx2
Identical to GetPairP1P1At(Obj1,Obj2,idx1,idx2)
Bool_t GetRPair(TObject** Obj1,TObject** Obj2)
Set pointers Obj1, Obj2 to pair of objects in Pool1 at random and different positions idx1, idx2
Identical to GetRPairP1P1(Obj1,Obj2)
Bool_t GetNuPair(TObject** Obj1,TObject** Obj2)
Set pointers Obj1, Obj2 to not used pair of objects in Pool1
Identical to GetNuPairP1P1(Obj1,Obj2)
Bool_t GetNuRPair(TObject** Obj1,TObject** Obj2)
Set pointers Obj1, Obj2 to random not used pair of objects in Pool1
Identical to GetNuRPairP1P1(Obj1,Obj2)
Int_t NofUniquePairs()
Get number of Unique P1P1 pairs of objects in Pool1
Identical to NofUniquePairsP1P1()
Int_t NofUsedUniquePairs()
Get number of Used Unique P1P1 pairs of objects in Pool1
Identical to NofUsedUniquePairsP1P1()
Int_t NofFreeUniquePairs()
Get number of not used Unique P1P1 pairs of objects in Pool1
Identical to NofFreeUniquePairsP1P1()
Bool_t GetUniquePair(TObject** Obj1,TObject** Obj2)
Set pointers Obj1, Obj2 to Unique pair of objects in Pool1
Identical to GetUniquePairP1P1(Obj1,Obj2)
Bool_t GetRUniquePair(TObject** Obj1,TObject** Obj2)
Set pointers Obj1, Obj2 to Random Unique pair of objects in Pool1
Identical to GetRUniquePairP1P1(Obj1,Obj2)
void PurgeMixer()
Delete objects in Pools of Mixer
Identical to PurgePools()
void SetMixer(TObjArray *ObjA1, TObjArray *ObjA2)
Copy object pointers from TObjArrays into Pools
Identical to SetPools(ObjA1,ObjA2)
void ClearMixer()
Clear TObject pointers (=0) in Pools of Mixer
Identical To ClearPools()
void ResetMixer()
Reset all information about usage of pairs and objects
Content of Pools remains untouched
Identical to AllUsedReset()
void ShowMixer()
Show Graphic User Interface of Mixer
Identical to Show()
void DumpMixer()
Print ASCII information about pairs in mixer
Identical to DumpP1P1() and DumpP2P2() + DumpP1P2()
Char_t* GetLAname()
Return string name of last recorded action performed in Mixer
Identical to GetLACName( GetLACode() )
Bool_t PoolsFull()
Return "true" if Pools of mixer are full
Bool_t Pool1Full()
Return "true" if Pool1 is full
Bool_t Pool2Full()
Return "true" if Pool2 is full
void PurgePools()
Delete objects in Pool1 and also in Pool2 if exists
void PurgePool1()
Delete Objects in Pool1
void PurgePool2()
Delete Objects in Pool2
void ClearPools()
Set TObject pointers = 0 in Pool1 & Pool2
Use after SetPools() otherwise heap leaks
This does not reset Used/Notused info.
void ClearPool1()
Set all Pool1 TObject pointers = 0
Use after SetPool1(), otherwise heap leak
This does not reset Used/Notused info.
void ClearPool2()
Set all Pool2 TObject pointers = 0
Use after SetPool2(), otherwise heap leak
This does not reset Used/Notused info.
void Show()
T49Mixer Graphic User Interface
Shows status of Pools and generated pairs
void ShowP1()
Show Pool1 status
void ShowP2()
Show Pool2 status
void ShowP1P1()
Show P1P1 pairs status
void ShowP2P2()
Show P2P2 pairs status
void ShowP1P2()
Show P1P2 pairs status
void ShowUP1P1()
Show UniqueP1P1 pairs status
void ShowUP2P2()
Show UniqueP2P2 pairs status
void ShowUP1P2()
Show UniqueP1P2 pairs status
void Copyright(Int_t opt)
Copyright window with Button option
opt=0 for Rights ; opt=1 for Exit GUI
void CopyClose()
Close Copyright window
void CloseWindows()
Close all GUI objects
void ExitShow()
T49Mixer GUI destructor
void DumpP1P1P2P2()
Print status of P1P1 and P2P2 pairs in ASCII format
void DumpP1P2()
Print status of P1P2 pairs in ASCII format
void DumpP1P1()
Print status of P1P1 pairs in ASCII format
void DumpP2P2()
Print status of P2P2 pairs in ASCII format
void AllUsedReset()
Clear all Used/Nused information in Mixer (all pairs and objects)
void AllUsedResetP1()
Clear all Used/Nused information in Pool1 (pairs and objects)
void AllUsedResetP2()
Clear all Used/Nused information in Pool2 (pairs and objects)
void ResetUP1()
Set all TObjects in Pool1 as NotUsed
void ResetUP2()
Set all TObjects in Pool2 as NotUsed
void ResetAllPxPx()
Clear Used/Nused P1P1, P1P2, P2P2 pairs information
void ResetP1P1_P2P2()
Clear Used/Nused P1P1 and P2P2 pairs information
Call also for fast P1P1 case if only Pool1 used
void ResetP1P1()
Clear Used/Nused P1P1 pairs information
note: ResetP1P1_P2P2() is faster
void ResetP2P2()
Clear Used/Nused P2P2 pairs information
void ResetP1P2()
Clear Used/Nused P1P2 pairs information
(i,i) pairs forbidden if SetP1P2Mode(1)
void SetP1P2Mode(Int_t m)
Set P1P2Mode = 1 to exlude generation of P1P2(i,i) pairs
void ResetAllUniPxPx()
Clear Used/Nused Unique (P1P1, P1P2, P2P2) pairs information
void ResetUniP1P1()
Clear Used/Nused P1P1 Unique pairs information
void ResetUniP2P2()
Clear Used/Nused P2P2 Unique pairs information
void ResetUniP1P2()
Clear Used/Nused P1P2 Unique pairs information
Bool_t SetPools(TObjArray *ObjA1, TObjArray *ObjA2)
Copy pointers of TObjects (from TObjArrays) into Pools
+ reset Used/NotUsed status of changed pairs & Objects
Use only if Pools are empty e.g. after ClearPools()
Note: This is FASTER then SetPool1() + SetPool2()
Bool_t SetPool1(TObjArray *ObjA)
Copy pointers of TObjects (from TObjArray) into Pool1
+reset Used/NotUsed status of changed pairs & Objects
Use only if Pool1 is empty e.g. after ClearPool1()
Bool_t SetPool2(TObjArray *ObjA)
Copy pointers of TObjects (from TObjArray) into Pool2
+reset Used/NotUsed status of changed pairs & Objects
Use only if Pool2 is empty e.g. after ClearPool2()
Int_t AddOne(TObject *Obj)
Identical to AddToP1(Obj)
Int_t AddToP1(TObject *Obj)
Add TObject to Pool1 = create cloned copy of TObject in Pool1
returns internal position of TObject in the Pool
Int_t AddToP2(TObject *Obj)
Add TObject to Pool2 = create cloned copy of TObject in Pool2
returns internal position of TObject in the Pool
Bool_t AddToP1P2(TObject *Obj1, TObject *Obj2)
Add Obj1 to Pool1 & Add Obj2 to Pool2
Int_t ReplaceOneAt(TObject *Obj, Int_t idx)
Identical to ReplaceInP1At(Obj,idx)
Int_t ReplaceInP1At(TObject *Obj, Int_t idx)
Replace = delete old TObject + Add new TObject in Pool1 at position idx
Int_t ReplaceInP2At(TObject *Obj, Int_t idx)
Replace = delete old TObject + Add new TObject in Pool2 at position idx
Bool_t ReplaceInP1P2At(TObject *Obj1, TObject *Obj2, Int_t idx1, Int_t idx2)
Replace (Obj1 in Pool1 , Obj2 in Pool2) at positions (idx1 , idx2)
Int_t ReplaceOne(TObject *Obj)
Identical to ReplaceInP1(Obj)
Int_t ReplaceInP1(TObject *Obj)
Replace = delete old and Add new TObject in Pool1
at position idx internally increasing
Int_t ReplaceInP2(TObject *Obj)
Replace = delete old and Add new TObject in Pool1
at position idx internally increasing
Bool_t ReplaceInP1P2(TObject *Obj1, TObject *Obj2)
Replace Obj1 in Pool1 and Obj2 in Pool2
at positions idx1 & idx2 internally increasing
Bool_t PutToP1P2(TObject *Obj1, TObject *Obj2)
Put Obj1 to Pool1 and put Obj2 to Pool2
Int_t PutToP1(TObject *Obj)
AddToP1(Obj) or ReplaceInP1(Obj) if Pool1 is full
returns position of Object in Pool
Internal increasing counter is used for replacement.
Int_t PutToP2(TObject *Obj)
AddToP2(Obj) or ReplaceInP2(Obj) if Pool2 is full
returns position of Object in Pool
Internal increasing counter is used for replacement.
TObject* GetFromP1()
Get pointer to Randomly chosen TObject in Pool1
TObject is marked as Used
TObject* GetFromP2()
Get pointer to Randomly chosen TObject in Pool2
TObject is marked as Used
TObject* GetFromPool1(Int_t &idx)
Internal routine
TObject* GetFromPool2(Int_t &idx)
Internal routine
TObject* GetNuOneP1()
Get pointer to first NotUsed TObject in Pool1
TObject is marked as Used
TObject* GetNuOneP2()
Get pointer to first NotUsed TObject in Pool2
TObject is marked as Used
TObject* GetNuROneP1()
Get pointer to random NotUsed TObject in Pool1
TObject is marked as Used
TObject* GetNuROneP2()
Get pointer to random NotUsed TObject in Pool2
TObject is marked as Used
TObject* GetFromP1At(Int_t idx)
Get pointer to TObject in Pool1 at position idx
TObject is marked as Used
TObject* GetFromP2At(Int_t idx)
Get pointer to TObject in Pool2 at position idx
TObject is marked as Used
Bool_t GetPairP1P1At(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Get pair of two Objects from Pool1 at (idx1,idx2)
pair is marked as Used
Call by: GetPairP1P1At(&Obj1, &Obj2,i,j)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetPairP2P2At(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Get pair of two Objects from Pool2 at (idx1,idx2)
pair is marked as Used
Call by: GetPairP2P2At(&Obj1, &Obj2,i,j)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetPairP1P2At(TObject** Obj1, TObject** Obj2, Int_t idx1, Int_t idx2)
Get pair of Objects from Pool1 and Pool2 at (idx1,idx2)
pair is marked as Used
Call by: GetPairP1P2At(&Obj1, &Obj2,i,j)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRPairP1P1(TObject** Obj1, TObject** Obj2)
Get random pair of ANY two Objects from Pool1
pair is marked as Used
Call by: GetRPairP1P1(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRPairP1P1x(TObject** Obj1, TObject** Obj2)
Get random pair of ANY two Objects from Pool1
pair is NOT marked as Used
Call by: GetRPairP1P1x(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRPairP2P2(TObject** Obj1, TObject** Obj2)
Get random pair of ANY two Objects from Pool2
pair is marked as Used
Call by: GetRPairP2P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRPairP2P2x(TObject** Obj1, TObject** Obj2)
Get random pair of ANY two Objects from Pool2
pair is NOT marked as Used
Call by: GetRPairP2P2x(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRPairP1P2(TObject** Obj1, TObject** Obj2)
Get random pair of ANY Objects from Pool1 and Pool2
pair is marked as Used
Call by: GetRPairP1P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRPairP1P2x(TObject** Obj1, TObject** Obj2)
Get random pair of ANY Objects from Pool1 and Pool2
pair is NOT marked as Used
Call by: GetRPairP1P2x(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetNuPairP1P1(TObject** Obj1,TObject** Obj2)
Get first Not used pair of two Objects from Pool1
and mark pair as Used
Call by: GetNuPairP1P1(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetNuPairP2P2(TObject** Obj1,TObject** Obj2)
Get first Not used pair of two Objects from Pool2
and mark pair as Used
Call by: GetNuPairP2P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetNuPairP1P2(TObject** Obj1,TObject** Obj2)
Get first Not used pair of Objects from Pool1 and Pool2
and mark pair as Used
Call by: GetNuPairP1P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetNuRPairP1P1(TObject** Obj1,TObject** Obj2)
Get random Not used pair of two Objects from Pool1
and mark pair as Used
Call by: GetNuRPairP1P1(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetNuRPairP2P2(TObject** Obj1,TObject** Obj2)
Get random Not used pair of two Objects from Pool2
and mark pair as Used
Call by: GetNuRPairP2P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetNuRPairP1P2(TObject** Obj1,TObject** Obj2)
Get random Not used pair of Objects from Pool1 and Pool2
and mark pair as Used
Call by: GetNuRPairP1P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetUniquePairP1P1(TObject** Obj1,TObject** Obj2)
Get Unique pair of two Objects from Pool1
and mark Unique pair as Used
Call by: GetUniquePairP1P1(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetUniquePairP2P2(TObject** Obj1,TObject** Obj2)
Get Unique pair of two Objects from Pool2
and mark Unique pair as Used
Call by: GetUniquePairP2P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetUniquePairP1P2(TObject** Obj1,TObject** Obj2)
Get Unique pair of Objects from Pool1 and Pool2
and mark Unique pair as Used
Call by: GetUniquePairP1P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRUniquePairP1P1(TObject** Obj1,TObject** Obj2)
Get random Unique pair of two Objects from Pool1
and mark Unique pair as Used
Call by: GetRUniquePairP1P1(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRUniquePairP2P2(TObject** Obj1,TObject** Obj2)
Get random Unique pair of two Objects from Pool2
and mark Unique pair as Used
Call by: GetRUniquePairP2P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Bool_t GetRUniquePairP1P2(TObject** Obj1,TObject** Obj2)
Get random Unique pair of Objects from Pool1 and Pool2
and mark Unique pair as Used
Call by: GetRUniquePairP1P2(&Obj1, &Obj2)
since Obj1, Obj2 are set inside
Declare Obj1,Obj2 as TObject *Obj1,*Obj2
Int_t NofObjectsP1()
Get number of Objects in Pool1
Int_t NofObjectsP2()
Get number of Objects in Pool2
Int_t NofUsedP1()
Get number of Used Objects in Pool1
Int_t NofUsedP2()
Get number of Used Objects in Pool2
Int_t NofFreeP1()
Get number of Free = Not Used Objects in Pool1
Int_t NofFreeP2()
Get number of Free = Not Used Objects in Pool2
Int_t NofPairsP1P1()
Get number of P1P1 pairs
Int_t NofPairsP2P2()
Get number of P2P2 pairs
Int_t NofPairsP1P2()
Get number of P1P2 pairs
Int_t NofUsedPairsP1P1()
Get number of Used P1P1 pairs
Int_t NofUsedPairsP2P2()
Get number of Used P2P2 pairs
Int_t NofUsedPairsP1P2()
Get number of Used P1P2 pairs
Int_t NofFreePairsP1P1()
Get number of Free = NotUsed P1P1 pairs
Int_t NofFreePairsP2P2()
Get number of Free = NotUsed P2P2 pairs
Int_t NofFreePairsP1P2()
Get number of Free = NotUsed P1P2 pairs
Int_t NofUniquePairsP1P1()
Get number of Unique P1P1 pairs
Int_t NofUniquePairsP2P2()
Get number of Unique P2P2 pairs
Int_t NofUniquePairsP1P2()
Get number of Unique P1P2 pairs
Int_t NofUsedUniquePairsP1P1()
Get number of Used Unique P1P1 pairs
Int_t NofUsedUniquePairsP2P2()
Get number of Used Unique P2P2 pairs
Int_t NofUsedUniquePairsP1P2()
Get number of Used Unique P1P2 pairs
Int_t NofFreeUniquePairsP1P1()
Get number of Free Unique P1P1 pairs
Int_t NofFreeUniquePairsP2P2()
Get number of Free Unique P2P2 pairs
Int_t NofFreeUniquePairsP1P2()
Get number of Free Unique P1P2 pairs
Int_t NofFreeP1x2()
Internal routine
Int_t NofFreeP2x1()
Internal routine
Bool_t UsedOneP1(Int_t idx)
Return Used/Nused status of Object in Pool1 at position idx
void SetUsedOneP1(Int_t idx)
Mark Object in Pool1 at position idx as Used
void SetNUsedOneP1(Int_t idx)
Mark Object in Pool1 at position idx as NotUsed
Bool_t UsedOneP2(Int_t idx)
Return Used/Nused status of Object in Pool1 at position idx
void SetUsedOneP2(Int_t idx)
Mark Object in Pool1 at position idx as Used
void SetNUsedOneP2(Int_t idx)
Mark Object in Pool1 at position idx as NotUsed
Bool_t UsedPairP1P1(Int_t idx1, Int_t idx2)
Return Used/Nused status of P1P1 pair (idx1,idx2)
Bool_t UsedPairP1P1(Int_t idx)
Internal routine
void SetUsedPairP1P1(Int_t idx1, Int_t idx2)
Mark P1P1 pair (idx1,idx2) as Used
void SetNUsedPairP1P1(Int_t idx1, Int_t idx2)
Mark P1P1 pair (idx1,idx2) as NotUsed
Bool_t UsedPairP2P2(Int_t idx1, Int_t idx2)
Return Used/Nused status of P2P2 pair (idx1,idx2)
Bool_t UsedPairP2P2(Int_t idx)
Internal routine
void SetUsedPairP2P2(Int_t idx1, Int_t idx2)
Mark P2P2 pair (idx1,idx2) as Used
void SetNUsedPairP2P2(Int_t idx1, Int_t idx2)
Mark P2P2 pair (idx1,idx2) as NotUsed
Bool_t UsedPairP1P2(Int_t idx1, Int_t idx2)
Return Used/Nused status of P1P2 pair (idx1,idx2)
Bool_t UsedPairP1P2(Int_t idx)
Internal routine
void SetUsedPairP1P2(Int_t idx1, Int_t idx2)
Mark P1P2 pair (idx1,idx2) as Used
void SetNUsedPairP1P2(Int_t idx1, Int_t idx2)
Mark P1P2 pair (idx1,idx2) as NotUsed
Bool_t UsedUniqueP1(Int_t idx1)
Return UniqueP1P1 Used/Nused status of TObject in Pool1 at (idx1)
void SetUsedUniqueP1(Int_t idx1)
Mark TObject in Pool1 at (idx1) as Used for UniqueP1P1 pairs
void SetNUsedUniqueP1(Int_t idx1)
Mark TObject in Pool1 at (idx1) as NotUsed for UniqueP1P1 pairs
Bool_t UsedUniqueP2(Int_t idx1)
Return UniqueP2P2 Used/Nused status of TObject in Pool2 at (idx1)
void SetUsedUniqueP2(Int_t idx1)
Mark TObject in Pool2 at (idx1) as Used for Unique P2P2 pairs
void SetNUsedUniqueP2(Int_t idx1)
Mark TObject in Pool2 at (idx1) as NotUsed for UniqueP2P2 pairs
Bool_t UsedUniqueP1x2(Int_t idx1)
Return UniqueP1P2 Used/Nused status of TObject in Pool1 at (idx1)
void SetUsedUniqueP1x2(Int_t idx1)
Mark TObject in Pool1 at (idx1) as Used for Unique P1P2 pairs
void SetNUsedUniqueP1x2(Int_t idx1)
Mark TObject in Pool1 at (idx1) as NotUsed for Unique P1P2 pairs
Bool_t UsedUniqueP2x1(Int_t idx2)
Return UniqueP1P2 Used/Nused status of TObject in Pool2 at (idx2)
void SetUsedUniqueP2x1(Int_t idx2)
Mark TObject in Pool2 at (idx2) as Used for Unique P1P2 pairs
void SetNUsedUniqueP2x1(Int_t idx2)
Mark TObject in Pool2 at (idx2) as NotUsed for Unique P1P2 pairs
void SetUsedUniqueIDXP1(Int_t Idx1, Int_t Idx2)
Internal routine
Int_t GetUsedUniqueIDXP1(Int_t idx)
Internal routine
void SetUsedUniqueIDXP2(Int_t Idx1, Int_t Idx2)
Internal routine
Int_t GetUsedUniqueIDXP2(Int_t idx)
Internal routine
void SetUsedUniqueIDXP1x2(Int_t Idx1, Int_t Idx2)
Internal routine
Int_t GetUsedUniqueIDXP1x2(Int_t idx)
Internal routine
void SetUsedUniqueIDXP2x1(Int_t Idx1, Int_t Idx2)
Internal routine
Int_t GetUsedUniqueIDXP2x1(Int_t idx)
Internal routine
void SetNUsedAfterReplaceP1(Int_t idx)
Internal routine
void SetNUsedAfterReplaceP2(Int_t idx)
Internal routine
void InitRnd()
Initialize and randomize generator
void InitStyle()
Set TStyle for GUI
void Init101()
Set internal bit masks for AND/OR 32bit operations
Bool_t GetLastUniP1P1(Int_t &Idx1,Int_t &Idx2)
Get (idx1,idx2) of Last generated Unique P1P1 pair
Call: GetLastUniP1P1(Idx1,Idx2); // Int_t Idx1,Idx2;
Bool_t GetLastUniP1P2(Int_t &Idx1,Int_t &Idx2)
Get (idx1,idx2) of Last generated Unique P1P2 pair
Call: GetLastUniP1P2(Idx1,Idx2); // Int_t Idx1,Idx2;
Bool_t GetLastUniP2P2(Int_t &Idx1,Int_t &Idx2)
Get (idx1,idx2) of Last generated Unique P2P2 pair
Call: GetLastUniP2P2(Idx1,Idx2); // Int_t Idx1,Idx2;
Bool_t GetLastP1P1(Int_t &Idx1,Int_t &Idx2)
Get (idx1,idx2) of Last generated NotUsed P1P1 pair
Call: GetLastP1P1(Idx1,Idx2); // Int_t Idx1,Idx2;
Bool_t GetLastP2P2(Int_t &Idx1,Int_t &Idx2)
Get (idx1,idx2) of Last generated NotUsed P2P2 pair
Call: GetLastP2P2(Idx1,Idx2); // Int_t Idx1,Idx2;
Bool_t GetLastP1P2(Int_t &Idx1,Int_t &Idx2)
Get (idx1,idx2) of Last generated NotUsed P1P2 pair
Call: GetLastP1P2(Idx1,Idx2); // Int_t Idx1,Idx2;
Char_t* GetLACName(Int_t LA)
Return string name of last operation with code LA
Inline Functions
Bool_t CheckBound1(Int_t m)
Bool_t CheckBound2(Int_t m)
void SetVerbose(Int_t n = 1)
Int_t GetP1P2Mode()
Int_t GetLACode()
void ClrLACode()
Int_t GetLastP1Call()
Int_t GetLastP2Call()
Int_t GetLACPair()
Int_t GetLACUniPair()
Bool_t IsReady()
Bool_t CH1(Int_t i, Int_t j)
Bool_t CH2(Int_t i, Int_t j)
Bool_t CH3(Int_t i, Int_t j)
void AddEvent(TObject* Obj)
void AddEvent(TObject* Obj1, TObject* Obj2)
void GetEvent()
void GetEvent(int i, int j)
void GetEventX()
void GetEventX(int i, int j)
TObject* GetPart1List()
TObject* GetPart2List()
void GetEventP1()
void GetEventP1(Int_t i, Int_t j)
void GetEventP1X()
void GetEventP1X(Int_t i, Int_t j)
TObject* GetPart1ListP1()
TObject* GetPart2ListP1()
void GetEventP2()
void GetEventP2X()
void GetEventP2(int i, int j)
void GetEventP2X(int i, int j)
TObject* GetPart1ListP2()
TObject* GetPart2ListP2()
void GetEventP12()
void GetEventP12X()
void GetEventP12(int i, int j)
void GetEventP12X(int i, int j)
TObject* GetPart1ListP12()
TObject* GetPart2ListP12()
TClass* Class()
TClass* IsA() const
void ShowMembers(TMemberInspector& insp, char* parent)
void Streamer(TBuffer& b)
void StreamerNVirtual(TBuffer& b)
T49Mixer T49Mixer(const T49Mixer&)
T49Mixer& operator=(const T49Mixer&)
Last update: Thu Aug 17 15:32:09 2006
ROOT page - Class index - Class Hierarchy - 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.