1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
17 // $MpId: AliMpTrigger.cxx,v 1.4 2006/05/24 13:58:52 ivana Exp $
19 //-----------------------------------------------------------------------------
20 // Class AliMUONRegionalTriggerConfig
21 // --------------------
22 // The class defines the configuration of regional trigger crate
23 // Author: Ch. Finck, Subatech Nantes
24 //-----------------------------------------------------------------------------
26 #include "AliMUONRegionalTriggerConfig.h"
27 #include "AliMUONTriggerCrateConfig.h"
28 #include "AliMpConstants.h"
29 #include "AliMpFiles.h"
30 #include "AliMpHelper.h"
31 #include "AliMpExMapIterator.h"
32 #include "AliMpRegionalTriggerReader.h"
36 #include <Riostream.h>
43 ClassImp(AliMUONRegionalTriggerConfig)
47 //______________________________________________________________________________
48 AliMUONRegionalTriggerConfig::AliMUONRegionalTriggerConfig()
52 /// Standard constructor
54 fTriggerCrates.SetOwner(true);
55 fTriggerCrates.SetSize(AliMpConstants::LocalBoardNofChannels());
58 //______________________________________________________________________________
59 AliMUONRegionalTriggerConfig::AliMUONRegionalTriggerConfig(const AliMUONRegionalTriggerConfig& rhs)
61 fTriggerCrates(rhs.fTriggerCrates)
66 //______________________________________________________________________________
67 AliMUONRegionalTriggerConfig& AliMUONRegionalTriggerConfig::operator=(const AliMUONRegionalTriggerConfig& rhs)
69 /// Assignment operator
71 // check assignment to self
72 if (this == &rhs) return *this;
74 // base class assignment
75 TObject::operator=(rhs);
77 // assignment operator
78 fTriggerCrates = rhs.fTriggerCrates;
83 //______________________________________________________________________________
84 AliMUONRegionalTriggerConfig::~AliMUONRegionalTriggerConfig()
93 //______________________________________________________________________________
94 Int_t AliMUONRegionalTriggerConfig::ReadData(const TString& fileName)
96 /// Load the Regional trigger from ASCII data files
98 ifstream inFile(fileName.Data(), ios::in);
99 if ( ! inFile.good() ) {
101 << "Local Trigger Board Mapping File " << fileName.Data() << " not found" << endl;
106 list.AddAt(&fTriggerCrates,0);
108 Int_t status = AliMpRegionalTriggerReader::ReadData(list, inFile);
112 << "Regional Trigger configuration File " << fileName.Data() << " not found" << endl;
119 //______________________________________________________________________________
120 AliMUONTriggerCrateConfig* AliMUONRegionalTriggerConfig::FindTriggerCrate(TString name,
123 /// Return trigger crate with given name
125 AliMUONTriggerCrateConfig* crate
126 = (AliMUONTriggerCrateConfig*) fTriggerCrates.GetValue(name.Data());
128 if ( ! crate && warn ) {
130 << "Trigger crate with name = " << name.Data() << " not defined." << endl;
136 //______________________________________________________________________________
137 Int_t AliMUONRegionalTriggerConfig::GetNofTriggerCrates() const
139 /// Return number of trigger crates
141 return fTriggerCrates.GetSize();
144 //______________________________________________________________________________
146 AliMUONRegionalTriggerConfig::CreateCrateIterator() const
148 /// Return trigger crates iterator
149 return fTriggerCrates.CreateIterator();