]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - TRD/AliTRDqaBlackEvents.h
modify objects by default (setting links tracks to clusters of original objects)
[u/mrichter/AliRoot.git] / TRD / AliTRDqaBlackEvents.h
index f663ac0b160a0e719291ac3d180961a5f8e67b51..02e167213f657661e52b369d0c8a8d8cfdd8e982 100644 (file)
@@ -22,7 +22,8 @@ class TH2S;
 class TH3F;
 class TGraph;
 class TObjArray;
-class AliTRDrawStreamTB;
+class AliTRDrawStreamOld;
+class AliRawReader;
 
 class AliTRDqaBlackEvents : public TObject {
 
@@ -35,14 +36,19 @@ class AliTRDqaBlackEvents : public TObject {
 
   void Init();
   void Reset();
-  Int_t AddEvent(AliTRDrawStreamTB *data);
+  //Int_t AddEvent(AliTRDrawStream *data, AliRawReader *reader);
+
+  void StartEvent();
+  void AddBuffer(AliTRDrawStreamOld *data, AliRawReader * const reader);
+  void FinishEvent();
+
   void Process(const char* filename);
   
   //TH2D *GetChamberPedestal(Int_t sm, Int_t layer, Int_t stack) {return 0;}
-  TH2D *GetChamberPedestal(Int_t det) {return fChPed[det];}
+  TH2D *GetChamberPedestal(Int_t det) const {return fChPed[det];}
   
   //TH2D *GetChamberNoise(Int_t sm, Int_t layer, Int_t stack) {return 0;}
-  TH2D *GetChamberNoise(Int_t det) {return fChNoise[det];}
+  TH2D *GetChamberNoise(Int_t det) const {return fChNoise[det];}
   
   void SetNoiseLevel(Double_t min, Double_t max) {fMinNoise = min; fMaxNoise = max;}
   void SetFitMethod(Int_t fit) {fFitType = fit;} 
@@ -66,8 +72,10 @@ class AliTRDqaBlackEvents : public TObject {
   Int_t fThresh;          // threshold to analyze MCM data
   Int_t fCount;           // minimum number of entries above threshold
   
-  Char_t fRefFileName[256];  // name of the file with reference distributions
+  Int_t fRefEv;           // reference event number
 
+  //Char_t fRefFileName[256];  // name of the file with reference distributions
+  const Char_t *fRefFileName;  // name of the file with reference distributions
 
   // geometry constants 
   enum {
@@ -76,9 +84,10 @@ class AliTRDqaBlackEvents : public TObject {
     kMCM = 16,
     kADC = 21,
     kTB  = 30,
-    kCOL = 16,
+    kROW = 16,
     kPAD = 144,
-    kSM  = 18
+    kSM  = 18,
+    kCH  = 50
   };
 
   // histograms per detector
@@ -100,6 +109,10 @@ class AliTRDqaBlackEvents : public TObject {
   TH2D *fnEntriesRM[kDET];     // number of entries for ROB - MCM
   TH1D *fnEntriesRMDist[kDET]; // distribtion of number of entries per ROB-MCM
 
+  // direct access to data
+  Float_t  fDataDirect[kDET][kROW][kPAD][kCH];  // data array
+  Double_t fSignalDirect[kDET][kCH]; // signal array
+
   // after reference subtraction
   TH2D *fChPedRes[kDET];    // histograms after reference subtraction
   TH2D *fChNoiseRes[kDET];  // histograms after reference subtraction
@@ -126,46 +139,71 @@ class AliTRDqaBlackEvents : public TObject {
   TH2D *fErrorLocADC[kDET];      // errors in ADC
 
   // error fraction
-  TGraph *fErrorGraphHC;
-  TGraph *fErrorGraphMCM;
-  TGraph *fErrorGraphADC;
+  TGraph *fErrorGraphHC;     // HC errors
+  TGraph *fErrorGraphMCM;    // MCM errors
+  TGraph *fErrorGraphADC;    // ADC errors
 
   TGraph *fGraphMCM;         // number of strange MCMs detected 
+  TGraph *fGraphPP[3];       // number of strange points
+  
 
-  // mcm trackles
-  TObjArray *fMcmTracks;
+  // mcm tracklets
+  TObjArray *fMcmTracks;     // MCM tracklets
 
   // problematic MCMs
-  TH2D *fMapMCM;
-  TH1D *fFracMCM;
+  TH2D *fMapMCM;             // map of problematic MCMs
+  TH1D *fFracMCM;            // fraction of problematicc MCMs
   
   // full detector view
-  TH2D *fSMHCped;
-  TH2D *fSMHCerr;
-
+  TH2D *fSMHCped;            // full detector view of pedestals
+  TH2D *fSMHCerr;            // full detector view of errors
+  TH2D *fSMLink[3];          // full detector view
+  TGraph *fGrLink[3];        // full detector view
+  
+  //TH1D *fZSsize;
+  
+  
   // number of fired ADC channels in total and per SM
   TGraph *fNumberADC[kSM+1];
   
   //Int_t fChkDe
   
-  TH1D *fNoiseTotal;
-  TH1D *fPP;
+  TH1D *fNoiseTotal;         // total noise
+  TH1D *fPP;                 // points
   
-  TH1D *fSmNoiseRms[kSM];
-  TH1D *fSmNoiseFit[kSM];
-  TH1D *fSmPP[kSM];    
+  TH1D *fSmNoiseRms[kSM];    // noise RMS
+  TH1D *fSmNoiseFit[kSM];    // noise fit
+  TH1D *fSmPP[kSM];          // points
+
+
+  TH1D *fEvNoDist[1000];     // event numbers
 
   //
   Double_t fMinNoise;   // Minimum noise
   Double_t fMaxNoise;   // Maximum noise
-  Int_t fFitType;
+  Int_t fFitType;       // fit type
   
+  // variables keeping info in one event
+  Int_t fnErrorHC[2];  // 0 good, 1 error
+  Int_t fnErrorMCM[2]; // 0 good, 1 error
+  Int_t fnErrorADC[2]; // 0 good, 1 error
+   
+  Int_t fppThresh[3];      // thresholds for storing pp
+  Int_t fnPP[3];           // number of entries above the thershold
+  Int_t fnLink[3];         // links present, beaf-beaf, good
+  Int_t fnADCinSM[kSM+1];  // number of ADC channels in a SuperModule
+  //
+
+
+
   // private function
   void  ReadRefHists(Int_t det);
-  Int_t CheckMCM(Int_t index);
+  Int_t CheckMCM(Int_t index) const;
   
+  Int_t FillBits(TH1D *hist, Int_t code, Int_t offset);
+
 
-  ClassDef(AliTRDqaBlackEvents,0) // QA for black events  
+  ClassDef(AliTRDqaBlackEvents,1) // QA for black events  
 
 };
 #endif