LCOV - code coverage report
Current view: top level - ZDC/ZDCrec - AliZDCReconstructor.h (source / functions) Hit Total Coverage
Test: coverage.info Lines: 4 12 33.3 %
Date: 2016-06-14 17:26:59 Functions: 5 16 31.2 %

          Line data    Source code
       1             : #ifndef ALIZDCRECONSTRUCTOR_H
       2             : #define ALIZDCRECONSTRUCTOR_H
       3             : /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
       4             :  * See cxx source for full Copyright notice                               */
       5             : 
       6             : /* $Id$ */
       7             : 
       8             : /////////////////////////////////////////////
       9             : //                                         //
      10             : //       class for ZDC reconstruction      //
      11             : //                                         //
      12             : /////////////////////////////////////////////
      13             : 
      14             : #include "AliReconstructor.h"
      15             : #include "AliZDCRecoParam.h"
      16             : #include "AliESDZDC.h"
      17             : 
      18             : class AliCDBManager;
      19             : class AliCDBStorage;
      20             : class AliZDCPedestals;
      21             : class AliZDCEnCalib;
      22             : class AliZDCSaturationCalib;
      23             : class AliZDCTowerCalib;
      24             : class AliZDCMBCalib;
      25             : class AliZDCTDCCalib;
      26             : class AliZDCChMap;
      27             : class AliZDCRecoParampp;
      28             : class AliZDCRecoParamPbPb;
      29             : class AliLog;
      30             : class AliLoader;
      31             : 
      32             : class AliZDCReconstructor: public AliReconstructor {
      33             : public:
      34             :   //  MAPPING !!!! NB !!!!! MUST BE THE SAME AS FOR AliZDCRawStream.h !!!!
      35             :   // Module type codes
      36             :   enum ZDCModules{kV965=1, kV830=2, kTRG=3, kTRGI=4, kPU=5, KV1290=6, kV775N=7}; 
      37             :   
      38             :   // Module type codes
      39             :   enum ZDCGeoAddr{kFirstADCGeo=0, kLastADCGeo=3, kADDADCGeo=5,
      40             :        kTDCFakeGeo=8, kZDCTDCGeo=4, kADDTDCGeo=6,
      41             :        kScalerGeo=16, kPUGeo=29, kTrigScales=30, kTrigHistory=31};
      42             :   
      43             :   // Signal codes for ZDC 
      44             :   // Same codes used in DAQ configuration file
      45             :   // To be changed ONLY IF this file is changed!!! 
      46             :   // **** DO NOT CHANGE THE FOLLOWING LINES!!! ****
      47             :   enum ZDCSignal{
      48             :        kNotConnected=0, kVoid=1,
      49             :        kZNAC=2, kZNA1=3, kZNA2=4, kZNA3=5, kZNA4=6,
      50             :        kZPAC=7, kZPA1=8, kZPA2=9, kZPA3=10, kZPA4=11,
      51             :        kZNCC=12, kZNC1=13, kZNC2=14, kZNC3=15, kZNC4=16,
      52             :        kZPCC=17, kZPC1=18, kZPC2=19, kZPC3=20, kZPC4=21,
      53             :        kZEM1=22, kZEM2=23,
      54             :        kZDCAMon=24, kZDCCMon=25,
      55             :        kZNACoot=26, kZNA1oot=27, kZNA2oot=28, kZNA3oot=29, kZNA4oot=30,
      56             :        kZPACoot=31, kZPA1oot=32, kZPA2oot=33, kZPA3oot=34, kZPA4oot=35,
      57             :        kZNCCoot=36, kZNC1oot=37, kZNC2oot=38, kZNC3oot=39, kZNC4oot=40,
      58             :        kZPCCoot=41, kZPC1oot=42, kZPC2oot=43, kZPC3oot=44, kZPC4oot=45,
      59             :        kZEM1oot=46, kZEM2oot=47,
      60             :        kZDCAMonoot=48, kZDCCMonoot=49,
      61             :        kL1MBI=50, kL1CNI=51, kL1SCI=52, kL1EMDI=53, kL0I=54, 
      62             :        kL1MBO=55, kL1CNO=56, kL1SCO=57, kL1EMDO=58, 
      63             :        kHMBCN=59, kHSCEMD=60,
      64             :        kZNACD=61, kZNA1D=62, kZNA2D=63, kZNA3D=64, kZNA4D=65,
      65             :        kZPACD=66, kZPA1D=67, kZPA2D=68, kZPA3D=69, kZPA4D=70,
      66             :        kZNCCD=71, kZNC1D=72, kZNC2D=73, kZNC3D=74, kZNC4D=75,
      67             :        kZPCCD=76, kZPC1D=77, kZPC2D=78, kZPC3D=79, kZPC4D=80,
      68             :        kZEM1D=81, kZEM2D=82,
      69             :        kZDCAMonD=83, kZDCCMonD=84,
      70             :        kZNAD=85, kZPAD=86, kZNCD=87, kZPCD=88, kZEMD=89,
      71             :        kZNA0D=90, kZPA0D=91, kZNC0D=92, kZPC0D=93, k1kHzD=94, kGate=95, kAD=96, kCD=97, 
      72             :        kAorCD=98, kAandCD=99, kZEMORD=100, kAorCorZEMORD=101, kAorCorZEMD=102, kAD0=103, kAD1=104, kAD2=105, 
      73             :        kAD3=106, kAD4=107, kAD5=108, kAD6=109, kAD7=110, kAD8=111, kAD9=112, kAD10=113, 
      74             :        kAD11=114, kAD12=115, kAD13=116, kAD14=117, kAD15=118, kAD0D=119, kAD1D=120, kAD2D=121,
      75             :        kAD3D=122, kAD4D=123, kAD5D=124, kAD6D=125, kAD7D=126, kAD8D=127, kAD9D=128, kAD10D=129,
      76             :        kAD11D=130, kAD12D=131, kAD13D=132, kAD14D=133, kAD15D=134, kL0=135,
      77             :        k1ZAC=136, k1ZED=137, k1ZMD=138, k1ZMB=139
      78             :        };
      79             :   //  MAPPING !!!! NB !!!!! MUST BE THE SAME AS FOR AliZDCRawStream.h !!!!
      80             : 
      81             :   AliZDCReconstructor();
      82             :   virtual ~AliZDCReconstructor();
      83             : 
      84             :   virtual void   Init();
      85             :   virtual void   Init(TString beamType, Float_t beamEnergy);
      86          24 :   virtual Bool_t HasDigitConversion() const {return kFALSE;};
      87             :   
      88             :   virtual void Reconstruct(TTree*digitsTree, TTree* clustersTree) const; 
      89             :   virtual void Reconstruct(AliRawReader* rawReader, TTree* clustersTree) const;
      90             : 
      91             :   virtual void FillESD(TTree* /*digitsTree*/, TTree* clustersTree, 
      92           8 :                        AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
      93             :   virtual void FillESD(AliRawReader* /*rawReader*/, TTree* clustersTree, 
      94           8 :                        AliESDEvent* esd) const {FillZDCintoESD(clustersTree, esd);}
      95             :   
      96             :   void   FillZDCintoESD(TTree *clustersTree, AliESDEvent *esd) const;
      97             :   
      98             :   int    GetChannelSignal(int det, int quad, Bool_t intime=kTRUE) const;
      99             :   
     100             :   // parameter settings for reconstruction
     101             :   void SetRecoMode(Int_t recoMode, Float_t beamEnergy) 
     102           0 :        {fRecoMode=recoMode; fBeamEnergy=beamEnergy;}
     103             :   static void SetRecoParam(AliZDCRecoParam * const param)
     104           0 :               {fgRecoParam = param;}
     105             :   
     106           0 :   Int_t   GetRecoMode() const {return fRecoMode;}
     107           0 :   Float_t GetBeamEnergy() const {return fBeamEnergy;}
     108             :   
     109           0 :   AliESDZDC* GetZDCESDData() const {return fESDZDC;}
     110             :   
     111             :   static const AliZDCRecoParam* GetRecoParam() 
     112           0 :   {return dynamic_cast<const AliZDCRecoParam*>(AliReconstructor::GetRecoParam(9));}
     113             :     
     114           0 :   void    SetSignalThreshold(Float_t val) {fSignalThreshold=val;}
     115           0 :   Float_t GetSignalThreshold() const {return fSignalThreshold;}
     116             :   
     117             :   // OCDB objects for reconstruction
     118             :   AliCDBStorage       *SetStorage(const char* uri);
     119             :   AliZDCPedestals     *GetPedestalData() const; 
     120             :   AliZDCEnCalib       *GetEnergyCalibData() const; 
     121             :   AliZDCSaturationCalib *GetSaturationCalibData() const; 
     122             :   AliZDCTowerCalib    *GetTowerCalibData() const; 
     123             :   AliZDCMBCalib       *GetMBCalibData() const; 
     124             :   AliZDCTDCCalib      *GetTDCCalibData() const; 
     125             :   AliZDCChMap         *GetMapping() const; 
     126             :   
     127             : private:
     128             :   AliZDCReconstructor(const AliZDCReconstructor&); //Not implemented
     129             :   AliZDCReconstructor& operator =(const AliZDCReconstructor&); //Not implemented
     130             : 
     131             :   void   ReconstructEventpp(TTree *clustersTree, 
     132             :          Float_t corrADC[24][2], Int_t signalCodeADC[24], Int_t signalCodeTDC[7], Bool_t isScalerOn, UInt_t* scaler, 
     133             :          Int_t tdcData[32][4], const Int_t* const evQualityBlock, 
     134             :          const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
     135             :          
     136             :   void   ReconstructEventPbPb(TTree *clustersTree, 
     137             :          Float_t corrADC[24][2], Int_t signalCodeADC[24], Int_t signalCodeTDC[7], Bool_t isScalerOn, UInt_t* scaler, 
     138             :          Int_t tdcData[32][4], const Int_t* const evQualityBlock, 
     139             :          const Int_t* const triggerBlock, const Int_t* const chBlock, UInt_t puBits) const;
     140             : 
     141             :   static AliZDCRecoParam *fgRecoParam; // reconstruction parameters
     142             : 
     143             :   static AliZDCMBCalib   *fgMBCalibData;  //! mb calibration data
     144             :   AliZDCPedestals  *fPedData;             //! pedestal calibration data
     145             :   AliZDCEnCalib    *fEnCalibData;         //! energy calibration data
     146             :   AliZDCSaturationCalib  *fSatCalibData;  //! energy calibration data
     147             :   AliZDCTowerCalib *fTowCalibData;        //! equalization calibration data
     148             :   AliZDCTDCCalib   *fTDCCalibData;        //! TDC offset data
     149             :   AliZDCChMap      *fMapping;             //! Mapping from OCDB
     150             :   
     151             :   Int_t    fRecoMode;        // =1->p-p, p-A (A-p), =2->A-A
     152             :   Float_t  fBeamEnergy;      // beam energy
     153             :   Int_t    fNRun;            // Run Number (from raw data)
     154             :   Bool_t   fIsCalibrationMB; // true if run type = "CALIBRATION_MB"
     155             :   Float_t  fSignalThreshold; // Threshold value for "triggering" in p-p
     156             :   Double_t fMeanPhase;       // LHC clock phase
     157             :   
     158             :   AliESDZDC* fESDZDC;        // ESD output object  
     159             : 
     160          72 :   ClassDef(AliZDCReconstructor, 15)   // class for the ZDC reconstruction
     161             : };
     162             : 
     163             : #endif

Generated by: LCOV version 1.11