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

/* $Id: AliReconstruction.h 63911 2013-08-19 16:46:41Z hristov $ */

///////////////////////////////////////////////////////////////////////////////
//                                                                           //
// class for running the reconstruction                                      //
// Clusters and tracks are created for all detectors and all events by       //
// typing:                                                                   //
//                                                                           //
//   AliReconstruction rec;                                                  //
//   rec.Run();                                                              //
//                                                                           //
///////////////////////////////////////////////////////////////////////////////


#include <TSelector.h>
#include <TString.h>
#include <TObjArray.h>

class AliReconstructor;
class AliRunLoader;
class AliRawReader;
class AliLoader;
class AliTracker;
class AliMagF;
class AliVertexer;
class AliTrackleter;
class AliESDVertex;
class AliESDEvent;
class AliESDfriend;
class AliESDpid;
class AliVertexerTracks;
class TFile;
class TTree;
class TList;
class AliQAManager; 
class TMap;
class AliRecoParam;
class AliDetectorRecoParam;
class AliRunInfo;
class AliGRPObject;
class THashTable;
class AliTriggerRunScalers;
class AliCTPTimeParams;
class AliAnalysisManager;
class AliRecoInputHandler;

#include "AliQAv1.h"
#include "AliEventInfo.h"
#include "AliRecoParam.h"

using std::ofstream;

class AliReconstruction: public TSelector {
public:
  AliReconstruction(const char* gAliceFilename = "galice.root");
  virtual ~AliReconstruction();

  void           SetGAliceFile(const char* fileName);
  void           SetInput(const char* input);
  void           SetOutput(const char* output);

  void           SetEquipmentIdMap(const char *mapFile) {fEquipIdMap = mapFile;};
  void           SetEventRange(Int_t firstEvent = 0, Int_t lastEvent = -1) 
    {fFirstEvent = firstEvent; fLastEvent = lastEvent;};
  void           SetNumberOfEventsPerFile(UInt_t nEvents)
    {fNumberOfEventsPerFile = nEvents;};
  void           SetFractionFriends(Double32_t frac = 0.04)
    {fFractionFriends = frac;};
  void           SetOption(const char* detector, const char* option);
  void           SetRecoParam(const char* detector, AliDetectorRecoParam *par);

  void           SetRunLocalReconstruction(const char* detectors) {
    fRunLocalReconstruction = detectors;};
  void           SetRunTracking(const char* detectors) {
    fRunTracking = detectors;};
  void           SetFillESD(const char* detectors) {fFillESD = detectors;};
  void           SetRunReconstruction(const char* detectors) {
    SetRunLocalReconstruction(detectors); 
    SetRunTracking(detectors);
    SetFillESD(detectors);};
  void           SetDeleteRecPoints(const char* dets) {fDeleteRecPoints = dets;}
  void           SetDeleteDigits(const char* dets)    {fDeleteDigits = dets;}
  void           SetUseTrackingErrorsForAlignment(const char* detectors) 
    {fUseTrackingErrorsForAlignment = detectors;};
  void           SetLoadAlignFromCDB(Bool_t load)  {fLoadAlignFromCDB = load;};
  void           SetLoadAlignData(const char* detectors) 
    {fLoadAlignData = detectors;};

  void           SetTreeBuffSize(Long64_t sz=30000000) {fTreeBuffSize = sz;}
  //*** Global reconstruction flag setters
  void SetRunMultFinder(Bool_t flag=kTRUE) {fRunMultFinder=flag;};
  void SetRunVertexFinder(Bool_t flag=kTRUE) {fRunVertexFinder=flag;};
  void SetRunVertexFinderTracks(Bool_t flag=kTRUE) {fRunVertexFinderTracks=flag;};
  void SetRunV0Finder(Bool_t flag=kTRUE) {fRunV0Finder=flag;};
  void SetRunCascadeFinder(Bool_t flag=kTRUE) {fRunCascadeFinder=flag;};
  void SetStopOnError(Bool_t flag=kTRUE) {fStopOnError=flag;}
  void SetStopOnMissingTriggerFile(Bool_t flag=kTRUE) {fStopOnMissingTriggerFile=flag;}
  void SetWriteAlignmentData(Bool_t flag=kTRUE){fWriteAlignmentData=flag;}
  void SetWriteESDfriend(Bool_t flag=kTRUE){fWriteESDfriend=flag;}
  void SetFillTriggerESD(Bool_t flag=kTRUE){fFillTriggerESD=flag;}
  void SetDiamondProfileSPD(AliESDVertex *dp) {fDiamondProfileSPD=dp;}
  void SetDiamondProfile(AliESDVertex *dp) {fDiamondProfile=dp;}
  void SetDiamondProfileTPC(AliESDVertex *dp) {fDiamondProfileTPC=dp;}
		   
