#include "AliLog.h"
#include "AliMUONConstants.h"
+#include "AliMUONHit.h"
#include "AliMUONDigit.h"
#include "AliMUONGlobalTrigger.h"
-#include "AliMUONHit.h"
#include "AliMUONLocalTrigger.h"
+#include "AliMUONRegionalTrigger.h"
#include "AliMUONRawCluster.h"
#include "AliMUONTrack.h"
#include "AliMUONTriggerTrack.h"
fRawClusters(0x0),
fGlobalTrigger(0x0),
fLocalTrigger(0x0),
+ fRegionalTrigger(0x0),
fRecTracks(0x0),
fRecTriggerTracks(0x0),
fNhits(0),
fNrawclusters(0x0),
fNglobaltrigger(0),
fNlocaltrigger(0),
+ fNregionaltrigger(0),
fNrectracks(0),
fNrectriggertracks(0),
fSplitLevel(0),
fRawClusters(0x0),
fGlobalTrigger(0x0),
fLocalTrigger(0x0),
+ fRegionalTrigger(0x0),
fRecTracks(0x0),
fRecTriggerTracks(0x0),
fNhits(0),
fNrawclusters(0x0),
fNglobaltrigger(0),
fNlocaltrigger(0),
+ fNregionaltrigger(0),
fNrectracks(0),
fNrectriggertracks(0),
fSplitLevel(0),
fGlobalTrigger->Delete();
delete fGlobalTrigger;
}
+ if (fRegionalTrigger){
+ fRegionalTrigger->Delete();
+ delete fRegionalTrigger;
+ }
if (fLocalTrigger){
fLocalTrigger->Delete();
delete fLocalTrigger;
delete fRecTriggerTracks;
}
}
+//____________________________________________________________________________
+void AliMUONData::AddHit(Int_t fIshunt, Int_t track, Int_t detElemId,
+ Int_t idpart, Float_t X, Float_t Y, Float_t Z,
+ Float_t tof, Float_t momentum, Float_t theta,
+ 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, detElemId,
+ idpart, X, Y, Z,
+ tof, momentum, theta,
+ phi, length, destep,
+ Xref,Yref,Zref);
+}
//_____________________________________________________________________________
void AliMUONData::AddDigit(Int_t id, Int_t *tracks, Int_t *charges, Int_t *digits)
{
TClonesArray &globalTrigger = *fGlobalTrigger;
new(globalTrigger[fNglobaltrigger++]) AliMUONGlobalTrigger(trigger);
}
-//____________________________________________________________________________
-void AliMUONData::AddHit(Int_t fIshunt, Int_t track, Int_t iChamber,
- Int_t idpart, Float_t X, Float_t Y, Float_t Z,
- Float_t tof, Float_t momentum, Float_t theta,
- 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,
- tof, momentum, theta,
- phi, length, destep,
- Xref,Yref,Zref);
-}
//____________________________________________________________________________
-void AliMUONData::AddHit2(Int_t fIshunt, Int_t track, Int_t detElemId,
- Int_t idpart, Float_t X, Float_t Y, Float_t Z,
- Float_t tof, Float_t momentum, Float_t theta,
- Float_t phi, Float_t length, Float_t destep,
- Float_t Xref,Float_t Yref,Float_t Zref)
+void AliMUONData::AddRegionalTrigger(const AliMUONRegionalTrigger& trigger)
{
- // Add new hit to the hit list
-
- TClonesArray &lhits = *fHits;
- new(lhits[fNhits++]) AliMUONHit(fIshunt, track, detElemId,
- idpart, X, Y, Z,
- tof, momentum, theta,
- phi, length, destep,
- Xref,Yref,Zref, true);
+/// add a MUON regional Trigger to the list
+ TClonesArray ®ionalTrigger = *fRegionalTrigger;
+ new(regionalTrigger[fNregionaltrigger++]) AliMUONRegionalTrigger(trigger);
}
//____________________________________________________________________________
void AliMUONData::AddLocalTrigger(const AliMUONLocalTrigger& trigger)
TClonesArray &localTrigger = *fLocalTrigger;
new(localTrigger[fNlocaltrigger++]) AliMUONLocalTrigger(trigger);
}
+
//_____________________________________________________________________________
void AliMUONData::AddRawCluster(Int_t id, const AliMUONRawCluster& c)
{
sprintf(branchname,"%sLocalTrigger",GetName());
branch = TreeD()->GetBranch(branchname);
branch->Fill();
+ sprintf(branchname,"%sRegionalTrigger",GetName());
+ branch = TreeD()->GetBranch(branchname);
+ branch->Fill();
sprintf(branchname,"%sGlobalTrigger",GetName());
branch = TreeD()->GetBranch(branchname);
branch->Fill();
+
}
else
{
sprintf(branchname,"%sLocalTrigger",GetName());
branch = TreeR()->GetBranch(branchname);
branch->Fill();
+ sprintf(branchname,"%sRegionalTrigger",GetName());
+ branch = TreeR()->GetBranch(branchname);
+ branch->Fill();
sprintf(branchname,"%sGlobalTrigger",GetName());
branch = TreeR()->GetBranch(branchname);
branch->Fill();
const char *cS = strstr(option,"S"); // Digits branches in TreeS
const char *cRC = strstr(option,"RC"); // RawCluster branches in TreeR
const char *cGLT = strstr(option,"GLT"); // Global and Local Trigger branches in TreeD
- const char *cTC = strstr(option,"TC"); // global and local Trigger branches Copy in TreeR
+ const char *cTC = strstr(option,"TC"); // global and local Trigger branches Copy in TreeR
const char *cRT = strstr(option,"RT"); // Reconstructed Track in TreeT
const char *cRL = strstr(option,"RL"); // Reconstructed Trigger Track in TreeT
//const char *cRP = strstr(option,"RP"); // Reconstructed Particle in TreeP
}
branch = treeD->Branch(branchname, &fGlobalTrigger, kBufferSize);
+ //
+ // one branch for regional trigger
+ //
+ sprintf(branchname,"%sRegionalTrigger",GetName());
+ branch = 0x0;
+
+ if (fRegionalTrigger == 0x0)
+ {
+ fRegionalTrigger = new TClonesArray("AliMUONRegionalTrigger",16);
+ fNregionaltrigger = 0;
+ }
+ branch = treeD->GetBranch(branchname);
+ if (branch)
+ {
+ AliInfo(Form("Branch RegionalTrigger is already in treeD."));
+ return;
+ }
+ branch = treeD->Branch(branchname, &fRegionalTrigger, kBufferSize);
+
+
//
// one branch for local trigger
//
}
branch = TreeR()->Branch(branchname, &fGlobalTrigger, kBufferSize);
//Info("MakeBranch", "Making Branch %s for Global Trigger\n",branchname);
+
+ //
+ // one branch for regional trigger
+ //
+ sprintf(branchname,"%sRegionalTrigger",GetName());
+ branch = 0x0;
+ if (fRegionalTrigger == 0x0) {
+ fRegionalTrigger = new TClonesArray("AliMUONRegionalTrigger",16);
+ fNregionaltrigger = 0;
+ }
+ branch = TreeR()->GetBranch(branchname);
+ if (branch) {
+ AliInfo(Form("Branch RegionalTrigger is already in treeR."));
+ return;
+ }
+ branch = TreeR()->Branch(branchname, &fRegionalTrigger, kBufferSize);
+
//
// one branch for local trigger
//
return fLocalTrigger;
}
+//____________________________________________________________________________
+TClonesArray*
+AliMUONData::RegionalTrigger() const
+{
+/// Getting regional trigger
+
+ return fRegionalTrigger;
+}
+
//____________________________________________________________________________
void
AliMUONData::GetDigits() const
fNglobaltrigger = 0;
if (fGlobalTrigger) fGlobalTrigger->Clear();
+ fNregionaltrigger = 0;
+ if (fRegionalTrigger) fRegionalTrigger->Clear();
fNlocaltrigger = 0;
if (fLocalTrigger) fLocalTrigger->Clear();
+
}
//____________________________________________________________________________
void AliMUONData::ResetRecTracks()
branch->SetAddress(&fHits);
}
else { //can be invoked before branch creation
- AliWarning(Form("(%s) Failed for Hits. Can not find branch in tree.",GetName()));
+ //AliWarning(Form("(%s) Failed for Hits. Can not find branch in tree.",GetName()));
}
}
if (fLocalTrigger == 0x0 && cGLT) {
fLocalTrigger = new TClonesArray("AliMUONLocalTrigger",234);
}
+ if (fRegionalTrigger == 0x0 && cGLT) {
+ fRegionalTrigger = new TClonesArray("AliMUONRegionalTrigger",16);
+ }
if (fGlobalTrigger== 0x0 && cGLT) {
fGlobalTrigger = new TClonesArray("AliMUONGlobalTrigger",1);
}
if (branch) branch->SetAddress(&fLocalTrigger);
else AliWarning(Form("(%s) Failed for LocalTrigger. Can not find branch in treeD.",GetName()));
}
+ if ( TreeD() && fRegionalTrigger && cGLT) {
+ sprintf(branchname,"%sRegionalTrigger",GetName());
+ branch = TreeD()->GetBranch(branchname);
+ if (branch) branch->SetAddress(&fRegionalTrigger);
+ else AliWarning(Form("(%s) Failed for RegionalTrigger. Can not find branch in treeD.",GetName()));
+ }
if ( TreeD() && fGlobalTrigger && cGLT) {
sprintf(branchname,"%sGlobalTrigger",GetName());
branch = TreeD()->GetBranch(branchname);
if (fLocalTrigger == 0x0 && cTC) {
fLocalTrigger = new TClonesArray("AliMUONLocalTrigger",234);
}
+ if (fRegionalTrigger == 0x0 && cTC) {
+ fRegionalTrigger = new TClonesArray("AliMUONRegionalTrigger",16);
+ }
if (fGlobalTrigger== 0x0 && cTC) {
fGlobalTrigger = new TClonesArray("AliMUONGlobalTrigger",1);
}
if (branch) branch->SetAddress(&fLocalTrigger);
else AliWarning(Form("(%s) Failed for LocalTrigger. Can not find branch in treeR.",GetName()));
}
+
+ if ( TreeR() && fRegionalTrigger && cTC) {
+ sprintf(branchname,"%sRegionalTrigger",GetName());
+ branch = TreeR()->GetBranch(branchname);
+ if (branch) branch->SetAddress(&fRegionalTrigger);
+ else AliWarning(Form("(%s) Failed for RegionalTrigger. Can not find branch in treeR.",GetName()));
+ }
+
if ( TreeR() && fGlobalTrigger && cTC) {
sprintf(branchname,"%sGlobalTrigger",GetName());
branch = TreeR()->GetBranch(branchname);