ROOT logo
/* Copyright(c) 1998-2014, ALICE Experiment at CERN, All rights reserved. *
 * See cxx source for full Copyright notice */

// Short comment describing what this class does needed!

// $Id: AliJRunHeader.h,v 1.1 2008/02/04 13:28:47 rak Exp $
////////////////////////////////////////////////////
/*!
  \file AliJRunHeader.h
  \brief
  \author J. Rak, D.J.Kim, F.Krizek  (Jyvaskyla || HIP)
  \email: djkim@cc.jyu.fi
  \version $Revision: 1.1 $
  \date $Date: 2008/02/04 13:28:47 $
  */
////////////////////////////////////////////////////

#ifndef ALIJRUNHEADER_H
#define ALIJRUNHEADER_H
#ifndef ROOT_TObject
#include <TObject.h>
#endif

#include <TNamed.h>
#include <TString.h>
#include <TObjString.h>
#include <TObjArray.h>
#include <vector>
#include <map>


class AliJRunHeader : public TNamed {

//#pragma link C++ class AliJRunHeader+;

 public:
  enum { kJPP, kJPbPb, kPPb };
  enum { kJESD, kJAOD };  
  AliJRunHeader();//constructor
  ~AliJRunHeader(){;}              //destructor

  //==== General Information ====//
  Int_t  GetRunNumber()     const {return fRunNumber;}
  void   SetRunNumber(Int_t runN) { fRunNumber = runN;}

  TString GetRunType() const { return fRunType;}
  void    SetRunType( const TString type ){ fRunType = type; }

  TString  GetBeamType()const{ return fBeamType; }
  void    SetBeamType(TString t){ fBeamType = t; }

  Int_t   GetBeamTypeI()const{ return fBeamTypeI; }
  void    SetBeamTypeI(int t){ fBeamTypeI = t; }

  Bool_t  IsPP() const { return fBeamTypeI==kJPP; }
  Bool_t  IsPbPb() const { return fBeamTypeI==kJPbPb; }

  Float_t GetBeamEnergy() const { return fBeamEnergy; }
  void    SetBeamEnergy( Float_t e ){ fBeamEnergy = e; }

  Bool_t  IsMC()const{ return fIsMC; }
  void    SetIsMC(Bool_t b){ fIsMC=b; }


  //==== Production Info ====//
  Int_t   GetInputFormat() const { return fInputFormat; }
  void    SetInputFormat( Int_t v ){ fInputFormat = v; }
  Bool_t  FromESD() const { return fInputFormat==kJESD; }
  Bool_t  FromAOD() const { return fInputFormat==kJAOD; }

  Bool_t  GetWithoutSDD()const{ return fWithoutSDD; }
  void    SetWithoutSDD( bool b ){ fWithoutSDD = b; }

  void    SetStoreEventPlaneSource(Bool_t dostore ){ fStoreEventPlaneSource = dostore; }
  Bool_t  GetStoreEventPlaneSource() const { return fStoreEventPlaneSource; };

  void    SetStoreEMCalInfo(Bool_t dostore ){ fStoreEMCalInfo = dostore; }
  Bool_t  GetStoreEMCalInfo() const { return fStoreEMCalInfo; };

  UInt_t  GetStoreTPCTrackBitMask()const{ return fStoreTPCTrackBitMask; }
  void    SetStoreTPCTrackBitMask( UInt_t mask ){ fStoreTPCTrackBitMask = mask; }

  UInt_t  GetStoreGCGTrackBitMask()const{ return fStoreGCGTrackBitMask; }
  void    SetStoreGCGTrackBitMask( UInt_t mask ){ fStoreGCGTrackBitMask = mask; }

  void    SetESDInfo(const TString info ) { fESDInfo = info; }
  TString GetESDInfo() const { return fESDInfo; }

  Bool_t GetRefitESDVertexTracks() const { return fRefitESDVertexTracks; }
  void    SetRefitESDVertexTracks( Bool_t refit ){ fRefitESDVertexTracks=refit; } 

  //==== Detector Status ====//
  Short_t   GetL3MagnetFieldPolarity()  const { return fL3MagnetPolarity; }
  void      SetL3MagnetFieldPolarity(Short_t p){ fL3MagnetPolarity=p; }

  Double_t  GetL3MagnetFieldIntensity() const { return fMagneticFieldL3; }
  void      SetL3MagnetFieldIntensity(Double_t i) { fMagneticFieldL3=i; }

  Float_t   GetCurrentL3() const { return fCurrentL3; }
  void      SetCurrentL3(Float_t current){ fCurrentL3 = current; }

  Float_t   GetCurrentDip() const { return fCurrentDip; }
  void      SetCurrentDip(Float_t dip){ fCurrentDip=dip; }

  Bool_t    IsUniformBMap() const { return fUniformBMap; }
  void      SetUniformBMap(Bool_t uniform){ fUniformBMap=uniform; }

