Trigger scalers added.
[u/mrichter/AliRoot.git] / STEER / AliESDHeader.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 //-------------------------------------------------------------------------
17 //                      Implementation of   Class AliESDHeader
18 //   Header data
19 //   for the ESD   
20 //   Origin: Christian Klein-Boesing, CERN, Christian.Klein-Boesing@cern.ch 
21 //-------------------------------------------------------------------------
22
23 #include "AliESDHeader.h"
24 #include "AliTriggerScalersESD.h"
25 #include "AliTriggerScalersRecordESD.h"
26
27 ClassImp(AliESDHeader)
28
29 //______________________________________________________________________________
30 AliESDHeader::AliESDHeader() :
31   AliVHeader(),
32   fTriggerMask(0),
33   fOrbitNumber(0),
34   fTimeStamp(0),
35   fEventType(0),
36   fPeriodNumber(0),
37   fEventNumberInFile(0),
38   fBunchCrossNumber(0),
39   fTriggerCluster(0),
40   fL0TriggerInputs(0),
41   fL1TriggerInputs(0),
42   fL2TriggerInputs(0),
43   fTriggerScalers()
44 {
45   // default constructor
46
47   SetName("AliESDHeader");
48 }
49 AliESDHeader::~AliESDHeader() 
50 {
51   // destructor
52 }
53
54
55 AliESDHeader::AliESDHeader(const AliESDHeader &header) :
56   AliVHeader(header),
57   fTriggerMask(header.fTriggerMask),
58   fOrbitNumber(header.fOrbitNumber),
59   fTimeStamp(header.fTimeStamp),
60   fEventType(header.fEventType),
61   fPeriodNumber(header.fPeriodNumber),
62   fEventNumberInFile(header.fEventNumberInFile),
63   fBunchCrossNumber(header.fBunchCrossNumber),
64   fTriggerCluster(header.fTriggerCluster),
65   fL0TriggerInputs(header.fL0TriggerInputs),
66   fL1TriggerInputs(header.fL1TriggerInputs),
67   fL2TriggerInputs(header.fL2TriggerInputs),
68   fTriggerScalers(header.fTriggerScalers)
69 {
70   // copy constructor
71
72   SetName(header.fName);
73   SetTitle(header.fTitle);
74 }
75
76 AliESDHeader& AliESDHeader::operator=(const AliESDHeader &header)
77
78   // assigment operator
79   if(this!=&header) {
80     AliVHeader::operator=(header);
81     fTriggerMask = header.fTriggerMask;
82     fOrbitNumber = header.fOrbitNumber;
83     fTimeStamp = header.fTimeStamp;
84     fEventType = header.fEventType;
85     fPeriodNumber = header.fPeriodNumber;
86     fEventNumberInFile = header.fEventNumberInFile;
87     fBunchCrossNumber = header.fBunchCrossNumber;
88     fTriggerCluster = header.fTriggerCluster;
89     fL0TriggerInputs = header.fL0TriggerInputs;
90     fL1TriggerInputs = header.fL1TriggerInputs;
91     fL2TriggerInputs = header.fL2TriggerInputs;
92     fTriggerScalers = header.fTriggerScalers;
93
94     SetName(header.fName);
95     SetTitle(header.fTitle);
96
97   } 
98   return *this;
99 }
100
101 void AliESDHeader::Copy(TObject &obj) const 
102 {  
103   // this overwrites the virtual TOBject::Copy()
104   // to allow run time copying without casting
105   // in AliESDEvent
106
107   if(this==&obj)return;
108   AliESDHeader *robj = dynamic_cast<AliESDHeader*>(&obj);
109   if(!robj)return; // not an AliESDHeader
110   *robj = *this;
111
112 }
113 //______________________________________________________________________________
114 void AliESDHeader::Reset()
115 {
116   // reset all data members
117   fTriggerMask       = 0;
118   fOrbitNumber       = 0;
119   fTimeStamp         = 0;
120   fEventType         = 0;
121   fPeriodNumber      = 0;
122   fEventNumberInFile = 0;
123   fBunchCrossNumber  = 0;
124   fTriggerCluster    = 0;
125   fL0TriggerInputs   = 0;
126   fL1TriggerInputs   = 0;
127   fL2TriggerInputs   = 0;
128   fTriggerScalers.Reset();
129 }
130
131 //______________________________________________________________________________
132 void AliESDHeader::Print(const Option_t *) const
133 {
134   // Print some data members
135   printf("Event # %d in file Bunch crossing # %d Orbit # %d Trigger %lld \n",
136          GetEventNumberInFile(),
137          GetBunchCrossNumber(),
138          GetOrbitNumber(),
139          GetTriggerMask());
140 }
141