]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTriggerDescriptor.h
Avoid mixing up trigger and tracks replacing the option "CP" by
[u/mrichter/AliRoot.git] / STEER / AliTriggerDescriptor.h
1 #ifndef ALITRIGGERDESCRIPTOR_H
2 #define ALITRIGGERDESCRIPTOR_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8
9 ///////////////////////////////////////////////////////////////////////////////
10 //                                                                           //
11 // This class for running a Trigger Descriptor                               //
12 //                                                                           //
13 //                                                                           //
14 // A Trigger Descriptor define a trigger setup for specific runnign
15 // condition (Pb-Pb, p-p, p-A, Calibration, etc).
16 // It keep:
17 //    - cluster detector (List of detectors involved)
18 //    - List of conditions                              
19 //                                                                           //
20 //                                                                           //
21 ///////////////////////////////////////////////////////////////////////////////
22
23 class TNamed;
24
25 class TString;
26 class TObjArray;
27 class AliRunLoader;
28
29 class AliTriggerDescriptor : public TNamed {
30
31 public:
32                           AliTriggerDescriptor();
33                           AliTriggerDescriptor( TString & name, TString & description );
34                           AliTriggerDescriptor( const AliTriggerDescriptor& des );
35                virtual   ~AliTriggerDescriptor() { fConditions.SetOwner(); fConditions.Delete(); }
36   AliTriggerDescriptor&   operator=(const AliTriggerDescriptor& des);
37
38    //  Setters
39                 Bool_t    AddDetectorCluster( TString & cluster );
40                   void    AddCondition( TString & cond,  TString & name,
41                                         TString & description, ULong64_t mask  );
42                   void    AddCondition( AliTriggerCondition* cond ) { fConditions.AddLast( cond ); }
43   //  Getters
44                TString    GetDetectorCluster() const { return fDetectorCluster; }
45              TObjArray*   GetTriggerConditions() { return &fConditions; }
46                 Bool_t    CheckInputsConditions( TString & configfile );
47                   void    Print( const Option_t* opt ="" ) const;
48   //  Descriptors Database (root file)
49                   void    WriteDescriptor( const char* filename="" );
50       static TObjArray*   GetAvailableDescriptors( const char* filename="" );
51       static
52   AliTriggerDescriptor*   LoadDescriptor( TString & des, const char* filename="" );
53   //TODO       static Bool_t    RemoveDescriptor( AliTriggerDescriptor* descriptor, const char* filename="" );
54   //TODO       static Bool_t    RemoveDescriptor( TString* descriptor, const char* filename="" );
55
56 protected:
57       //         TString    fRunCondition;       // Running modes Ej. Pb-Pb, p-p, p-A
58                TString    fDetectorCluster;    // Array of Detector Trigger
59              TObjArray    fConditions;         // Array of Trigger Condition (AliTriggerCondition)
60                
61     static const Int_t    fgkNDetectors = 10;             //! number possible trigger detectors
62      static const char*   fgkDetectorName[fgkNDetectors]; //! names of detectors
63
64 private:
65                 Bool_t    IsSelected( TString detName, TString & detectors ) const;
66   static const TString    fgkDescriptorFileName;        //! name of default descriptors file
67
68    ClassDef( AliTriggerDescriptor, 2 )  // Define a trigger descriptor
69 };
70
71 #endif