  //==== Trigger Information ====//
  TString   GetFiredTriggers()const{ return fFiredTriggers; }
  void      SetFiredTriggers( TString trgs ){ fFiredTriggers=trgs; }

  ULong64_t GetTriggerMask()const{ return fTriggerMask; }
  void      SetTriggerMask( ULong64_t mask ){ fTriggerMask=mask; }

  UChar_t   GetTriggerCluster() const { return fTriggerCluster; }
  void      SetTriggerCluster( UChar_t cluster ){ fTriggerCluster=cluster; } 

  Int_t     GetSizeOfTableJCorran() const { return fSizeOfTableJCorran; }
  void      SetSizeOfTableJCorran( Int_t size ){ fSizeOfTableJCorran=size; } 

  std::vector<TString> GetActiveTriggersJCorran() const { return fActiveTriggersJCorran; }
  void    SetActiveTriggersJCorran( std::vector<TString> strs ){ fActiveTriggersJCorran=strs; } 
  TString   GetActiveTriggersJCorran(int i) const { return fActiveTriggersJCorran[i]; }
  void      SetActiveTriggersJCorran(int i, TString str){ fActiveTriggersJCorran[i]=str; }

  std::vector<TString> GetActiveTriggersAlice() const { return fActiveTriggersAlice; }
  void      SetActiveTriggersAlice( std::vector<TString> strs ){ fActiveTriggersAlice=strs; } 
  TString   GetActiveTriggersAlice(int i) const { return fActiveTriggersAlice[i]; }
  void      SetActiveTriggersAlice(int i, TString str){ fActiveTriggersAlice[i]=str; }
  Int_t     GetActiveTriggerBitAlice(TString TriggerName);

  //==== GENERAL STUFF for Class ====//

  void PrintOut();

 protected:
  //==== General Info ====//
  Int_t       fRunNumber;        //run number 
  TString     fRunType;       // ex) LHC10h
  TString     fBeamType;        // beam type kJPP, kJPbPb, kJPPb
  Int_t       fBeamTypeI;        // beam type kJPP, kJPbPb, kJPPb
  Float_t     fBeamEnergy; // beam energy
  Bool_t      fIsMC;       // MC data or real data

  //==== Production Info ====//
  Int_t       fInputFormat; // specify the input data format (kJESD or kJAOD)
  Bool_t      fWithoutSDD;  // is SDD detector used or not
  Bool_t      fStoreEventPlaneSource; // store event plane
  Bool_t      fStoreEMCalInfo; // store event plane
  UInt_t      fStoreTPCTrackBitMask;  // TPC bit mask
  UInt_t      fStoreGCGTrackBitMask;  // GCG bit maks
  TString     fESDInfo;       // information of aliroot,  root version while esd production
  Bool_t      fRefitESDVertexTracks;   // refit to ESD vertex tracks

  //==== Detector Status ====//
  Short_t     fL3MagnetPolarity; //Polarity of magnetic filed in L3 magnet (LHC convention: + -> +Bz)
  Double32_t  fMagneticFieldL3;  //Solenoid Magnetic Field in kG   
  Float_t     fCurrentL3; // L3 current
  Float_t     fCurrentDip; // dipole current
  Bool_t      fUniformBMap; // beam uniformity
  
  //==== Trigger Information ====//
  TString     fFiredTriggers;       // String with fired triggers
  ULong64_t   fTriggerMask;         // Trigger Type (mask)
  UChar_t     fTriggerCluster;      // Trigger cluster (mask)
  Int_t           fSizeOfTableJCorran;  //size of jcorran table
  std::vector<TString> fActiveTriggersJCorran;   //array maping between trigger bit and trigger names
  std::vector<TString> fActiveTriggersAlice;   //array maping between trigger bit and trigger names
  //TBit 0 = MB 
  ClassDef(AliJRunHeader,3)

};

