**************************************************************************/
/* $Id$ */
+// AliMUONData classes
+// Class containing MUON data: hits, digits, rawclusters, globaltrigger, localtrigger, etc ..
+// The classe makes the lik between the MUON data lists and the event trees from loaders
+// Gines Martinez, Subatech, September 2003
+//
+
//Root includes
#include "TNamed.h"
//_____________________________________________________________________________
AliMUONData::AliMUONData():TNamed()
{
+ // Default constructor
fLoader = 0x0;
fHits = 0x0; // One event in treeH per primary track
fDigits = 0x0; // One event in treeH per detection plane
AliMUONData::AliMUONData(AliLoader * loader, const char* name, const char* title):
TNamed(name,title)
{
+ // Constructor for AliMUONData
fLoader = loader;
fHits = 0x0; // One event in treeH per primary track
fDigits = 0x0; // One event in treeH per detection plane
//_____________________________________________________________________________
AliMUONData::~AliMUONData()
{
+ // Destructor for AliMUONData
if (fHits) {
fHits->Delete();
delete fHits;
Float_t tof, Float_t momentum, Float_t theta,
Float_t phi, Float_t length, Float_t destep)
{
+ // Add new hit to the hit list
TClonesArray &lhits = *fHits;
new(lhits[fNhits++]) AliMUONHit(fIshunt, track, iChamber,
idpart, X, Y, Z,
Float_t phi, Float_t length, Float_t destep,
Float_t Xref,Float_t Yref,Float_t Zref)
{
+ // Add new hit to the hit list
TClonesArray &lhits = *fHits;
new(lhits[fNhits++]) AliMUONHit(fIshunt, track, iChamber,
idpart, X, Y, Z,
//____________________________________________________________________________
TClonesArray* AliMUONData::Digits(Int_t DetectionPlane)
{
+ //Getting List of Digits
if (fDigits)
return ( (TClonesArray*) fDigits->At(DetectionPlane) );
else
//____________________________________________________________________________
Bool_t AliMUONData::IsRawClusterBranchesInTree()
{
+ // Checking if there are RawCluster Branches In TreeR
if (TreeR()==0x0) {
Error("TreeR","No treeR in memory");
return kFALSE;
//____________________________________________________________________________
Bool_t AliMUONData::IsTriggerBranchesInTree()
{
+ // Checking if there are Trigger Branches In TreeR
if (TreeR()==0x0) {
Error("TreeR","No treeR in memory");
return kFALSE;
//____________________________________________________________________________
TClonesArray* AliMUONData::RawClusters(Int_t DetectionPlane)
{
+ // Getting Raw Clusters
if (fRawClusters)
return ( (TClonesArray*) fRawClusters->At(DetectionPlane) );
else
//_____________________________________________________________________________
void AliMUONData::SetTreeAddress(Option_t* option)
{
+ //Setting Addresses to the events trees
const char *cH = strstr(option,"H");
const char *cD = strstr(option,"D"); // Digits branches in TreeD
const char *cRC = strstr(option,"RC"); // RawCluster branches in TreeR
protected:
- AliLoader* fLoader;
-
- // One event in treeH per primary track
- TClonesArray* fHits;
- // One event in treeD and one branch per detection plane
- TObjArray* fDigits;
- //One event in TreeR/Rawcluster and one branch per tracking detection plane
- TObjArray* fRawClusters;
- //! List of Global Trigger One event in TreeR/GlobalTriggerBranch
- TClonesArray* fGlobalTrigger;
- //! List of Local Trigger, One event in TreeR/LocalTriggerBranch
- TClonesArray* fLocalTrigger;
- // pointer to array of reconstructed tracks
- TClonesArray* fRecTracks;
-
- Int_t fNhits; //!
- Int_t* fNdigits;//!
- Int_t* fNrawclusters;//!
- Int_t fNglobaltrigger;//!
- Int_t fNlocaltrigger;//!
- Int_t fNrectracks; //!
+ AliLoader* fLoader; //! Detector Loader pointer
+ TClonesArray* fHits; // One event in treeH per primary track
+ TObjArray* fDigits; // One event in treeD and one branch per detection plane
+ TObjArray* fRawClusters; //One event in TreeR/Rawcluster and one branch per tracking detection plane
+ TClonesArray* fGlobalTrigger; // List of Global Trigger One event in TreeR/GlobalTriggerBranch
+ TClonesArray* fLocalTrigger; // List of Local Trigger, One event in TreeR/LocalTriggerBranch
+ TClonesArray* fRecTracks; // pointer to array of reconstructed tracks
+
+ Int_t fNhits; //! Number of Hits
+ Int_t* fNdigits;//! Number of Digits
+ Int_t* fNrawclusters;//! Number of Raw Clusters
+ Int_t fNglobaltrigger;//! Number of Global trigger
+ Int_t fNlocaltrigger;//! Number of Local trigger
+ Int_t fNrectracks; //! Number of reconstructed tracks
Int_t fSplitLevel; // Splitting of branches 0 no spitting (root files are smaller) 1 splitting (larger output files)
ClassDef(AliMUONData,1)