  void SetCleanESD(Bool_t flag=kTRUE){fCleanESD=flag;}
  void SetUseHLTData(const char* detectors){fUseHLTData=detectors;}
  void SetV0DCAmax(Float_t d) {fV0DCAmax=d;}
  void SetV0CsPmin(Float_t d) {fV0CsPmin=d;}
  void SetDmax(Float_t d) {fDmax=d;}
  void SetZmax(Float_t z) {fZmax=z;}
  Float_t GetV0DCAmax() const {return fV0DCAmax;}
  Float_t GetV0CsPmin() const {return fV0CsPmin;}
  Float_t GetDmax() const {return fDmax;}
  Float_t GetZmax() const {return fZmax;}
  
  Bool_t HasNextEventAfter(Int_t eventId);
  
  //
  Bool_t  IsRunMultFinder()   const {return fRunMultFinder;}
  
  // CDB storage activation
  void SetDefaultStorage(const char* uri);
  void SetSpecificStorage(const char* calibType, const char* uri);
  void SetCDBSnapshotMode(const char* snapshotFileName);
  void AddCheckRecoCDBvsSimuCDB(const char* cdbpath,const char* comment="");
  void RemCheckRecoCDBvsSimuCDB(const char* cdbpath);
  void ResetCheckRecoCDBvsSimuCDB() {fCheckRecoCDBvsSimuCDB.Delete();}
  void RectifyCDBurl(TString& url);
  const TObjArray* GetCheckRecoCDBvsSimuCDB() const {return &fCheckRecoCDBvsSimuCDB;}
  void CheckRecoCDBvsSimuCDB();
  Bool_t MisalignGeometry(const TString& detectors);

  void           SetAlignObjArray(TObjArray *array)
                   {fAlignObjArray = array;
		   fLoadAlignFromCDB = kFALSE;}

  virtual Int_t  Version() const {return 2;}
  virtual void   Begin(TTree*);
  virtual void   SlaveBegin(TTree*);
  virtual void   Init(TTree *tree);
  virtual Bool_t Process(Long64_t entry);
  virtual Bool_t ProcessEvent(Int_t iEvent);
  virtual void   SlaveTerminate();
  virtual void   Terminate();
  virtual Bool_t Run(const char* input = NULL);
  void           Abort(const char *method, EAbort what);
  virtual void	 SetOption(const char* option) {
    TSelector::SetOption(option);
  }

  // Trackers
  AliTracker* GetTracker(Int_t idx) const { return fTracker[idx]; }
  Bool_t      CreateTrackers(const TString& detectors);
  void        ImportRunLoader(AliRunLoader* rl) { fRunLoader = rl; }

  // Quality Assurance 
  void    SetQACycles(AliQAv1::DETECTORINDEX_t det, Int_t cycles) { fQACycles[det] = cycles ; }
  void    SetQAWriteExpert(AliQAv1::DETECTORINDEX_t det) { fQAWriteExpert[det] = kTRUE ; }
  Bool_t  SetRunQA(TString detAndAction="ALL:ALL") ; 
  void    SetRunGlobalQA(Bool_t flag=kTRUE){fRunGlobalQA = flag;}
  void    SetQARefDefaultStorage(const char* uri);
  void    InitQA();
  void    MergeQA(const char *fileName = NULL); 
  void    SetWriteQAExpert() { fWriteQAExpertData = kTRUE ; }
  Bool_t  IsRunQA() const { return fRunQA ; } 
  Bool_t  IsRunGlobalQA() const { return fRunGlobalQA ; }
  Bool_t  IsInTasks(AliQAv1::TASKINDEX_t tsk) { return fQATasks.Contains(Form("%d", tsk)) ; }
  
  // Plane Efficiency Evaluation
  void    SetRunPlaneEff(Bool_t flag=kFALSE)  {fRunPlaneEff = flag;}

  enum {
    kNDetectors = 18   // number of detectors    + AD +FIT //alla
  };
  static Int_t   GetDetIndex(const char * detector);
  static const char** GetDetectorNames() { return fgkDetectorName; }

  // Upgrade
 void SetUpgradeModule(const char* detectors)  {fUpgradeModule = detectors; MatchUpgradeDetector() ; }
 void MatchUpgradeDetector();