#endif

 AliJRunHeader.h:1
 AliJRunHeader.h:2
 AliJRunHeader.h:3
 AliJRunHeader.h:4
 AliJRunHeader.h:5
 AliJRunHeader.h:6
 AliJRunHeader.h:7
 AliJRunHeader.h:8
 AliJRunHeader.h:9
 AliJRunHeader.h:10
 AliJRunHeader.h:11
 AliJRunHeader.h:12
 AliJRunHeader.h:13
 AliJRunHeader.h:14
 AliJRunHeader.h:15
 AliJRunHeader.h:16
 AliJRunHeader.h:17
 AliJRunHeader.h:18
 AliJRunHeader.h:19
 AliJRunHeader.h:20
 AliJRunHeader.h:21
 AliJRunHeader.h:22
 AliJRunHeader.h:23
 AliJRunHeader.h:24
 AliJRunHeader.h:25
 AliJRunHeader.h:26
 AliJRunHeader.h:27
 AliJRunHeader.h:28
 AliJRunHeader.h:29
 AliJRunHeader.h:30
 AliJRunHeader.h:31
 AliJRunHeader.h:32
 AliJRunHeader.h:33
 AliJRunHeader.h:34
 AliJRunHeader.h:35
 AliJRunHeader.h:36
 AliJRunHeader.h:37
 AliJRunHeader.h:38
 AliJRunHeader.h:39
 AliJRunHeader.h:40
 AliJRunHeader.h:41
 AliJRunHeader.h:42
 AliJRunHeader.h:43
 AliJRunHeader.h:44
 AliJRunHeader.h:45
 AliJRunHeader.h:46
 AliJRunHeader.h:47
 AliJRunHeader.h:48
 AliJRunHeader.h:49
 AliJRunHeader.h:50
 AliJRunHeader.h:51
 AliJRunHeader.h:52
 AliJRunHeader.h:53
 AliJRunHeader.h:54
 AliJRunHeader.h:55
 AliJRunHeader.h:56
 AliJRunHeader.h:57
 AliJRunHeader.h:58
 AliJRunHeader.h:59
 AliJRunHeader.h:60
 AliJRunHeader.h:61
 AliJRunHeader.h:62
 AliJRunHeader.h:63
 AliJRunHeader.h:64
 AliJRunHeader.h:65
 AliJRunHeader.h:66
 AliJRunHeader.h:67
 AliJRunHeader.h:68
 AliJRunHeader.h:69
 AliJRunHeader.h:70
 AliJRunHeader.h:71
 AliJRunHeader.h:72
 AliJRunHeader.h:73
 AliJRunHeader.h:74
 AliJRunHeader.h:75
 AliJRunHeader.h:76
 AliJRunHeader.h:77
 AliJRunHeader.h:78
 AliJRunHeader.h:79
 AliJRunHeader.h:80
 AliJRunHeader.h:81
 AliJRunHeader.h:82
 AliJRunHeader.h:83
 AliJRunHeader.h:84
 AliJRunHeader.h:85
 AliJRunHeader.h:86
 AliJRunHeader.h:87
 AliJRunHeader.h:88
 AliJRunHeader.h:89
 AliJRunHeader.h:90
 AliJRunHeader.h:91
 AliJRunHeader.h:92
 AliJRunHeader.h:93
 AliJRunHeader.h:94
 AliJRunHeader.h:95
 AliJRunHeader.h:96
 AliJRunHeader.h:97
 AliJRunHeader.h:98
 AliJRunHeader.h:99
 AliJRunHeader.h:100
 AliJRunHeader.h:101
 AliJRunHeader.h:102
 AliJRunHeader.h:103
 AliJRunHeader.h:104
 AliJRunHeader.h:105
 AliJRunHeader.h:106
 AliJRunHeader.h:107
 AliJRunHeader.h:108
 AliJRunHeader.h:109
 AliJRunHeader.h:110
 AliJRunHeader.h:111
 AliJRunHeader.h:112
 AliJRunHeader.h:113
 AliJRunHeader.h:114
 AliJRunHeader.h:115
 AliJRunHeader.h:116
 AliJRunHeader.h:117
 AliJRunHeader.h:118
 AliJRunHeader.h:119
 AliJRunHeader.h:120
 AliJRunHeader.h:121
 AliJRunHeader.h:122
 AliJRunHeader.h:123
 AliJRunHeader.h:124
 AliJRunHeader.h:125
 AliJRunHeader.h:126
 AliJRunHeader.h:127
 AliJRunHeader.h:128
 AliJRunHeader.h:129
 AliJRunHeader.h:130
 AliJRunHeader.h:131
 AliJRunHeader.h:132
 AliJRunHeader.h:133
 AliJRunHeader.h:134
 AliJRunHeader.h:135
 AliJRunHeader.h:136
 AliJRunHeader.h:137
 AliJRunHeader.h:138
 AliJRunHeader.h:139
 AliJRunHeader.h:140
 AliJRunHeader.h:141
 AliJRunHeader.h:142
 AliJRunHeader.h:143
 AliJRunHeader.h:144
 AliJRunHeader.h:145
 AliJRunHeader.h:146
 AliJRunHeader.h:147
 AliJRunHeader.h:148
 AliJRunHeader.h:149
 AliJRunHeader.h:150
 AliJRunHeader.h:151
 AliJRunHeader.h:152
 AliJRunHeader.h:153
 AliJRunHeader.h:154
 AliJRunHeader.h:155
 AliJRunHeader.h:156
 AliJRunHeader.h:157
 AliJRunHeader.h:158
 AliJRunHeader.h:159
 AliJRunHeader.h:160
 AliJRunHeader.h:161
 AliJRunHeader.h:162
 AliJRunHeader.h:163
 AliJRunHeader.h:164
 AliJRunHeader.h:165
 AliJRunHeader.h:166
 AliJRunHeader.h:167
 AliJRunHeader.h:168
 AliJRunHeader.h:169
 AliJRunHeader.h:170
 AliJRunHeader.h:171
 AliJRunHeader.h:172
 AliJRunHeader.h:173
 AliJRunHeader.h:174
 AliJRunHeader.h:175