#include "AliMUONDigitStoreV1.h"
+//-----------------------------------------------------------------------------
/// \class AliMUONDigitStoreV1
///
/// (Legacy) Implementation of AliMUONVDigitStore.
/// to data stores.
///
// \author Laurent Aphecetche, Subatech
-///
+//-----------------------------------------------------------------------------
#include "AliLog.h"
#include "AliMUONDigit.h"
Int_t index;
AliMUONVDigit* d(0x0);
- if ( ( d = FindIndex(digit.DetElemId(),digit.ManuId(),digit.ManuChannel(),index) ) )
+ if ( ( d = FindIndex(digit.DetElemId(),digit.ManuId(),
+ digit.ManuChannel(),digit.Cathode(),index) ) )
{
Int_t iChamber = AliMpDEManager::GetChamberId(digit.DetElemId());
TClonesArray* array = ChamberDigits(iChamber);
return d;
}
-//_____________________________________________________________________________
-AliMUONVDigit*
-AliMUONDigitStoreV1::FindObject(Int_t detElemId, Int_t manuId, Int_t manuChannel) const
-{
- /// Find a digit indexed by the triplet (de,manu,channel)
- Int_t index;
- return FindIndex(detElemId,manuId,manuChannel,index);
-}
-
//_____________________________________________________________________________
AliMUONVDigit*
AliMUONDigitStoreV1::Find(const AliMUONVDigit& digit, Int_t& index) const
{
/// Find a digit, and return its index.
- if ( digit.IsTrigger() )
- {
- return FindIndex(digit.DetElemId(),digit.ManuId(),digit.ManuChannel(),digit.Cathode(),index);
- }
- else
- {
- return FindIndex(digit.DetElemId(),digit.ManuId(),digit.ManuChannel(),index);
- }
+ return FindIndex(digit.DetElemId(),digit.ManuId(),digit.ManuChannel(),digit.Cathode(),index);
}
//_____________________________________________________________________________
AliMUONVDigit*
-AliMUONDigitStoreV1::FindObject(Int_t detElemId, Int_t localBoardId,
- Int_t localBoardChannel, Int_t cathode) const
+AliMUONDigitStoreV1::FindObject(Int_t detElemId, Int_t manuId,
+ Int_t manuChannel, Int_t cathode) const
{
/// Find a (trigger) digit
Int_t index;
- return FindIndex(detElemId,localBoardId,localBoardChannel,cathode,index);
+ return FindIndex(detElemId,manuId,manuChannel,cathode,index);
}
//_____________________________________________________________________________
AliMUONVDigit*
-AliMUONDigitStoreV1::FindIndex(Int_t detElemId, Int_t localBoardId,
- Int_t localBoardChannel, Int_t cathode, Int_t& index) const
+AliMUONDigitStoreV1::FindIndex(Int_t detElemId, Int_t manuId,
+ Int_t manuChannel, Int_t cathode, Int_t& index) const
{
- /// Find and return the index of a (trigger) digit
+ /// Find and return the index of a digit
- AliMp::StationType stationType = AliMpDEManager::GetStationType(detElemId);
- if ( stationType != AliMp::kStationTrigger )
- {
- AliError("This method is reserved for trigger detection elements");
- return 0x0;
- }
Int_t iChamber = AliMpDEManager::GetChamberId(detElemId);
const TClonesArray* array = ChamberDigits(iChamber);
if (!array) return 0x0;
while ( ( digit = static_cast<AliMUONVDigit*>(next()) ) )
{
if ( digit->DetElemId() == detElemId &&
- digit->ManuId() == localBoardId &&
- digit->ManuChannel() == localBoardChannel &&
+ digit->ManuId() == manuId &&
+ digit->ManuChannel() == manuChannel &&
digit->Cathode() == cathode )
{
return digit;
}
-//_____________________________________________________________________________
-AliMUONVDigit*
-AliMUONDigitStoreV1::FindIndex(Int_t detElemId, Int_t manuId, Int_t manuChannel, Int_t& index) const
-{
- /// Find and return the index of a (tracker) digit
- Int_t iChamber = AliMpDEManager::GetChamberId(detElemId);
- const TClonesArray* array = ChamberDigits(iChamber);
- if (!array) return 0x0;
- TIter next(array);
- AliMUONVDigit* digit;
- index = 0;
- while ( ( digit = static_cast<AliMUONVDigit*>(next()) ) )
- {
- if ( digit->DetElemId() == detElemId &&
- digit->ManuId() == manuId &&
- digit->ManuChannel() == manuChannel )
- {
- return digit;
- }
- ++index;
- }
- return 0x0;
-}
-
//_____________________________________________________________________________
TIterator*
AliMUONDigitStoreV1::CreateIterator() const
}
return n;
}
+
+//_____________________________________________________________________________
+Bool_t
+AliMUONDigitStoreV1::HasMCInformation() const
+{
+ /// As this class is legacy, don't care about looping and loosing a bit of
+ /// time...
+ TIter next(CreateIterator());
+ AliMUONVDigit* digit;
+ while ( ( digit = static_cast<AliMUONVDigit*>(next()) ) )
+ {
+ if ( digit->HasMCInformation() ) return kTRUE;
+ }
+ return kFALSE;
+}
+