ROOT logo
AliRoot » PHOS » AliPHOSTrigger

class AliPHOSTrigger: public AliTriggerDetector

  Class for trigger analysis.
  Digits are grouped in TRU's (Trigger Units). A TRU consist of 16x28
  crystals ordered fNTRUPhi x fNTRUZ. The algorithm searches all possible
  2x2 and nxn (n multiple of 2) crystal combinations per each TRU, adding the
  digits amplitude and  finding the maximum. If found, look if it is isolated.
  Maxima are transformed in ADC time samples. Each time bin is compared to the trigger
  threshold until it is larger and then, triggers are set. Thresholds need to be fixed.
  Usage:

  //Inside the event loop
  AliPHOSTrigger *tr = new AliPHOSTrigger();//Init Trigger
  tr->SetL0Threshold(100);
  tr->SetL1JetLowPtThreshold(1000);
  tr->SetL1JetMediumPtThreshold(10000);
  tr->SetL1JetHighPtThreshold(20000);

  tr->Trigger(); //Execute Trigger
  tr->Print(""); //Print data members after calculation.


*-- Author: Gustavo Conesa & Yves Schutz (IFIC, CERN)

Function Members (Methods)

public:
AliPHOSTrigger()
AliPHOSTrigger(const AliPHOSTrigger& trig)
virtual~AliPHOSTrigger()
voidTObject::AbstractMethod(const char* method) const
voidAliTriggerDetector::AddInput(TObject* input)
virtual voidTObject::AppendPad(Option_t* option = "")
virtual voidAliTriggerDetector::AssignInputs(const TObjArray& inputs)
virtual voidTObject::Browse(TBrowser* b)
static TClass*Class()
virtual const char*TObject::ClassName() const
virtual voidTNamed::Clear(Option_t* option = "")
virtual TObject*TNamed::Clone(const char* newname = "") const
virtual Int_tTNamed::Compare(const TObject* obj) const
virtual voidTNamed::Copy(TObject& named) const
virtual voidCreateInputs()
virtual voidTObject::Delete(Option_t* option = "")MENU
virtual Int_tTObject::DistancetoPrimitive(Int_t px, Int_t py)
virtual voidTObject::Draw(Option_t* option = "")
virtual voidTObject::DrawClass() constMENU
virtual TObject*TObject::DrawClone(Option_t* option = "") constMENU
virtual voidTObject::Dump() constMENU
virtual voidTObject::Error(const char* method, const char* msgfmt) const
virtual voidTObject::Execute(const char* method, const char* params, Int_t* error = 0)
virtual voidTObject::Execute(TMethod* method, TObjArray* params, Int_t* error = 0)
virtual voidTObject::ExecuteEvent(Int_t event, Int_t px, Int_t py)
virtual voidTObject::Fatal(const char* method, const char* msgfmt) const
virtual voidTNamed::FillBuffer(char*& buffer)
virtual TObject*TObject::FindObject(const char* name) const
virtual TObject*TObject::FindObject(const TObject* obj) const
Float_tGet2x2AmpOutOfPatch() const
Float_tGet2x2AmpOutOfPatchThres() const
Int_tGet2x2CrystalEta() const
Int_tGet2x2CrystalPhi() const
Float_tGet2x2MaxAmplitude() const
Int_tGet2x2SuperModule() const
Int_t*GetADCValuesHighGainMax2x2Sum()
Int_t*GetADCValuesHighGainMaxnxnSum()
Int_t*GetADCValuesLowGainMax2x2Sum()
Int_t*GetADCValuesLowGainMaxnxnSum()
voidGetCrystalPhiEtaIndexInModuleFromTRUIndex(Int_t itru, Int_t iphitru, Int_t ietatru, Int_t& ietaMod, Int_t& iphiMod) const
virtual Option_t*TObject::GetDrawOption() const
static Long_tTObject::GetDtorOnly()
virtual const char*TObject::GetIconName() const
AliTriggerInput*AliTriggerDetector::GetInput(TString& name)
AliTriggerInput*AliTriggerDetector::GetInput(const char* name)
TObjArray*AliTriggerDetector::GetInputs()
Int_tGetIsolPatchSize() const
Float_tGetL0Threshold() const
Float_tGetL1JetHighPtThreshold() const
Float_tGetL1JetLowPtThreshold() const
Float_tGetL1JetMediumPtThreshold() const
Long_tAliTriggerDetector::GetMask() const
virtual const char*TNamed::GetName() const
Int_tGetNTRU() const
Int_tGetNTRUPhi() const
Int_tGetNTRUZ() const
Float_tGetnxnAmpOutOfPatch() const
Float_tGetnxnAmpOutOfPatchThres() const
Int_tGetnxnCrystalEta() const
Int_tGetnxnCrystalPhi() const
Float_tGetnxnMaxAmplitude() const
Int_tGetnxnSuperModule() const
virtual char*TObject::GetObjectInfo(Int_t px, Int_t py) const
static Bool_tTObject::GetObjectStat()
virtual Option_t*TObject::GetOption() const
Int_tGetPatchSize() const
virtual const char*TNamed::GetTitle() const
virtual UInt_tTObject::GetUniqueID() const
virtual Bool_tTObject::HandleTimer(TTimer* timer)
virtual ULong_tTNamed::Hash() const
virtual voidTObject::Info(const char* method, const char* msgfmt) const
virtual Bool_tTObject::InheritsFrom(const char* classname) const
virtual Bool_tTObject::InheritsFrom(const TClass* cl) const
virtual voidTObject::Inspect() constMENU
voidTObject::InvertBit(UInt_t f)
Bool_tIs2x2Isol() const
virtual TClass*IsA() const
virtual Bool_tTObject::IsEqual(const TObject* obj) const
virtual Bool_tTObject::IsFolder() const
Bool_tIsIsolatedInModule() const
Bool_tIsnxnIsol() const
Bool_tTObject::IsOnHeap() const
Bool_tIsSimulation() const
virtual Bool_tTNamed::IsSortable() const
Bool_tTObject::IsZombie() const
virtual voidTNamed::ls(Option_t* option = "") const
voidTObject::MayNotUse(const char* method) const
virtual Bool_tTObject::Notify()
voidTObject::Obsolete(const char* method, const char* asOfVers, const char* removedFromVers) const
static voidTObject::operator delete(void* ptr)
static voidTObject::operator delete(void* ptr, void* vp)
static voidTObject::operator delete[](void* ptr)
static voidTObject::operator delete[](void* ptr, void* vp)
void*TObject::operator new(size_t sz)
void*TObject::operator new(size_t sz, void* vp)
void*TObject::operator new[](size_t sz)
void*TObject::operator new[](size_t sz, void* vp)
virtual voidTObject::Paint(Option_t* option = "")
virtual voidTObject::Pop()
virtual voidPrint(Option_t* opt = "") const
virtual Int_tTObject::Read(const char* name)
virtual voidTObject::RecursiveRemove(TObject* obj)
voidTObject::ResetBit(UInt_t f)
virtual voidTObject::SaveAs(const char* filename = "", Option_t* option = "") constMENU
virtual voidTObject::SavePrimitive(basic_ostream<char,char_traits<char> >& out, Option_t* option = "")
voidSet2x2AmpOutOfPatchThres(Float_t th)
voidTObject::SetBit(UInt_t f)
voidTObject::SetBit(UInt_t f, Bool_t set)
voidSetDigitsList(TClonesArray* digits)
virtual voidTObject::SetDrawOption(Option_t* option = "")MENU
static voidTObject::SetDtorOnly(void* obj)
voidAliTriggerDetector::SetInput(TString& name)
voidAliTriggerDetector::SetInput(const char* name)
voidSetIsolateInModule(Bool_t isol)
voidSetIsolPatchSize(Int_t ps)
voidSetL0Threshold(Int_t amp)
voidSetL1JetHighPtThreshold(Int_t amp)
voidSetL1JetLowPtThreshold(Int_t amp)
voidSetL1JetMediumPtThreshold(Int_t amp)
virtual voidTNamed::SetName(const char* name)MENU
virtual voidTNamed::SetNameTitle(const char* name, const char* title)
voidSetNTRU(Int_t ntru)
voidSetNTRUPhi(Int_t ntru)
voidSetNTRUZ(Int_t ntru)
voidSetnxnAmpOutOfPatchThres(Float_t th)
static voidTObject::SetObjectStat(Bool_t stat)
voidSetPatchSize(Int_t ps)
voidSetSimulation(Bool_t sim)
virtual voidTNamed::SetTitle(const char* title = "")MENU
virtual voidTObject::SetUniqueID(UInt_t uid)
virtual voidShowMembers(TMemberInspector&)
virtual Int_tTNamed::Sizeof() const
virtual voidStreamer(TBuffer&)
voidStreamerNVirtual(TBuffer& ClassDef_StreamerNVirtual_b)
virtual voidTObject::SysError(const char* method, const char* msgfmt) const
Bool_tTObject::TestBit(UInt_t f) const
Int_tTObject::TestBits(UInt_t f) const
virtual voidTrigger()
voidTrigger(TClonesArray* digits)
virtual voidTObject::UseCurrentStyle()
virtual voidTObject::Warning(const char* method, const char* msgfmt) const
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0)
virtual Int_tTObject::Write(const char* name = 0, Int_t option = 0, Int_t bufsize = 0) const
protected:
virtual voidTObject::DoError(int level, const char* location, const char* fmt, va_list va) const
voidTObject::MakeZombie()
private:
voidDoIt()
voidFillTRU(const TClonesArray* digits, const AliPHOSGeometry* geom) const
Bool_tIsPatchIsolated(Int_t iPatchType, const Int_t imod, const Int_t mtru, const Float_t maxamp, const Int_t maxphi, const Int_t maxeta)
voidMakeSlidingCell(Int_t mod, TMatrixD& ampmax2, TMatrixD& ampmaxn)
AliPHOSTrigger&operator=(const AliPHOSTrigger& trig)
voidSetTriggers(Int_t iMod, const TMatrixD& ampmax2, const TMatrixD& ampmaxn)

