/*
$Log$
+Revision 1.21 2001/04/20 10:05:02 coppedis
+Minor changes
+
Revision 1.20 2001/03/26 13:39:20 coppedis
Comment prints
fNStHits = 0;
- fNPrimaryHits = 0;
+// fNPrimaryHits = 0;
fNoShower = 0;
}
fStHits = new TClonesArray("AliZDCHit",1000);
fNStHits = 0;
- fNPrimaryHits = 0;
+// fNPrimaryHits = 0;
fNoShower = 0;
}
static Float_t primKinEn, xImpact, yImpact, sFlag;
- AliZDCHit *newquad, *curevquad, *curprimquad;
+ AliZDCHit *newquad, *curprimquad, *curevquad;
newquad = new AliZDCHit(fIshunt, track, vol, hits);
TClonesArray &lsthits = *fStHits;
TClonesArray &lhits = *fHits;
-
+
+ if(fNhits==0){
+ // First hit -> setting flag for primary or secondary particle
+ Int_t primary = gAlice->GetPrimary(track);
+ if(track != primary){
+ newquad->fSFlag = 1; // SECONDARY particle entering the ZDC
+ }
+ else if(track == primary){
+ newquad->fSFlag = 0; // PRIMARY particle entering the ZDC
+ }
+// fNPrimaryHits += 1;
+ sFlag = newquad->fSFlag;
+ primKinEn = newquad->fPrimKinEn;
+ xImpact = newquad->fXImpact;
+ yImpact = newquad->fYImpact;
+ }
+ else{
+ newquad->fPrimKinEn = primKinEn;
+ newquad->fXImpact = xImpact;
+ newquad->fYImpact = yImpact;
+ newquad->fSFlag = sFlag;
+ }
+
Int_t i,j,kStHit = 1;
for(i=0; i<fNStHits; i++){
// If hits are equal (same track, same volume), sum them.
curevquad = (AliZDCHit*) lsthits[i];
kStHit = 1;
if(*curevquad == *newquad){
- *curevquad = *curevquad+*newquad;
- kStHit = 0;
+ *curevquad = *curevquad+*newquad;
+ kStHit = 0;
}
+ if(kStHit == 0) break;
}
for(j=0; j<fNhits; j++){
return;
}
}
-
- if(fNhits==0){
- // First hit -> setting flag for primary or secondary particle
- Int_t primary = gAlice->GetPrimary(track);
- if(track != primary){
- newquad->fSFlag = 1; // Hit created by secondary particle entering the ZDC
- }
- else if(track == primary){
- newquad->fSFlag = 0; // Hit created by PRIMARY particle entering the ZDC
- }
- fNPrimaryHits += 1;
- sFlag = newquad->fSFlag;
- primKinEn = newquad->fPrimKinEn;
- xImpact = newquad->fXImpact;
- yImpact = newquad->fYImpact;
- }
- else{
- newquad->fPrimKinEn = primKinEn;
- newquad->fXImpact = xImpact;
- newquad->fYImpact = yImpact;
- newquad->fSFlag = sFlag;
- }
//Otherwise create a new hit
new(lhits[fNhits]) AliZDCHit(newquad);
new(lsthits[fNStHits]) AliZDCHit(newquad);
fNStHits++;
}
-
-// if(fDebug == 1){
-// printf("\n Primary Hits --------------------------------------------------------\n");
-// fHits->Print("");
-// printf("\n Event Hits --------------------------------------------------------\n");
-// fStHits->Print("");
-// }
+
+ if(fDebug == 1){
+ printf("\n Primary Hits --------------------------------------------------------\n");
+ fHits->Print("");
+ printf("\n Event Hits --------------------------------------------------------\n");
+ fStHits->Print("");
+ }
delete newquad;
}
+//____________________________________________________________________________
+Float_t AliZDC::ZMin(void) const
+{
+ // Minimum dimension of the ZDC module in z
+ return 11600.;
+}
+
+//____________________________________________________________________________
+Float_t AliZDC::ZMax(void) const
+{
+ // Maximum dimension of the ZDC module in z
+ return 11750.;
+}
//_____________________________________________________________________________
void AliZDC::ResetDigits()
virtual void CreateMaterials() {}
Int_t DistancetoPrimitive(Int_t px, Int_t py);
virtual Int_t IsVersion() const =0;
- virtual void ResetDigits();
+ virtual Float_t ZMin() const; // Minimum overall dimension of the ZDC
+ virtual Float_t ZMax() const; // Maximum overall dimension of the ZDC
+ virtual void ResetDigits();
virtual void StepManager();
// Switching off the shower development in ZDCs
TClonesArray *fStHits;
Int_t fNStHits;
- Int_t fNPrimaryHits; // Number of primary particles
+// Int_t fNPrimaryHits; // Number of primary particles
Int_t fNoShower; // Flag to switch off the shower