X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrigger.cxx;h=074ff7ffe6bd22633adb189fd1defb9a08242ce6;hb=d879a92d8819d5646170437ebee8b54790925aef;hp=7500edc3a144c2d27d1afdcf7d70c84b3d79fdba;hpb=ad705f3013be0b1f1f50dd9be1e5ffd69adae6d0;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrigger.cxx b/MUON/AliMUONTrigger.cxx index 7500edc3a14..074ff7ffe6b 100644 --- a/MUON/AliMUONTrigger.cxx +++ b/MUON/AliMUONTrigger.cxx @@ -15,19 +15,17 @@ /* $Id$ */ +#include "AliMUONTrigger.h" + #include "AliLog.h" +#include "AliMUONGlobalTrigger.h" +#include "AliMUONVTriggerStore.h" #include "AliRun.h" #include "AliRunLoader.h" #include "AliTriggerInput.h" -#include "AliMUON.h" -#include "AliMUONLoader.h" -#include "AliMUONData.h" -#include "AliMUONDigit.h" -#include "AliMUONGlobalTrigger.h" -#include "AliMUONTrigger.h" -/// +//----------------------------------------------------------------------------- /// \class AliMUONTrigger /// /// Implementation of AliTriggerDetector for MUON detector @@ -35,93 +33,105 @@ /// So far, the inputs are taken from AliMUONTriggerDecision object /// April 06, E.L.T. /// May 06, taken info from Global Trigger branch (Ch.F) +/// +/// \author E. Lopez Torres +//----------------------------------------------------------------------------- //---------------------------------------------------------------------- +/// \cond CLASSIMP ClassImp(AliMUONTrigger) +/// \endcond //---------------------------------------------------------------------- AliMUONTrigger::AliMUONTrigger() - : AliTriggerDetector() + : AliTriggerDetector(), fTriggerStore(0x0) { +/// Default constructor + SetName("MUON"); CreateInputs(); } +//---------------------------------------------------------------------- +AliMUONTrigger::~AliMUONTrigger() +{ + /// Destructor + delete fTriggerStore; +} + //---------------------------------------------------------------------- void AliMUONTrigger::CreateInputs() { - // inputs + /// inputs // Do not create inputs again!! if( fInputs.GetEntriesFast() > 0 ) return; - fInputs.AddLast( new AliTriggerInput( "MUON_SPlus_LPt_L0", "Single Plus Low Pt", 0x01 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_SPlus_HPt_L0", "Single Plus High Pt", 0x02 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_SPlus_All_L0", "Single Plus All", 0x04 ) ); - - fInputs.AddLast( new AliTriggerInput( "MUON_SMinus_LPt_L0", "Single Minus Low Pt", 0x08 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_SMinus_HPt_L0", "Single Minus High Pt", 0x10 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_SMinus_All_L0", "Single Minus All", 0x20 ) ); - - fInputs.AddLast( new AliTriggerInput( "MUON_SUndef_LPt_L0", "Single Undefined Low Pt", 0x40 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_SUndef_HPt_L0", "Single Undefined High Pt", 0x80 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_SUndef_All_L0", "Single Undefined All", 0x100 ) ); + fInputs.AddLast( new AliTriggerInput( "0MSL", "MUONTRG", 0 ) ); + fInputs.AddLast( new AliTriggerInput( "0MSH", "MUONTRG", 0 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_LPt_L0", "Single Unlike Sign pair Low Pt", 0x200 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_HPt_L0", "Single Unlike Sign pair High Pt", 0x400 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_All_L0", "Single Unlike Sign pair All", 0x800 ) ); + fInputs.AddLast( new AliTriggerInput( "0MUL", "MUONTRG", 0 ) ); + fInputs.AddLast( new AliTriggerInput( "0MUH", "MUONTRG", 0 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Like_LPt_L0", "Single Like Sign pair Low Pt", 0x1000 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Like_HPt_L0", "Single Like Sign pair High Pt", 0x2000 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Like_All_L0", "Single Like Sign pair All", 0x4000 ) ); + fInputs.AddLast( new AliTriggerInput( "0MLL", "MUONTRG", 0 ) ); + fInputs.AddLast( new AliTriggerInput( "0MLH", "MUONTRG", 0 ) ); } //---------------------------------------------------------------------- void AliMUONTrigger::Trigger() { - // sets the trigger inputs - AliMUONGlobalTrigger* globalTrigger; - TClonesArray* globalTriggerArray; + /// sets the trigger inputs - AliRunLoader* runLoader = gAlice->GetRunLoader(); - - AliLoader * muonLoader = runLoader->GetLoader("MUONLoader"); + AliRunLoader* runLoader = AliRunLoader::Instance(); + + AliLoader * muonLoader = runLoader->GetDetectorLoader("MUON"); muonLoader->LoadDigits("READ"); - // Creating MUON data container - AliMUONData* muonData = new AliMUONData(muonLoader,"MUON","MUON"); - - // get global info - muonData->SetTreeAddress("GLT"); - muonData->GetTriggerD(); - globalTriggerArray = muonData->GlobalTrigger(); - if (globalTriggerArray == 0x0) { - AliWarning("No Global Trigger Array available"); + TTree* treeD = muonLoader->TreeD(); + + if (!treeD) + { + AliError("No TreeD available. Cannot make trigger"); return; } - globalTrigger = (AliMUONGlobalTrigger*)globalTriggerArray->UncheckedAt(0); + + if (!fTriggerStore) + { + fTriggerStore = AliMUONVTriggerStore::Create(*treeD); + if (!fTriggerStore) + { + AliError("Could not create triggerStore from treeD"); + return; + } + } - if (globalTrigger == 0x0) { - AliWarning("No Global Trigger available"); + Bool_t ok = fTriggerStore->Connect(*treeD,kTRUE); + + if (!ok) + { + AliError("Could not read trigger from TreeD !"); return; } - // set CTP - if (globalTrigger->SinglePlusLpt()) SetInput("MUON_SPlus_LPt_L0"); - if (globalTrigger->SinglePlusHpt()) SetInput("MUON_SPlus_HPt_L0"); - if (globalTrigger->SingleMinusLpt()) SetInput("MUON_SMinus_LPt_L0"); - if (globalTrigger->SingleMinusHpt()) SetInput("MUON_SMinus_HPt_L0"); + treeD->GetEvent(0); - if (globalTrigger->SingleUndefLpt()) SetInput("MUON_SUndef_LPt_L0"); - if (globalTrigger->SingleUndefHpt()) SetInput("MUON_SUndef_HPt_L0"); - - if (globalTrigger->PairUnlikeLpt()) SetInput("MUON_Unlike_LPt_L0"); - if (globalTrigger->PairUnlikeHpt()) SetInput("MUON_Unlike_HPt_L0"); - - if (globalTrigger->PairLikeLpt()) SetInput("MUON_Like_LPt_L0"); - if (globalTrigger->PairLikeHpt()) SetInput("MUON_Like_HPt_L0"); - - muonData->ResetTrigger(); + AliMUONGlobalTrigger* globalTrigger = fTriggerStore->Global(); + if (globalTrigger == 0x0) + { + AliWarning("No Global Trigger available"); + } + else + { + // set CTP + if (globalTrigger->SingleLpt()) SetInput("0MSL"); + if (globalTrigger->SingleHpt()) SetInput("0MSH"); + + if (globalTrigger->PairUnlikeLpt()) SetInput("0MUL"); + if (globalTrigger->PairUnlikeHpt()) SetInput("0MUH"); + + if (globalTrigger->PairLikeLpt()) SetInput("0MLL"); + if (globalTrigger->PairLikeHpt()) SetInput("0MLH"); + } muonLoader->UnloadDigits(); - + fTriggerStore->Clear(); }