87959971ba583ee0d2055179d84e7e2d45295d84
[u/mrichter/AliRoot.git] / MUON / AliMUONSt1ResponseRule.cxx
1 /**************************************************************************
2  * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3  *                                                                        *
4  * Author: The ALICE Off-line Project.                                    *
5  * Contributors are mentioned in the code where appropriate.              *
6  *                                                                        *
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  **************************************************************************/
15  
16 /* $Id$ */
17
18 // Authors: David Guez, Ivana Hrivnacova, Marion MacCormick; IPN Orsay
19 //
20 // Class AliMUONSt1ResponseRule
21 // -----------------------------
22 // Describes a response rule.
23 // A "rule" is defined as being a set of electronic filters to be applied 
24 // (ie. a set of AliMUONSt1ResponseParameter) and a set of cathode pads to 
25 // which these filters should be applied (set of AliMUONSt1ElectronicElement)
26 // Included in AliRoot 2003/01/28
27
28 #include "AliMpPad.h"
29
30 #include "AliMUONSt1ResponseRule.h"
31 #include "AliMUONSt1ElectronicElement.h"
32 #include "AliMUONSt1ResponseParameter.h"
33 ClassImp(AliMUONSt1ResponseRule)
34
35 //__________________________________________________________________________
36 AliMUONSt1ResponseRule::AliMUONSt1ResponseRule()
37   : TObject(),
38     fElementList(),
39     fParameters()
40 {
41 // default constructor
42 }
43
44 //__________________________________________________________________________
45 AliMUONSt1ResponseRule::~AliMUONSt1ResponseRule()
46 {
47 // destructor
48 }
49
50 //__________________________________________________________________________
51 void AliMUONSt1ResponseRule::AddElement(AliMUONSt1ElectronicElement* element)
52 {
53 // Add an electronic element to the list
54 // ---
55
56   fElementList.Add(element);
57 }
58
59 //__________________________________________________________________________
60 void AliMUONSt1ResponseRule::AddParameter(AliMUONSt1ResponseParameter* param)
61 {
62 // Add an electronics parameter for this rule
63 // ---
64
65   fParameters.Add(param);
66 }
67
68 //__________________________________________________________________________
69 Bool_t AliMUONSt1ResponseRule::Contains(const AliMpPad& pad) const
70 {
71 // Is this pad is contained in this rule's list
72 // ---
73
74   TIter next(&fElementList);
75   AliMUONSt1ElectronicElement* el;
76   while ((el = static_cast<AliMUONSt1ElectronicElement*>(next()))){
77     if (el->Contains(pad)) return kTRUE;
78   }
79   return kFALSE;
80 }