]> git.uio.no Git - u/mrichter/AliRoot.git/blame - MUON/AliMUONVDigitStore.cxx
Removing, as not used anymore (Laurent)
[u/mrichter/AliRoot.git] / MUON / AliMUONVDigitStore.cxx
CommitLineData
8c740498 1/**************************************************************************
2* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3* *
4* Author: The ALICE Off-line Project. *
5* Contributors are mentioned in the code where appropriate. *
6* *
7* Permission to use, copy, modify and distribute this software and its *
8* documentation strictly for non-commercial purposes is hereby granted *
9* without fee, provided that the above copyright notice appears in all *
10* copies and that both the copyright notice and this permission notice *
11* appear in the supporting documentation. The authors make no claims *
12* about the suitability of this software for any purpose. It is *
13* provided "as is" without express or implied warranty. *
14**************************************************************************/
15
16// $Id$
17
18/// \class AliMUONVDigitStore
19///
20/// Interface for a digit (or sdigit) container
21///
22/// It offers methods to Add, Find and Remove single elements, and
23/// can create iterators to loop over (part of) the elements.
24///
25/// \author Laurent Aphecetche, Subatech
26
27#include "AliMUONVDigitStore.h"
28
29#include "AliLog.h"
30#include "AliMUONVDigit.h"
31#include <TString.h>
32#include <TTree.h>
33
34/// \cond CLASSIMP
35ClassImp(AliMUONVDigitStore)
36/// \endcond
37
38//_____________________________________________________________________________
39AliMUONVDigitStore::AliMUONVDigitStore()
40{
41 /// ctor
42}
43
44//_____________________________________________________________________________
45AliMUONVDigitStore::~AliMUONVDigitStore()
46{
47 /// dtor
48}
49
50//_____________________________________________________________________________
51Bool_t
52AliMUONVDigitStore::Add(TObject* object)
53{
54 /// Add an object, if it is of type AliMUONVDigit
55 if (object)
56 {
57 AliMUONVDigit* digit = dynamic_cast<AliMUONVDigit*>(object);
58 if (digit)
59 {
60 AliMUONVDigit* added = Add(*digit,AliMUONVDigitStore::kIgnore);
61 if (!added)
62 {
63 AliError("Could not add digit through Add(TObject*) method");
64 }
65 else
66 {
67 return kTRUE;
68 }
69 }
70 }
71 return kFALSE;
72}
73
74//_____________________________________________________________________________
75AliMUONVDigit*
76AliMUONVDigitStore::Add(Int_t detElemId,
77 Int_t manuId,
78 Int_t manuChannel,
79 Int_t cathode,
80 EReplacePolicy replace)
81{
82 /// Add a digit and return it
83 AliMUONVDigit* digit = CreateDigit(detElemId,manuId,manuChannel,cathode);
84 if (digit)
85 {
86 AliMUONVDigit* d = Add(*digit,replace);
87 delete digit;
88 return d;
89 }
90 return 0x0;
91}
92
93//_____________________________________________________________________________
94AliMUONVDigitStore*
95AliMUONVDigitStore::Create(TTree& tree)
96{
97 /// Create store from the given tree (if possible).
98 TString dataType = ( strcmp(tree.GetName(),"TreeD") == 0 ? "Digit" :
99 (strcmp(tree.GetName(),"TreeS")== 9 ? "SDigit" : "")
100 );
101 return static_cast<AliMUONVDigitStore*>(AliMUONVStore::Create(tree,dataType.Data()));
102}
103
104//_____________________________________________________________________________
105Int_t
106AliMUONVDigitStore::GetSize(Int_t detElemId, Int_t cathode) const
107{
108 /// Return the number of digits we have for a given detection element
109 TIter next(CreateIterator(detElemId,detElemId,cathode));
110 AliMUONVDigit* digit;
111 Int_t n(0);
112 while ( ( digit = static_cast<AliMUONVDigit*>(next()) ) )
113 {
114 ++n;
115 }
116 return n;
117}
118