--- gpamela/gpcal/gpcalv.F 2003/12/17 11:32:48 3.3 +++ gpamela/gpcal/gpcalv.F 2005/07/25 11:53:20 3.4 @@ -1,7 +1,10 @@ * -* $Id: gpcalv.F,v 3.2 2002/12/05 10:17:41 pamela Exp $ +* $Id: gpcalv.F,v 3.3 2003/12/17 11:32:48 pamela Exp $ * * $Log: gpcalv.F,v $ +* Revision 3.3 2003/12/17 11:32:48 pamela +* CALO SIMULATION COMPLETED: geometry and special tracking parameters updated and simulation checked by a comparison with the Trieste's standalone Monte Carlo simulation +* * Revision 3.2 2002/12/05 10:17:41 pamela * Update CAS and CALO geometries and positions. Makefile updated as well * @@ -30,6 +33,10 @@ * INTEGER IROT,IVOLU,N,NMED REAL X,Y,Z +* MA + REAL X1, Y1 + INTEGER m +* END MA * * Define the CALB volume * @@ -148,173 +155,220 @@ ENDDO ENDDO *END EM. -*F.V.&ML: -C commenting the original code with a 'C' per raw: -C* -C* Positioning volume CAPL and CAAB into the mother CALB -C* -C X= 0. -C Y= 0. -CC Z= CALB(3) + CAPL(3) -C*EM: -C Z= CALB(3) + CAPL(3) - DCASIZ/2. -C*END EM. (we have 0.15 cm from the top to the first Si) -C N= 0 -C DO I=1,NCAPL -C* -C* X view, absorber and Y view on the other -C* -C Z= Z - 2*CAPL(3) -C N= N + 1 -C* -C* Check if this plane is excluded -C* -C IF(.NOT.NOCAPL(N)) -C + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') -C Z= Z - CAPL(3) - CAAB(3) -C* -C* Check if this absorber is excluded -C* -C IF(.NOT.NOCAAB(I)) -C + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY') -C Z= Z - CAAB(3) - CAPL(3) -C N= N + 1 -C* -C* Check if this detector is excluded -C* -C IF(.NOT.NOCAPL(N)) -C + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') -C ENDDO -C end comments. -* -* Positioning volume CANS ,CAPL and CAAB into the mother CALB -* - X= 0. - Y= 0. - Z= CALB(3) + CAPL(3) - DCASIZ/2. -*END EM. (we have 0.15 cm from the top to the first Si) - N= 0 -* -* I DISPARI - DO I=1,NCAPL,2 -* -* X view, absorber and Y view on the other -* - X=0.10 - Y=0.05 - Z= Z - 2*CAPL(3) - N= N + 1 -* -* Check if this plane is excluded -* -* - IF(.NOT.NOCAPL(N)) - + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') -* - X = 0. - Y = 0. - Z= Z - CAPL(3) - CANS(3) -* - CALL GSPOS('CANS',N,'CALB',X,Y,Z,0,'ONLY') -* - Z= Z - CANS(3) - CAAB(3) -* -* Check if this absorber is excluded -* -* - IF(.NOT.NOCAAB(I)) - + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY') -* - Z = Z - CAAB(3)- CANS(3) - N = N + 1 -* - CALL GSPOS('CANS',N,'CALB',X,Y,Z,3,'ONLY') - Z= Z - CANS(3) - CAPL(3) - X=-0.05 - Y=0.10 -* -* Check if this detector is excluded -* - IF(.NOT.NOCAPL(N)) - + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') - N=N+2 - Z = Z -2*(2*CAPL(3)+2*CANS(3)+CAAB(3)) - ENDDO -* -* I PARI -* - X= 0. - Y= 0. - Z= CALB(3) + CAPL(3) - DCASIZ/2. -*END EM. (we have 0.15 cm from the top to the first Si) - N= 2 -* -* - DO I=2,NCAPL,2 -* -* X view, absorber and Y view on the other -* - Z= Z - 2*CAPL(3)-2*(2*CAPL(3)+2*CANS(3)+CAAB(3)) - N= N + 1 -* -* Check if this plane is excluded - X= -0.10 - Y= -0.05 -* - IF(.NOT.NOCAPL(N)) - + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') - X = 0. - Y = 0. - Z = Z - CAPL(3) - CANS(3) -* - CALL GSPOS('CANS',N,'CALB',X,Y,Z,0,'ONLY') -* -* Check if this absorber is excluded -* - N = N + 1 - Z = Z - CANS(3) - CAAB(3) -* - IF(.NOT.NOCAAB(I)) - + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY') -* - Z= Z - CAAB(3) - CANS(3) -* - CALL GSPOS('CANS',N,'CALB',X,Y,Z,3,'ONLY') - Z= Z - CANS(3) - CAPL(3) - X= 0.05 - Y= -0.10 -* -* -* Check if this detector is excluded -* - IF(.NOT.NOCAPL(N)) - + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') - N = N + 2 -* +* MA +* 11 MODULI DI 2 W + Z = CALB(3) - CAPL(3) - DCASIZ/2 + N = 0 + DO M = 0,20,2 +* Positioning CAPL CANS CAAB in CALB to form a module + X = .10 + y = .05 + DO I = 1,2 +* Positioning CAPL + N = N + 1 +C if(N.EQ.1) print *,'z ini = ',Z + IF(.NOT.NOCAPL(N)) + + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') +* Positioning CANS + Z = Z - CAPL(3) - CANS(3) + CALL GSPOS('CANS',N,'CALB',0,0,Z,0,'ONLY') +* Positioning CAAB + Z = Z - CANS(3) - CAAB(3) + IF(.NOT.NOCAAB(M+I)) + + CALL GSPOS('CAAB',(M+I),'CALB',0,0,Z,0,'ONLY') +* Positioning CANS (ruotato) + N = N + 1 + Z = Z - CAAB(3) - CANS(3) + CALL GSPOS('CANS',N,'CALB',0,0,Z,3,'ONLY') +* Positioning CAPL (ruotato e shiftato) + X1 = X + Y1 = Y + X = -Y1 + Y = X1 + Z = Z - CANS(3) - CAPL(3) +C if(N.EQ.44) print *,'z fin = ',Z + IF(.NOT.NOCAPL(N)) + + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') + IF(I.EQ.1) THEN + Z = Z - 2*CAPL(3) - DZMO ! SPESSORE TRA I SILICI CHE SI GUARDANO + X1 = X ! SHIFT PER IL CAPL PROSSIMO CICLO + Y1 = Y + X = -Y1 + Y = X1 + ENDIF + ENDDO + Z = Z - DZST - 2*CAPL(3) ENDDO -*END F.V.&ML. -* F.V.&ML.: -* again we have to comment with a 'C' per raw: -C* -C* Positioning volume CAPD and CAAD into the mother CALB -C* -C N= 0 -C DO I=1,NCAPLD -C IF(I.EQ.1) THEN -C Z= Z - CAPD(3) - CAPL(3) -C ELSE -C Z= Z - 2*CAPD(3) -C ENDIF -C N= N + 1 -C CALL GSPOS('CAPD',N,'CALB',X,Y,Z,0,'ONLY') -C Z= Z - CAPD(3) - CAAD(3) -C CALL GSPOS('CAAD',(I-1),'CALB',X,Y,Z,0,'ONLY') -C Z= Z - CAAD(3) - CAPD(3) -C N= N + 1 -C CALL GSPOS('CAPD',N,'CALB',X,Y,Z,3,'ONLY') -C ENDDO -* end comments. -*END F.V.&ML. +* END MA + +C # *F.V.&ML: +C # C commenting the original code with a 'C' per raw: +C # C* +C # C* Positioning volume CAPL and CAAB into the mother CALB +C # C* +C # C X= 0. +C # C Y= 0. +C # CC Z= CALB(3) + CAPL(3) +C # C*EM: +C # C Z= CALB(3) + CAPL(3) - DCASIZ/2. +C # C*END EM. (we have 0.15 cm from the top to the first Si) +C # C N= 0 +C # C DO I=1,NCAPL +C # C* +C # C* X view, absorber and Y view on the other +C # C* +C # C Z= Z - 2*CAPL(3) +C # C N= N + 1 +C # C* +C # C* Check if this plane is excluded +C # C* +C # C IF(.NOT.NOCAPL(N)) +C # C + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') +C # C Z= Z - CAPL(3) - CAAB(3) +C # C* +C # C* Check if this absorber is excluded +C # C* +C # C IF(.NOT.NOCAAB(I)) +C # C + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY') +C # C Z= Z - CAAB(3) - CAPL(3) +C # C N= N + 1 +C # C* +C # C* Check if this detector is excluded +C # C* +C # C IF(.NOT.NOCAPL(N)) +C # C + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') +C # C ENDDO +C # C end comments. +C # * +C # * Positioning volume CANS ,CAPL and CAAB into the mother CALB +C # * +C # X= 0. +C # Y= 0. +C # Z= CALB(3) + CAPL(3) - DCASIZ/2. +C # *END EM. (we have 0.15 cm from the top to the first Si) +C # N= 0 +C # * +C # * I DISPARI +C # DO I=1,NCAPL,2 +C # * +C # * X view, absorber and Y view on the other +C # * +C # X=0.10 +C # Y=0.05 +C # Z= Z - 2*CAPL(3) +C # N= N + 1 +C # * +C # * Check if this plane is excluded +C # * +C # * +C # IF(.NOT.NOCAPL(N)) +C # + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') +C # * +C # X = 0. +C # Y = 0. +C # Z= Z - CAPL(3) - CANS(3) +C # * +C # CALL GSPOS('CANS',N,'CALB',X,Y,Z,0,'ONLY') +C # * +C # Z= Z - CANS(3) - CAAB(3) +C # * +C # * Check if this absorber is excluded +C # * +C # * +C # IF(.NOT.NOCAAB(I)) +C # + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY') +C # * +C # Z = Z - CAAB(3)- CANS(3) +C # N = N + 1 +C # * +C # CALL GSPOS('CANS',N,'CALB',X,Y,Z,3,'ONLY') +C # Z= Z - CANS(3) - CAPL(3) +C # X=-0.05 +C # Y=0.10 +C # * +C # * Check if this detector is excluded +C # * +C # IF(.NOT.NOCAPL(N)) +C # + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') +C # N=N+2 +C # Z = Z -2*(2*CAPL(3)+2*CANS(3)+CAAB(3)) +C # ENDDO +C # * +C # * I PARI +C # * +C # X= 0. +C # Y= 0. +C # Z= CALB(3) + CAPL(3) - DCASIZ/2. +C # *END EM. (we have 0.15 cm from the top to the first Si) +C # N= 2 +C # * +C # * +C # DO I=2,NCAPL,2 +C # * +C # * X view, absorber and Y view on the other +C # * +C # Z= Z - 2*CAPL(3)-2*(2*CAPL(3)+2*CANS(3)+CAAB(3)) +C # N= N + 1 +C # * +C # * Check if this plane is excluded +C # X= -0.10 +C # Y= -0.05 +C # * +C # IF(.NOT.NOCAPL(N)) +C # + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,0,'ONLY') +C # X = 0. +C # Y = 0. +C # Z = Z - CAPL(3) - CANS(3) +C # * +C # CALL GSPOS('CANS',N,'CALB',X,Y,Z,0,'ONLY') +C # * +C # * Check if this absorber is excluded +C # * +C # N = N + 1 +C # Z = Z - CANS(3) - CAAB(3) +C # * +C # IF(.NOT.NOCAAB(I)) +C # + CALL GSPOS('CAAB',(I-1),'CALB',X,Y,Z,0,'ONLY') +C # * +C # Z= Z - CAAB(3) - CANS(3) +C # * +C # CALL GSPOS('CANS',N,'CALB',X,Y,Z,3,'ONLY') +C # Z= Z - CANS(3) - CAPL(3) +C # X= 0.05 +C # Y= -0.10 +C # * +C # * +C # * Check if this detector is excluded +C # * +C # IF(.NOT.NOCAPL(N)) +C # + CALL GSPOS('CAPL',N,'CALB',X,Y,Z,3,'ONLY') +C # N = N + 2 +C # * +C # ENDDO +C # *END F.V.&ML. +C # * F.V.&ML.: +C # * again we have to comment with a 'C' per raw: +C # C* +C # C* Positioning volume CAPD and CAAD into the mother CALB +C # C* +C # C N= 0 +C # C DO I=1,NCAPLD +C # C IF(I.EQ.1) THEN +C # C Z= Z - CAPD(3) - CAPL(3) +C # C ELSE +C # C Z= Z - 2*CAPD(3) +C # C ENDIF +C # C N= N + 1 +C # C CALL GSPOS('CAPD',N,'CALB',X,Y,Z,0,'ONLY') +C # C Z= Z - CAPD(3) - CAAD(3) +C # C CALL GSPOS('CAAD',(I-1),'CALB',X,Y,Z,0,'ONLY') +C # C Z= Z - CAAD(3) - CAPD(3) +C # C N= N + 1 +C # C CALL GSPOS('CAPD',N,'CALB',X,Y,Z,3,'ONLY') +C # C ENDDO +C # * end comments. +C # *END F.V.&ML. +C # end MA comments * * Put the shell around it *