]> git.uio.no Git - u/mrichter/AliRoot.git/blob - STEER/AliTriggerDescriptor.h
Now the full chain includes raw data.
[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   //  Setters
37                 Bool_t    AddDetectorCluster( TString & cluster );
38                   void    AddCondition( TString & cond,  TString & name,
39                                         TString & description, Long_t mask  );
40                   void    AddCondition( AliTriggerCondition* cond ) { fConditions.AddLast( cond ); }
41   //  Getters
42                TString    GetDetectorCluster() const { return fDetectorCluster; }
43              TObjArray*   GetTriggerConditions() { return &fConditions; }
44                 Bool_t    CheckInputsConditions( TString & configfile );
45                   void    Print( const Option_t* opt ="" ) const;
46   //  Descriptors Database (root file)
47                   void    WriteDescriptor( const char* filename="" );
48       static TObjArray*   GetAvailableDescriptors( const char* filename="" );
49       static
50   AliTriggerDescriptor*   LoadDescriptor( TString & des, const char* filename="" );
51   //TODO       static Bool_t    RemoveDescriptor( AliTriggerDescriptor* descriptor, const char* filename="" );
52   //TODO       static Bool_t    RemoveDescriptor( TString* descriptor, const char* filename="" );
53
54 protected:
55       //         TString    fRunCondition;       // Running modes Ej. Pb-Pb, p-p, p-A
56                TString    fDetectorCluster;    // Array of Detector Trigger
57              TObjArray    fConditions;         // Array of Trigger Condition (AliTriggerCondition)
58                
59     static const Int_t    fgkNDetectors = 9;              //! number possible trigger detectors
60      static const char*   fgkDetectorName[fgkNDetectors]; //! names of detectors
61
62 private:
63                 Bool_t    IsSelected( TString detName, TString & detectors ) const;
64   static const TString    fgkDescriptorFileName;        //! name of default descriptors file
65
66    ClassDef( AliTriggerDescriptor, 1 )  // Define a trigger descriptor
67 };
68
69 #endif