Data Members

protected:
TObjArrayAliTriggerDetector::fInputsArray of Triggers Inputs (AliTriggerInput class)
Long_tAliTriggerDetector::fMaskTrigger Mask ( bitwise OR of trigger inputs )
TStringTNamed::fNameobject identifier
TStringTNamed::fTitleobject title
private:
Float_tf2x2AmpOutOfPatchAmplitude in isolation cone minus maximum amplitude of the reference patch
Float_tf2x2AmpOutOfPatchThresThreshold to select a trigger as isolated on f2x2AmpOutOfPatch value
Int_tf2x2CrystalEta! and column(eta)
Int_tf2x2CrystalPhi! upper right cell, row(phi)
Float_tf2x2MaxAmp! Maximum 2x2 added amplitude (not overlapped)
Int_tf2x2SM! Module where maximum is found
Int_t*fADCValuesHigh2x2! " high gain " 2x2 "
Int_t*fADCValuesHighnxn! Sampled ADC high gain values for the nxn crystals amplitude sum
Int_t*fADCValuesLow2x2! " low gaing " "
Int_t*fADCValuesLownxn! " low gain "
TClonesArray*fAmpmods! Array of matrices with amplitudes per module
TClonesArray*fAmptrus! Array of matrices with amplitudes per TRU
TClonesArray*fDigitsListArray of digits
Float_tfIs2x2IsolPatch is isolated if f2x2AmpOutOfPatchThres threshold is passed
Float_tfIsnxnIsol
Int_tfIsolPatchSizeIsolation patch size, number of rows or columns to add to
Bool_tfIsolateInModule! Flag to isolate trigger patch in Module or in TRU acceptance
Float_tfL0Threshold! L0 trigger energy threshold
Float_tfL1JetHighPtThreshold! L1 High pT trigger threshold
Float_tfL1JetLowPtThreshold! L1 Low pT trigger threshold
Float_tfL1JetMediumPtThreshold! L1 Medium pT trigger threshold
Int_tfNCrystalsPhi! Number of rows in a TRU
Int_tfNCrystalsZ! Number of columns in a TRU
Int_tfNTRU! Number of TRUs per module
Int_tfNTRUPhi! Number of crystal rows per Phi in one TRU
Int_tfNTRUZ! Number of crystal rows per Z in one TRU
Int_tfPatchSize! Trigger patch factor, to be multiplied to 2x2 cells
Bool_tfSimulation! Flag to do the trigger during simulation or reconstruction
TClonesArray*fTimeRtrus! Array of matrices with time
Float_tfnxnAmpOutOfPatch
Float_tfnxnAmpOutOfPatchThres
Int_tfnxnCrystalEta! and column(eta)
Int_tfnxnCrystalPhi! upper right cell, row(phi)
Float_tfnxnMaxAmp! Maximum nxn added amplitude (overlapped)
Int_tfnxnSM! Module where maximum is found

