X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MUON%2FAliMUONTrigger.cxx;h=e23466cc6e9e6eee56d49e2f5c2adf3f3d549982;hb=e39ae6fbf1b9c4b763bc23be00bb4ff8cc958547;hp=03ead8d873d00961b055b086b4fb57152ea1ecf4;hpb=7ca4655fc9c861260bd2b42a5de05a36f9574d60;p=u%2Fmrichter%2FAliRoot.git diff --git a/MUON/AliMUONTrigger.cxx b/MUON/AliMUONTrigger.cxx index 03ead8d873d..e23466cc6e9 100644 --- a/MUON/AliMUONTrigger.cxx +++ b/MUON/AliMUONTrigger.cxx @@ -15,21 +15,17 @@ /* $Id$ */ -#include +#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 @@ -37,76 +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_Single_LPt_L0", "Single Low Pt", 0x01 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Single_HPt_L0", "Single High Pt", 0x02 ) ); + fInputs.AddLast( new AliTriggerInput( "MUON_Single_LPt_L0", "MUONTRG", 0 ) ); + fInputs.AddLast( new AliTriggerInput( "MUON_Single_HPt_L0", "MUONTRG", 0 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_LPt_L0", "Dimuon Unlike Sign pair Low Pt", 0x04 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_HPt_L0", "Dimuon Unlike Sign pair High Pt", 0x08 ) ); + fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_LPt_L0", "MUONTRG", 0 ) ); + fInputs.AddLast( new AliTriggerInput( "MUON_Unlike_HPt_L0", "MUONTRG", 0 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Like_LPt_L0", "Dimuon Like Sign pair Low Pt", 0x10 ) ); - fInputs.AddLast( new AliTriggerInput( "MUON_Like_HPt_L0", "Dimuon Like Sign pair High Pt", 0x20 ) ); + fInputs.AddLast( new AliTriggerInput( "MUON_Like_LPt_L0", "MUONTRG", 0 ) ); + fInputs.AddLast( new AliTriggerInput( "MUON_Like_HPt_L0", "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"); + + 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->SingleLpt()) SetInput("MUON_Single_LPt_L0"); - if (globalTrigger->SingleHpt()) SetInput("MUON_Single_HPt_L0"); - if (globalTrigger->PairUnlikeLpt()) SetInput("MUON_Unlike_LPt_L0"); - if (globalTrigger->PairUnlikeHpt()) SetInput("MUON_Unlike_HPt_L0"); + treeD->GetEvent(0); - 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("MUON_Single_LPt_L0"); + if (globalTrigger->SingleHpt()) SetInput("MUON_Single_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"); + } muonLoader->UnloadDigits(); - + fTriggerStore->Clear(); }