/[PAMELA software]/DarthVader/CalorimeterLevel2/inc/CaloLevel1.h
ViewVC logotype

Diff of /DarthVader/CalorimeterLevel2/inc/CaloLevel1.h

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.3 by mocchiut, Tue Mar 20 13:15:38 2007 UTC revision 1.17 by pam-fi, Fri Sep 2 14:49:02 2011 UTC
# Line 7  Line 7 
7  //  //
8  // default position used only in CaloStrip for the moment  // default position used only in CaloStrip for the moment
9  //  //
 #define CTX 121.1  
 #define CTY 122.6  
 #define CTZ -263.1  
10  //  //
11    // old param
12    //
13    //#define CTX 121.1
14    //#define CTY 122.6
15    //#define CTZ -263.1
16    //
17    // new param
18    //
19    //#define CTX 121.2
20    //#define CTY 122.9
21    //#define CTZ -263.1
22    //
23    // new param using em showers (E. Taddei paramters)
24    //
25    //#define CTX 120.6
26    //#define CTY 122.3
27    //#define CTZ -263.1
28    //
29    // new param using inclined protons and looking for Z alignment
30    //
31    #define CTX 120.6
32    #define CTY 122.3
33    #define CTZ -261.596
34    //
35    // Mechanical positions (used with option --use-standard-alig)
36    //
37    #define MECHCTX 120.5
38    #define MECHCTY 121.5
39    #define MECHCTZ -261.81
40    //
41    // just for testing purpose
42    //
43    //#define MECHCTX 0.
44    //#define MECHCTY 0.
45    //#define MECHCTZ -263.1
46    //
47    #include <sstream>
48    #include <fstream>
49    #include <string.h>
50  #include <TObject.h>  #include <TObject.h>
51    #include <TMath.h>
52  #include <TClonesArray.h>  #include <TClonesArray.h>
53  #include <TArrayI.h>  #include <TArrayI.h>
54    #include <TSystem.h>
55    #include <GLTables.h>
56  //  //
57  extern "C" int millim_(Int_t *, Float_t *);  extern "C" int millim_(Int_t *, Float_t *);
58  struct shift {  struct shift {
# Line 40  class CaloLevel1 : public TObject { Line 79  class CaloLevel1 : public TObject {
79      //      //
80      TArrayI estrip; ///< MIP values for each strip with energy > emin coded with view plane and strip number. NOTICE: precision is limited to the 5 most significative ciphers      TArrayI estrip; ///< MIP values for each strip with energy > emin coded with view plane and strip number. NOTICE: precision is limited to the 5 most significative ciphers
81      //      //
82      CaloLevel1* GetCaloLevel1(){return this;}; ///< returns pointer to this object      CaloLevel1* GetCaloLevel1(){return this;} ///< returns pointer to this object
83      //      //
84      //      //
85      Float_t GetEstrip(Int_t view, Int_t plane, Int_t strip); ///< returns saved MIP value for the indicated strip.      Float_t GetEstrip(Int_t view, Int_t plane, Int_t strip); ///< returns saved MIP value for the indicated strip.
86      Float_t DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip); ///< returns saved MIP value for the entry number "entry" of the TArrayI.      Float_t DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip); ///< returns saved MIP value for the entry number "entry" of the TArrayI.
87        Float_t DecodeEstrip(Int_t entry, Int_t &view, Int_t &plane, Int_t &strip, Bool_t &saturated); ///< returns saved MIP value for the entry number "entry" of the TArrayI.
88      Float_t qtotpl(Int_t nplane); ///< Returns energy released on plane nplane (where 0<= nplane <= 43, 0 = 1Y, 1 = 1X, 2 = 2Y, 3 = 2X, etc. etc.).      Float_t qtotpl(Int_t nplane); ///< Returns energy released on plane nplane (where 0<= nplane <= 43, 0 = 1Y, 1 = 1X, 2 = 2Y, 3 = 2X, etc. etc.).
89      Float_t qtotpl(Int_t view, Int_t plane); ///< Returns energy released on view "view" (0 = X, 1 = Y) and plane "plane" ( 0 <= plane <= 21 ).      Float_t qtotpl(Int_t view, Int_t plane); ///< Returns energy released on view "view" (0 = X, 1 = Y) and plane "plane" ( 0 <= plane <= 21 ).
90        Float_t qtotpl(Int_t nplane, Bool_t &saturation); ///< Returns energy released on plane nplane (where 0<= nplane <= 43, 0 = 1Y, 1 = 1X, 2 = 2Y, 3 = 2X, etc. etc.).
91        Float_t qtotpl(Int_t view, Int_t plane, Bool_t &saturation); ///< Returns energy released on view "view" (0 = X, 1 = Y) and plane "plane" ( 0 <= plane <= 21 ).
92      //      //
93      void Clear();      void Clear(Option_t *t="");
94      //      //
95      Float_t GetXalig(){return CTX;}; ///< return X alignement paramenter      Float_t GetXalig(){printf(" Obsolete! Use CaloStrip class instead\n");return CTX;} ///< return X alignement paramenter
96      Float_t GetYalig(){return CTY;}; ///< return Y alignement paramenter      Float_t GetYalig(){printf(" Obsolete! Use CaloStrip class instead\n");return CTY;} ///< return Y alignement paramenter
97      Float_t GetZalig(){return CTZ;}; ///< return Z alignement paramenter      Float_t GetZalig(){printf(" Obsolete! Use CaloStrip class instead\n");return CTZ;} ///< return Z alignement paramenter
98      //      //
99      CaloLevel1(); ///< Constructor.      CaloLevel1(); ///< Constructor.
100      //      //
# Line 66  class CaloLevel1 : public TObject { Line 108  class CaloLevel1 : public TObject {
108  class CaloStrip : public TObject {  class CaloStrip : public TObject {
109    
110  private:  private:
111      CaloLevel1 *c1;      CaloLevel1 *c1; //< pointer to level1 object
112      Float_t fE;      Float_t fE; //< energy in mip of the strip
113      Float_t fX;      Float_t fX; //< X position in cm of the strip
114      Float_t fY;      Float_t fY; //< Y position in cm of the strip
115      Float_t fZ;      Float_t fZ; //< Z position in cm of the strip
116      Int_t fView;      Int_t fView; ///< view [1-2]
117      Int_t fPlane;      Int_t fPlane; ///< plane [1-22]
118      Int_t fStrip;      Int_t fStrip; ///< strip [1-96]
119        Bool_t ismech; ///< true = using mechanical alignement, false using experimental alignement parameters
120        static Float_t UXal; ///< used X alignement parameter
121        static Float_t UYal; ///< used Y alignement parameter
122        static Float_t UZal; ///< used Z alignement parameter
123        static Bool_t paramload;
124       //
125    
126  public:  public:
127      //      //
128      // METHODS      // METHODS
129      //      //
     //  
130      CaloStrip(); ///< Default Constructor.      CaloStrip(); ///< Default Constructor.
131      //      //
132        CaloStrip(Bool_t usemechanicalalignement); ///< Default Constructor.
133        //
134      CaloStrip(CaloLevel1 *c1); ///< Constructor.      CaloStrip(CaloLevel1 *c1); ///< Constructor.
135      //      //
136      Float_t GetE(){return fE;};      CaloStrip(CaloLevel1 *c1, Bool_t usemechanicalalignement); ///< Constructor.
137        //
138        Float_t GetE(){return fE;} ///< Get energy in MIP for setted strip
139        //
140        Float_t GetX(){return fX;} ///< Get X strip position
141        Float_t GetY(){return fY;} ///< Get Y strip position
142        Float_t GetZ(){return fZ;} /// Get Z strip position
143        //
144        Float_t GetXalig(){ return UXal;} ///< return X alignement paramenter
145        Float_t GetYalig(){ return UYal;} ///< return Y alignement paramenter
146        Float_t GetZalig(){ return UZal;} ///< return Z alignement paramenter
147        //
148        Int_t GetView(){return (fView-1);} ///< Get strip view [0-1]
149        Int_t GetPlane(){return (fPlane-1);} ///< Get strip plane [0-21]
150        Int_t GetStrip(){return (fStrip-1);} ///< Get strip number [0-95]
151        //
152        Int_t GetSiSensor(); ///< Return the sensor number, -1 means dead area
153      //      //
154      Float_t GetX(){return fX;};      void Set(Int_t view, Int_t plane, Int_t strip); ///< Set strip giving view [0-1], plane [0-22] and number [0-95]
     Float_t GetY(){return fY;};  
     Float_t GetZ(){return fZ;};  
155      //      //
156      Int_t GetView(){return (fView-1);};      void Set(Float_t X, Float_t Y, Float_t Z); ///< Set strip giving position in PAMELA ref sys [cm]
     Int_t GetPlane(){return (fPlane-1);};  
     Int_t GetStrip(){return (fStrip-1);};  
157      //      //
158      void Set(Int_t view, Int_t plane, Int_t strip);      void UseMechanicalAlig(){ ismech = true; UXal = MECHCTX; UYal = MECHCTY; UZal = MECHCTZ;} ///< Tells CaloStrip to use mechanical alignement parameters
159      void Set(Float_t X, Float_t Y, Float_t Z);      void UseStandardAlig(); ///< Tells CaloStrip to use default parameters it will find querying the DB. If connection fails uses parameters hard-coded in this file
160        void SetAlig(Float_t XALIG, Float_t YALIG, Float_t ZALIG){ ismech = false; UXal = XALIG; UYal = YALIG; UZal = ZALIG;}///< User defined alignement parameters
161        Bool_t IsMechanicalAlig(){return ismech;} ///< True is using mechanical alignement parameters, false otherwise
162      //      //
163      void Clear(); ///< clear variables      void Clear(Option_t *t=""); ///< clear variables
164      //      //
165      CaloStrip* GetCaloStrip(){return this;}; ///< returns pointer to this object      CaloStrip* GetCaloStrip(){return this;} ///< returns pointer to this object
166      //      //
167      ClassDef(CaloStrip,1);      ClassDef(CaloStrip,2);
168      //      //
169  };  };
170    

Legend:
Removed from v.1.3  
changed lines
  Added in v.1.17

  ViewVC Help
Powered by ViewVC 1.1.23