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

/* $Id: AliTRDCalibChamberStatus.h 34340 2009-08-20 07:48:28Z cblume $ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
//  TRD calibration class for online calibration                             //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////

#ifndef ROOT_THnSparse
#include <THnSparse.h>
#include <TCanvas.h>
#include <TH2.h>
#endif

#include <AliTRDtrackV1.h>

class AliRawReader;

class AliTRDCalChamberStatus;
class AliRawReader;
class AliTRDCalDCSv2;


struct eventHeaderStruct;

class AliTRDCalibChamberStatus : public TObject {

public:

  AliTRDCalibChamberStatus();
  AliTRDCalibChamberStatus(const AliTRDCalibChamberStatus &ped);
  virtual ~AliTRDCalibChamberStatus();

  AliTRDCalibChamberStatus& operator = (const  AliTRDCalibChamberStatus &source);

  void ProcessTrack(const AliTRDtrackV1 * trdTrack);
  void ProcessEvent(AliRawReader    *rawReader, Int_t nevents_physics);
    
  void Init();
  void AnalyseHisto(Int_t limit=200, Double_t chamberlimit=0.05);
  void CheckEORStatus(const AliTRDCalDCSv2 *calDCS);

  void Add(const AliTRDCalibChamberStatus *calibChamberStatus);

  Int_t GetNumberEventNotEmpty() const { return fCounterEventNotEmpty; };
  
  THnSparseI *GetSparseI()       const {return fHnSparseI;};
  THnSparseI *GetSparseHCM()     const {return fHnSparseHCM;};
  // for fDebugLevel>0
  THnSparseI *GetSparseEvtDet()  const {return fHnSparseEvtDet;};
  THnSparseI *GetSparseDebug()   const {return fHnSparseDebug;};
  THnSparseI *GetSparseMCM()     const {return fHnSparseMCM;};
  
  void SetSparseI(THnSparseI *sparse)       { fHnSparseI=sparse; }

  AliTRDCalChamberStatus *GetCalChamberStatus() const {return fCalChamberStatus;};

  void  DumpToFile(const Char_t *filename, const Char_t *dir="", Bool_t append=kFALSE);
  
  Bool_t TestEventHisto(Int_t nevent);

  // Plot
  TH2D *PlotSparseI(Int_t sm, Int_t side);    // Plot fStatus for sm 
  TH2F *MakeHisto2DSmPlEORStatus(const AliTRDCalDCSv2 *calDCS, Int_t sm, Int_t pl);
  TCanvas *PlotHistos2DSmEORStatus(AliTRDCalDCSv2 *calDCS,Int_t sm, const Char_t *name);

  // Debug
  void     SetDebugLevel(Short_t level)  { fDebugLevel = level;   }

 private:

  Int_t fDetector;                           //  Current detector
  Int_t fNumberOfTimeBins;                   //  Current number of time bins
  Int_t fCounterEventNotEmpty;               //  Counter Events Not Empty
  
  AliTRDCalChamberStatus *fCalChamberStatus; //  AliTRDCalChamberStatus result
  
  THnSparseI *fHnSparseI;                    //  THnSparse for entries in half chambers
  THnSparseI *fHnSparseHCM;                  //  THnSparse for DCS half chamber status
  
  // for fDebugLevel>0
  THnSparseI *fHnSparseEvtDet;    //  THnSparse for entries in half chambers per events
  THnSparseI *fHnSparseDebug;     //  THnSparse for half chambers satuts
  THnSparseI *fHnSparseMCM;       //  THnSparse for DCS MCM status

  TCanvas *fC1;                    // Canvas to plot

  Short_t     fDebugLevel;                   // Flag for debugging

  ClassDef(AliTRDCalibChamberStatus,1)
    
};
#endif


 AliTRDCalibChamberStatus.h:1
 AliTRDCalibChamberStatus.h:2
 AliTRDCalibChamberStatus.h:3
 AliTRDCalibChamberStatus.h:4
 AliTRDCalibChamberStatus.h:5
 AliTRDCalibChamberStatus.h:6
 AliTRDCalibChamberStatus.h:7
 AliTRDCalibChamberStatus.h:8
 AliTRDCalibChamberStatus.h:9
 AliTRDCalibChamberStatus.h:10
 AliTRDCalibChamberStatus.h:11
 AliTRDCalibChamberStatus.h:12
 AliTRDCalibChamberStatus.h:13
 AliTRDCalibChamberStatus.h:14
 AliTRDCalibChamberStatus.h:15
 AliTRDCalibChamberStatus.h:16
 AliTRDCalibChamberStatus.h:17
 AliTRDCalibChamberStatus.h:18
 AliTRDCalibChamberStatus.h:19
 AliTRDCalibChamberStatus.h:20
 AliTRDCalibChamberStatus.h:21
 AliTRDCalibChamberStatus.h:22
 AliTRDCalibChamberStatus.h:23
 AliTRDCalibChamberStatus.h:24
 AliTRDCalibChamberStatus.h:25
 AliTRDCalibChamberStatus.h:26
 AliTRDCalibChamberStatus.h:27
 AliTRDCalibChamberStatus.h:28
 AliTRDCalibChamberStatus.h:29
 AliTRDCalibChamberStatus.h:30
 AliTRDCalibChamberStatus.h:31
 AliTRDCalibChamberStatus.h:32
 AliTRDCalibChamberStatus.h:33
 AliTRDCalibChamberStatus.h:34
 AliTRDCalibChamberStatus.h:35
 AliTRDCalibChamberStatus.h:36
 AliTRDCalibChamberStatus.h:37
 AliTRDCalibChamberStatus.h:38
 AliTRDCalibChamberStatus.h:39
 AliTRDCalibChamberStatus.h:40
 AliTRDCalibChamberStatus.h:41
 AliTRDCalibChamberStatus.h:42
 AliTRDCalibChamberStatus.h:43
 AliTRDCalibChamberStatus.h:44
 AliTRDCalibChamberStatus.h:45
 AliTRDCalibChamberStatus.h:46
 AliTRDCalibChamberStatus.h:47
 AliTRDCalibChamberStatus.h:48
 AliTRDCalibChamberStatus.h:49
 AliTRDCalibChamberStatus.h:50
 AliTRDCalibChamberStatus.h:51
 AliTRDCalibChamberStatus.h:52
 AliTRDCalibChamberStatus.h:53
 AliTRDCalibChamberStatus.h:54
 AliTRDCalibChamberStatus.h:55
 AliTRDCalibChamberStatus.h:56
 AliTRDCalibChamberStatus.h:57
 AliTRDCalibChamberStatus.h:58
 AliTRDCalibChamberStatus.h:59
 AliTRDCalibChamberStatus.h:60
 AliTRDCalibChamberStatus.h:61
 AliTRDCalibChamberStatus.h:62
 AliTRDCalibChamberStatus.h:63
 AliTRDCalibChamberStatus.h:64
 AliTRDCalibChamberStatus.h:65
 AliTRDCalibChamberStatus.h:66
 AliTRDCalibChamberStatus.h:67
 AliTRDCalibChamberStatus.h:68
 AliTRDCalibChamberStatus.h:69
 AliTRDCalibChamberStatus.h:70
 AliTRDCalibChamberStatus.h:71
 AliTRDCalibChamberStatus.h:72
 AliTRDCalibChamberStatus.h:73
 AliTRDCalibChamberStatus.h:74
 AliTRDCalibChamberStatus.h:75
 AliTRDCalibChamberStatus.h:76
 AliTRDCalibChamberStatus.h:77
 AliTRDCalibChamberStatus.h:78
 AliTRDCalibChamberStatus.h:79
 AliTRDCalibChamberStatus.h:80
 AliTRDCalibChamberStatus.h:81
 AliTRDCalibChamberStatus.h:82
 AliTRDCalibChamberStatus.h:83
 AliTRDCalibChamberStatus.h:84
 AliTRDCalibChamberStatus.h:85
 AliTRDCalibChamberStatus.h:86
 AliTRDCalibChamberStatus.h:87
 AliTRDCalibChamberStatus.h:88
 AliTRDCalibChamberStatus.h:89
 AliTRDCalibChamberStatus.h:90
 AliTRDCalibChamberStatus.h:91
 AliTRDCalibChamberStatus.h:92
 AliTRDCalibChamberStatus.h:93
 AliTRDCalibChamberStatus.h:94
 AliTRDCalibChamberStatus.h:95
 AliTRDCalibChamberStatus.h:96
 AliTRDCalibChamberStatus.h:97
 AliTRDCalibChamberStatus.h:98
 AliTRDCalibChamberStatus.h:99
 AliTRDCalibChamberStatus.h:100