((AliMUONChamber*) fChambers->At(id))->SetResponseModel(response);
}
//____________________________________________________________________
-void AliMUON::SetNsec(Int_t id, Int_t nsec)
-{
-// Set number of segmented cathods for chamber id
- ((AliMUONChamber*) fChambers->At(id))->SetNsec(nsec);
-}
-//____________________________________________________________________
AliDigitizer* AliMUON::CreateDigitizer(AliRunDigitizer* manager) const
{
return new AliMUONDigitizerv2(manager);
AliMUONGeometrySegmentation* segmentation);
virtual void SetResponseModel(Int_t id, AliMUONResponse *response);
- virtual void SetNsec(Int_t id, Int_t nsec);
// Set Stepping Parameters
virtual void SetMaxStepGas(Float_t p1);
fdGas(0.),
fdAlu(0.),
fZ(0.),
- fnsec(1),
frMin(0.),
frMax(0.),
fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
fdGas(0.),
fdAlu(0.),
fZ(0.),
- fnsec(1),
frMin(0.),
frMax(0.),
fCurrentCorrel(1), // to avoid mistakes if ChargeCorrelInit is not called
void AliMUONChamber::ChargeCorrelationInit() {
// Initialisation of charge correlation for current hit
// the value is stored, and then used by Disintegration
- if (fnsec==1)
- fCurrentCorrel =1;
- else
- // exponential is here to avoid eventual problems in 0
- // factor 2 because chargecorrel is q1/q2 and not q1/qtrue
+
+ // exponential is here to avoid eventual problems in 0
+ // factor 2 because chargecorrel is q1/q2 and not q1/qtrue
fCurrentCorrel = TMath::Exp(gRandom->Gaus(0,fResponse->ChargeCorrel()/2));
}
if (!flag) AliFatal("wrong segmentation type.");
-
if (fSegmentation2->At(0))
((AliMUONGeometrySegmentation*) fSegmentation2->At(0))->Init(fId);
-
- if (fnsec==2) {
- if (fSegmentation2->At(1))
- ((AliMUONGeometrySegmentation*) fSegmentation2->At(1))->Init(fId);
- }
+ if (fSegmentation2->At(1))
+ ((AliMUONGeometrySegmentation*) fSegmentation2->At(1))->Init(fId);
+
}
// //_________________________________________________________________
// void AliMUONChamber::SigGenInit(AliMUONHit *hit)
// Float_t z = hit->Z();
// Int_t id = hit->DetElemId();
-// if (fnsec==1) {
-// ((AliMUONGeometrySegmentation*) fSegmentation2->At(0))->SigGenInit(id, x, y, z) ;
-// } else {
-// ((AliMUONGeometrySegmentation*) fSegmentation2->At(0))->SigGenInit(id, x, y, z) ;
-// ((AliMUONGeometrySegmentation*) fSegmentation2->At(1))->SigGenInit(id, x, y, z) ;
-// }
+// ((AliMUONGeometrySegmentation*) fSegmentation2->At(0))->SigGenInit(id, x, y, z) ;
+// ((AliMUONGeometrySegmentation*) fSegmentation2->At(1))->SigGenInit(id, x, y, z) ;
+
// }
//_______________________________________________________
nnew=0;
// Cathode plane loop
- for (Int_t i=1; i<=fnsec; i++) {
+ for (Int_t i = 1; i <= 2; i++) {
Float_t qcath = qtot * (i==1? fCurrentCorrel : 1/fCurrentCorrel);
AliMUONGeometrySegmentation* segmentation=
return (AliMUONGeometrySegmentation*) (*fSegmentation2)[isec-1];
}
-// Get number of segmentation sectors
- virtual Int_t Nsec() const {return fnsec;}
-// Set number of segmented cathodes (1 or 2)
- virtual void SetNsec(Int_t nsec) {fnsec=nsec;}
//
// Member function forwarding to the segmentation and response models
//
Float_t fdGas; // half gaz gap
Float_t fdAlu; // half Alu width
Float_t fZ; // Z position (cm)
- Int_t fnsec; // number of semented cathode planes
Float_t frMin; // innermost sensitive radius
Float_t frMax; // outermost sensitive radius
Float_t fCurrentCorrel; //! charge correlation for current hit.
Float_t qp;
nnew=0;
- for (Int_t i=1; i<=fnsec; i++) {
+ for (Int_t i = 1; i <= 2; i++) {
AliMUONGeometrySegmentation * segmentation=
(AliMUONGeometrySegmentation*) (*fSegmentation2)[i-1];
//--------------------------------------------------------
// Configuration for Chamber TC1/2 (Station 1) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
segmentation[0]->Add(id0, bendSt1);
segmentation[0]->Add(id0 + 3, nonbendSt1);
//--------------------------------------------------------
// Configuration for Chamber TC3/4 (Station 2) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
segmentation[0]->Add(id0, bendSt2);
segmentation[0]->Add(id0 + 3, nonbendSt2);
// id detection elt for chamber 1
Int_t id0 = (chamber+1)*100;
- fMUON->SetNsec(chamber,2);
-
// cathode 0
// type 220000
segmentation[0]->Add(id0+14, slatsegB[3]);
//--------------------------------------------------------
// Configuration for Chamber TC6/7 (Station 4) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
// type 122330
segmentation[0]->Add(id0+13, slatsegB[0]);
//--------------------------------------------------------
// Configuration for Chamber TC8/9 (Station 5) ----------
-
- fMUON->SetNsec(chamber,2);
-
// cathode 0
// type 122330
segmentation[0]->Add(id0+13, slatsegB[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;
//
// 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