ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/

#ifndef AliEveVSDCreator_H
#define AliEveVSDCreator_H

#include <TEveVSD.h>

#include <map>

class AliTPCParam;
class AliRunLoader;

class AliEveVSDCreator : public TEveVSD
{
public:
  AliEveVSDCreator(const Text_t* name="AliEveVSDCreator", const Text_t* title="");
  virtual ~AliEveVSDCreator() {}

  void CreateVSD(const Text_t* vsdFile="AliVSD.root");

  void CreateTrees();

  // --------------------------------------------------------------
  // Conversion functions.

  void ConvertKinematics();

  void ConvertHits();
  void ConvertAnyHits(const TString& detector, const TString& clones_class,
                      Int_t det_id, Float_t minDistSqr=0);
  void ConvertTPCHits(Int_t det_id, Float_t minDistSqr=0);

  void ConvertClusters();
  void ConvertAnyClusters(const TString& detector, const TString& branch_name,
                          Int_t det_id);
  void ConvertTPCClusters(Int_t det_id);

  void ConvertRecTracks();

  void ConvertV0();
  void ConvertKinks();

  void ConvertGenInfo();

  // --------------------------------------------------------------

  Int_t GetDebugLevel() const   { return fDebugLevel; }
  void  SetDebugLevel(Int_t dl) { fDebugLevel = dl; }

protected:
  void               MakeItsDigitsInfo();
  TEveMCRecCrossRef* GetGeninfo(Int_t label);

  Float_t       fTPCHitRes;  // Resolution for storing TPC hits.
  Float_t       fTRDHitRes;  // Resolution for storing TRD hits.

  Int_t         fDebugLevel; // Internal debug level.

  AliRunLoader *fRunLoader;  // Internal run-loader.

  std::map<Int_t, TEveMCRecCrossRef*> fGenInfoMap; // Map label to MC-Rec cross-ref data structure.

private:
  AliEveVSDCreator(const AliEveVSDCreator&);            // Not implemented
  AliEveVSDCreator& operator=(const AliEveVSDCreator&); // Not implemented

  ClassDef(AliEveVSDCreator, 0); // Create VSD file from ALICE data.
}; // endclass AliEveVSDCreator

#endif
 AliEveVSDCreator.h:1
 AliEveVSDCreator.h:2
 AliEveVSDCreator.h:3
 AliEveVSDCreator.h:4
 AliEveVSDCreator.h:5
 AliEveVSDCreator.h:6
 AliEveVSDCreator.h:7
 AliEveVSDCreator.h:8
 AliEveVSDCreator.h:9
 AliEveVSDCreator.h:10
 AliEveVSDCreator.h:11
 AliEveVSDCreator.h:12
 AliEveVSDCreator.h:13
 AliEveVSDCreator.h:14
 AliEveVSDCreator.h:15
 AliEveVSDCreator.h:16
 AliEveVSDCreator.h:17
 AliEveVSDCreator.h:18
 AliEveVSDCreator.h:19
 AliEveVSDCreator.h:20
 AliEveVSDCreator.h:21
 AliEveVSDCreator.h:22
 AliEveVSDCreator.h:23
 AliEveVSDCreator.h:24
 AliEveVSDCreator.h:25
 AliEveVSDCreator.h:26
 AliEveVSDCreator.h:27
 AliEveVSDCreator.h:28
 AliEveVSDCreator.h:29
 AliEveVSDCreator.h:30
 AliEveVSDCreator.h:31
 AliEveVSDCreator.h:32
 AliEveVSDCreator.h:33
 AliEveVSDCreator.h:34
 AliEveVSDCreator.h:35
 AliEveVSDCreator.h:36
 AliEveVSDCreator.h:37
 AliEveVSDCreator.h:38
 AliEveVSDCreator.h:39
 AliEveVSDCreator.h:40
 AliEveVSDCreator.h:41
 AliEveVSDCreator.h:42
 AliEveVSDCreator.h:43
 AliEveVSDCreator.h:44
 AliEveVSDCreator.h:45
 AliEveVSDCreator.h:46
 AliEveVSDCreator.h:47
 AliEveVSDCreator.h:48
 AliEveVSDCreator.h:49
 AliEveVSDCreator.h:50
 AliEveVSDCreator.h:51
 AliEveVSDCreator.h:52
 AliEveVSDCreator.h:53
 AliEveVSDCreator.h:54
 AliEveVSDCreator.h:55
 AliEveVSDCreator.h:56
 AliEveVSDCreator.h:57
 AliEveVSDCreator.h:58
 AliEveVSDCreator.h:59
 AliEveVSDCreator.h:60
 AliEveVSDCreator.h:61
 AliEveVSDCreator.h:62
 AliEveVSDCreator.h:63
 AliEveVSDCreator.h:64
 AliEveVSDCreator.h:65
 AliEveVSDCreator.h:66
 AliEveVSDCreator.h:67
 AliEveVSDCreator.h:68
 AliEveVSDCreator.h:69
 AliEveVSDCreator.h:70
 AliEveVSDCreator.h:71
 AliEveVSDCreator.h:72
 AliEveVSDCreator.h:73
 AliEveVSDCreator.h:74
 AliEveVSDCreator.h:75
 AliEveVSDCreator.h:76
 AliEveVSDCreator.h:77