CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
MuonDTLocalMillepedeAlgorithm.h
Go to the documentation of this file.
1 #ifndef Alignment_MuonAlignmentAlgorithms_MuonDTLocalMillepedeAlgorithm_h
2 #define Alignment_MuonAlignmentAlgorithms_MuonDTLocalMillepedeAlgorithm_h
3 
4 
8 
10 #include "PhysicsTools/UtilAlgos/interface/TFileService.h"
11 
12 #include "TH1D.h"
13 #include "TProfile.h"
14 #include "TTree.h"
15 #include "TFile.h"
16 #include "TChain.h"
17 #include "TMatrixD.h"
18 
19 
20 class AlignableNavigator;
21 class TFile;
22 class TTree;
23 class AlignableDet;
24 
25 #define MAX_HIT 60
26 #define MAX_HIT_CHAM 14
27 #define MAX_SEGMENT 5
28 
29 
31 {
32 
33  public:
34 
37 
40 
42  void initialize( const edm::EventSetup& setup,
45 
47  void terminate(void);
48 
49 
51  void run(const edm::EventSetup& setup, const EventInfo &eventInfo);
52  //void run( const edm::EventSetup& , const ConstTrajTrackPairCollection& );
53 
54 
55 
56  private:
57 
58  // Builds the 4D segments
59  bool build4DSegments();
60 
61  // Declares the tree structure and associated the variables
62  void setBranchTrees();
63 
64  //Auxiliar structure for 4D segment construction
65  typedef struct {
66  int nhits;
67  float xc[MAX_HIT]; float yc[MAX_HIT]; float zc[MAX_HIT];
68  float erx[MAX_HIT];
69  int wh[MAX_HIT]; int st[MAX_HIT]; int sr[MAX_HIT];
70  int sl[MAX_HIT]; int la[MAX_HIT];
71  } Info1D;
72 
74 
75 
76  //Block of variables for the tree
77  //---------------------------------------------------------
78  float p, pt, eta, phi, charge;
79  int nseg;
83  float xSl[MAX_SEGMENT];
85  float exSl[MAX_SEGMENT];
88  float ySl[MAX_SEGMENT];
90  float eySl[MAX_SEGMENT];
116  //---------------------------------------------------------------
117 
118 
119 
120 
121  // private data members
122  TFile *f;
123  TTree *ttreeOutput;
124  TChain *tali;
125 
126 
128  std::vector<Alignable*> theAlignables;
130 
131  //Service for histograms
133 
136  std::string ntuplePath;
137  float ptMax;
138  float ptMin;
139  float nPhihits;
140  float nThetahits;
144 
145 
146  //FIXME: Not clear if needed
151 
152  float meanx[5][4][14];
153  float sigmax[5][4][14];
154  float meandxdz[5][4][14];
155  float sigmadxdz[5][4][14];
156  float meany[5][4][14];
157  float sigmay[5][4][14];
158  float meandydz[5][4][14];
159  float sigmadydz[5][4][14];
160 
161 
162 };
163 
164 #endif
#define MAX_HIT_CHAM
void initialize(const edm::EventSetup &setup, AlignableTracker *tracker, AlignableMuon *muon, AlignmentParameterStore *store)
Call at beginning of job.
MuonDTLocalMillepedeAlgorithm(const edm::ParameterSet &cfg)
Constructor.
void run(const edm::EventSetup &setup, const EventInfo &eventInfo)
Run the algorithm on trajectories and tracks.
#define MAX_SEGMENT
Constructor of the full muon geometry.
Definition: AlignableMuon.h:36
AlignmentParameterStore * theAlignmentParameterStore
void setup(std::vector< TH2F > &depth, std::string name, std::string units="")
void terminate(void)
Call at end of job.