  // Connection to analysis manager. 
  // If a macro is set it should contain a function returning an analysis 
  // manager object. The macro is ignored in case the analysis manager is 
  // set via SetAnalysisManager
  void        SetAnalysisMacro(const char *macropath) {fAnalysisMacro = macropath;}
  const char *GetAnalysisMacro() const {return fAnalysisMacro.Data();}
  void        SetAnalysisManager(AliAnalysisManager *mgr) {fAnalysis = mgr;}
  AliAnalysisManager *GetAnalysisManager() const {return fAnalysis;}

  // A method to declare defined trigger classes even if they are not
  // present in the run, needed for proper event selection based on trigger
  void        DeclareTriggerClasses(const char *trClasses) {fDeclTriggerClasses = trClasses;}
  //
  //
  void 					 CleanProcessedEvent();
   
  AliESDEvent* GetESDEvent() const { return fesd; }
  AliESDfriend* GetESDfriend() const { return fesdf; }
  AliRunLoader* GetRunLoader() const { return fRunLoader;}
  AliRawReader* GetRawReader() const { return fRawReader; }
  
  Bool_t       HasEnoughResources(int ev);
  void         SetStopOnResourcesExcess(int vRSS=3000,int vVMEM=4000);
  //
  //
  virtual Bool_t ProcessEvent(void* event);
  void           InitRun(const char* input);

protected:
  // Functions needed to select events for which we store the ESD friends
  Bool_t IsHighPt() const;
  Bool_t IsCosmicOrCalibSpecie() const;
  void WriteESDfriend();

private:
  AliReconstruction(const AliReconstruction& rec);
  AliReconstruction& operator = (const AliReconstruction& rec);

  void           InitRawReader(const char* input);
  void           InitCDB();
  Bool_t         InitGRP();
  void           SetCDBLock();
  Bool_t         SetRunNumberFromData();
  Bool_t         LoadCDB();
  Bool_t         LoadTriggerScalersCDB();
  Bool_t         LoadCTPTimeParamsCDB();
  Bool_t         ReadIntensityInfoCDB();
  Bool_t         RunLocalEventReconstruction(const TString& detectors);
  Bool_t         RunVertexFinder(AliESDEvent*& esd);
  Bool_t         RunMuonTracking(AliESDEvent*& esd);
  Bool_t         RunMFTTrackingMU(AliESDEvent*& esd);      // AU
  Bool_t         RunSPDTrackleting(AliESDEvent*& esd);
  Bool_t         RunMultFinder(AliESDEvent*& esd);
  Bool_t         RunTracking(AliESDEvent*& esd, AliESDpid &PID);
  Bool_t         CleanESD(AliESDEvent *esd);
  Bool_t         FillESD(AliESDEvent*& esd, const TString& detectors);
  Bool_t         FillTriggerESD(AliESDEvent*& esd);
  Bool_t         FillTriggerScalers(AliESDEvent*& esd);
  Bool_t         FillRawEventHeaderESD(AliESDEvent*& esd);
  void           DeleteRecPoints(const TString& detectors);
  void           DeleteDigits(const TString& detectors);

  Bool_t         IsSelected(TString detName, TString& detectors) const;
  Bool_t         InitRunLoader();
  AliReconstructor* GetReconstructor(Int_t iDet);
  AliVertexer*   CreateVertexer();
  AliTrackleter* CreateMultFinder();
  void           CleanUp();

  Bool_t         ParseOutput();

  //==========================================//
  void           WriteAlignmentData(AliESDEvent* esd);

  void           FillRawDataErrorLog(Int_t iEvent, AliESDEvent* esd);

  //Quality Assurance
  //  void                 CheckQA() ;

  // Plane Efficiency evaluation
  Bool_t  FinishPlaneEff(); //ultimate tasks related to Plane Eff. evaluation 
  Bool_t  InitPlaneEff();   // initialize what is needed for Plane Eff. evaluation

  Bool_t               InitAliEVE();
  void                 RunAliEVE();

  Bool_t         InitRecoParams(); // init the array with the reconstruciton parameters
  Bool_t         GetEventInfo();   // fill the event info inside the event loop

  const char    *MatchDetectorList(const char *detectorList, UInt_t detectorMask);

