Corrected protection.
[u/mrichter/AliRoot.git] / STEER / AliTriggerPFProtection.h
1 #ifndef ALITRIGGERPFPROTECTION_H
2 #define ALITRIGGERPFPROTECTION_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ///////////////////////////////////////////////////////////////////////////////
8 //
9 //  Class to define a Trigger Past Future Protection
10 //
11 //                              name      description         INT1  INT2
12 //    Ej:
13 //  AliTriggerPFProtection sc( "BARREL", "BARREL DET Pb-Pb",  "SC","PE" );
14 //  sc.SetINTa("PE");  // Peripheral
15 //  sc.SetINTb("SC");  // Semicentral
16 //  sc.SetINT("PE");
17 //  sc.SetNa1( 5 );
18 //  sc.SetNa2( 5 );
19 //  sc.SetTa( 88 );
20 //  sc.SetNb1( 1 );
21 //  sc.SetNb2( 0 );
22 //  sc.SetTb( 88 );
23 //
24 ///////////////////////////////////////////////////////////////////////////////
25
26 #ifndef ROOT_TNamed
27 #include <TNamed.h>
28 #endif
29
30 class AliTriggerPFProtection : public TNamed {
31
32 public:
33                           AliTriggerPFProtection() :
34                             TNamed(), 
35                             fINTa(), fINTb(),fINT(),
36                             fNa1(0),fNa2(0),fTa(0),
37                             fNb1(0),fNb2(0),fTb(0) {}
38                           AliTriggerPFProtection( TString & name) :
39                             TNamed(name, name), 
40                             fINTa(), fINTb(),fINT(),
41                             fNa1(0),fNa2(0),fTa(0),
42                             fNb1(0),fNb2(0),fTb(0) {}
43                           AliTriggerPFProtection( TString & name,
44                                                   TString & inta, TString & intb, TString & interaction ) :
45                             TNamed(name, name), 
46                             fINTa(inta), fINTb(intb),fINT(interaction),
47                             fNa1(0),fNa2(0),fTa(0),
48                             fNb1(0),fNb2(0),fTb(0) {}
49                virtual   ~AliTriggerPFProtection() {}
50
51   //  Setters
52                   void   SetINTa( TString& inta ) { fINTa = inta; }
53                   void   SetINTb( TString& intb ) { fINTb = intb; }
54                   void   SetINT ( TString& inti ) { fINT = inti; }
55                   void   SetNa1 ( UInt_t n )    { fNa1 = n; }
56                   void   SetNa2 ( UInt_t n )    { fNa2 = n; }
57                   void   SetTa  ( UInt_t n )    { fTa  = n; }
58                   void   SetNb1 ( UInt_t n )    { fNb1 = n; }
59                   void   SetNb2 ( UInt_t n )    { fNb2 = n; }
60                   void   SetTb  ( UInt_t n )    { fTb  = n; }
61   //  Getters
62
63         const  TString&  GetINTa() const { return fINTa; }
64         const  TString&  GetINTb() const { return fINTb; }
65         const  TString&  GetINT () const { return fINT; }
66                 UInt_t   GetNa1 () const { return fNa1; }
67                 UInt_t   GetNa2 () const { return fNa2; }
68                 UInt_t   GetTa  () const { return fTa ; }
69                 UInt_t   GetNb1 () const { return fNb1; }
70                 UInt_t   GetNb2 () const { return fNb2; }
71                 UInt_t   GetTb  () const { return fTb ; }
72                
73                 Bool_t   CheckInteractions(TObjArray &interactions) const;
74           virtual void   Print( const Option_t* opt ="" ) const;
75                
76 private:
77                 TString     fINTa;                // Logical function of INT1 and INT2;
78                 TString     fINTb;                // Logical function of INT1 and INT2;
79                 TString     fINT;                 // Logical function of INT1 and INT2;
80                  UInt_t     fNa1;                 // Max number of INTa for the event of type INT 
81                  UInt_t     fNa2;                 // max number of INTa for the event of type NOT INT
82                  UInt_t     fTa;                  // mprotection interval for INTa 
83                  UInt_t     fNb1;                 // mmax number of INTb   for  the event of type INT 
84                  UInt_t     fNb2;                 // mmax number of INTb for the event of  type NOT INT
85                  UInt_t     fTb;                  // mprotection interval for INTb
86
87                 AliTriggerPFProtection(const AliTriggerPFProtection & inp );
88                 AliTriggerPFProtection& operator = (const AliTriggerPFProtection& inp);
89
90    ClassDef( AliTriggerPFProtection, 1 )  // Define a Trigger Past Future Protection 
91 };
92
93
94 #endif