#include "AliMUONFactoryV2.h"
#include "AliRun.h"
-#include "AliSegmentation.h"
#include "AliLog.h"
#include "AliMUON.h"
#include "AliMUONGeometryModule.h"
#include "AliMUONGeometryStore.h"
#include "AliMUONGeometrySegmentation.h"
+#include "AliMUONVGeometryDEIndexing.h"
#include "AliMUONSt12QuadrantSegmentation.h"
#include "AliMUONSt345SlatSegmentation.h"
#include "AliMUONTriggerSegmentation.h"
//__________________________________________________________________________
AliMUONFactoryV2::AliMUONFactoryV2(const char* name)
- : AliMUONFactory(name),
+ : TNamed(name, ""),
fMUON(0),
fResponse0(0),
fDESegmentations(0)
//__________________________________________________________________________
AliMUONFactoryV2::AliMUONFactoryV2()
- : AliMUONFactory(),
+ : TNamed(),
fMUON(0),
fResponse0(0),
fDESegmentations(0)
//__________________________________________________________________________
AliMUONFactoryV2::AliMUONFactoryV2(const AliMUONFactoryV2& rhs)
- : AliMUONFactory(rhs)
+ : TNamed(rhs)
{
// Protected copy constructor
return *this;
}
+//__________________________________________________________________________
+Bool_t AliMUONFactoryV2::IsGeometryDefined(Int_t ichamber)
+{
+// Return true, if det elements for the chamber with the given ichamber Id
+// are defined in geometry (the geometry builder for this chamber was activated)
+
+ if ( ! fMUON ||
+ ! fMUON->Chamber(ichamber).GetGeometry() ||
+ ! fMUON->Chamber(ichamber).GetGeometry()->GetDEIndexing() ||
+ ! fMUON->Chamber(ichamber).GetGeometry()->GetDEIndexing()->GetNofDetElements() )
+
+ return kFALSE;
+
+ return kTRUE;
+}
+
//__________________________________________________________________________
void AliMUONFactoryV2::BuildCommon()
{
//--------------------------------------------------------
// Configuration for Chamber TC1/2 (Station 1) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
segmentation[0]->Add(id0, bendSt1);
- segmentation[0]->Add(id0 + 1, nonbendSt1);
- segmentation[0]->Add(id0 + 50, bendSt1);
- segmentation[0]->Add(id0 + 51, nonbendSt1);
+ segmentation[0]->Add(id0 + 3, nonbendSt1);
+ segmentation[0]->Add(id0 + 2, bendSt1);
+ segmentation[0]->Add(id0 + 1, nonbendSt1);
fMUON->SetSegmentationModel(chamber, 1, segmentation[0]);
// cathode 1
segmentation[1]->Add(id0, nonbendSt1);
+ segmentation[1]->Add(id0 + 3, bendSt1);
+ segmentation[1]->Add(id0 + 2, nonbendSt1);
segmentation[1]->Add(id0 + 1, bendSt1);
- segmentation[1]->Add(id0 + 50, nonbendSt1);
- segmentation[1]->Add(id0 + 51, bendSt1);
fMUON->SetSegmentationModel(chamber, 2, segmentation[1]);
fMUON->SetResponseModel(chamber, responseSt1); // special response
//--------------------------------------------------------
// Configuration for Chamber TC3/4 (Station 2) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
segmentation[0]->Add(id0, bendSt2);
- segmentation[0]->Add(id0 + 1, nonbendSt2);
- segmentation[0]->Add(id0 + 50, bendSt2);
- segmentation[0]->Add(id0 + 51, nonbendSt2);
+ segmentation[0]->Add(id0 + 3, nonbendSt2);
+ segmentation[0]->Add(id0 + 2, bendSt2);
+ segmentation[0]->Add(id0 + 1, nonbendSt2);
fMUON->SetSegmentationModel(chamber, 1, segmentation[0]);
// cathode 1
segmentation[1]->Add(id0, nonbendSt2);
+ segmentation[1]->Add(id0 + 3, bendSt2);
+ segmentation[1]->Add(id0 + 2, nonbendSt2);
segmentation[1]->Add(id0 + 1, bendSt2);
- segmentation[1]->Add(id0 + 50, nonbendSt2);
- segmentation[1]->Add(id0 + 51, bendSt2);
fMUON->SetSegmentationModel(chamber, 2, segmentation[1]);
fMUON->SetResponseModel(chamber, fResponse0); // normal response
slatsegB[i]->SetDAnod(AliMUONConstants::Pitch());
slatsegNB[i] = new AliMUONSt345SlatSegmentation(0);
fDESegmentations->Add(slatsegNB[i]);
- slatsegNB[i]->SetPadSize(0.713,10.); // Nbending
+ slatsegNB[i]->SetPadSize(1./1.4,10.); // Nbending
slatsegNB[i]->SetPadDivision(ndiv);
slatsegNB[i]->SetId(1);
slatsegNB[i]->SetDAnod(AliMUONConstants::Pitch());
// id detection elt for chamber 1
Int_t id0 = (chamber+1)*100;
- //--------------------------------------------------------
- // Configuration for Chamber TC3/4 (Station 2) ----------
-
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
// type 220000
- segmentation[0]->Add(id0, slatsegB[3]);
- segmentation[0]->Add(id0+ 8, slatsegB[3]);
- segmentation[0]->Add(id0+50, slatsegB[3]);
- segmentation[0]->Add(id0+58, slatsegB[3]);
+ segmentation[0]->Add(id0+14, slatsegB[3]);
+ segmentation[0]->Add(id0+ 4, slatsegB[3]);
+ segmentation[0]->Add(id0+13, slatsegB[3]);
+ segmentation[0]->Add(id0+ 5, slatsegB[3]);
// type 222000
- segmentation[0]->Add(id0+ 1, slatsegB[2]);
- segmentation[0]->Add(id0+ 7, slatsegB[2]);
- segmentation[0]->Add(id0+51, slatsegB[2]);
- segmentation[0]->Add(id0+57, slatsegB[2]);
+ segmentation[0]->Add(id0+15, slatsegB[2]);
+ segmentation[0]->Add(id0+ 3, slatsegB[2]);
+ segmentation[0]->Add(id0+12, slatsegB[2]);
+ segmentation[0]->Add(id0+ 6, slatsegB[2]);
// type 122200
- segmentation[0]->Add(id0+ 2, slatsegB[1]);
- segmentation[0]->Add(id0+ 6, slatsegB[1]);
- segmentation[0]->Add(id0+52, slatsegB[1]);
- segmentation[0]->Add(id0+56, slatsegB[1]);
+ segmentation[0]->Add(id0+16, slatsegB[1]);
+ segmentation[0]->Add(id0+ 2, slatsegB[1]);
+ segmentation[0]->Add(id0+11, slatsegB[1]);
+ segmentation[0]->Add(id0+ 7, slatsegB[1]);
// type 112200
- segmentation[0]->Add(id0+ 3, slatsegB[0]);
- segmentation[0]->Add(id0+ 4, slatsegB[0]);
- segmentation[0]->Add(id0+ 5, slatsegB[0]);
- segmentation[0]->Add(id0+53, slatsegB[0]);
- segmentation[0]->Add(id0+54, slatsegB[0]);
- segmentation[0]->Add(id0+55, slatsegB[0]);
+ segmentation[0]->Add(id0+17, slatsegB[0]);
+ segmentation[0]->Add(id0, slatsegB[0]);
+ segmentation[0]->Add(id0+ 1, slatsegB[0]);
+ segmentation[0]->Add(id0+10, slatsegB[0]);
+ segmentation[0]->Add(id0+ 9, slatsegB[0]);
+ segmentation[0]->Add(id0+ 8, slatsegB[0]);
fMUON->SetSegmentationModel(chamber, 1, segmentation[0]);
// cathode 1
// type 220000
- segmentation[1]->Add(id0, slatsegNB[3]);
- segmentation[1]->Add(id0+ 8, slatsegNB[3]);
- segmentation[1]->Add(id0+50, slatsegNB[3]);
- segmentation[1]->Add(id0+58, slatsegNB[3]);
+ segmentation[1]->Add(id0+14, slatsegNB[3]);
+ segmentation[1]->Add(id0+ 4, slatsegNB[3]);
+ segmentation[1]->Add(id0+13, slatsegNB[3]);
+ segmentation[1]->Add(id0+ 5, slatsegNB[3]);
// type 222000
- segmentation[1]->Add(id0+ 1, slatsegNB[2]);
- segmentation[1]->Add(id0+ 7, slatsegNB[2]);
- segmentation[1]->Add(id0+51, slatsegNB[2]);
- segmentation[1]->Add(id0+57, slatsegNB[2]);
+ segmentation[1]->Add(id0+15, slatsegNB[2]);
+ segmentation[1]->Add(id0+ 3, slatsegNB[2]);
+ segmentation[1]->Add(id0+12, slatsegNB[2]);
+ segmentation[1]->Add(id0+ 6, slatsegNB[2]);
// type 122200
- segmentation[1]->Add(id0+ 2, slatsegNB[1]);
- segmentation[1]->Add(id0+ 6, slatsegNB[1]);
- segmentation[1]->Add(id0+52, slatsegNB[1]);
- segmentation[1]->Add(id0+56, slatsegNB[1]);
+ segmentation[1]->Add(id0+16, slatsegNB[1]);
+ segmentation[1]->Add(id0+ 2, slatsegNB[1]);
+ segmentation[1]->Add(id0+11, slatsegNB[1]);
+ segmentation[1]->Add(id0+ 7, slatsegNB[1]);
// type 112200
- segmentation[1]->Add(id0+ 3, slatsegNB[0]);
- segmentation[1]->Add(id0+ 4, slatsegNB[0]);
- segmentation[1]->Add(id0+ 5, slatsegNB[0]);
- segmentation[1]->Add(id0+53, slatsegNB[0]);
- segmentation[1]->Add(id0+54, slatsegNB[0]);
- segmentation[1]->Add(id0+55, slatsegNB[0]);
+ segmentation[1]->Add(id0+17, slatsegNB[0]);
+ segmentation[1]->Add(id0, slatsegNB[0]);
+ segmentation[1]->Add(id0+ 1, slatsegNB[0]);
+ segmentation[1]->Add(id0+10, slatsegNB[0]);
+ segmentation[1]->Add(id0+ 9, slatsegNB[0]);
+ segmentation[1]->Add(id0+ 8, slatsegNB[0]);
fMUON->SetSegmentationModel(chamber, 2, segmentation[1]);
fMUON->SetResponseModel(chamber, fResponse0);
fMUON->Chamber(chamber).SetChargeCorrel(0.11); // 11% charge spread
}
}
-
//__________________________________________________________________________
void AliMUONFactoryV2::BuildStation4()
slatsegB[i]->SetDAnod(AliMUONConstants::Pitch());
slatsegNB[i] = new AliMUONSt345SlatSegmentation(0);
fDESegmentations->Add(slatsegNB[i]);
- slatsegNB[i]->SetPadSize(0.713,10.);
+ slatsegNB[i]->SetPadSize(1./1.4,10.);
slatsegNB[i]->SetPadDivision(ndiv);
slatsegNB[i]->SetId(1);
slatsegNB[i]->SetDAnod(AliMUONConstants::Pitch());
slatsegB[3]->SetPcbBoards(n7);
slatsegB[3]->Init(0); // 0 detection element id
slatsegNB[3]->SetPcbBoards(n7);
- slatsegNB[4]->Init(0); // 0 detection element id
+ slatsegNB[3]->Init(0); // 0 detection element id
// Type 223300 for 704, 709, 717, 722 in Ch7 (similar for Ch8)
// for the futur official numbering
//--------------------------------------------------------
// Configuration for Chamber TC6/7 (Station 4) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
// type 122330
- segmentation[0]->Add(id0+ 6, slatsegB[0]);
- segmentation[0]->Add(id0+56, slatsegB[0]);
+ segmentation[0]->Add(id0+13, slatsegB[0]);
+ segmentation[0]->Add(id0 , slatsegB[0]);
// type 112233
- segmentation[0]->Add(id0+ 5, slatsegB[1]);
- segmentation[0]->Add(id0+ 7, slatsegB[1]);
- segmentation[0]->Add(id0+55, slatsegB[1]);
- segmentation[0]->Add(id0+57, slatsegB[1]);
+ segmentation[0]->Add(id0+14, slatsegB[1]);
+ segmentation[0]->Add(id0+12, slatsegB[1]);
+ segmentation[0]->Add(id0+25, slatsegB[1]);
+ segmentation[0]->Add(id0+ 1, slatsegB[1]);
// type 112230
- segmentation[0]->Add(id0+ 4, slatsegB[2]);
- segmentation[0]->Add(id0+ 8, slatsegB[2]);
- segmentation[0]->Add(id0+54, slatsegB[2]);
- segmentation[0]->Add(id0+58, slatsegB[2]);
+ segmentation[0]->Add(id0+15, slatsegB[2]);
+ segmentation[0]->Add(id0+11, slatsegB[2]);
+ segmentation[0]->Add(id0+24, slatsegB[2]);
+ segmentation[0]->Add(id0+ 2, slatsegB[2]);
// type 222330
+ segmentation[0]->Add(id0+16, slatsegB[3]);
+ segmentation[0]->Add(id0+10, slatsegB[3]);
+ segmentation[0]->Add(id0+23, slatsegB[3]);
segmentation[0]->Add(id0+ 3, slatsegB[3]);
- segmentation[0]->Add(id0+ 9, slatsegB[3]);
- segmentation[0]->Add(id0+53, slatsegB[3]);
- segmentation[0]->Add(id0+59, slatsegB[3]);
// type 223300
- segmentation[0]->Add(id0+ 2, slatsegB[4]);
- segmentation[0]->Add(id0+10, slatsegB[4]);
- segmentation[0]->Add(id0+52, slatsegB[4]);
- segmentation[0]->Add(id0+60, slatsegB[4]);
+ segmentation[0]->Add(id0+17, slatsegB[4]);
+ segmentation[0]->Add(id0+ 9, slatsegB[4]);
+ segmentation[0]->Add(id0+22, slatsegB[4]);
+ segmentation[0]->Add(id0+ 4, slatsegB[4]);
// type 333000
- segmentation[0]->Add(id0+ 1, slatsegB[5]);
- segmentation[0]->Add(id0+11, slatsegB[5]);
- segmentation[0]->Add(id0+51, slatsegB[5]);
- segmentation[0]->Add(id0+61, slatsegB[5]);
+ segmentation[0]->Add(id0+18, slatsegB[5]);
+ segmentation[0]->Add(id0+ 8, slatsegB[5]);
+ segmentation[0]->Add(id0+21, slatsegB[5]);
+ segmentation[0]->Add(id0+ 5, slatsegB[5]);
// type 330000
- segmentation[0]->Add(id0 , slatsegB[6]);
- segmentation[0]->Add(id0+12, slatsegB[6]);
- segmentation[0]->Add(id0+50, slatsegB[6]);
- segmentation[0]->Add(id0+62, slatsegB[6]);
+ segmentation[0]->Add(id0+19, slatsegB[6]);
+ segmentation[0]->Add(id0+ 7, slatsegB[6]);
+ segmentation[0]->Add(id0+20, slatsegB[6]);
+ segmentation[0]->Add(id0+ 6, slatsegB[6]);
fMUON->SetSegmentationModel(chamber, 1, segmentation[0]);
// cathode 1
// type 122330
- segmentation[1]->Add(id0+ 6, slatsegNB[0]);
- segmentation[1]->Add(id0+56, slatsegNB[0]);
+ segmentation[1]->Add(id0+13, slatsegNB[0]);
+ segmentation[1]->Add(id0 , slatsegNB[0]);
// type 112233
- segmentation[1]->Add(id0+ 5, slatsegNB[1]);
- segmentation[1]->Add(id0+ 7, slatsegNB[1]);
- segmentation[1]->Add(id0+55, slatsegNB[1]);
- segmentation[1]->Add(id0+57, slatsegNB[1]);
+ segmentation[1]->Add(id0+14, slatsegNB[1]);
+ segmentation[1]->Add(id0+12, slatsegNB[1]);
+ segmentation[1]->Add(id0+25, slatsegNB[1]);
+ segmentation[1]->Add(id0+ 1, slatsegNB[1]);
// type 112230
- segmentation[1]->Add(id0+ 4, slatsegNB[2]);
- segmentation[1]->Add(id0+ 8, slatsegNB[2]);
- segmentation[1]->Add(id0+54, slatsegNB[2]);
- segmentation[1]->Add(id0+58, slatsegNB[2]);
+ segmentation[1]->Add(id0+15, slatsegNB[2]);
+ segmentation[1]->Add(id0+11, slatsegNB[2]);
+ segmentation[1]->Add(id0+24, slatsegNB[2]);
+ segmentation[1]->Add(id0+ 2, slatsegNB[2]);
// type 222330
+ segmentation[1]->Add(id0+16, slatsegNB[3]);
+ segmentation[1]->Add(id0+10, slatsegNB[3]);
+ segmentation[1]->Add(id0+23, slatsegNB[3]);
segmentation[1]->Add(id0+ 3, slatsegNB[3]);
- segmentation[1]->Add(id0+ 9, slatsegNB[3]);
- segmentation[1]->Add(id0+53, slatsegNB[3]);
- segmentation[1]->Add(id0+59, slatsegNB[3]);
// type 223300
- segmentation[1]->Add(id0+ 2, slatsegNB[4]);
- segmentation[1]->Add(id0+10, slatsegNB[4]);
- segmentation[1]->Add(id0+52, slatsegNB[4]);
- segmentation[1]->Add(id0+60, slatsegNB[4]);
+ segmentation[1]->Add(id0+17, slatsegNB[4]);
+ segmentation[1]->Add(id0+ 9, slatsegNB[4]);
+ segmentation[1]->Add(id0+22, slatsegNB[4]);
+ segmentation[1]->Add(id0+ 4, slatsegNB[4]);
// type 333000
- segmentation[1]->Add(id0+ 1, slatsegNB[5]);
- segmentation[1]->Add(id0+11, slatsegNB[5]);
- segmentation[1]->Add(id0+51, slatsegNB[5]);
- segmentation[1]->Add(id0+61, slatsegNB[5]);
+ segmentation[1]->Add(id0+18, slatsegNB[5]);
+ segmentation[1]->Add(id0+ 8, slatsegNB[5]);
+ segmentation[1]->Add(id0+21, slatsegNB[5]);
+ segmentation[1]->Add(id0+ 5, slatsegNB[5]);
// type 330000
- segmentation[1]->Add(id0 , slatsegNB[6]);
- segmentation[1]->Add(id0+12, slatsegNB[6]);
- segmentation[1]->Add(id0+50, slatsegNB[6]);
- segmentation[1]->Add(id0+62, slatsegNB[6]);
+ segmentation[1]->Add(id0+19, slatsegNB[6]);
+ segmentation[1]->Add(id0+ 7, slatsegNB[6]);
+ segmentation[1]->Add(id0+20, slatsegNB[6]);
+ segmentation[1]->Add(id0+ 6, slatsegNB[6]);
fMUON->SetSegmentationModel(chamber, 2, segmentation[1]);
fMUON->SetResponseModel(chamber, fResponse0);
slatsegB[i]->SetDAnod(AliMUONConstants::Pitch());
slatsegNB[i] = new AliMUONSt345SlatSegmentation(0);
fDESegmentations->Add(slatsegNB[i]);
- slatsegNB[i]->SetPadSize(0.713,10.);
+ slatsegNB[i]->SetPadSize(1./1.4,10.);
slatsegNB[i]->SetPadDivision(ndiv);
slatsegNB[i]->SetId(1);
slatsegNB[i]->SetDAnod(AliMUONConstants::Pitch());
//--------------------------------------------------------
// Configuration for Chamber TC8/9 (Station 5) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
// type 122330
- segmentation[0]->Add(id0+ 6, slatsegB[0]);
- segmentation[0]->Add(id0+56, slatsegB[0]);
+ segmentation[0]->Add(id0+13, slatsegB[0]);
+ segmentation[0]->Add(id0 , slatsegB[0]);
// type 112233
- segmentation[0]->Add(id0+ 4, slatsegB[1]);
- segmentation[0]->Add(id0+ 5, slatsegB[1]);
- segmentation[0]->Add(id0+ 7, slatsegB[1]);
- segmentation[0]->Add(id0+ 8, slatsegB[1]);
- segmentation[0]->Add(id0+54, slatsegB[1]);
- segmentation[0]->Add(id0+55, slatsegB[1]);
- segmentation[0]->Add(id0+57, slatsegB[1]);
- segmentation[0]->Add(id0+58, slatsegB[1]);
+ segmentation[0]->Add(id0+15, slatsegB[1]);
+ segmentation[0]->Add(id0+14, slatsegB[1]);
+ segmentation[0]->Add(id0+12, slatsegB[1]);
+ segmentation[0]->Add(id0+11, slatsegB[1]);
+ segmentation[0]->Add(id0+24, slatsegB[1]);
+ segmentation[0]->Add(id0+25, slatsegB[1]);
+ segmentation[0]->Add(id0+ 1, slatsegB[1]);
+ segmentation[0]->Add(id0+ 2, slatsegB[1]);
// type 333000
- segmentation[0]->Add(id0 , slatsegB[2]);
- segmentation[0]->Add(id0+12, slatsegB[2]);
- segmentation[0]->Add(id0+50, slatsegB[2]);
- segmentation[0]->Add(id0+62, slatsegB[2]);
+ segmentation[0]->Add(id0+19, slatsegB[2]);
+ segmentation[0]->Add(id0+ 7, slatsegB[2]);
+ segmentation[0]->Add(id0+20, slatsegB[2]);
+ segmentation[0]->Add(id0+ 6, slatsegB[2]);
// type 222333
+ segmentation[0]->Add(id0+16, slatsegB[3]);
+ segmentation[0]->Add(id0+10, slatsegB[3]);
+ segmentation[0]->Add(id0+23, slatsegB[3]);
segmentation[0]->Add(id0+ 3, slatsegB[3]);
- segmentation[0]->Add(id0+ 9, slatsegB[3]);
- segmentation[0]->Add(id0+53, slatsegB[3]);
- segmentation[0]->Add(id0+59, slatsegB[3]);
// type 223330
- segmentation[0]->Add(id0+ 2, slatsegB[4]);
- segmentation[0]->Add(id0+10, slatsegB[4]);
- segmentation[0]->Add(id0+52, slatsegB[4]);
- segmentation[0]->Add(id0+60, slatsegB[4]);
+ segmentation[0]->Add(id0+17, slatsegB[4]);
+ segmentation[0]->Add(id0+ 9, slatsegB[4]);
+ segmentation[0]->Add(id0+22, slatsegB[4]);
+ segmentation[0]->Add(id0+ 4, slatsegB[4]);
// type 333300
- segmentation[0]->Add(id0+ 1, slatsegB[5]);
- segmentation[0]->Add(id0+11, slatsegB[5]);
- segmentation[0]->Add(id0+51, slatsegB[5]);
- segmentation[0]->Add(id0+61, slatsegB[5]);
+ segmentation[0]->Add(id0+18, slatsegB[5]);
+ segmentation[0]->Add(id0+ 8, slatsegB[5]);
+ segmentation[0]->Add(id0+21, slatsegB[5]);
+ segmentation[0]->Add(id0+ 5, slatsegB[5]);
fMUON->SetSegmentationModel(chamber, 1, segmentation[0]);
// cathode 1
// type 122330
- segmentation[1]->Add(id0+ 6, slatsegNB[0]);
- segmentation[1]->Add(id0+56, slatsegNB[0]);
+ segmentation[1]->Add(id0+13, slatsegNB[0]);
+ segmentation[1]->Add(id0 , slatsegNB[0]);
// type 112233
- segmentation[1]->Add(id0+ 4, slatsegNB[1]);
- segmentation[1]->Add(id0+ 5, slatsegNB[1]);
- segmentation[1]->Add(id0+ 7, slatsegNB[1]);
- segmentation[1]->Add(id0+ 8, slatsegNB[1]);
- segmentation[1]->Add(id0+54, slatsegNB[1]);
- segmentation[1]->Add(id0+55, slatsegNB[1]);
- segmentation[1]->Add(id0+57, slatsegNB[1]);
- segmentation[1]->Add(id0+58, slatsegNB[1]);
+ segmentation[1]->Add(id0+15, slatsegNB[1]);
+ segmentation[1]->Add(id0+14, slatsegNB[1]);
+ segmentation[1]->Add(id0+12, slatsegNB[1]);
+ segmentation[1]->Add(id0+11, slatsegNB[1]);
+ segmentation[1]->Add(id0+24, slatsegNB[1]);
+ segmentation[1]->Add(id0+25, slatsegNB[1]);
+ segmentation[1]->Add(id0+ 1, slatsegNB[1]);
+ segmentation[1]->Add(id0+ 2, slatsegNB[1]);
// type 333000
- segmentation[1]->Add(id0 , slatsegNB[2]);
- segmentation[1]->Add(id0+12, slatsegNB[2]);
- segmentation[1]->Add(id0+50, slatsegNB[2]);
- segmentation[1]->Add(id0+62, slatsegNB[2]);
+ segmentation[1]->Add(id0+19 , slatsegNB[2]);
+ segmentation[1]->Add(id0+ 7, slatsegNB[2]);
+ segmentation[1]->Add(id0+20, slatsegNB[2]);
+ segmentation[1]->Add(id0+ 6, slatsegNB[2]);
// type 222333
+ segmentation[1]->Add(id0+16, slatsegNB[3]);
+ segmentation[1]->Add(id0+10, slatsegNB[3]);
+ segmentation[1]->Add(id0+23, slatsegNB[3]);
segmentation[1]->Add(id0+ 3, slatsegNB[3]);
- segmentation[1]->Add(id0+ 9, slatsegNB[3]);
- segmentation[1]->Add(id0+53, slatsegNB[3]);
- segmentation[1]->Add(id0+59, slatsegNB[3]);
// type 223330
- segmentation[1]->Add(id0+ 2, slatsegNB[4]);
- segmentation[1]->Add(id0+10, slatsegNB[4]);
- segmentation[1]->Add(id0+52, slatsegNB[4]);
- segmentation[1]->Add(id0+60, slatsegNB[4]);
+ segmentation[1]->Add(id0+17, slatsegNB[4]);
+ segmentation[1]->Add(id0+ 9, slatsegNB[4]);
+ segmentation[1]->Add(id0+22, slatsegNB[4]);
+ segmentation[1]->Add(id0+ 4, slatsegNB[4]);
// type 333300
- segmentation[1]->Add(id0+ 1, slatsegNB[5]);
- segmentation[1]->Add(id0+11, slatsegNB[5]);
- segmentation[1]->Add(id0+51, slatsegNB[5]);
- segmentation[1]->Add(id0+61, slatsegNB[5]);
+ segmentation[1]->Add(id0+18, slatsegNB[5]);
+ segmentation[1]->Add(id0+ 8, slatsegNB[5]);
+ segmentation[1]->Add(id0+21, slatsegNB[5]);
+ segmentation[1]->Add(id0+ 5, slatsegNB[5]);
fMUON->SetSegmentationModel(chamber, 2, segmentation[1]);
fMUON->SetResponseModel(chamber, fResponse0);
// chamber 8 7 1 0 cathode 1
for (Int_t i=0; i<6; i++) nStrip[i]=8;
- nStrip[7]=16;
+ nStrip[6]=16;
for (Int_t i=0; i<7; i++) stripYsize[i]=stripLength[3];
for (Int_t i=0; i<7; i++) stripXsize[i]=stripWidth[2];
trigSegY[8]->Init(0,nStrip,stripYsize,stripXsize,0.);
for (Int_t i=5; i<6; i++) nStrip[5]=8;
nStrip[6]=16;
stripYsize[0]=stripLength[2];
- for (Int_t i=1; i<8; i++) stripYsize[i]=stripLength[3];
+ for (Int_t i=1; i<7; i++) stripYsize[i]=stripLength[3];
for (Int_t i=0; i<5; i++) stripXsize[i]=stripWidth[1];
for (Int_t i=5; i<7; i++) stripXsize[i]=stripWidth[2];
trigSegY[5]->Init(0,nStrip,stripYsize,stripXsize,stripLength[0]);
chamberSeg[0] = new AliMUONGeometrySegmentation(fMUON->Chamber(chamber).GetGeometry());
chamberSeg[1] = new AliMUONGeometrySegmentation(fMUON->Chamber(chamber).GetGeometry());
- fMUON->SetNsec(chamber,2);
Int_t icount=chamber-10; // chamber counter (0 1 2 3)
Int_t id0=(10+icount+1)*100;
fMUON->SetMaxStepGas(0.1);
fMUON->SetMaxStepAlu(0.1);
- // Build all stations
+ // Build stations
BuildCommon();
- BuildStation1();
- BuildStation2();
- BuildStation3();
- BuildStation4();
- BuildStation5();
- BuildStation6();
+ if (IsGeometryDefined(0)) BuildStation1();
+ if (IsGeometryDefined(2)) BuildStation2();
+ if (IsGeometryDefined(4)) BuildStation3();
+ if (IsGeometryDefined(6)) BuildStation4();
+ if (IsGeometryDefined(8)) BuildStation5();
+ if (IsGeometryDefined(10)) BuildStation6();
}
else
AliDebug(0,"Non default version of MUON selected. You have to construct yourself the MUON elements !!");
//
// Version 0
//
- // First define the number of planes that are segmented (1 or 2) by a call
- // to SetNsec.
// Then chose for each chamber (chamber plane) the segmentation
// and response model.
// They should be equal for the two chambers of each station. In a future