  //*** Global reconstruction flags *******************
  Bool_t         fRunVertexFinder;    // run the vertex finder
  Bool_t         fRunVertexFinderTracks;    // run the vertex finder with tracks
  Bool_t         fRunMuonTracking;    // run the MUON tracking
  Bool_t         fRunMFTTrackingMU;   // run the MFT+MUON tracking      // AU
  Bool_t         fRunV0Finder;        // run the ESD V0 finder
  Bool_t         fRunCascadeFinder;   // run the ESD cascade finder
  Bool_t         fRunMultFinder;      // run the trackleter for ITS clusters
  Bool_t         fStopOnError;        // stop or continue on errors
  Bool_t         fStopOnMissingTriggerFile; // stop if the simulated trigger file is absent
  Bool_t         fWriteAlignmentData; // write track space-points flag
  Bool_t         fWriteESDfriend;     // write ESD friend flag
  Bool_t         fFillTriggerESD;     // fill trigger info into ESD

  //*** Clean ESD flag and parameters *******************
  Bool_t         fCleanESD;      // clean ESD flag
  Float_t        fV0DCAmax;      // max. allowed DCA between V0 daugthers 
  Float_t        fV0CsPmin;      // min. allowed cosine of V0 pointing angle 
  Float_t        fDmax;          // max. allowed transverse impact parameter 
  Float_t        fZmax;          // max. allowed longitudinal impact parameter 

  TString        fRunLocalReconstruction; // run the local reconstruction for these detectors
  TString        fRunTracking;        // run the tracking for these detectors
  TString        fFillESD;            // fill ESD for these detectors
  TString        fDeleteRecPoints;    // delete recpoints after each event
  TString        fDeleteDigits;       // delete digits after each event
  TString        fLoadCDB;            // prefetch CDB entries and init reco-params for these detectors
  TString        fUseTrackingErrorsForAlignment; // for these detectors
  TString        fGAliceFileName;     // name of the galice file
  TString        fRawInput;           // name of input raw-data file or directory
  TString        fESDOutput;          //! name of output ESD file
  TString        fProofOutputFileName;//! name of output file in PROOF mode
  TString        fProofOutputLocation;//! output location in PROOF mode
  Bool_t         fProofOutputDataset; //! keep output file in PROOF mode in dataset or merge
  TString        fProofOutputArchive; //! list of file to be kept in output zip archive in PROOF mode
  TString        fEquipIdMap;         // name of file with equipment id map
  Int_t          fFirstEvent;         // index of first event to be reconstr.
  Int_t          fLastEvent;          // index of last event to be reconstr.
  UInt_t         fNumberOfEventsPerFile; // number of events per file in case of raw-data reconstruction
  Double32_t     fFractionFriends; // fraction of ESD friends to be stored
  TObjArray      fOptions;            // options for reconstructor objects
  Bool_t         fLoadAlignFromCDB;   // Load alignment data from CDB and apply it to geometry or not
  TString        fLoadAlignData;      // Load alignment data from CDB for these detectors
  TString        fUseHLTData;        // Detectors for which the HLT data is used as input
  AliRunInfo*    fRunInfo;            // an object which contains essential global conditions information
  AliEventInfo   fEventInfo;          // an object which contains essential event information
  AliTriggerRunScalers* fRunScalers;  // an object which contains the trigger counters for xsection
  AliCTPTimeParams* fCTPTimeParams;   // an object which contains the trigger delays
  AliCTPTimeParams* fCTPTimeAlign;    // an object which contains the CTP (mis)alignment data
  AliRunLoader*  fRunLoader;          //! current run loader object
  AliRawReader*  fRawReader;          //! current raw data reader
  AliRawReader*  fParentRawReader;    //! parent raw data reader in case of AliRawReaderHLT

  static const char* fgkDetectorName[kNDetectors]; //! names of detectors
  AliReconstructor*  fReconstructor[kNDetectors];  //! array of reconstructor objects
  AliRecoParam   fRecoParam;                      // container for the reco-param objects for detectors
  AliLoader*     fLoader[kNDetectors];   //! detector loaders
  AliTracker*    fTracker[kNDetectors];  //! trackers
  AliTracker*    fSPDTrackleter;           //! trackleter [for SPD Plane Efficiency purposes]
  AliESDVertex*  fDiamondProfileSPD;       // (x,y) diamond profile from SPD for AliITSVertexer3D(Z)
  AliESDVertex*  fDiamondProfile;          // (x,y) diamond profile for AliVertexerTracks (ITS+TPC)
  AliESDVertex*  fDiamondProfileTPC;       // (x,y) diamond profile from TPC for AliVertexerTracks
  THashTable*    fListOfCosmicTriggers;    // list of cosmic triggers as defined by trigger coordination

  AliGRPObject*  fGRPData;              // Data from the GRP/GRP/Data CDB folder