Class Charts

Inheritance Chart:
TNamed
AliTriggerDetector
AliPHOSTrigger

Function documentation

AliPHOSTrigger()
ctor
AliPHOSTrigger(const AliPHOSTrigger& trig)
 cpy ctor
~AliPHOSTrigger()
 dtor
void CreateInputs()
 inputs
void FillTRU(const TClonesArray* digits, const AliPHOSGeometry* geom) const
void GetCrystalPhiEtaIndexInModuleFromTRUIndex(Int_t itru, Int_t iphitru, Int_t ietatru, Int_t& ietaMod, Int_t& iphiMod) const
 This method transforms the (eta,phi) index of a crystals in a
 TRU matrix into Super Module (eta,phi) index.
Bool_t IsPatchIsolated(Int_t iPatchType, const Int_t imod, const Int_t mtru, const Float_t maxamp, const Int_t maxphi, const Int_t maxeta)
void MakeSlidingCell(Int_t mod, TMatrixD& ampmax2, TMatrixD& ampmaxn)
Sums energy of all possible 2x2 (L0) and nxn (L1) crystals per each TRU.
Fast signal in the experiment is given by 2x2 crystals,
for this reason we loop inside the TRU crystals by 2.
void Print(Option_t* opt = "") const
void SetTriggers(Int_t iMod, const TMatrixD& ampmax2, const TMatrixD& ampmaxn)
Checks the 2x2 and nxn maximum amplitude per each TRU and compares
with the different L0 and L1 triggers thresholds. It finds if maximum amplitudes are isolated.
void Trigger(TClonesArray* digits)
Main Method to select triggers.
void DoIt()
 does the trigger job
