#include "AliMUONTransientDigit.h"
#include "AliMUONTriggerCircuit.h"
#include "AliMUONTriggerDecision.h"
+#include "AliMUONVGeometryBuilder.h"
#include "AliRun.h"
+#include "AliMUONDigitizerv1.h"
// Defaults parameters for Z positions of chambers
fNTrackingCh = 0;
fIshunt = 0;
fChambers = 0;
+ fGeometryBuilders = 0;
fTriggerCircuits = 0;
fAccMin = 0.;
fAccMax = 0.;
fAccCut = kFALSE;
fMerger = 0;
fFileName = 0;
+ fMUONData = 0;
+ fSplitLevel = 0;
}
//__________________________________________________________________
AliMUON::AliMUON(const char *name, const char *title)
*/
//End_Html
fMUONData = 0x0;
+ fSplitLevel= 0;
fIshunt = 0;
fNCh = AliMUONConstants::NCh();
// Creating List of Chambers
Int_t ch;
fChambers = new TObjArray(AliMUONConstants::NCh());
+ fGeometryBuilders = new TObjArray(AliMUONConstants::NCh());
+
// Loop over stations
for (Int_t st = 0; st < AliMUONConstants::NCh() / 2; st++) {
// Loop over 2 chambers in the station
fChambers->AddAt(new AliMUONChamberTrigger(ch),ch);
}
AliMUONChamber* chamber = (AliMUONChamber*) fChambers->At(ch);
- chamber->SetGid(0);
+ //chamber->SetGid(0);
// Default values for Z of chambers
chamber->SetZ(AliMUONConstants::DefaultChamberZ(ch));
//
} // Chamber stCH (0, 1) in
} // Station st (0...)
- fMaxStepGas=0.01;
- fMaxStepAlu=0.1;
+ // Negatives values are ignored by geant3 CONS200 in the calculation of the tracking parameters
+ fMaxStepGas=0.1;
+ fMaxStepAlu=0.1;
fMaxDestepGas=-1;
fMaxDestepAlu=-1;
if(fDebug) printf("%s: Calling AliMUON destructor !!!\n",ClassName());
fIshunt = 0;
if (fMerger) delete fMerger;
+
+ if (fGeometryBuilders){
+ fGeometryBuilders->Delete();
+ delete fGeometryBuilders;
+ }
+}
+//_____________________________________________________________________________
+void AliMUON::AddGeometryBuilder(AliMUONVGeometryBuilder* geomBuilder)
+{
+// Adds the geometry builder to the list
+// ---
+
+ fGeometryBuilders->Add(geomBuilder);
}
//____________________________________________________________________
void AliMUON::BuildGeometry()
{
GetMUONData()->SetLoader(fLoader);
GetMUONData()->SetTreeAddress("H,D,RC");
+ fHits = GetMUONData()->Hits(); // Added by Ivana to use the methods FisrtHit, NextHit of AliDetector
}
//____________________________________________________________________
for (Int_t stCH = 0; stCH < 2; stCH++) {
ch = 2 * st + stCH;
// Set chamber inner and outer radius according to acceptance cuts
- Chamber(ch).SetRInner(AliMUONConstants::DefaultChamberZ(ch)*TMath::Tan(fAccMin));
- Chamber(ch).SetROuter(AliMUONConstants::DefaultChamberZ(ch)*TMath::Tan(fAccMax));
+ Chamber(ch).SetRInner(TMath::Abs(AliMUONConstants::DefaultChamberZ(ch)*TMath::Tan(fAccMin)));
+ Chamber(ch).SetROuter(TMath::Abs(AliMUONConstants::DefaultChamberZ(ch)*TMath::Tan(fAccMax)));
} // chamber loop
} // station loop
}
}
+
+//____________________________________________________________________
+Float_t AliMUON::GetMaxStepGas() const
+{
+// Return stepsize in gas
+
+ return fMaxStepGas;
+}
+
+//____________________________________________________________________
+Float_t AliMUON::GetMaxStepAlu() const
+{
+// Return step size in Alu
+
+ return fMaxStepAlu;
+}
+
+//____________________________________________________________________
+Float_t AliMUON::GetMaxDestepGas() const
+{
+// Return maximum step size in Gas
+
+ return fMaxDestepGas;
+}
+
+//____________________________________________________________________
+Float_t AliMUON::GetMaxDestepAlu() const
+{
+// Return maximum step size in Gas
+
+ return fMaxDestepAlu;
+}
+
//____________________________________________________________________
void AliMUON::SetSegmentationModel(Int_t id, Int_t isec, AliSegmentation *segmentation)
{
// Set number of segmented cathods for chamber id
((AliMUONChamber*) fChambers->At(id))->SetNsec(nsec);
}
+//____________________________________________________________________
+AliDigitizer* AliMUON::CreateDigitizer(AliRunDigitizer* manager) const
+{
+ return new AliMUONDigitizerv1(manager);
+}
//_____________________________________________________________________
void AliMUON::SDigits2Digits()
{
"Creating standard getter for detector %s. Top folder is %s.",
GetName(),topfoldername);
- fLoader = new AliMUONLoader(GetName(),topfoldername);
+ fLoader = new AliLoader(GetName(),topfoldername);
fMUONData = new AliMUONData(fLoader,GetName(),GetName());
+ fMUONData->SetSplitLevel(fSplitLevel);
return fLoader;
}