  TObjArray* 	 fAlignObjArray;      //! array with the alignment objects to be applied to the geometry

  TString	 fCDBUri;	      //! Uri of the default CDB storage
  TString	 fQARefUri;	    //! Uri of the default QA reference storage
  TObjArray      fSpecCDBUri;         //! Array with detector specific CDB storages
  TObjArray      fCheckRecoCDBvsSimuCDB; // Array for CDB items which must be the same in the sim and rec
  Bool_t 	 fInitCDBCalled;               //! flag to check if CDB storages are already initialized
  Bool_t         fCDBSnapshotMode;             //! flag true if we are setting the CDB Manager in snapshot mode
  Bool_t 	 fSetRunNumberFromDataCalled;  //! flag to check if run number is already loaded from run loader

  //Quality Assurance
  Int_t  fQACycles[     AliQAv1::kNDET];  // # events over which QA data are accumulated
  Bool_t fQAWriteExpert[AliQAv1::kNDET];  // Flag to save or not expert QA data
  TString               fQADetectors ;  // list of detectors to be QA'ed 	
  TString               fQATasks ;      // list of QA tasks to be performed	
  Bool_t                fRunQA ;        // Run QA flag
  Bool_t                fRunGlobalQA;   // Run global QA flag
  Bool_t                fSameQACycle;   //! open a new QA data file or not
  Bool_t                fInitQACalled;  //! control of QA intialisation
  Bool_t                fWriteQAExpertData ; //! decides wheter or not to write experts QA data; true by default

  // Plane Efficiency Evaluation
  Bool_t         fRunPlaneEff ;      // Evaluate Plane Efficiency

  // PID
  AliESDpid*     fESDpid;                      // PID object

  // New members needed in order to split Run method
  // into InitRun,RunEvent,FinishRun methods
  AliESDEvent*         fesd;        //! Pointer to the ESD event object
  AliESDEvent*         fhltesd;     //! Pointer to the HLT ESD event object
  AliESDfriend*        fesdf;       //! Pointer to the ESD friend object
  TFile*               ffile;       //! Pointer to the ESD file
  TFile*               ffileF;      //! Pointer to the ESD friend file
  TTree*               ftree;       //! Pointer to the ESD tree
  TTree*               ftreeF;      //! Pointer to the ESD friend tree
  TTree*               fhlttree;    //! Pointer to the HLT ESD tree
  AliVertexerTracks*   ftVertexer;  //! Pointer to the vertexer based on ESD tracks
  Bool_t               fIsNewRunLoader; // galice.root created from scratch (real raw data case)
  Bool_t               fRunAliEVE;  // Run AliEVE or not
  Double_t             fBeamInt[2][2]; //! mean beam intensities from AliLHCData
  
  TTree*              fChain;      //! The raw-data chain in case of AliRawReaderChain

  // Counters used in WriteESDfriend()
  Int_t fNall;    //! Number of reconstructed events
  Int_t fNspecie; //! Number of events, selected by IsCosmicOrCalibSpecie
  Int_t fSspecie; //! Number of events, sampled from fNspecie
  Int_t fNhighPt; //! Number of events, selected by IsHighPt 
  Int_t fShighPt; //! Number of events, sampled from fNhighPt
 
  // Counters for SetAutoFlush configuration
  Long64_t fTreeBuffSize;   //  allowed uncompressed buffer size per tree
  Long64_t fMemCountESD;    //! accumulated ESD size before AutoSave 
  Long64_t fMemCountESDF;   //! accumulated ESD size before AutoSave 
  Long64_t fMemCountESDHLT; //! accumulated ESD size before AutoSave 
  //
  // Upgrade detector reconstruction
  TString fUpgradeModule;
  Bool_t  fUpgradeMask[kNDetectors];
  // Connect an analysis manager in the event loop
  TString              fAnalysisMacro; // Full path to a macro creating an analysis manager train
  AliAnalysisManager  *fAnalysis;      //! Analysis manager
  AliRecoInputHandler *fRecoHandler;   //! Input handler adapted for reconstruction
  TString              fDeclTriggerClasses; // Declared defined trigger classes
  //
  Bool_t               fStopped;        //  flag that reco is stopped due to the limited resources 
  Int_t                fMaxRSS;         //  max RSS memory, MB
  Int_t                fMaxVMEM;        //  max VMEM memory, MB
  static const char*   fgkStopEvFName;  //  filename for stop.event stamp
  //
  ClassDef(AliReconstruction, 49)      // class for running the reconstruction
};