void Trigger()
{}
Float_t Get2x2MaxAmplitude() const
Getters
{return f2x2MaxAmp ; }
Float_t GetnxnMaxAmplitude() const
{return fnxnMaxAmp ; }
Int_t Get2x2CrystalPhi() const
{return f2x2CrystalPhi ; }
Int_t GetnxnCrystalPhi() const
{return fnxnCrystalPhi ; }
Int_t Get2x2CrystalEta() const
{return f2x2CrystalEta ; }
Int_t GetnxnCrystalEta() const
{return fnxnCrystalEta ; }
Int_t Get2x2SuperModule() const
{return f2x2SM ; }
Int_t GetnxnSuperModule() const
{return fnxnSM ; }
Int_t * GetADCValuesLowGainMax2x2Sum()
{return fADCValuesLow2x2; }
Int_t * GetADCValuesHighGainMax2x2Sum()
Int_t * GetADCValuesLowGainMaxnxnSum()
{return fADCValuesLownxn; }
Int_t * GetADCValuesHighGainMaxnxnSum()
Float_t GetL0Threshold() const
{return fL0Threshold ; }
Float_t GetL1JetLowPtThreshold() const
Float_t GetL1JetMediumPtThreshold() const
Float_t GetL1JetHighPtThreshold() const
Int_t GetNTRU() const
{return fNTRU ; }
Int_t GetNTRUZ() const
{return fNTRUZ ; }
Int_t GetNTRUPhi() const
{return fNTRUPhi ; }
Int_t GetPatchSize() const
{return fPatchSize ; }
Int_t GetIsolPatchSize() const
{return fIsolPatchSize ; }
Float_t Get2x2AmpOutOfPatch() const
Float_t GetnxnAmpOutOfPatch() const
Float_t Get2x2AmpOutOfPatchThres() const
Float_t GetnxnAmpOutOfPatchThres() const
Bool_t Is2x2Isol() const
{return fIs2x2Isol; }
Bool_t IsnxnIsol() const
{return fIsnxnIsol; }
Bool_t IsSimulation() const
{return fSimulation ; }
Bool_t IsIsolatedInModule() const
{return fIsolateInModule ; }
void SetDigitsList(TClonesArray* digits)
Setters
{fDigitsList = digits ; }
void SetNTRU(Int_t ntru)
{fNTRU = ntru ; }
void SetNTRUZ(Int_t ntru)
{fNTRUZ = ntru ; }
void SetNTRUPhi(Int_t ntru)
{fNTRUPhi = ntru ; }
void SetL0Threshold(Int_t amp)
{fL0Threshold = amp ; }
void SetL1JetLowPtThreshold(Int_t amp)
void SetL1JetMediumPtThreshold(Int_t amp)
void SetL1JetHighPtThreshold(Int_t amp)
void SetPatchSize(Int_t ps)
{ fPatchSize = ps ; }
void SetIsolPatchSize(Int_t ps)
{ fIsolPatchSize = ps ; }
void Set2x2AmpOutOfPatchThres(Float_t th)
void SetnxnAmpOutOfPatchThres(Float_t th)
void SetSimulation(Bool_t sim)
{ fSimulation = sim ; }
void SetIsolateInModule(Bool_t isol)
{ fIsolateInModule = isol ; }