const Int_t AliMUONBlockHeader::fgkHeaderLength = 8;
const UInt_t AliMUONBlockHeader::fgkDefaultDataKey = 0xFC0000FC;
const UInt_t AliMUONBlockHeader::fgkDdlDataKey = 0xD000000D;
+
+//___________________________________________
+AliMUONBlockHeader::AliMUONBlockHeader(TRootIOCtor* /*dummy*/)
+: TObject(),
+fDataKey(0),
+fTotalLength(0),
+fLength(0),
+fDspId(0),
+fL0Trigger(0),
+fMiniEventId(0),
+fEventId1(0),
+fEventId2(0),
+fDspHeaderArray(0x0)
+{
+ ///
+ /// ctor
+ ///
+
+}
+
//___________________________________________
AliMUONBlockHeader::AliMUONBlockHeader()
: TObject(),
public:
AliMUONBlockHeader();
+ AliMUONBlockHeader(TRootIOCtor* dummy);
AliMUONBlockHeader(const AliMUONBlockHeader &event);
AliMUONBlockHeader& operator=(const AliMUONBlockHeader &event);
ClassImp(AliMUONClusterStoreV2)
/// \endcond
+//_____________________________________________________________________________
+AliMUONClusterStoreV2::AliMUONClusterStoreV2(TRootIOCtor* /*dummy*/)
+: AliMUONVClusterStore(),
+fClusters(0x0),
+fMap(0x0),
+fMapped(kFALSE)
+{
+ /// Dummy IO ctor that does not allocate memory
+}
+
//_____________________________________________________________________________
AliMUONClusterStoreV2::AliMUONClusterStoreV2()
: AliMUONVClusterStore(),
void AliMUONClusterStoreV2::Clear(Option_t*)
{
/// Clear the internal cluster array AND the index
- fClusters->Clear("C");
- if (fMap) {
- Int_t nChamber = AliMpConstants::NofTrackingChambers();
- for (Int_t chamber=0; chamber<nChamber; chamber++) {
- AliMpExMap *map = static_cast<AliMpExMap *>(fMap->UncheckedAt(chamber));
- map->Clear("C");
+ if ( fClusters )
+ {
+ fClusters->Clear("C");
+ if (fMap) {
+ Int_t nChamber = AliMpConstants::NofTrackingChambers();
+ for (Int_t chamber=0; chamber<nChamber; chamber++) {
+ AliMpExMap *map = static_cast<AliMpExMap *>(fMap->UncheckedAt(chamber));
+ map->Clear("C");
+ }
+ fMapped = kFALSE;
}
- fMapped = kFALSE;
}
}
public:
AliMUONClusterStoreV2();
+ AliMUONClusterStoreV2(TRootIOCtor* dummy);
AliMUONClusterStoreV2(const AliMUONClusterStoreV2& store);
AliMUONClusterStoreV2& operator=(const AliMUONClusterStoreV2& store);
virtual ~AliMUONClusterStoreV2();
ClassImp(AliMUONDDLTracker)
/// \endcond
+//___________________________________________
+AliMUONDDLTracker::AliMUONDDLTracker(TRootIOCtor* /*dummy*/)
+: TObject(),
+fBlkHeaderArray(0x0)
+{
+ ///
+ ///ctor
+ ///
+}
+
//___________________________________________
AliMUONDDLTracker::AliMUONDDLTracker()
: TObject(),
public:
AliMUONDDLTracker();
+ AliMUONDDLTracker(TRootIOCtor* dummy);
virtual ~AliMUONDDLTracker();
void AddBusPatch(const AliMUONBusStruct& busPatch, Int_t iBlock, Int_t iDsp);
ClassImp(AliMUONDDLTrigger)
/// \endcond
+
+//___________________________________________
+AliMUONDDLTrigger::AliMUONDDLTrigger(TRootIOCtor* /*dummy*/)
+: TObject(),
+fDarcHeader(0x0)
+{
+ ///ctor
+}
+
//___________________________________________
AliMUONDDLTrigger::AliMUONDDLTrigger()
: TObject(),
public:
AliMUONDDLTrigger();
+ AliMUONDDLTrigger(TRootIOCtor* dummy);
virtual ~AliMUONDDLTrigger();
const UInt_t AliMUONDarcHeader::fgkDarcVadorhType = 4;
const UInt_t AliMUONDarcHeader::fgkDarcDefaultType = 6;
+//___________________________________________
+AliMUONDarcHeader::AliMUONDarcHeader(TRootIOCtor* /*dummy*/)
+: TObject(),
+fWord(0),
+fGlobalOutput(0),
+fGlobalL0(0),
+fGlobalClk(0),
+fGlobalHold(0),
+fGlobalSpare(0),
+fDarcL0R(0),
+fDarcL1P(0),
+fDarcL1S(0),
+fDarcL2A(0),
+fDarcL2R(0),
+fDarcClk(0),
+fDarcHold(0),
+fDarcSpare(0),
+fRegHeaderArray(0x0)
+{
+ /// ctor
+}
+
//___________________________________________
AliMUONDarcHeader::AliMUONDarcHeader()
: TObject(),
public:
AliMUONDarcHeader();
+ AliMUONDarcHeader(TRootIOCtor* dummy);
AliMUONDarcHeader(const AliMUONDarcHeader& event);
AliMUONDarcHeader& operator=(const AliMUONDarcHeader& event);
}
}
+//_____________________________________________________________________________
+AliMUONDigitStoreV1::AliMUONDigitStoreV1(TRootIOCtor* /*dummy*/)
+: AliMUONVDigitStore(),
+fDigits(0x0),
+fChamberDigits(0x0)
+{
+ /// ctor
+}
+
//_____________________________________________________________________________
AliMUONDigitStoreV1::AliMUONDigitStoreV1()
: AliMUONVDigitStore(),
{
public:
AliMUONDigitStoreV1();
+ AliMUONDigitStoreV1(TRootIOCtor* dummy);
AliMUONDigitStoreV1(const AliMUONDigitStoreV1& rhs);
AliMUONDigitStoreV1& operator=(const AliMUONDigitStoreV1& rhs);
virtual ~AliMUONDigitStoreV1();
const UInt_t AliMUONDspHeader::fgkDefaultDataKey = 0xF000000F;
const UInt_t AliMUONDspHeader::fgkDefaultPaddingWord = 0xBEEFFACE;
+//___________________________________________
+AliMUONDspHeader::AliMUONDspHeader(TRootIOCtor* /*dummy*/)
+: TObject(),
+fDataKey(0),
+fTotalLength(0),
+fLength(0),
+fDspId(0),
+fBlkL1ATrigger(0),
+fMiniEventId(0),
+fL1ATrigger(0),
+fL1RTrigger(0),
+fPaddingWord(0),
+fErrorWord(0),
+fBusPatchArray(0x0)
+{
+ ///
+ ///ctor
+ ///
+
+}
+
//___________________________________________
AliMUONDspHeader::AliMUONDspHeader()
: TObject(),
public:
AliMUONDspHeader();
+ AliMUONDspHeader(TRootIOCtor* dummy);
AliMUONDspHeader(const AliMUONDspHeader& event);
AliMUONDspHeader& operator=(const AliMUONDspHeader& event);
ClassImp(AliMUONHitStoreV1)
/// \endcond
+//_____________________________________________________________________________
+AliMUONHitStoreV1::AliMUONHitStoreV1(TRootIOCtor* /*dummy*/) : AliMUONVHitStore(),
+fHits(0x0)
+{
+ /// default ctor from file
+}
+
//_____________________________________________________________________________
AliMUONHitStoreV1::AliMUONHitStoreV1() : AliMUONVHitStore(),
fHits(new TClonesArray("AliMUONHit",10))
{
public:
AliMUONHitStoreV1();
+ AliMUONHitStoreV1(TRootIOCtor* /*dummy*/);
virtual ~AliMUONHitStoreV1();
using AliMUONVHitStore::Add;
ClassImp(AliMUONPainterPadStore)
///\endcond
+//_____________________________________________________________________________
+AliMUONPainterPadStore::AliMUONPainterPadStore(TRootIOCtor* /*dummy*/) : TObject(),
+fPadStore(0x0)
+{
+ /// ctor
+}
+
//_____________________________________________________________________________
AliMUONPainterPadStore::AliMUONPainterPadStore() : TObject(),
fPadStore(new AliMUON2DMap(kTRUE))
{
public:
AliMUONPainterPadStore();
+ AliMUONPainterPadStore(TRootIOCtor* dummy);
virtual ~AliMUONPainterPadStore();
Int_t FindPadID(const TArrayI& pads, Double_t x, Double_t y) const;
ClassImp(AliMUONRawStreamTracker)
/// \endcond
+
+//___________________________________________
+AliMUONRawStreamTracker::AliMUONRawStreamTracker(TRootIOCtor* /*dummy*/)
+: AliMUONVRawStreamTracker(),
+fPayload(0x0),
+fCurrentDDL(0),
+fCurrentDDLIndex(fgkMaxDDL),
+fCurrentBlockHeader(0),
+fCurrentBlockHeaderIndex(0),
+fCurrentDspHeader(0),
+fCurrentDspHeaderIndex(0),
+fCurrentBusStruct(0),
+fCurrentBusStructIndex(0),
+fCurrentDataIndex(0),
+fDDL(0)
+{
+ ///
+ /// create an object to read MUON raw digits
+ /// Default ctor with no memory allocation for I/O
+ ///
+}
+
//___________________________________________
AliMUONRawStreamTracker::AliMUONRawStreamTracker()
: AliMUONVRawStreamTracker(),
class AliMUONRawStreamTracker: public AliMUONVRawStreamTracker {
public :
AliMUONRawStreamTracker();
+ AliMUONRawStreamTracker(TRootIOCtor* dummy);
AliMUONRawStreamTracker(AliRawReader* rawReader);
virtual ~AliMUONRawStreamTracker();
const Int_t AliMUONRawStreamTrigger::fgkMaxDDL = 2;
+//___________________________________________
+AliMUONRawStreamTrigger::AliMUONRawStreamTrigger(TRootIOCtor* /*dummy*/)
+: AliMUONVRawStreamTrigger(),
+fPayload(0x0),
+fCurrentDDL(0x0),
+fCurrentDDLIndex(fgkMaxDDL),
+fCurrentDarcHeader(0x0),
+fCurrentRegHeader(0x0),
+fCurrentRegHeaderIndex(0),
+fCurrentLocalStruct(0x0),
+fCurrentLocalStructIndex(0),
+fLocalStructRead(kFALSE),
+fDDL(0),
+fNextDDL(kFALSE)
+{
+ ///
+ /// create an object to read MUON raw digits
+ /// Default ctor with no mem allocation for I/O
+ ///
+}
+
//___________________________________________
AliMUONRawStreamTrigger::AliMUONRawStreamTrigger()
: AliMUONVRawStreamTrigger(),
class AliMUONRawStreamTrigger: public AliMUONVRawStreamTrigger {
public :
AliMUONRawStreamTrigger();
+ AliMUONRawStreamTrigger(TRootIOCtor* dummy);
AliMUONRawStreamTrigger(AliRawReader* rawReader);
virtual ~AliMUONRawStreamTrigger();
if (localBoard->IsNotified()) {// if notified board
AliMUONLocalTrigger* locTrg = triggerStore.FindLocal(localBoardId);
- locCard = locTrg->LoCircuit();
- locDec = locTrg->GetLoDecision();
- trigY = locTrg->LoTrigY();
- posY = locTrg->LoStripY();
- posX = locTrg->LoStripX();
- devX = locTrg->LoDev();
- sdevX = locTrg->LoSdev();
-
- AliDebug(4,Form("loctrg %d, posX %d, posY %d, devX %d\n",
- locTrg->LoCircuit(),locTrg->LoStripX(),locTrg->LoStripY(),locTrg->LoDev()));
- //packing word
- word = 0;
- LocalWordPacking(word, (UInt_t)iLoc, (UInt_t)locDec, (UInt_t)trigY, (UInt_t)posY,
- (UInt_t)posX, (UInt_t)sdevX, (UInt_t)devX);
-
- buffer[index++] = (locTrg->GetX1Pattern() | (locTrg->GetX2Pattern() << 16));
- buffer[index++] = (locTrg->GetX3Pattern() | (locTrg->GetX4Pattern() << 16));
- buffer[index++] = (locTrg->GetY1Pattern() | (locTrg->GetY2Pattern() << 16));
- buffer[index++] = (locTrg->GetY3Pattern() | (locTrg->GetY4Pattern() << 16));
- buffer[index++] = (Int_t)word; // data word
-
-
+ if (locTrg)
+ {
+ locCard = locTrg->LoCircuit();
+ locDec = locTrg->GetLoDecision();
+ trigY = locTrg->LoTrigY();
+ posY = locTrg->LoStripY();
+ posX = locTrg->LoStripX();
+ devX = locTrg->LoDev();
+ sdevX = locTrg->LoSdev();
+
+ AliDebug(4,Form("loctrg %d, posX %d, posY %d, devX %d\n",
+ locTrg->LoCircuit(),locTrg->LoStripX(),locTrg->LoStripY(),locTrg->LoDev()));
+ //packing word
+ word = 0;
+ LocalWordPacking(word, (UInt_t)iLoc, (UInt_t)locDec, (UInt_t)trigY, (UInt_t)posY,
+ (UInt_t)posX, (UInt_t)sdevX, (UInt_t)devX);
+
+ buffer[index++] = (locTrg->GetX1Pattern() | (locTrg->GetX2Pattern() << 16));
+ buffer[index++] = (locTrg->GetX3Pattern() | (locTrg->GetX4Pattern() << 16));
+ buffer[index++] = (locTrg->GetY1Pattern() | (locTrg->GetY2Pattern() << 16));
+ buffer[index++] = (locTrg->GetY3Pattern() | (locTrg->GetY4Pattern() << 16));
+ buffer[index++] = (Int_t)word; // data word
+ }
}
// fill copy card X-Y inputs from the notified cards
if (localBoard->GetInputXfrom() && localBoard->GetInputYfrom())
Int_t localFromId = localBoard->GetInputXfrom();
AliMUONLocalTrigger* locTrgfrom = triggerStore.FindLocal(localFromId);
- buffer[index++] = 0; // copy only X3-4 & Y1-4
- buffer[index++] = (locTrgfrom->GetX3Pattern() | (locTrgfrom->GetX4Pattern() << 16));
- buffer[index++] = (locTrgfrom->GetY1Pattern() | (locTrgfrom->GetY2Pattern() << 16));
- buffer[index++] = (locTrgfrom->GetY3Pattern() | (locTrgfrom->GetY4Pattern() << 16));
- buffer[index++] = word;
+ if ( locTrgfrom )
+ {
+ buffer[index++] = 0; // copy only X3-4 & Y1-4
+ buffer[index++] = (locTrgfrom->GetX3Pattern() | (locTrgfrom->GetX4Pattern() << 16));
+ buffer[index++] = (locTrgfrom->GetY1Pattern() | (locTrgfrom->GetY2Pattern() << 16));
+ buffer[index++] = (locTrgfrom->GetY3Pattern() | (locTrgfrom->GetY4Pattern() << 16));
+ buffer[index++] = word;
+ }
}
} else {
const UInt_t AliMUONRegHeader::fgkEndOfReg = 0xBEEFFACE;
const UInt_t AliMUONRegHeader::fgkErrorWord = 0xCAFEDEAD;
+//___________________________________________
+AliMUONRegHeader::AliMUONRegHeader(TRootIOCtor* /*dummy*/)
+: TObject(),
+fDarcWord(0),
+fWord(0),
+fMask(0),
+fL0(0),
+fClk(0),
+fHold(0),
+fLocalArray(0x0)
+{
+ /// ctor
+}
+
//___________________________________________
AliMUONRegHeader::AliMUONRegHeader()
: TObject(),
public:
AliMUONRegHeader();
+ AliMUONRegHeader(TRootIOCtor* dummy);
AliMUONRegHeader(const AliMUONRegHeader& event);
AliMUONRegHeader& operator=(const AliMUONRegHeader& event);
#include <TClonesArray.h>
#include <TTree.h>
+#include "AliLog.h"
#include "AliMUONTrack.h"
#include "AliMUONTreeManager.h"
//_____________________________________________________________________________
AliMUONTrackStoreV1::AliMUONTrackStoreV1() : AliMUONVTrackStore(),
- fTracks(new TClonesArray("AliMUONTrack",10))
+ fTracks(0x0)
{
/// Ctor
+ CreateTracks();
+}
+
+//_____________________________________________________________________________
+AliMUONTrackStoreV1::AliMUONTrackStoreV1(TRootIOCtor* /*dummy*/) : AliMUONVTrackStore(),
+fTracks(0x0)
+{
+ /// Ctor
}
//_____________________________________________________________________________
AliMUONTrackStoreV1::Add(const AliMUONTrack& track)
{
/// Add a track
+
+ if (!fTracks) CreateTracks();
+
return new((*fTracks)[fTracks->GetLast()+1]) AliMUONTrack(track);
}
{
/// Connect this store to the tree
AliMUONTreeManager tman;
+
Bool_t ok;
if ( tree.GetBranch("MUONTrack") )
AliMUONTrackStoreV1::CreateIterator() const
{
/// Create an iterator to loop over tracks
- return fTracks->MakeIterator();
+ if ( fTracks ) return fTracks->MakeIterator();
+ return 0x0;
}
//_____________________________________________________________________________
AliMUONTrackStoreV1::Clear(Option_t*)
{
/// Reset
- fTracks->Clear("C");
+ if (fTracks) fTracks->Clear("C");
+}
+
+//_____________________________________________________________________________
+void
+AliMUONTrackStoreV1::CreateTracks()
+{
+ /// Allocate track container
+ if (fTracks)
+ {
+ AliError("Cannot allocate again fTracks as it is there already !");
+ }
+ else
+ {
+ fTracks = new TClonesArray("AliMUONTrack",10);
+ }
}
//_____________________________________________________________________________
AliMUONTrackStoreV1::GetSize() const
{
/// Return the number of tracks we hold
- return fTracks->GetLast()+1;
+ if ( fTracks ) return fTracks->GetLast()+1;
+ return 0;
}
{
public:
AliMUONTrackStoreV1();
+ AliMUONTrackStoreV1(TRootIOCtor* dummy);
virtual ~AliMUONTrackStoreV1();
using AliMUONVTrackStore::Add;
/// Return the tracks array
TClonesArray* Tracks() const { return fTracks; }
+ void CreateTracks();
+
/// Return the address of the tracks array
TClonesArray** TracksPtr() const { return const_cast<TClonesArray**>(&fTracks); }
ClassImp(AliMUONTriggerTrackStoreV1)
/// \endcond
+//_____________________________________________________________________________
+AliMUONTriggerTrackStoreV1::AliMUONTriggerTrackStoreV1(TRootIOCtor* /*dummy*/) : AliMUONVTriggerTrackStore(),
+fTracks(0x0)
+{
+ /// ctor
+ fTracks->SetOwner(kTRUE);
+}
+
//_____________________________________________________________________________
AliMUONTriggerTrackStoreV1::AliMUONTriggerTrackStoreV1() : AliMUONVTriggerTrackStore(),
fTracks(new TClonesArray("AliMUONTriggerTrack",10))
{
public:
AliMUONTriggerTrackStoreV1();
+ AliMUONTriggerTrackStoreV1(TRootIOCtor* dummy);
virtual ~AliMUONTriggerTrackStoreV1();
using AliMUONVTriggerTrackStore::Add;
// Set default CDB storage
AliCDBManager* man = AliCDBManager::Instance();
man->SetDefaultStorage("local://$ALICE_ROOT/OCDB");
-
+ man->SetRun(0);
+
// output file
AliMUONMCDataInterface diSim(filenameSim);