#endif
 AliReconstruction.h:1
 AliReconstruction.h:2
 AliReconstruction.h:3
 AliReconstruction.h:4
 AliReconstruction.h:5
 AliReconstruction.h:6
 AliReconstruction.h:7
 AliReconstruction.h:8
 AliReconstruction.h:9
 AliReconstruction.h:10
 AliReconstruction.h:11
 AliReconstruction.h:12
 AliReconstruction.h:13
 AliReconstruction.h:14
 AliReconstruction.h:15
 AliReconstruction.h:16
 AliReconstruction.h:17
 AliReconstruction.h:18
 AliReconstruction.h:19
 AliReconstruction.h:20
 AliReconstruction.h:21
 AliReconstruction.h:22
 AliReconstruction.h:23
 AliReconstruction.h:24
 AliReconstruction.h:25
 AliReconstruction.h:26
 AliReconstruction.h:27
 AliReconstruction.h:28
 AliReconstruction.h:29
 AliReconstruction.h:30
 AliReconstruction.h:31
 AliReconstruction.h:32
 AliReconstruction.h:33
 AliReconstruction.h:34
 AliReconstruction.h:35
 AliReconstruction.h:36
 AliReconstruction.h:37
 AliReconstruction.h:38
 AliReconstruction.h:39
 AliReconstruction.h:40
 AliReconstruction.h:41
 AliReconstruction.h:42
 AliReconstruction.h:43
 AliReconstruction.h:44
 AliReconstruction.h:45
 AliReconstruction.h:46
 AliReconstruction.h:47
 AliReconstruction.h:48
 AliReconstruction.h:49
 AliReconstruction.h:50
 AliReconstruction.h:51
 AliReconstruction.h:52
 AliReconstruction.h:53
 AliReconstruction.h:54
 AliReconstruction.h:55
 AliReconstruction.h:56
 AliReconstruction.h:57
 AliReconstruction.h:58
 AliReconstruction.h:59
 AliReconstruction.h:60
 AliReconstruction.h:61
 AliReconstruction.h:62
 AliReconstruction.h:63
 AliReconstruction.h:64
 AliReconstruction.h:65
 AliReconstruction.h:66
 AliReconstruction.h:67
 AliReconstruction.h:68
 AliReconstruction.h:69
 AliReconstruction.h:70
 AliReconstruction.h:71
 AliReconstruction.h:72
 AliReconstruction.h:73
 AliReconstruction.h:74
 AliReconstruction.h:75
 AliReconstruction.h:76
 AliReconstruction.h:77
 AliReconstruction.h:78
 AliReconstruction.h:79
 AliReconstruction.h:80
 AliReconstruction.h:81
 AliReconstruction.h:82
 AliReconstruction.h:83
 AliReconstruction.h:84
 AliReconstruction.h:85
 AliReconstruction.h:86
 AliReconstruction.h:87
 AliReconstruction.h:88
 AliReconstruction.h:89
 AliReconstruction.h:90
 AliReconstruction.h:91
 AliReconstruction.h:92
 AliReconstruction.h:93
 AliReconstruction.h:94
 AliReconstruction.h:95
 AliReconstruction.h:96
 AliReconstruction.h:97
 AliReconstruction.h:98
 AliReconstruction.h:99
 AliReconstruction.h:100
 AliReconstruction.h:101
 AliReconstruction.h:102
 AliReconstruction.h:103
 AliReconstruction.h:104
 AliReconstruction.h:105
 AliReconstruction.h:106
 AliReconstruction.h:107
 AliReconstruction.h:108
 AliReconstruction.h:109
 AliReconstruction.h:110
 AliReconstruction.h:111
 AliReconstruction.h:112
 AliReconstruction.h:113
 AliReconstruction.h:114
 AliReconstruction.h:115
 AliReconstruction.h:116
 AliReconstruction.h:117
 AliReconstruction.h:118
 AliReconstruction.h:119
 AliReconstruction.h:120
 AliReconstruction.h:121
 AliReconstruction.h:122
 AliReconstruction.h:123
 AliReconstruction.h:124
 AliReconstruction.h:125
 AliReconstruction.h:126
 AliReconstruction.h:127
 AliReconstruction.h:128
 AliReconstruction.h:129
 AliReconstruction.h:130
 AliReconstruction.h:131
 AliReconstruction.h:132
 AliReconstruction.h:133
 AliReconstruction.h:134
 AliReconstruction.h:135
 AliReconstruction.h:136
 AliReconstruction.h:137
 AliReconstruction.h:138
 AliReconstruction.h:139
 AliReconstruction.h:140
 AliReconstruction.h:141
 AliReconstruction.h:142
 AliReconstruction.h:143
 AliReconstruction.h:144
 AliReconstruction.h:145
 AliReconstruction.h:146
 AliReconstruction.h:147
 AliReconstruction.h:148
 AliReconstruction.h:149
 AliReconstruction.h:150
 AliReconstruction.h:151
 AliReconstruction.h:152
 AliReconstruction.h:153
 AliReconstruction.h:154
 AliReconstruction.h:155
 AliReconstruction.h:156
 AliReconstruction.h:157
 AliReconstruction.h:158
 AliReconstruction.h:159
 AliReconstruction.h:160
 AliReconstruction.h:161
 AliReconstruction.h:162
 AliReconstruction.h:163
 AliReconstruction.h:164
 AliReconstruction.h:165
 AliReconstruction.h:166
 AliReconstruction.h:167
 AliReconstruction.h:168
 AliReconstruction.h:169
 AliReconstruction.h:170
 AliReconstruction.h:171
 AliReconstruction.h:172
 AliReconstruction.h:173
 AliReconstruction.h:174
 AliReconstruction.h:175
 AliReconstruction.h:176
 AliReconstruction.h:177
 AliReconstruction.h:178
 AliReconstruction.h:179
 AliReconstruction.h:180
 AliReconstruction.h:181
 AliReconstruction.h:182
 AliReconstruction.h:183
 AliReconstruction.h:184
 AliReconstruction.h:185
 AliReconstruction.h:186
 AliReconstruction.h:187
 AliReconstruction.h:188
 AliReconstruction.h:189
 AliReconstruction.h:190
 AliReconstruction.h:191
 AliReconstruction.h:192
 AliReconstruction.h:193
 AliReconstruction.h:194
 AliReconstruction.h:195
 AliReconstruction.h:196
 AliReconstruction.h:197
 AliReconstruction.h:198
 AliReconstruction.h:199
 AliReconstruction.h:200
 AliReconstruction.h:201
 AliReconstruction.h:202
 AliReconstruction.h:203
 AliReconstruction.h:204
 AliReconstruction.h:205
 AliReconstruction.h:206
 AliReconstruction.h:207
 AliReconstruction.h:208
 AliReconstruction.h:209
 AliReconstruction.h:210
 AliReconstruction.h:211
 AliReconstruction.h:212
 AliReconstruction.h:213
 AliReconstruction.h:214
 AliReconstruction.h:215
 AliReconstruction.h:216
 AliReconstruction.h:217
 AliReconstruction.h:218
 AliReconstruction.h:219
 AliReconstruction.h:220
 AliReconstruction.h:221
 AliReconstruction.h:222
 AliReconstruction.h:223
 AliReconstruction.h:224
 AliReconstruction.h:225
 AliReconstruction.h:226
 AliReconstruction.h:227
 AliReconstruction.h:228
 AliReconstruction.h:229
 AliReconstruction.h:230
 AliReconstruction.h:231
 AliReconstruction.h:232
 AliReconstruction.h:233
 AliReconstruction.h:234
 AliReconstruction.h:235
 AliReconstruction.h:236
 AliReconstruction.h:237
 AliReconstruction.h:238
 AliReconstruction.h:239
 AliReconstruction.h:240
 AliReconstruction.h:241
 AliReconstruction.h:242
 AliReconstruction.h:243
 AliReconstruction.h:244
 AliReconstruction.h:245
 AliReconstruction.h:246
 AliReconstruction.h:247
 AliReconstruction.h:248
 AliReconstruction.h:249
 AliReconstruction.h:250
 AliReconstruction.h:251
 AliReconstruction.h:252
 AliReconstruction.h:253
 AliReconstruction.h:254
 AliReconstruction.h:255
 AliReconstruction.h:256
 AliReconstruction.h:257
 AliReconstruction.h:258
 AliReconstruction.h:259
 AliReconstruction.h:260
 AliReconstruction.h:261
 AliReconstruction.h:262
 AliReconstruction.h:263
 AliReconstruction.h:264
 AliReconstruction.h:265
 AliReconstruction.h:266
 AliReconstruction.h:267
 AliReconstruction.h:268
 AliReconstruction.h:269
 AliReconstruction.h:270
 AliReconstruction.h:271
 AliReconstruction.h:272
 AliReconstruction.h:273
 AliReconstruction.h:274
 AliReconstruction.h:275
 AliReconstruction.h:276
 AliReconstruction.h:277
 AliReconstruction.h:278
 AliReconstruction.h:279
 AliReconstruction.h:280
 AliReconstruction.h:281
 AliReconstruction.h:282
 AliReconstruction.h:283
 AliReconstruction.h:284
 AliReconstruction.h:285
 AliReconstruction.h:286
 AliReconstruction.h:287
 AliReconstruction.h:288
 AliReconstruction.h:289
 AliReconstruction.h:290
 AliReconstruction.h:291
 AliReconstruction.h:292
 AliReconstruction.h:293
 AliReconstruction.h:294
 AliReconstruction.h:295
 AliReconstruction.h:296
 AliReconstruction.h:297
 AliReconstruction.h:298
 AliReconstruction.h:299
 AliReconstruction.h:300
 AliReconstruction.h:301
 AliReconstruction.h:302
 AliReconstruction.h:303
 AliReconstruction.h:304
 AliReconstruction.h:305
 AliReconstruction.h:306
 AliReconstruction.h:307
 AliReconstruction.h:308
 AliReconstruction.h:309
 AliReconstruction.h:310
 AliReconstruction.h:311
 AliReconstruction.h:312
 AliReconstruction.h:313
 AliReconstruction.h:314
 AliReconstruction.h:315
 AliReconstruction.h:316
 AliReconstruction.h:317
 AliReconstruction.h:318
 AliReconstruction.h:319
 AliReconstruction.h:320
 AliReconstruction.h:321
 AliReconstruction.h:322
 AliReconstruction.h:323
 AliReconstruction.h:324
 AliReconstruction.h:325
 AliReconstruction.h:326
 AliReconstruction.h:327
 AliReconstruction.h:328
 AliReconstruction.h:329
 AliReconstruction.h:330
 AliReconstruction.h:331
 AliReconstruction.h:332
 AliReconstruction.h:333
 AliReconstruction.h:334
 AliReconstruction.h:335
 AliReconstruction.h:336
 AliReconstruction.h:337
 AliReconstruction.h:338
 AliReconstruction.h:339
 AliReconstruction.h:340
 AliReconstruction.h:341
 AliReconstruction.h:342
 AliReconstruction.h:343
 AliReconstruction.h:344
 AliReconstruction.h:345
 AliReconstruction.h:346
 AliReconstruction.h:347
 AliReconstruction.h:348
 AliReconstruction.h:349
 AliReconstruction.h:350
 AliReconstruction.h:351
 AliReconstruction.h:352
 AliReconstruction.h:353
 AliReconstruction.h:354
 AliReconstruction.h:355
 AliReconstruction.h:356
 AliReconstruction.h:357
 AliReconstruction.h:358
 AliReconstruction.h:359
 AliReconstruction.h:360
 AliReconstruction.h:361
 AliReconstruction.h:362
 AliReconstruction.h:363
 AliReconstruction.h:364
 AliReconstruction.h:365
 AliReconstruction.h:366
 AliReconstruction.h:367
 AliReconstruction.h:368
 AliReconstruction.h:369
 AliReconstruction.h:370
 AliReconstruction.h:371
 AliReconstruction.h:372
 AliReconstruction.h:373
 AliReconstruction.h:374
 AliReconstruction.h:375
 AliReconstruction.h:376
 AliReconstruction.h:377
 AliReconstruction.h:378
 AliReconstruction.h:379
 AliReconstruction.h:380
 AliReconstruction.h:381
 AliReconstruction.h:382
 AliReconstruction.h:383
 AliReconstruction.h:384
 AliReconstruction.h:385
 AliReconstruction.h:386
 AliReconstruction.h:387
 AliReconstruction.h:388
 AliReconstruction.h:389
 AliReconstruction.h:390
 AliReconstruction.h:391
 AliReconstruction.h:392
 AliReconstruction.h:393
 AliReconstruction.h:394
 AliReconstruction.h:395
 AliReconstruction.h:396
 AliReconstruction.h:397
 AliReconstruction.h:398
 AliReconstruction.h:399
 AliReconstruction.h:400
 AliReconstruction.h:401
 AliReconstruction.h:402
 AliReconstruction.h:403
 AliReconstruction.h:404
 AliReconstruction.h:405
 AliReconstruction.h:406
 AliReconstruction.h:407
 AliReconstruction.h:408
 AliReconstruction.h:409
 AliReconstruction.h:410
 AliReconstruction.h:411
 AliReconstruction.h:412
 AliReconstruction.h:413
 AliReconstruction.h:414
 AliReconstruction.h:415
 AliReconstruction.h:416
 AliReconstruction.h:417
 AliReconstruction.h:418